SlideShare a Scribd company logo
1 of 11
Download to read offline
1
ICMP attack against TCP에 대한 고찰
Version 0.2
최초작성일 : 2005년 5월 3일
최종작성일 : 2005년 5월 7일
작성자 : 인포섹㈜ 서 병국 / CISSP
(bkseo@skinfosec.co.kr)
I. 개요
여러 보안관련 기관에서 대다수 회사에서 구현한 ICMP over TCP/IP에서 3가지 보안취약점이 존
재한다고 발표하였으며, 곧바로 이 취약점에 대한 Proof of Concept(PoC) 수준의 공격코드
(Exploit Code)까지 공개되었다.
이 보안취약점을 설명하기 이전에, 먼저 RFC에서 정의한 ICMP Protocol에 대해 살펴보고 그
이후 어떻게 이를 응용하여 공격이 이루어지는지 설명하도록 하겠다. 테스트 환경에서 Exploit
Code(PoC 버전)를 사용하여 실제 Packet을 분석하고 Network IDS에서는 어떤 Signature 탐지할
수있는지 알아 보겠다.
아울러 여러기관 및 벤더에서 보안권고문이 발표되었기 때문에 해결방법(패치 적용 등)은 본 글
에서 생락한다. 왜냐하면, 각각의 정보시스템에 해당되는 상세한 해결 방법은 벤더 웹페이지를
참조하는 것이 더 낳기 때문이다.
II. ICMP (Internet Control Message Protocol)
1. 정의 및 설명
TCP/IP 기반의 인터넷 통신 서비스에서 인터넷 프로토콜(IP, Internet Protocol)과 조합하여
통신 중에 발생하는 오류의 처리와 전송 경로의 변경 등을 제어 메시지를 취급하는
Connectionless Transmission 용의 프로토콜을 ICMP라고 한다. 즉, IP Protocol의 일부분이고
그 상위 Protocol(TCP,UDP)을 사용하기도 하며, 경우에 따라서 Process(Kernel)에 TCP, UDP
Layer를 걸치지 않고 직접 ICMP Messages가 전달될 수 있다. IP Protocol과 ICMP Protocol
을 이용한 대표적인 프로그램은 ping과 traceroute(or tracert.exe)이며, TCP Flow
Control(Sliding Window), UDP Protocol(tftp,DNS)에서도 사용된다.
ICMP Error Message는 Network 응용프로그램(이하 Application)이 시스템 또는 Network상으
로 문제가 발생할 경우에 전송된다. 이 ICMP Error Message에서는 수신하는 호스트로 하여금
문제가 발생한 해당 Application에 정보를 전달하기 위해서 ICMP Message 필드에 반드시
TCP(또는 UDP) Header 정보와 Error Message를 발생시켰던 Original datagram을 포함되어야
한다.
2
2. ICMP Format
ICMP Message는 ‘TYPE’과 ‘CODE’로 구분이 되며 아래 ‘표 1’과 같이 정의될 수 있다. 일반
적으로 ICMP Format은 ‘그림 1’과 같다.
TYPE (8bit) CODE (8bit) Checksum (16bit)
(contents depends on type and code)
‘TCP or UDP Header’
[그림 1 : General ICMP Message]
type code Description Error type Query Error
0 0 Echo reply •
3 Destination unreachable: •
0 Network unreachable Soft Error •
1 Host unreachable Soft Error •
2 Protocol unreachable Hard Error •
3 Port unreachable Hard Error •
4 Fragmentation needed
But don’t fragment-bit
(DF) set
Hard Error •
5 Source route failed Soft Error •
4 0 Source quench •
8 0 Echo request •
[표 1 : 주요 ICMP Message (RFC 1122 section 4.2.3.9) ]
3. ICMP Error Message에 따른 TCP Flow Control
가. Hard Error (Type:3, Code:2,3,4)
해당 호스트가 Hard error를 수신할 경우 연결을 종료한다. (TCP SHOULD abort the
connection)
나. Soft Error (Type:3, Code:0,1,5)
해당 호스트가 Soft Error를 수신할 경우, 연결을 종료해서는 안되며 해당 Application에 TCP
상태 정보를 전달해야 한다. (TCP MUST NOT abort the connection, and it SHOULD make
the information available to the application.)
III. ICMP attack Against TCP
3가지 공격의 원리는 간단하다. 위에서 살펴본 Hard Error와 Soft Error를 정상적인 발생이 아닌
DoS 공격을 하기 위한 의도적으로 전송시켜 정보시스템의 비 정상적인 TCP Flow Control을 유도
하는 것이다.
3
인터넷상에 공개된 PoC(Proof of Concept) Exploit Code를 사용하여, 공격 Packet을 Sniffing하
여 실제 ICMP Error 코드를 확인하고, 상용 Network IDS에서 어떻게 탐지되는지 살펴보자.
■ 분석에 사용된 프로그램 :
- Packet Capture Program : NGS Sniff v1.1 / tcpdump v3.5.3
- Network IDS : snort 2.3.3 (Build 14) / ISS사의 Proventia™ (탐지정책 : Default 설정 사용)
1. Blind connection-reset attack
가. 설명
공격자는 Server와 Client의 IP를 Spoofing을 하여 Hard error 타입의 ICMP Message(Type 3,
Code : 2, Protocol unreachable)를 연결되어 있는(Connection-Established) 두 호스트에 전
송함으로써, 두 호스트로 하여금 연결을 끊도록 유도하는 공격이다. 즉, 앞에서 살펴 보았던
‘II.3. ICMP Error Message에 따른 TCP Flow Control’에서 정의한 RFC 정의를 악의적인 목적
으로 응용한 것이다. 이는 ICMP Message를 통해 연결이 끊어지더라도 TCP의 fault
Recovery 정책(RFC 816)으로 인하여 다시 재 연결이 된다.
나. 예상 피해
두 호스트간의 Session이 비 정상적으로 종료가 된다. 즉, SQL, telnet, BGP 등과 같은 연결
은 즉시 끊어짐으로써 DoS(Denial of Service) 공격과 같은 피해를 입게 된다.
다. 공격 Packet (예)
1) NGS Sniff v1.1
IP Header
Length and version: 0x45
Type of service: 0x00
Total length: 56
Identifier: 42451
Flags: 0x0000
TTL: 255
Protocol: 1 (ICMP)
Checksum: 0x1e1f
Source IP: 192.168.59.128
Dest IP: 192.168.59.1
ICMP Header
Type: 3 (destination unreachable)
Code: 2 (protocol unreachable)
IP Header
Length and version: 0x45
Type of service: 0x00
4
Total length: 40
Identifier: 25068
Flags: 0x0000
TTL: 255
Protocol: 6 (TCP)
Checksum: 0x6211
Source IP: 192.168.59.1
Dest IP: 192.168.59.128
2) tcpdump v3.5.3
13:38:18.602740 192.168.59.128 > 192.168.59.1: icmp: 192.168.59.128 protocol 6 unreachable for
192.168.59.1.http > 192.168.59.128.274: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len
56)
13:38:18.602800 192.168.59.128 > 192.168.59.1: icmp: 192.168.59.128 protocol 6 unreachable for
192.168.59.1.http > 192.168.59.128.275: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len
56)
13:38:18.602813 192.168.59.128 > 192.168.59.1: icmp: 192.168.59.128 protocol 6 unreachable for
192.168.59.1.http > 192.168.59.128.276: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len
56)
13:38:18.603410 192.168.59.128 > 192.168.59.1: icmp: 192.168.59.128 protocol 6 unreachable for
192.168.59.1.http > 192.168.59.128.277: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len
56)
3) snort 2.3.3 (Build 14)
[**] [1:404:6] ICMP Destination Unreachable Protocol Unreachable [**]
[Classification: Misc activity] [Priority: 3]
05/18-15:00:55.302897 192.168.59.128 -> 192.168.59.1
ICMP TTL:255 TOS:0x0 ID:42451 IpLen:20 DgmLen:56
Type:3 Code:2 DESTINATION UNREACHABLE: PROTOCOL UNREACHABLE
** ORIGINAL DATAGRAM DUMP:
192.168.59.1:80 -> 192.168.59.128:1
TCP TTL:255 TOS:0x0 ID:25068 IpLen:20 DgmLen:40
Seq: 0x23484F44 Ack: 0x67B63736
** END OF DUMP
4) ISS사의 Proventia™ G200
탐지된 공격에 대한 탐지 Signature(ICMP_Protocol_Unreachable_TCP)와 상세한 설명이
함께 나타내고 있다.
5
2. Path MTU discovery Attack
가. 설명
Sender와 Receiver 간에 Fragmentation을 하지 않고 최대 크기(IP datagram)로 전송할 수
있는 MTU를 Path MTU라고 하며, 이는 Sender와 Receiver간의 경로상에 존재하는 Hop의
최소 MTU가 Path MTU값으로 결정된다. ICMP Unreachable Error를 통해 Path MTU값을 결정
하는 알고리즘을 PMTUD(Path MTU Discovery Mechanism)라고 한다.
단, Path MTU값은 68byte 보다 작아서는 안된다. (RFC 1192-Path MTU Discovery) 왜냐하면,
IP Header(20 byte), ICMP Header(8byte), Message(20byte), TCP Header (20byte) 합이
68byte 이기 때문이다. (그림 3)
공격자는 Path MTU 값을 68 byte 값으로 설정하여 ICMP Unreachable Error 메시지를 전
송함으로써, 데이터 전송속도를 떨어뜨리게 할 수 있다. 68 Byte 이하 값으로 전송할 경우
Cisco사의 Router 경우 ‘Runt Error’로 인하여 해당 Packet이 버려지게 됨으로써, 공격을 성
공시킬 수 없다. (참고 : 일반적인 Internet Network(LAN)의 MTU값은 1500 이다.)
TYPE (3,8bit) CODE (4,8bit) Checksum (16bit)
Unused (must be 0) MTU of next-hop network
IP Header + first 8 bytes of original IP datagram data
[그림 2 : ICMP ‘unreachable’ message Form]
8 byte
6
Ethernet
Header
IP
Header
ICMP
Header
IP Header of datagram that generated error
TCP(UDP)
Header
14byte 20byte 8byte 20bytes 20(8)byte
[그림 3 : ICMP Message Frame]
나. 예상 피해
Network 속도 저하, Server의 Network Performance 저하 등이 발생할 것으로 예상된다.
다. 공격 Packet (예)
1) NGS Sniff v1.1
IP Header
Length and version: 0x45
Type of service: 0x00
Total length: 56
Identifier: 42451
Flags: 0x0000
TTL: 255
Protocol: 1 (ICMP)
Checksum: 0x1e1f
Source IP: 192.168.59.128
Dest IP: 192.168.59.1
ICMP Header
Type: 3 (destination unreachable)
Code: 4 (frag needed but don't fragment bit set)
IP Header
Length and version: 0x45
Type of service: 0x00
Total length: 40
Identifier: 25068
Flags: 0x0000
TTL: 255
Protocol: 6 (TCP)
Checksum: 0x6211
ICMP Message
Data portion of ICMP message
ICMP Datagram
7
Source IP: 192.168.59.1
Dest IP: 192.168.59.128
2) tcpdump v3.5.3
13:44:38.969342 192.168.59.128 > 192.168.59.1: icmp: 192.168.59.128 unreachable - need to
frag (mtu 68) for 192.168.59.1.http > 192.168.59.128.617: [|tcp] (ttl 255, id 25068, len 40) (ttl
255, id 42451, len 56)
13:44:38.969439 192.168.59.128 > 192.168.59.1: icmp: 192.168.59.128 unreachable - need to
frag (mtu 68) for 192.168.59.1.http > 192.168.59.128.618: [|tcp] (ttl 255, id 25068, len 40) (ttl
255, id 42451, len 56)
13:44:38.970826 192.168.59.128 > 192.168.59.1: icmp: 192.168.59.128 unreachable - need to
frag (mtu 68) for 192.168.59.1.http > 192.168.59.128.619: [|tcp] (ttl 255, id 25068, len 40) (ttl
255, id 42451, len 56)
13:44:38.970928 192.168.59.128 > 192.168.59.1: icmp: 192.168.59.128 unreachable - need to
frag (mtu 68) for 192.168.59.1.http > 192.168.59.128.620: [|tcp] (ttl 255, id 25068, len 40) (ttl
255, id 42451, len 56)
3) snort 2.3.3 (Build 14)
[**] [1:396:6] ICMP Destination Unreachable Fragmentation Needed and DF bit was set [**]
[Classification: Misc activity] [Priority: 3]
05/18-15:04:34.186053 192.168.59.128 -> 192.168.59.1
ICMP TTL:255 TOS:0x0 ID:42451 IpLen:20 DgmLen:56
Type:3 Code:4 DESTINATION UNREACHABLE: FRAGMENTATION NEEDED, DF SET
NEXT LINK MTU: 68
** ORIGINAL DATAGRAM DUMP:
192.168.59.1:80 -> 192.168.59.128:3826
TCP TTL:255 TOS:0x0 ID:25068 IpLen:20 DgmLen:40
Seq: 0x23484F44 Ack: 0xDAAE04F7
** END OF DUMP
4) ISS사의 Proventia™ G200
탐지된 공격에 대한 탐지 Signature(ICMP_TCP_MTU_DoS)와 상세한 설명이 함께 나타내
고 있다. RFC에서 정의한 최소 Path MTU값은 68보다 20% 높은 Threshold 값인 82로 설
정하여 Threshold 값 이하의 Path MTU값인 경우 공격으로 판단한다.
Network IDS에서 나오는 공격 로그 중 Path MTU 값을 통해 공격 유무를 판단하는 기준으
로 봐야 한다. 탐지 Signature에 적절한 Threshold Path MTU 값을 설정함으로 False
Positive를 줄일 수 있다. 만약 Network IDS에서 Path MTU값을 분석할 수 없다면 공격 기
준을 삼을 수 없어 상당한 분석시간이 필요로 하게 된다.
8
3. ICMP Source Quench attack
가. 설명
데이터를 전송하는 시스템이 ‘ICMP Source Quench1
’ message(type:4, code:0)를 수신할 경
우, ‘slow start2
’로 즉, Congestion Windows (cwnd) 전송을 하게 되며, 데이터 전송속도를
낮추게 한다. 이는 RFC에서 정의한 TCP Flow Control 기능 중 하나이다. 공격자는 공격대상
시스템에 ‘Source Quench’ 메시지를 전송함으로써, 데이터 전송속도를 떨어뜨릴 수 있다.
나. 예상피해
Network 속도 저하, Server의 Network Performance 저하 등이 발생할 것으로 예상된다.
다. 공격 Packet (예)
1) NGS Sniff v1.1
IP Header
Length and version: 0x45
Type of service: 0x00
Total length: 56
Identifier: 42451
Flags: 0x0000
TTL: 255
1
RFC 1122 section 4.2.3.9 참고
2
RFC 1122 section 4.2.2.15 참고
탐지된 MTU 값 : 68
Threshold MTU 값 : 82
9
Protocol: 1 (ICMP)
Checksum: 0x1e1f
Source IP: 192.168.59.128
Dest IP: 192.168.59.1
ICMP Header
Type: 4 (source quench)
Code: 0 (unknown code)
Raw Data
45 00 00 28 61 ec 00 00 ff 06 62 11 c0 a8 3b 01 (E (a b ; )
c0 a8 3b 80 00 50 3b a9 23 48 4f 44 ( ; P; #HOD)
2) tcpdump v3.5.3
13:48:43.510578 192.168.59.128 > 192.168.59.1: icmp: source quench for 192.168.59.1.http >
192.168.59.128.332: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len 56)
13:48:43.510591 192.168.59.128 > 192.168.59.1: icmp: source quench for 192.168.59.1.http >
192.168.59.128.333: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len 56)
13:48:43.510602 192.168.59.128 > 192.168.59.1: icmp: source quench for 192.168.59.1.http >
192.168.59.128.334: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len 56)
13:48:43.510614 192.168.59.128 > 192.168.59.1: icmp: source quench for 192.168.59.1.http >
192.168.59.128.335: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len 56)
3) snort 2.3.3 (Build 14)
[**] [1:477:2] ICMP Source Quench [**]
[Classification: Potentially Bad Traffic] [Priority: 2]
05/18-15:05:21.776438 192.168.59.128 -> 192.168.59.1
ICMP TTL:255 TOS:0x0 ID:42451 IpLen:20 DgmLen:56
Type:4 Code:0 SOURCE QUENCH
4) ISS사의 Proventia™ G200
탐지된 공격에 대한 탐지 Signature(ICMP_Source_Quench)와 상세한 설명이 함께 나타내
고 있다.
10
IV. 결론
이번에 나온 ICMP attack against TCP 취약점을 이용한 공격은 과거 SYN Flood와 같은
Protocol 자체에 대한 취약점을 이용한 공격으로써 의미가 있다. 이에 대한 대응방법도 마찬가지
로, 일부 공격형태에 대해서는 원천적으로 차단할 수 없고 다소 완화시키는 수준밖에 없다.
최근 보안공격 추세는 최신 취약점에 대한 Exploit Code만을 이용한 해커 개인의 공격보다는
Bot종류 Worm과 같이 기본적인 뼈대는 유지하면서, 새로운 Exploit Code를 하나씩 더 늘어나는
형태, 즉 Zero-Day-Exploit이 아닌 Zero-Day-Worm 형태로 발전하고 있다. 만약 ICMP Attack
against TCP 공격 코드가 더욱 더 완성되어 Bot Worm에 포함되어 확산이 된다면, 한동안 보안
관리자, Network 운영자, Server 관리자, 보안관제회사는 이에 대한 대응책을 마련하기 위해서 상
당히 노력해야 할 것으로 생각된다.
마지막으로, 여러가지 상용 IDS에 대한 탐지 이벤트 분석과 실제와 가까운 Network 구성상에
서 성능 모니터링 및 공격/방어 테스트를 수행하고자 하였으나, 여러가지 복잡한 사정으로 인하
여 복합적인 테스트를 수행하지 못한 점이 무척이나 아쉽다.
Appendix (참고 자료)
1. IETF
http://www.ietf.org/internet-drafts/draft-gont-tcpm-icmp-attacks-03.txt
2. US-CERT
http://www.kb.cert.org/vuls/id/222750
11
3. TCP/IP Illustrated, Volume1 – W.Richard Stevens (ISBN 0-201-63346-9)
4. Cisco Systems
http://www.cisco.com/warp/public/707/cisco-sa-20050412-icmp.shtml,
5. RFC 816 - Fault isolation and recovery
http://www.faqs.org/rfcs/rfc816.html
6. RFC 1192 - Path MTU discovery
http://www.faqs.org/rfcs/rfc1191.html
7. TCP/IP Web Guide
http://www.tcpipguide.com/free/t_IPMessageFragmentationProcess-4.htm
8. ISS
http://www.iss.net/security_center/static/17170.php
http://www.iss.net/security_center/static/18499.php
http://www.iss.net/security_center/static/11619.php
9. Microsoft Co., Ltd
http://www.microsoft.com/korea/technet/security/bulletin/MS05-019.mspx
10. Cisco Systems
- Crafted ICMP Messages Can Cause Denial of Service
http://www.cisco.com/en/US/products/products_security_advisory09186a008021bc62.shtml
- TCP Vulnerabilities in Multiple IOS-Based Cisco Products
http://www.cisco.com/en/US/products/products_security_advisory09186a0080436587.shtml
11. Nortel Networks
http://www130.nortelnetworks.com/cgi-bin/eserv/cs/main.jsp?cscat=SECUREADVISORY
2005005697, 2005005701, 2005005700
12. Extreme Networks
http://www.extremenetworks.com

More Related Content

What's hot

소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약세빈 정
 
스트리밍 프로토콜
스트리밍 프로토콜스트리밍 프로토콜
스트리밍 프로토콜greenday96
 
리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초Yu Yongwoo
 
802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)
802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)
802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)MinChoul Lee
 
뇌자T 1.네트워크와 tcpip
뇌자T   1.네트워크와 tcpip뇌자T   1.네트워크와 tcpip
뇌자T 1.네트워크와 tcpipsj k
 
20150525 open flow1.3_ryu_sdn_link aggregation 1_김지은
20150525 open flow1.3_ryu_sdn_link aggregation 1_김지은20150525 open flow1.3_ryu_sdn_link aggregation 1_김지은
20150525 open flow1.3_ryu_sdn_link aggregation 1_김지은jieun kim
 
Netmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoSNetmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoSChris Changmo Yoo
 
Netmanias L2,L3 Training (1) L2 Ethernet
Netmanias L2,L3 Training (1) L2 EthernetNetmanias L2,L3 Training (1) L2 Ethernet
Netmanias L2,L3 Training (1) L2 EthernetChris Changmo Yoo
 
Netmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW ArchitectureNetmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW ArchitectureChris Changmo Yoo
 
Malware Traffic analysis
Malware Traffic analysisMalware Traffic analysis
Malware Traffic analysisfromitive
 
Ryu with OpenFlow 1.3, Traffic Monitor
Ryu with OpenFlow 1.3, Traffic MonitorRyu with OpenFlow 1.3, Traffic Monitor
Ryu with OpenFlow 1.3, Traffic Monitorjieun kim
 
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법Young D
 
MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)JuHwan Lee
 
Jnetpcap quickguide
Jnetpcap quickguideJnetpcap quickguide
Jnetpcap quickguideSukjin Yun
 
150416 OpenStack Networking with Neutron Jieun, Kim
150416 OpenStack Networking with Neutron Jieun, Kim150416 OpenStack Networking with Neutron Jieun, Kim
150416 OpenStack Networking with Neutron Jieun, Kimjieun kim
 
[234] toast cloud open stack sdn 전략-박성우
[234] toast cloud open stack sdn 전략-박성우[234] toast cloud open stack sdn 전략-박성우
[234] toast cloud open stack sdn 전략-박성우NAVER D2
 

What's hot (20)

소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약
 
스트리밍 프로토콜
스트리밍 프로토콜스트리밍 프로토콜
스트리밍 프로토콜
 
리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초
 
802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)
802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)
802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)
 
뇌자T 1.네트워크와 tcpip
뇌자T   1.네트워크와 tcpip뇌자T   1.네트워크와 tcpip
뇌자T 1.네트워크와 tcpip
 
20150525 open flow1.3_ryu_sdn_link aggregation 1_김지은
20150525 open flow1.3_ryu_sdn_link aggregation 1_김지은20150525 open flow1.3_ryu_sdn_link aggregation 1_김지은
20150525 open flow1.3_ryu_sdn_link aggregation 1_김지은
 
Tcpdump
TcpdumpTcpdump
Tcpdump
 
네트워크 기본
네트워크 기본네트워크 기본
네트워크 기본
 
Netmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoSNetmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoS
 
Netmanias L2,L3 Training (1) L2 Ethernet
Netmanias L2,L3 Training (1) L2 EthernetNetmanias L2,L3 Training (1) L2 Ethernet
Netmanias L2,L3 Training (1) L2 Ethernet
 
Netmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW ArchitectureNetmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW Architecture
 
TCP/IP
TCP/IPTCP/IP
TCP/IP
 
Malware Traffic analysis
Malware Traffic analysisMalware Traffic analysis
Malware Traffic analysis
 
퀴즈요약
퀴즈요약퀴즈요약
퀴즈요약
 
Ryu with OpenFlow 1.3, Traffic Monitor
Ryu with OpenFlow 1.3, Traffic MonitorRyu with OpenFlow 1.3, Traffic Monitor
Ryu with OpenFlow 1.3, Traffic Monitor
 
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
 
MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)
 
Jnetpcap quickguide
Jnetpcap quickguideJnetpcap quickguide
Jnetpcap quickguide
 
150416 OpenStack Networking with Neutron Jieun, Kim
150416 OpenStack Networking with Neutron Jieun, Kim150416 OpenStack Networking with Neutron Jieun, Kim
150416 OpenStack Networking with Neutron Jieun, Kim
 
[234] toast cloud open stack sdn 전략-박성우
[234] toast cloud open stack sdn 전략-박성우[234] toast cloud open stack sdn 전략-박성우
[234] toast cloud open stack sdn 전략-박성우
 

Viewers also liked

제1회 사내기술세미나-2013년 보안 트렌드 및 이슈(최종)-d han-kim-2013-2-19
제1회 사내기술세미나-2013년 보안 트렌드 및 이슈(최종)-d han-kim-2013-2-19제1회 사내기술세미나-2013년 보안 트렌드 및 이슈(최종)-d han-kim-2013-2-19
제1회 사내기술세미나-2013년 보안 트렌드 및 이슈(최종)-d han-kim-2013-2-19Donghan Kim
 
정보보안관련자격증조사
정보보안관련자격증조사정보보안관련자격증조사
정보보안관련자격증조사anak7
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법Youngjun Chang
 
보안 위협 동향과 대응 방안
보안 위협 동향과 대응 방안보안 위협 동향과 대응 방안
보안 위협 동향과 대응 방안Youngjun Chang
 
모의해킹 전문가 되기
모의해킹 전문가 되기모의해킹 전문가 되기
모의해킹 전문가 되기Jeremy Bae
 
[Gaming on AWS] 클라우드에 대한 오해들 - 한빛소프트
[Gaming on AWS] 클라우드에 대한 오해들 - 한빛소프트[Gaming on AWS] 클라우드에 대한 오해들 - 한빛소프트
[Gaming on AWS] 클라우드에 대한 오해들 - 한빛소프트Amazon Web Services Korea
 
초보자를 위한 시스템 해킹 공부 가이드라인
초보자를 위한 시스템 해킹 공부 가이드라인초보자를 위한 시스템 해킹 공부 가이드라인
초보자를 위한 시스템 해킹 공부 가이드라인H4C
 

Viewers also liked (7)

제1회 사내기술세미나-2013년 보안 트렌드 및 이슈(최종)-d han-kim-2013-2-19
제1회 사내기술세미나-2013년 보안 트렌드 및 이슈(최종)-d han-kim-2013-2-19제1회 사내기술세미나-2013년 보안 트렌드 및 이슈(최종)-d han-kim-2013-2-19
제1회 사내기술세미나-2013년 보안 트렌드 및 이슈(최종)-d han-kim-2013-2-19
 
정보보안관련자격증조사
정보보안관련자격증조사정보보안관련자격증조사
정보보안관련자격증조사
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법
 
보안 위협 동향과 대응 방안
보안 위협 동향과 대응 방안보안 위협 동향과 대응 방안
보안 위협 동향과 대응 방안
 
모의해킹 전문가 되기
모의해킹 전문가 되기모의해킹 전문가 되기
모의해킹 전문가 되기
 
[Gaming on AWS] 클라우드에 대한 오해들 - 한빛소프트
[Gaming on AWS] 클라우드에 대한 오해들 - 한빛소프트[Gaming on AWS] 클라우드에 대한 오해들 - 한빛소프트
[Gaming on AWS] 클라우드에 대한 오해들 - 한빛소프트
 
초보자를 위한 시스템 해킹 공부 가이드라인
초보자를 위한 시스템 해킹 공부 가이드라인초보자를 위한 시스템 해킹 공부 가이드라인
초보자를 위한 시스템 해킹 공부 가이드라인
 

Similar to Icmp Attak Against Tcp

(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Cse342 chapter 04
Cse342 chapter 04Cse342 chapter 04
Cse342 chapter 04Jinil Nam
 
파이썬+네트워크 20160210
파이썬+네트워크 20160210파이썬+네트워크 20160210
파이썬+네트워크 20160210Yong Joon Moon
 
[242]open stack neutron dataplane 구현
[242]open stack neutron   dataplane 구현[242]open stack neutron   dataplane 구현
[242]open stack neutron dataplane 구현NAVER D2
 
Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Sung-jae Park
 
[164] pinpoint
[164] pinpoint[164] pinpoint
[164] pinpointNAVER D2
 
Wiznet Academy - WizFi250 기초교육 및 실습
Wiznet Academy - WizFi250 기초교육 및 실습Wiznet Academy - WizFi250 기초교육 및 실습
Wiznet Academy - WizFi250 기초교육 및 실습Steve Kim
 
중급 소켓프로그래밍
중급 소켓프로그래밍중급 소켓프로그래밍
중급 소켓프로그래밍quxn6
 
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)KH Park (박경훈)
 
Maze통신교육 i2c
Maze통신교육   i2cMaze통신교육   i2c
Maze통신교육 i2cgeonhee kim
 
Introduce Product
Introduce ProductIntroduce Product
Introduce ProductAnnie Hwang
 
Interface and Protocol
Interface and ProtocolInterface and Protocol
Interface and ProtocolWonjun Hwang
 
TCP echo 서버 및 클라이언트 예제 스터디
TCP echo 서버 및 클라이언트 예제 스터디TCP echo 서버 및 클라이언트 예제 스터디
TCP echo 서버 및 클라이언트 예제 스터디quxn6
 
grade server - block socket
grade server - block socketgrade server - block socket
grade server - block socketGyuhyeon Nam
 
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직Hyunjik Bae
 
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2InfraEngineer
 
TCP가 실패하는 상황들
TCP가 실패하는 상황들TCP가 실패하는 상황들
TCP가 실패하는 상황들ssuser7c5a40
 
Mikrotic CCR1036 라우팅 설정
Mikrotic CCR1036 라우팅 설정Mikrotic CCR1036 라우팅 설정
Mikrotic CCR1036 라우팅 설정ymtech
 

Similar to Icmp Attak Against Tcp (20)

(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
 
Cse342 chapter 04
Cse342 chapter 04Cse342 chapter 04
Cse342 chapter 04
 
파이썬+네트워크 20160210
파이썬+네트워크 20160210파이썬+네트워크 20160210
파이썬+네트워크 20160210
 
ipv6_study.pdf
ipv6_study.pdfipv6_study.pdf
ipv6_study.pdf
 
[242]open stack neutron dataplane 구현
[242]open stack neutron   dataplane 구현[242]open stack neutron   dataplane 구현
[242]open stack neutron dataplane 구현
 
Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Implementing remote procedure calls rev2
Implementing remote procedure calls rev2
 
[164] pinpoint
[164] pinpoint[164] pinpoint
[164] pinpoint
 
Wiznet Academy - WizFi250 기초교육 및 실습
Wiznet Academy - WizFi250 기초교육 및 실습Wiznet Academy - WizFi250 기초교육 및 실습
Wiznet Academy - WizFi250 기초교육 및 실습
 
중급 소켓프로그래밍
중급 소켓프로그래밍중급 소켓프로그래밍
중급 소켓프로그래밍
 
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
 
Maze통신교육 i2c
Maze통신교육   i2cMaze통신교육   i2c
Maze통신교육 i2c
 
Introduce Product
Introduce ProductIntroduce Product
Introduce Product
 
Interface and Protocol
Interface and ProtocolInterface and Protocol
Interface and Protocol
 
Network seminar class 2
Network seminar class 2Network seminar class 2
Network seminar class 2
 
TCP echo 서버 및 클라이언트 예제 스터디
TCP echo 서버 및 클라이언트 예제 스터디TCP echo 서버 및 클라이언트 예제 스터디
TCP echo 서버 및 클라이언트 예제 스터디
 
grade server - block socket
grade server - block socketgrade server - block socket
grade server - block socket
 
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
 
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
 
TCP가 실패하는 상황들
TCP가 실패하는 상황들TCP가 실패하는 상황들
TCP가 실패하는 상황들
 
Mikrotic CCR1036 라우팅 설정
Mikrotic CCR1036 라우팅 설정Mikrotic CCR1036 라우팅 설정
Mikrotic CCR1036 라우팅 설정
 

Icmp Attak Against Tcp

  • 1. 1 ICMP attack against TCP에 대한 고찰 Version 0.2 최초작성일 : 2005년 5월 3일 최종작성일 : 2005년 5월 7일 작성자 : 인포섹㈜ 서 병국 / CISSP (bkseo@skinfosec.co.kr) I. 개요 여러 보안관련 기관에서 대다수 회사에서 구현한 ICMP over TCP/IP에서 3가지 보안취약점이 존 재한다고 발표하였으며, 곧바로 이 취약점에 대한 Proof of Concept(PoC) 수준의 공격코드 (Exploit Code)까지 공개되었다. 이 보안취약점을 설명하기 이전에, 먼저 RFC에서 정의한 ICMP Protocol에 대해 살펴보고 그 이후 어떻게 이를 응용하여 공격이 이루어지는지 설명하도록 하겠다. 테스트 환경에서 Exploit Code(PoC 버전)를 사용하여 실제 Packet을 분석하고 Network IDS에서는 어떤 Signature 탐지할 수있는지 알아 보겠다. 아울러 여러기관 및 벤더에서 보안권고문이 발표되었기 때문에 해결방법(패치 적용 등)은 본 글 에서 생락한다. 왜냐하면, 각각의 정보시스템에 해당되는 상세한 해결 방법은 벤더 웹페이지를 참조하는 것이 더 낳기 때문이다. II. ICMP (Internet Control Message Protocol) 1. 정의 및 설명 TCP/IP 기반의 인터넷 통신 서비스에서 인터넷 프로토콜(IP, Internet Protocol)과 조합하여 통신 중에 발생하는 오류의 처리와 전송 경로의 변경 등을 제어 메시지를 취급하는 Connectionless Transmission 용의 프로토콜을 ICMP라고 한다. 즉, IP Protocol의 일부분이고 그 상위 Protocol(TCP,UDP)을 사용하기도 하며, 경우에 따라서 Process(Kernel)에 TCP, UDP Layer를 걸치지 않고 직접 ICMP Messages가 전달될 수 있다. IP Protocol과 ICMP Protocol 을 이용한 대표적인 프로그램은 ping과 traceroute(or tracert.exe)이며, TCP Flow Control(Sliding Window), UDP Protocol(tftp,DNS)에서도 사용된다. ICMP Error Message는 Network 응용프로그램(이하 Application)이 시스템 또는 Network상으 로 문제가 발생할 경우에 전송된다. 이 ICMP Error Message에서는 수신하는 호스트로 하여금 문제가 발생한 해당 Application에 정보를 전달하기 위해서 ICMP Message 필드에 반드시 TCP(또는 UDP) Header 정보와 Error Message를 발생시켰던 Original datagram을 포함되어야 한다.
  • 2. 2 2. ICMP Format ICMP Message는 ‘TYPE’과 ‘CODE’로 구분이 되며 아래 ‘표 1’과 같이 정의될 수 있다. 일반 적으로 ICMP Format은 ‘그림 1’과 같다. TYPE (8bit) CODE (8bit) Checksum (16bit) (contents depends on type and code) ‘TCP or UDP Header’ [그림 1 : General ICMP Message] type code Description Error type Query Error 0 0 Echo reply • 3 Destination unreachable: • 0 Network unreachable Soft Error • 1 Host unreachable Soft Error • 2 Protocol unreachable Hard Error • 3 Port unreachable Hard Error • 4 Fragmentation needed But don’t fragment-bit (DF) set Hard Error • 5 Source route failed Soft Error • 4 0 Source quench • 8 0 Echo request • [표 1 : 주요 ICMP Message (RFC 1122 section 4.2.3.9) ] 3. ICMP Error Message에 따른 TCP Flow Control 가. Hard Error (Type:3, Code:2,3,4) 해당 호스트가 Hard error를 수신할 경우 연결을 종료한다. (TCP SHOULD abort the connection) 나. Soft Error (Type:3, Code:0,1,5) 해당 호스트가 Soft Error를 수신할 경우, 연결을 종료해서는 안되며 해당 Application에 TCP 상태 정보를 전달해야 한다. (TCP MUST NOT abort the connection, and it SHOULD make the information available to the application.) III. ICMP attack Against TCP 3가지 공격의 원리는 간단하다. 위에서 살펴본 Hard Error와 Soft Error를 정상적인 발생이 아닌 DoS 공격을 하기 위한 의도적으로 전송시켜 정보시스템의 비 정상적인 TCP Flow Control을 유도 하는 것이다.
  • 3. 3 인터넷상에 공개된 PoC(Proof of Concept) Exploit Code를 사용하여, 공격 Packet을 Sniffing하 여 실제 ICMP Error 코드를 확인하고, 상용 Network IDS에서 어떻게 탐지되는지 살펴보자. ■ 분석에 사용된 프로그램 : - Packet Capture Program : NGS Sniff v1.1 / tcpdump v3.5.3 - Network IDS : snort 2.3.3 (Build 14) / ISS사의 Proventia™ (탐지정책 : Default 설정 사용) 1. Blind connection-reset attack 가. 설명 공격자는 Server와 Client의 IP를 Spoofing을 하여 Hard error 타입의 ICMP Message(Type 3, Code : 2, Protocol unreachable)를 연결되어 있는(Connection-Established) 두 호스트에 전 송함으로써, 두 호스트로 하여금 연결을 끊도록 유도하는 공격이다. 즉, 앞에서 살펴 보았던 ‘II.3. ICMP Error Message에 따른 TCP Flow Control’에서 정의한 RFC 정의를 악의적인 목적 으로 응용한 것이다. 이는 ICMP Message를 통해 연결이 끊어지더라도 TCP의 fault Recovery 정책(RFC 816)으로 인하여 다시 재 연결이 된다. 나. 예상 피해 두 호스트간의 Session이 비 정상적으로 종료가 된다. 즉, SQL, telnet, BGP 등과 같은 연결 은 즉시 끊어짐으로써 DoS(Denial of Service) 공격과 같은 피해를 입게 된다. 다. 공격 Packet (예) 1) NGS Sniff v1.1 IP Header Length and version: 0x45 Type of service: 0x00 Total length: 56 Identifier: 42451 Flags: 0x0000 TTL: 255 Protocol: 1 (ICMP) Checksum: 0x1e1f Source IP: 192.168.59.128 Dest IP: 192.168.59.1 ICMP Header Type: 3 (destination unreachable) Code: 2 (protocol unreachable) IP Header Length and version: 0x45 Type of service: 0x00
  • 4. 4 Total length: 40 Identifier: 25068 Flags: 0x0000 TTL: 255 Protocol: 6 (TCP) Checksum: 0x6211 Source IP: 192.168.59.1 Dest IP: 192.168.59.128 2) tcpdump v3.5.3 13:38:18.602740 192.168.59.128 > 192.168.59.1: icmp: 192.168.59.128 protocol 6 unreachable for 192.168.59.1.http > 192.168.59.128.274: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len 56) 13:38:18.602800 192.168.59.128 > 192.168.59.1: icmp: 192.168.59.128 protocol 6 unreachable for 192.168.59.1.http > 192.168.59.128.275: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len 56) 13:38:18.602813 192.168.59.128 > 192.168.59.1: icmp: 192.168.59.128 protocol 6 unreachable for 192.168.59.1.http > 192.168.59.128.276: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len 56) 13:38:18.603410 192.168.59.128 > 192.168.59.1: icmp: 192.168.59.128 protocol 6 unreachable for 192.168.59.1.http > 192.168.59.128.277: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len 56) 3) snort 2.3.3 (Build 14) [**] [1:404:6] ICMP Destination Unreachable Protocol Unreachable [**] [Classification: Misc activity] [Priority: 3] 05/18-15:00:55.302897 192.168.59.128 -> 192.168.59.1 ICMP TTL:255 TOS:0x0 ID:42451 IpLen:20 DgmLen:56 Type:3 Code:2 DESTINATION UNREACHABLE: PROTOCOL UNREACHABLE ** ORIGINAL DATAGRAM DUMP: 192.168.59.1:80 -> 192.168.59.128:1 TCP TTL:255 TOS:0x0 ID:25068 IpLen:20 DgmLen:40 Seq: 0x23484F44 Ack: 0x67B63736 ** END OF DUMP 4) ISS사의 Proventia™ G200 탐지된 공격에 대한 탐지 Signature(ICMP_Protocol_Unreachable_TCP)와 상세한 설명이 함께 나타내고 있다.
  • 5. 5 2. Path MTU discovery Attack 가. 설명 Sender와 Receiver 간에 Fragmentation을 하지 않고 최대 크기(IP datagram)로 전송할 수 있는 MTU를 Path MTU라고 하며, 이는 Sender와 Receiver간의 경로상에 존재하는 Hop의 최소 MTU가 Path MTU값으로 결정된다. ICMP Unreachable Error를 통해 Path MTU값을 결정 하는 알고리즘을 PMTUD(Path MTU Discovery Mechanism)라고 한다. 단, Path MTU값은 68byte 보다 작아서는 안된다. (RFC 1192-Path MTU Discovery) 왜냐하면, IP Header(20 byte), ICMP Header(8byte), Message(20byte), TCP Header (20byte) 합이 68byte 이기 때문이다. (그림 3) 공격자는 Path MTU 값을 68 byte 값으로 설정하여 ICMP Unreachable Error 메시지를 전 송함으로써, 데이터 전송속도를 떨어뜨리게 할 수 있다. 68 Byte 이하 값으로 전송할 경우 Cisco사의 Router 경우 ‘Runt Error’로 인하여 해당 Packet이 버려지게 됨으로써, 공격을 성 공시킬 수 없다. (참고 : 일반적인 Internet Network(LAN)의 MTU값은 1500 이다.) TYPE (3,8bit) CODE (4,8bit) Checksum (16bit) Unused (must be 0) MTU of next-hop network IP Header + first 8 bytes of original IP datagram data [그림 2 : ICMP ‘unreachable’ message Form] 8 byte
  • 6. 6 Ethernet Header IP Header ICMP Header IP Header of datagram that generated error TCP(UDP) Header 14byte 20byte 8byte 20bytes 20(8)byte [그림 3 : ICMP Message Frame] 나. 예상 피해 Network 속도 저하, Server의 Network Performance 저하 등이 발생할 것으로 예상된다. 다. 공격 Packet (예) 1) NGS Sniff v1.1 IP Header Length and version: 0x45 Type of service: 0x00 Total length: 56 Identifier: 42451 Flags: 0x0000 TTL: 255 Protocol: 1 (ICMP) Checksum: 0x1e1f Source IP: 192.168.59.128 Dest IP: 192.168.59.1 ICMP Header Type: 3 (destination unreachable) Code: 4 (frag needed but don't fragment bit set) IP Header Length and version: 0x45 Type of service: 0x00 Total length: 40 Identifier: 25068 Flags: 0x0000 TTL: 255 Protocol: 6 (TCP) Checksum: 0x6211 ICMP Message Data portion of ICMP message ICMP Datagram
  • 7. 7 Source IP: 192.168.59.1 Dest IP: 192.168.59.128 2) tcpdump v3.5.3 13:44:38.969342 192.168.59.128 > 192.168.59.1: icmp: 192.168.59.128 unreachable - need to frag (mtu 68) for 192.168.59.1.http > 192.168.59.128.617: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len 56) 13:44:38.969439 192.168.59.128 > 192.168.59.1: icmp: 192.168.59.128 unreachable - need to frag (mtu 68) for 192.168.59.1.http > 192.168.59.128.618: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len 56) 13:44:38.970826 192.168.59.128 > 192.168.59.1: icmp: 192.168.59.128 unreachable - need to frag (mtu 68) for 192.168.59.1.http > 192.168.59.128.619: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len 56) 13:44:38.970928 192.168.59.128 > 192.168.59.1: icmp: 192.168.59.128 unreachable - need to frag (mtu 68) for 192.168.59.1.http > 192.168.59.128.620: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len 56) 3) snort 2.3.3 (Build 14) [**] [1:396:6] ICMP Destination Unreachable Fragmentation Needed and DF bit was set [**] [Classification: Misc activity] [Priority: 3] 05/18-15:04:34.186053 192.168.59.128 -> 192.168.59.1 ICMP TTL:255 TOS:0x0 ID:42451 IpLen:20 DgmLen:56 Type:3 Code:4 DESTINATION UNREACHABLE: FRAGMENTATION NEEDED, DF SET NEXT LINK MTU: 68 ** ORIGINAL DATAGRAM DUMP: 192.168.59.1:80 -> 192.168.59.128:3826 TCP TTL:255 TOS:0x0 ID:25068 IpLen:20 DgmLen:40 Seq: 0x23484F44 Ack: 0xDAAE04F7 ** END OF DUMP 4) ISS사의 Proventia™ G200 탐지된 공격에 대한 탐지 Signature(ICMP_TCP_MTU_DoS)와 상세한 설명이 함께 나타내 고 있다. RFC에서 정의한 최소 Path MTU값은 68보다 20% 높은 Threshold 값인 82로 설 정하여 Threshold 값 이하의 Path MTU값인 경우 공격으로 판단한다. Network IDS에서 나오는 공격 로그 중 Path MTU 값을 통해 공격 유무를 판단하는 기준으 로 봐야 한다. 탐지 Signature에 적절한 Threshold Path MTU 값을 설정함으로 False Positive를 줄일 수 있다. 만약 Network IDS에서 Path MTU값을 분석할 수 없다면 공격 기 준을 삼을 수 없어 상당한 분석시간이 필요로 하게 된다.
  • 8. 8 3. ICMP Source Quench attack 가. 설명 데이터를 전송하는 시스템이 ‘ICMP Source Quench1 ’ message(type:4, code:0)를 수신할 경 우, ‘slow start2 ’로 즉, Congestion Windows (cwnd) 전송을 하게 되며, 데이터 전송속도를 낮추게 한다. 이는 RFC에서 정의한 TCP Flow Control 기능 중 하나이다. 공격자는 공격대상 시스템에 ‘Source Quench’ 메시지를 전송함으로써, 데이터 전송속도를 떨어뜨릴 수 있다. 나. 예상피해 Network 속도 저하, Server의 Network Performance 저하 등이 발생할 것으로 예상된다. 다. 공격 Packet (예) 1) NGS Sniff v1.1 IP Header Length and version: 0x45 Type of service: 0x00 Total length: 56 Identifier: 42451 Flags: 0x0000 TTL: 255 1 RFC 1122 section 4.2.3.9 참고 2 RFC 1122 section 4.2.2.15 참고 탐지된 MTU 값 : 68 Threshold MTU 값 : 82
  • 9. 9 Protocol: 1 (ICMP) Checksum: 0x1e1f Source IP: 192.168.59.128 Dest IP: 192.168.59.1 ICMP Header Type: 4 (source quench) Code: 0 (unknown code) Raw Data 45 00 00 28 61 ec 00 00 ff 06 62 11 c0 a8 3b 01 (E (a b ; ) c0 a8 3b 80 00 50 3b a9 23 48 4f 44 ( ; P; #HOD) 2) tcpdump v3.5.3 13:48:43.510578 192.168.59.128 > 192.168.59.1: icmp: source quench for 192.168.59.1.http > 192.168.59.128.332: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len 56) 13:48:43.510591 192.168.59.128 > 192.168.59.1: icmp: source quench for 192.168.59.1.http > 192.168.59.128.333: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len 56) 13:48:43.510602 192.168.59.128 > 192.168.59.1: icmp: source quench for 192.168.59.1.http > 192.168.59.128.334: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len 56) 13:48:43.510614 192.168.59.128 > 192.168.59.1: icmp: source quench for 192.168.59.1.http > 192.168.59.128.335: [|tcp] (ttl 255, id 25068, len 40) (ttl 255, id 42451, len 56) 3) snort 2.3.3 (Build 14) [**] [1:477:2] ICMP Source Quench [**] [Classification: Potentially Bad Traffic] [Priority: 2] 05/18-15:05:21.776438 192.168.59.128 -> 192.168.59.1 ICMP TTL:255 TOS:0x0 ID:42451 IpLen:20 DgmLen:56 Type:4 Code:0 SOURCE QUENCH 4) ISS사의 Proventia™ G200 탐지된 공격에 대한 탐지 Signature(ICMP_Source_Quench)와 상세한 설명이 함께 나타내 고 있다.
  • 10. 10 IV. 결론 이번에 나온 ICMP attack against TCP 취약점을 이용한 공격은 과거 SYN Flood와 같은 Protocol 자체에 대한 취약점을 이용한 공격으로써 의미가 있다. 이에 대한 대응방법도 마찬가지 로, 일부 공격형태에 대해서는 원천적으로 차단할 수 없고 다소 완화시키는 수준밖에 없다. 최근 보안공격 추세는 최신 취약점에 대한 Exploit Code만을 이용한 해커 개인의 공격보다는 Bot종류 Worm과 같이 기본적인 뼈대는 유지하면서, 새로운 Exploit Code를 하나씩 더 늘어나는 형태, 즉 Zero-Day-Exploit이 아닌 Zero-Day-Worm 형태로 발전하고 있다. 만약 ICMP Attack against TCP 공격 코드가 더욱 더 완성되어 Bot Worm에 포함되어 확산이 된다면, 한동안 보안 관리자, Network 운영자, Server 관리자, 보안관제회사는 이에 대한 대응책을 마련하기 위해서 상 당히 노력해야 할 것으로 생각된다. 마지막으로, 여러가지 상용 IDS에 대한 탐지 이벤트 분석과 실제와 가까운 Network 구성상에 서 성능 모니터링 및 공격/방어 테스트를 수행하고자 하였으나, 여러가지 복잡한 사정으로 인하 여 복합적인 테스트를 수행하지 못한 점이 무척이나 아쉽다. Appendix (참고 자료) 1. IETF http://www.ietf.org/internet-drafts/draft-gont-tcpm-icmp-attacks-03.txt 2. US-CERT http://www.kb.cert.org/vuls/id/222750
  • 11. 11 3. TCP/IP Illustrated, Volume1 – W.Richard Stevens (ISBN 0-201-63346-9) 4. Cisco Systems http://www.cisco.com/warp/public/707/cisco-sa-20050412-icmp.shtml, 5. RFC 816 - Fault isolation and recovery http://www.faqs.org/rfcs/rfc816.html 6. RFC 1192 - Path MTU discovery http://www.faqs.org/rfcs/rfc1191.html 7. TCP/IP Web Guide http://www.tcpipguide.com/free/t_IPMessageFragmentationProcess-4.htm 8. ISS http://www.iss.net/security_center/static/17170.php http://www.iss.net/security_center/static/18499.php http://www.iss.net/security_center/static/11619.php 9. Microsoft Co., Ltd http://www.microsoft.com/korea/technet/security/bulletin/MS05-019.mspx 10. Cisco Systems - Crafted ICMP Messages Can Cause Denial of Service http://www.cisco.com/en/US/products/products_security_advisory09186a008021bc62.shtml - TCP Vulnerabilities in Multiple IOS-Based Cisco Products http://www.cisco.com/en/US/products/products_security_advisory09186a0080436587.shtml 11. Nortel Networks http://www130.nortelnetworks.com/cgi-bin/eserv/cs/main.jsp?cscat=SECUREADVISORY 2005005697, 2005005701, 2005005700 12. Extreme Networks http://www.extremenetworks.com