IP Fragments
본문 바로가기

IP Fragments

액트 2019. 8. 20.

1. Fragment란

​fragmentation : ​IP 프로토콜은 IP 패킷을 몇 개의 작은 패킷으로 나누어서 전송되어 목적지 시스템에서 재조합 되는 것을 허용하는 과정

​서로 다른 최대 패킷 사이즈의 제한을 가진 이기종의 전송 매체에서도 IP 데이터 그램을 전송하게 함.

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

 

IP Fragmentation은 데이터 그램이 MTU보다 클 경우에 발생!!

 

Ex) MTU가 1500바이트, 데이터 그램이 1500보다 클 때 Ethernet 네트워크를 통과해야 한다면 fragmentation이 필요하게 된다.

 

​공격 유형

fragmentation은 지극히 일반적이고 정상적인 이벤트이지만,

비정상적인 fragment를 발생시켜 서비스거부공격에 이용.

 

 

2. Fragment 흐름

​2.1 Data의 크기가 최대 패킷 사이즈보다 작을 경우

라우터는 그대로 경로를 정해 보냅니다.

 

 

​2.2 Data의 크기가 최대 패킷 사이즈보다 클 경우(데이터 분할 전송)

​라우터는 약속된 크기의 패킷으로 쪼개워 보냅니다.

 


​2.3 목적지 서버 도착(데이터 재조합 수신)

​목적지 서버에 도착한 패킷을 CPU가 연산을 하여 다시 하나의 패킷으로 만듭니다.

3. IP Fragments 패킷 분석


뭔가 3개씩 짝지어진 것을 볼 수 있습니다.

IPv4 2번, ICMP 1번

보시면 아시겠지만

192.168.0.114에서 Echo request를 192.168.0.193에게 요청하고

192.168.0.193는 Echo reply를 192.168.0.114에게 해주고 있음을 볼 수 있습니다.

또한​

이를 통해 알 수 있는 사실은 ICMP 메세지의 크기가 커서 3개로 분할해서 보낸다는 것입니다.

 

​3.1 1번 패킷

그렇다면 ​1번 패킷을 자세히 볼까요?

보시면 아시겠지만 Total Length가 1500임을 볼 수 있습니다.

데이터를 1500씩 짜른다는 얘기입니다.(MTU=1500)

Flags를 열어보도록 하죠

More fragments에 1이 체크되있습니다.

이는 아직 분할된 fragment가 남았다는 것입니다.

또한 fragment offset이​ 0임을 볼 수 있는데 이는 시작이 0이라는 뜻입니다.

​Data가 1480 bytes인걸 보아 0~1479 까지가 1번패킷의 fragment입니다.

​3.2 2번 패킷

​2번 패킷을 봅시다.

​1번패킷에​서 봤던 내용들을 봅시다.

MTU는 1500

다음 fragment가 존재하고

offset은 1480

데이터가 1480개 이므로 1480~​2959 까지임을 알 수 있습니다.

3.3 3번 패킷​

​3번 패킷을 봅시다.

​MUT : 140

More fragments : 없음.

offset : 2960

​Data : 120bytes (2960~3079)

정상적으로 패킷이 분할된 것을 확인할 수 있습니다.

여기까지 IP fragments 분석이었습니다.​

 

 

 

[출처]http://blog.naver.com/PostView.nhn?blogId=shj1126zzang&logNo=90193887664&parentCategoryNo=31&categoryNo=&viewDate=&isShowPopularPosts=true&from=search#

댓글