You cannot see this page without javascript.

진주성 블로그 방문하기
Tear Drop / Tiny Fragment / Fragment Overlap(고전적인방법)

위 3가지 공격은 모두 IP Fragmentation(단편화)의 취약점을 이용한 공격입니다.

IP 단편화는 IP Packet 이 쪼개진다는 의미입니다. 상위 프로토콜(TCP/UDP/ICMP등등)으로 전달된 데이터를 IP헤더를 붙어

캡슐화 하는데 이 데이터 (IP Datagram)를 그냥 하위의 Ethernet 프로토콜로 전송하는것이 아니고 이를 어떠한 기준에 의해서

쪼개서 보내게 됩니다. 원거리의 호스트와 통신을 하기 위해서는 여러 네트웍을 거쳐야 하는데 그것은 다양한 물리적 네트웍크

프로토콜(단적으로 LAN 와 WAN의 프로토콜이 서로 다름)을 거쳐서 데이터를 전송해야 한다는 의미인데

이러한 네트워크 프로토콜과 전송매체에 따른 특성으로 인해 하나의 패킷으로 전송할수 있는 패킷의 크기에 제한이 있습니다.

따라서 패킷이 해당 구간에 적당한 크기라면 그냥 통과하는것이고 패킷이 너무 크다면 단편화가 발생합니다.

여기서 각각의 물리적은 네트워크 프로토콜에 따른 패킷이 가질수 있는 테이터의 최대 크기를 MTU(Maximum Transfer Unit)라고 합니다.

각 네트워크 구간의 프로토콜에 따라 MTU가 다르기 때문에 IP패킷의 단편화가 발생하고 쪼개지는 단위는 MTU크기에 따라 결정됩니다.

IP Header 부분중 3가지필드가 있는데 첫번째부터 fragment id, flags, offset 입니다. 이 3가지 필드는 IP단편화/재조합(재조합은

수신측에서 단편화된 조각을 모아서 원래의 IP Datagram으로 되돌리는 작업을 말합니다) 을 위해 사용되는 필드입니다.

 

1. Tiny Fragment

의미상 작은 단편이라는 의미, 데이터는 고사하고 헤더 부분조차 모두 담지 못하는 매우 작은 단편입니다.

정상적으로 생성 될수 없는 말도 안되는 쓰레기 패킷인데 이 패킷을 공격자가 보내게 되면

패킷필터링 기반의 침입탐지/차단시스템(firewall, ids, ips등)을 우회해서 내부 시스템에 침입하기 위해서 그렇게 작은 패킷을 만듬니다.

패킷 필터링기반의 보안장비들은 기본적으로 ip/port 기반의 접근제어룰에 근거해서 접근차단을 하는데요 이점을 이용합니다.

첫번째 패킷이 장비로 들어 왔는데 보니깐 패킷에 목적기 port 정보가 없는겁니다. 목적지 port 를 보고 필터링 정책을 적용하려 했던 장비는

오작동을 일으켜 그 패킷을 그냥 통과 시키고 그후에 들어오는 패킷들은 이미 통과된 ip fragment id 를 가지고 있으므로 자연 스럽게 통과가 됩니다.

이런식으로 보안장비를 우회해서 내부 시스템에 접근하는 공격기법

 

2. Fragment Overlap

의미상 단편(조각)을 중첩한다는 의미입니다.

일반적으로 웹서버나 DNS서버 SMTP서버 등은 외부망의 접근을 허용하고 있죠 당연히 외부에 서비스를 해야 하기 때문에 허용을 하는건데요

따라서 80포트 53포트등은 외부에서 접근이 가능하도록 접근제어를 합니다.

공격자는 이점을 이용해서 해당 시스템에 허용되는 포트(가령 80포트)를 목적지 포트로 가지고 있는 단편(패킷)을 먼저 전송한후에 침투 하고자 하는

내부망의 포트 정보를 담은 두번째 단판(패킷)을 전송하는데 offset 값을 조작해서 재조합시에 이전 단편(80포트를 목적지로 하는)의 포트 부분을

침투하고자 하는 내부망의 포트 번호로 덮어 쓰도록 합니다. 따라서 결과적으로 재조합이 되어 완성된 IP Datagram은 목적지가 80포트가 아닌

공격자가 지정한 포트로 변조된 패킷이 됩니다.

패킷필터링 기반의 탐지시스템을 우회(회피)하여 내부 서비스에 접근하여 공격하는 기법

 

 

3. Tear Drop

의미상 눈물 방울이며, 이 공격기법은 시스템의 오류및 오동작을 유발해서 Dos(정상적은 서비스가 불가능한 상태)상태를 유발하기 위한 공격기법

IP 패킷의 여러 단편들의 offset 값을 변조합니다. 이를 수신한 호스트는 문제가 발생합니다. 해당 호스트의 IP 모듈에서 단편들의 재조합하기 위해

버퍼를 항당하고 메모리복사를 위한 시스템함수들으 수행하는데 만약 그 시스템함수에 취약점이 존재해서 버퍼의 크기와 전달된 단편에 대한

적절한 검증이 이루어지지 않는다면 buffer overflow, buffer underflow 와 같은 memory fault 상황이 발생할수 있습니다.

시스템 메모리 폴트는 더이상의 프로세서 진행에 불가능한 심각한 상황이므로 이를 처리하던 IP 모듈의 비정상적은 종료가 발생됩니다.

이처럼 피눈물이 뚝뚝 떨어지듯이 오프셋을 조작해서 듬성듬성 단편(눈물)들을 만들어 공격하는 기법

 

위 3가지 모두 보안장비나 OS 에서 패치가 이루어져 있으므로 지금은 거의 먹히지 않는 공격이므로 기초 학습용으로 참고하세요

 

 

 

 

번호 제목 날짜 조회 수
95 국제공통 평가 기준 표준 (CC:Common Criteria) 2017.11.09 248
94 정보통신망법 2017.11.09 97
93 IoT 보안 2017.11.08 87
92 접근통제 참조모델 2017.11.07 143
91 쉘쇼크(Shellshock) 2017.11.07 116
90 악성코드의 종류 2017.11.07 383
89 디지털 포렌직 조사의 일반원칙 2017.11.07 92
88 ftp 보안 취약점및 대책 2017.11.05 538
87 Dos 공격유형 및 차단 2017.11.03 721
86 command file 2017.11.01 959
85 ICMP 2017.11.01 1049
84 아파치 웹서버 보안설정 file 2017.11.01 3419
83 HTTP Header 2017.11.01 112
82 IPv4, IPv6 2017.11.01 108
81 OSI 7 Layer 2017.11.01 214
진주성 블로그 방문하기
CLOSE