Information Security ˗ˋˏ ♡ ˎˊ˗

Security/Network

[Network] IP Fragmentation(단편화) 정의 및 관련 취약점

토오쓰 2020. 9. 10. 01:57

 

 IP Fragmentation 정의 및 관련 취약점 살펴보자

 

 

 

1. IP Fragmentation 정의

IP Datagram이 네트워크를 통해 전송될 때, 전송되는 IP 데이터그램의 크기가 해당 전송 매체에서 전송될 수 있는 최대 크기인 MTU(Maximum Transmission Unit)보다 클 경우 발생한다.

=> MTU(Maximum Transmission Unit): IP Datagram이 네트워크를 통해 전송될 때, 전송되는 IP Datagram의 크기가 해당 전송 매체에서 전송될 수 있는 최대 크기

EX) Ethernet에서 전송가능한 IP 데이터그램의 최대 크기는 1500byte이다.

 

<=> 재조립(Reassembly): 최종 수신지에 도착한 데이터그램 단편들을 수신자가 보낸 데이터그램으로 다시 조립하는 과정

 

IP Packet의 Header부분에서 플래그(Frag), 단편 오프셋(Fragment Offset), 전체 길이(Total Length), 식별자(Identification)가 단편화와 재조립 과정에서 쓰인다.

 

 

 

2. Fragment를 이용한 공격

1) Tiny Fragment 공격

최초의 Fragment를 아주 작게 만들어서 네트워크 침입탐지시스템이나 패킷 필터링 장비를 우회하는 공격

TCP 헤더가 2개의 Fragment에 나눠질 정도로 작게 쪼개서 목적지 TCP 포트번호가 첫 번째 Fragment에 위치하지 않고 두 번째 Fragment에 위치하도록 한다.

 

2) Fragment Overlap

공격자는 공격용 IP 패킷을 위해 두 개의 Fragment를 생성한다.

첫 번째 Fragment에서는 패킷 필터링 장비에서 허용하는 HTTP(80) 포트와 같은 포트번호를 가진다.

두 번째 Fragment에서는 Offset을 아주 작게 조작해서 Fragment들이 재조합될 때 두 번째 Fragment가 첫 번째 Fragment의 일부분을 덮어 쓰도록 한다.

일반적으로 공격자들은 첫 번째 Fragment의 포트 번호가 있는 부분까지 덮어씌운다.

 

3) 서비스거부공격

=> Ping of Death: 표준에 규정된 길이 이상으로 큰 IP 패킷을 전송함으로써 이 패킷을 수신 받은 OS에서 이 비정상적인 패킷을 처리하지 못함으로써 서비스거부공격을 유발하도록 하는 공격이다(Jolt 이용).

=> Teardrop: 두 번째 Fragment의 Offset을 조작하여 Fragment들을 재조합하는 과정에서 버퍼를 넘쳐 겹쳐서 쓰도록 한다. 겹쳐 쓰여진 Offset 필드를 가진 Fragment를 만들어 목표 시스템에 보내며, Fragment들을 재조합하는 목표 시스템이 정지되거나 재부팅되게 한다.

 

 

 

참고

m.blog.naver.com/twers/50116956400

https://www.linux.co.kr/security/certcc/IP%20Fragmentation.htm