본문 바로가기

카테고리 없음

DDoS 공격원리와 대응방법

DDOS 공격이란

대규모 네트워크의 많은 호스트에 설치되어 서로 통합된 형태로 패킷을 범람시켜 심각한 네트워크 성능저하 및 시스템 마비를 유발하는걸 애기합니다.

 

 

DDOS 공격툴

1. Trinoo 
Trinoo는 많은 소스로부터 통합된 UDP flood 서비스거부 공격을 유발하는데 사용되는 도구입니다.
Trinoo 공격의 몇 개의 마스터 서버들과 많은 클라이언트들로 이루어져 공격자가 마스터에 접속하여 공격 명령을 전달하는 방식으로 되어 있습니다.

http://staff.washington.edu/dittrich/misc/trinoo.analysis

 

2. TFN(Tribe Flood Network)
TFN은 trinoo와 거의 유사한 분산 도구로 많은 소스에서 하나 혹은 여러개의 목표 시스템에 대해 서비스거부 공격을 수행합니다.
UDP flood 공격을 할 수 있을뿐만 아니라 TCP SYN flood 공격, ICMP echo 요청 공격, ICMP 브로드캐스트 공격(smurf 공격)등을 여러 공격방법을 구사합니다.

http://staff.washington.edu/dittrich/misc/tfn.analysis

 

3. 이외 툴들
Smurf Attack, Land Attack, stacheldraht

 

DDOS 공격 방어 방법

1. 사설, 내부 네트워크, Broadcast Spoofing 필터링

위장된 소스 아이피로 특정 서브넷을 브로드케스트 함으로써 많은 양의 ICMP Echo 패킷을 유발시키게 되는데(Smurf Attack),라우팅에는 브로드케스트 패킷이 불필요하므로 이러한 브로드케스트를 필터링 하기 위한 방법은 Access-list를 이용하는 방법 과 목적지 단의 라우터가 링크계층의 브로드케스트 주소로 이 패킷을 확장하지 못하게 패킷을 드롭하는 방법이 있습니다.

차단되어야 하는 아이피 대역

0.0.0.0/8 : Default/Broadcast & Other unique IP

127.0.0.0/8 : Host Loopback IP address

169.254.0.0/16 : DHCP를 통한 IP 미 할당시 자동 생성되는 IP

192.0.2.0/24 : TEST-NET IP

10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 : RFC 1918 에 정의된 사설 IP

 

l  Access list set
Router(config)#access-list 101 deny ip 0.0.0.0 0.255.255.255 any
Router(config)#access-list 101 deny ip 10.0.0.0 0.255.255.255 any
Router(config)#access-list 101 deny ip 127.0.0.0 0.255.255.255 any
Router(config)#access-list 101 deny ip 169.254.0.0 0.0.255.255 any
Router(config)#access-list 101 deny ip 192.0.2.0 0.0.0.255 any
Router(config)#access-list 101 deny ip 172.16.0.0 0.15.255.255 any
Router(config)#access-list 101 deny ip 192.168.0.0 0.0.255.255 any
Router(config)#access-list 101 deny ip {내부 네트웍 아이피 블록} any
Router(config)#access-list 101 permit ip any any
Router(config)#interface serial 0
Router(config-if)#ip access-group 101 in

l  Cisco 7000 Series Router Access list set (Turbo ACL enable)
Router(config)#access-list compiled

l  Filtering directed broadcast
Router(config-if)#no ip directed broadcast

 

2. RPF(Reverse Path Forwarding)를 이용한 Source IP Spoofing 필터링

Unicast RPF는 라우터로 패킷이 유입될 때 패킷의 input interface로의 reverse path route가 존재하는지를 FIB(Flow Information Base)를 통하여 확인하여, 만일 소스 아이피가 스누핑된 것이라면 input interface 상의 FIB (#sh ip cef input_interface 로 확인 가능)에 소스 아이피에 대한 reverse path가 존재하지 않는다. 라우터는 reverse path route가 존재하는 패킷은 통과 시키고 그렇지 않은 스누핑 된 패킷은 버립니다.

 

l  RPF Rule Set
Router(config)#ip cef
Router(config-if)#ip verify unicast reverse-path

RPF 기능의 사용을 위해서는 라우터에 CEF 스위칭을 활성화합니다.

l  Dual-Homed Routing RPF Rule Set
Router(config)#ip cef -> cef enable
Router(config-if)#ip verify unicast source reachable-via any

다중경로를 가지고 있거나, BGP를 통해 Dual-Homed Routing을 구성한 경우에 사용합니다.


3. TCP Syn Flooding 필터링
TCP 프로토콜은 신뢰적인 통신을 위해 연결 확립을 위한 3핸드쉐이킹(handshaking) 과정을 선행한다. 3 핸드쉐이킹은 client 단말이 TCP 헤더 코드 비트(6 bit) 중 SYN bit가 On된 SYN 플래그 패킷을 전송(SYN_SENT상태)하면서 시작되고, 이를 수신한 서버는 핸드쉐이킹 상태 중 half-open (SYN_RECEIVED 상태)에 해당되며 이에 대한 정보를 커널 메모리상에 존재하는 백로그(backlog)에 저장하고 IP헤더에 명시된 32비트 소스 주소로 SYN/ACK 플래그 패킷을 전송하고 마지막으로

client에게 ACK 플래그 패킷을 전송 받음으로써 두 단말 모두가 Established 상태가 되어 비로소 하나의 TCP 세션이 이루어 지고 어플리케이션단의 통신이 이루어진다.

백로그(backlog)의 크기 에 따라 half-open된 TCP 요구가 얼마나 많이 보유될 수 있는지가 결정이 되고, 백로그 사이즈가 제한 값에 이르게 되면 TCP는 새로운 SYN 요청을 모두 무시하고 half-open 되어있는 내용들이 정리되기를 기다리게 된다. 공격자는 이를 악용하여 상대방에게 SYN 패킷만을 무차별적으로 전송하는 DOS 공격이 가능하게 되며, 이때 대부분의 공격자들은 IP Spoofing을 이용하여 자신의 IP를 위장하여 공격하게 된다.

 

l  established 를 통한 필터링 설정
Router(config)# access-list 105 permit tcp any 192.168.10.0 0.0.0.255 established
Router(config)# access-list 105 permit tcp any host 192.168.10.1 eq 80
Router(config-if)# ip access-group 105 in

Established 옵션은 ACK Flag가 On인 패킷만을 체크한다. 따라서 위의 설정 상에서 보면 외부에서 유입되는 SYN Flag 패킷은 드롭되고 오직 192.168.10.1의 웹 서버와 TCP connect을 맺을 수 있다. 반면 내부의 192.168.10.0/24의 모든 host들은 외부와 자유로이 TCP connect을 맺을 수 있다.

l  TCP intercept 를 통한 SYN Flooding 필터링
Router(config)# access-list 107 permit tcp any 192.168.10.0 0.0.0.255.
Router(config)# ip tcp intercept mode intercept
Router(config-if)# ip access-group 107 in

Intercept Mode로 동작하는 라우터는 ACL에서 정의된 TCP(SYN)패킷을 가로채서 서버를 대신하여 client와 connection을 맺고, 성공한다면 client를 대신하여 서버와 connection을 맺는다. 그리고 나서 이 두개의 half-connection을 하나의 투명한 connection으로 묶는다. 이렇게 함으로써 IP Spoofing을 이용한 SYN Flooding 공격을 막을 수 있으나 주의할 점은 라우터의 부하 증가가 많다는 단점이 있다

 

4. rate limit 설정을 통한 필터링

rate limit 설정은 일반적으로 ICMP는 관리용도로 널리 사용되는 프로토콜인데 이 프로토콜 역시 공격수단 많이 사용하는데 이 공격을 막기 위해 주로 사용한다. rate limit 설정은 전송량을 제한하기 위해 CAR를 이용하여 rate-limit 설정을 사용하여 전송량을 제한, 공격을 차단하게 된다.
단 rate-limit를 설정하는 것만으로는 모든 DOS공격을 막을 수 없다는 사실을 인지하여야 한다

 

l  CAR to rate limit ICMP packets 필터링
access-list 2020 permit icmp any any echo-reply
interface xy 
rate-limit output access-group 2020 3000000 512000 786000 conform-action 
transmit exceed-action drop

l  rate limiting for SYN packets 필터링
access-list 152 permit tcp any host eq www 
access-list 153 permit tcp any host eq www established
interface {int} 
rate-limit output access-group 153 45000000 100000 100000 conform-action 
transmit exceed-action drop 
rate-limit output access-group 152 1000000 100000 100000 conform-action 
transmit exceed-action drop

45000000 : 최대 대역폭
1000000 : 대역폭을 50% 에서 30% 으로 SYN flood rate를 설정