58
IT CookBook, 정정 정정 정정정 정정 : 정정정정 정정정 정정 ( 정정정 ) DoS 정 DDoS 정정

DoS 와 DDoS 공격

Embed Size (px)

DESCRIPTION

13. DoS 와 DDoS 공격. 학습목표 DoS, DDoS 공격의 패턴을 이해한다 . DoS, DDoS 공격을 실행할 수 있다 . DoS, DDoS 공격을 탐지할 수 있다 . DoS, DDoS 공격에 적절히 대처할 수 있다 . 내용 DoS 와 DDoS 공격의 이해 DoS 공격 DDoS 공격 DoS, DDoS 공격에 대한 대응책. DoS 와 DDoS 공격의 이해. DoS(Denial of Service, 서비스 거부 ) - PowerPoint PPT Presentation

Citation preview

Page 1: DoS 와  DDoS  공격

IT CookBook, 정보 보안 개론과 실습 : 네트워크 해킹과 보안 (개정판 )

DoS 와 DDoS 공격

Page 2: DoS 와  DDoS  공격

2/58

Contents

학습목표 DoS, DDoS 공격의 패턴을 이해한다 . DoS, DDoS 공격을 실행할 수 있다 . DoS, DDoS 공격을 탐지할 수 있다 . DoS, DDoS 공격에 적절히 대처할 수 있다 .

내용 DoS 와 DDoS 공격의 이해 DoS 공격 DDoS 공격 DoS, DDoS 공격에 대한 대응책

Page 3: DoS 와  DDoS  공격

3/58

DoS(Denial of Service, 서비스 거부 ) 공격 대상이 수용할 수 있는 능력 이상의 정보를 제공하거나 , 사용자 또는 네트워크의

용량을 초과시켜 정상적으로 작동하지 못하게 하는 공격• 파괴 공격 : 디스크 , 데이터 , 시스템 파괴

• 시스템 자원 고갈 공격 : CPU, 메모리 , 디스크의 사용에 과다한 부하 가중

• 네트워크 자원 고갈 공격 : 쓰레기 데이터로 네트워크의 대역폭 고갈

DDoS(Distributed Denial of Service) DoS 공격의 업그레이드판

1999 년 8 월 17 일에 미네소타 대학에서 대대적으로 DDoS 공격이 일어나 CNN, Yahoo, NBC 같은 대규모 사이트를 마비시킴

DoS 와 DDoS 공격의 이해

Page 4: DoS 와  DDoS  공격

4/58

Ping of Death ping 을 이용하여 ICMP 패킷을 정상 크기보다 아주 크게 만드는 것

크게 만들어진 패킷은 네트워크를 통해 라우팅 (routing) 되어 공격 네트워크에 도달하는 동안 아주 작은 조각 (fragment) 으로 쪼개지고 공격 대상은 조각화된 패킷을 모두 처리해야 하므로 정상적인 ping 보다 부하가 훨씬 많이 걸림

DoS 공격

Page 5: DoS 와  DDoS  공격

5/58

라우팅은 출발지 주소와 목적지 주소를 확인하고 최적의 거리를 찾아 패킷을 전달해주는 것

전달 과정에서 패킷은 항상 특성이 똑같은 네트워크를 지나지는 않음 . 프레임 릴레이ATM, 토큰 링 , 이더넷 등 다양한 네트워크를 지나 목적지에 도달

네트워크마다 최대 전송 가능 패킷 길이가 달라 최대 전송 가능 패킷 길이가 더 작은 네트워크를 지날 때 데이터는 작게 분할됨

한 번 분할된 패킷은 더 긴 패킷 길이를 허용하는 네트워크를 지나도 다시 커지지 않음

DoS 공격

Page 6: DoS 와  DDoS  공격

6/58

Ping of Death 보안 대책 현재 대부분의 시스템은 Ping of Death 공격을 받을 때 반복적으로 들어오는 일정 수

이상의 ICMP 패킷을 무시하게 설정되어 있음

관리하는 시스템이 Ping of Death 공격에 취약하다면 가장 일반적으로 할 수 있는 방법은 패치• 운영체제별 패치는 각 벤더의 홈페이지에서 구할 수 있음

DoS 공격

Page 7: DoS 와  DDoS  공격

7/58

hping3 설치 1-1 hping3 설치 ➊ yum list hping ➋ yum install hping3.i686

1-2 man hping3 실행 man hping3

실습 13-1 Ping of Death 공격하기

• 공격자 시스템 : 리눅스 페도라 12

• 공격 대상 시스템 : 리눅스 페도라 12

• 필요 프로그램 : hping3

실습환경실습환경

1

Page 8: DoS 와  DDoS  공격

8/58

Ping of Death 공격 수행 hping3 --icmp --rand-source 192.168.0.100 -d 65000 –flood

ⓐ --icmp : 패킷 종류를 ICMP 로 선택한다 .

ⓑ --rand-source : 공격자의 IP 주소를 랜덤하게 생성한다 .

ⓒ 192.168.0.100 : 공격 대상 시스템의 IP 주소다 .

ⓓ -d 65000 : 전송하는 패킷의 길이는 65,000 바이트로 한다 . 참고로 최대 전송 가능 길이는 65,535 바이트다 .

ⓔ --flood : 시스템이 생성 가능한 만큼 빠른 속도로 패킷을 보낸다 .

실습 13-1 Ping of Death 공격하기

2

Page 9: DoS 와  DDoS  공격

9/58

Ping of Death 공격의 패킷 분석 3-1 Ping of Death 공격 시 공격자 시스템에서의 TCP Dump

3-2 Ping of Death 공격 시 공격 대상 시스템에서의 TCP Dump

ⓐ 16:11:27.484297 : 패킷을 읽어 들인 시각이다 .

ⓑ 24.100.77.232 > 192.168.0.100 : 패킷의 송신 /수신 시스템의 IP 주소다 .

ⓒ ICMP echo request : 프로토콜의 종류다 .

ⓓ id 11533 : 패킷의 IP 헤더의 Identification 값이다 . 이 값이 같으면 한 패킷이 단편화된 것이다 .

ⓔ length 1480 : IP 헤더 길이를 포함한 패킷의 전체 길이다 .

실습 13-1 Ping of Death 공격하기

3

Page 10: DoS 와  DDoS  공격

10/58

SYN Flooding 네트워크에서 서비스를 제공하는 시스템은 동시 사용자 수가 제한되어 있음

SYN Flooding( 플러딩 ) 은 존재하지 않는 클라이언트가 서버별로 한정되어 있는 접속 가능 공간에 접속한 것처럼 속여 다른 사용자가 서비스를 제공받지 못하게 하는 것

DoS 공격

Page 11: DoS 와  DDoS  공격

11/58

공격자는 쓰리웨이 핸드셰이킹 과정에서 서버를 다운시키기 위해 짧은 시간 안에 많은 양의 SYN 만 보냄

• 시스템은 보통 SYN 에 대한 연결을 무한정 기다리지 않고 일정 시간 동안만 연결을 시도하고 기다리도록 설정되어 있음

• SYN Flooding 공격을 성공하려면 서버에 설정된 대기 시간 안에 서버가 수용할 수 있는 동시 사용자 수의 한계를 넘는 연결을 시도해야 함

• 서버가‘ SYN Received’ 상태로 ACK 패킷을 기다리는 상태를‘백로그 (backlog) 에 빠졌

• 다’고 표현하며 ,‘ SYN Received’ 상태로 ACK 패킷을 기다리는 시간은 설정 사항으로 변경할 수 있음

DoS 공격

Page 12: DoS 와  DDoS  공격

12/58

SYN Flooding 보안 대책 보안 패치로 대기 시간을 줄이는 것이 효과적이지만 시스템의 특성상 무조건 대기

시간을 줄일 수 없는 경우가 있음 . 방화벽에서도 정상적인 접속 시도와 비정상적인 SYN Flooding 공격 시도를 구분할 수 있는 방법이 없기 때문에 직접적인 차단은 불가능

일차 예방법은 시스템에 패치를 하는 것이며 , 다음으로는 침입 탐지 시스템 (IDS) 또는 침입 차단 시스템 (IPS) 을 설치하는 것• SYN Flooding 공격은 일정 시간 안에 동시 접속자 수를 점유해야 하므로 아주 짧은 시간 안에

똑같은 형태의 패킷을 보내게 됨 . 이는 매우 정형화된 형태로 , 네트워크에서 쉽게 인지가 가능

• 해당 ISP 업체에 연락하여 그에 해당하는 IP 주소 대역을 접속 금지시키거나 확인한 후 방화벽 또는 라우터에서 해당 접속을 금지시킴으로써 시스템 서비스 중지를 막을 수 있음

또 다른 대응 방법은 Syn_Cookie

• Syn_Cookie 는 서버에서 클라이언트로 보내는 SYN+ACK 패킷에 임의로 생성되는 시퀀스넘버 대신 서버에서 암호화 기술을 이용해서 인증 정보가 담긴 시퀀스 넘버를 생성하여 클라이언트에 보내는 것

DoS 공격

Page 13: DoS 와  DDoS  공격

13/58

TCP 쓰리웨이 핸드셰이킹 시 SYN Flooding 공격에 대한 Syn_Cookie 대응 방법① 클라이언트로부터 SYN 패킷을 받으면 , 간단한 인증 정보가 담긴 Syn_Cookie 를 시퀀스 넘버

값에 넣는다 . SYN 으로 인해 원래는 TCP SYN Received 상태가 되어야 하지만 세션을 닫는다 .

② 클라이언트가 Syn_Cookie 가 포함된 값으로 ACK 를 보내면 , 서버는 그제서야 세션을 다시 열고 통신을 시작한다 .

DoS 공격

Page 14: DoS 와  DDoS  공격

14/58

웹 서비스 시작 service httpd start

SYN Flooding 공격 수행 hping3 --rand-source 192.168.0.100 -p 80 -S –flood

-p 80 : 80 번 포트에 대해 패킷을 전송한다 .

-S : TCP 패킷 중 SYN 만 전송한다 .

실습 13-2 SYN Flooding 공격하기

• 공격자 시스템 : 리눅스 페도라 12

• 공격 대상 시스템 : 리눅스 페도라 12

• 필요 프로그램 : hping3

실습환경실습환경

1

2

Page 15: DoS 와  DDoS  공격

15/58

SYN Flooding 공격의 패킷 분석

ⓐ id 28001 : Ping of Death 와는 달리 id 가 모두 다른데 , 이는 패킷이 모두 단편화된 것이 아니기 때문이다 .

ⓑ offset 0 : 단편화될 만한 패킷이 없기 때문에 모두 0이다 .

ⓒ proto TCP (6) : IP 헤더를 통해 전송되는 패킷이 TCP(6) 임을 나타낸다 .

ⓓ length 40 : IP 헤더와 TCP 헤더가 각각 20 바이트씩 , 총 40 바이트가 패킷 길이가 된다 . 따라서 데이터 부분은 0바이트가 된다 .

ⓔ 95.166.9.130.21526 > 192.168.0.100.http : 패킷 송신 /수신 시스템의 IP 와 포트 번호다 .

ⓕ S : SYN 패킷임을 나타낸다 .

실습 13-2 SYN Flooding 공격하기

3

Page 16: DoS 와  DDoS  공격

16/58

공격의 확인 netstat -an

실습 13-2 SYN Flooding 공격하기

4

Page 17: DoS 와  DDoS  공격

17/58

Boink, Bonk, Teardrop 프로토콜은 목적에 따라 정도의 차이는 있지만 신뢰성 있는 연결을 제공하려 함

신뢰성 있는 연결은 패킷의 순서가 올바른가 , 중간에 손실된 패킷은 없는가를 확인하는 기능을 기본으로 제공

프로토콜은 신뢰도를 확보하고자 반복적으로 재요구하고 수정을 하게 됨

Boink, Bonk, Teardrop 은 이런 반복적인 재요구와 수정을 계속하게 함으로써 시스템 자원을 고갈시키는 공격

DoS 공격

Page 18: DoS 와  DDoS  공격

18/58

TCP 를 통해 데이터를 전송할 경우 각 데이터 패킷은 순번 , 즉 시퀀스 넘버를 가짐

Bonk 는 처음 패킷을 1번으로 보낸 후 두 번째 , 세 번째 패킷 모두 시퀀스 넘버를 1번으로 조작해서 보냄

Boink 는 처음 패킷을 1번으로 보낸 후 두 번째 패킷은 101 번 , 세 번째 패킷은 201번으로 정상적으로 보내다가 중간에서 일정한 시퀀스 넘버로 보냄

Teardrop 은 UDP 를 이용 . 단순히 시퀀스 넘버를 일정하게 바꾸는 것을 넘어 중첩과 빈 공간을 만들며 , 시퀀스 넘버를 좀 더 복잡하게 섞음

DoS 공격

Page 19: DoS 와  DDoS  공격

19/58

• Teardrop 공격 시 패킷의 시퀀스 넘버와 패킷의 배치

DoS 공격

Page 20: DoS 와  DDoS  공격

20/58

Boink, Bonk, Teardrop 보안 대책 최근에 나온 시스템을 파괴할 수 있는 경우는 거의 없지만 일부 응용 프로그램에서는

이러한 공격이 동작하는 경우를 가끔 발견할 수 있음

SYN Flooding 이나 Ping of Death 공격에 대한 대응책과 같음

DoS 공격

Page 21: DoS 와  DDoS  공격

21/58

Bonk, Boink 공격 수행 1-1 Bonk, Boink 공격 실행 1/2hping3 -a 200.200.200.200 192.168.0.10 --id 3200 -O 12345 -M 34343 -p 21 –d 320

--flood

1-2 Bonk, Boink 공격 실행 2/2hping3 -a 200.200.200.200 192.168.0.10 --id 3200 -O 12343 -M 34343 -p 21 –d 320

--flood

실습 13-3 Bonk, Boink 공격하기

• 공격자 시스템 : 리눅스 페도라 12

• 공격 대상 시스템 : 리눅스 페도라 12

• 필요 프로그램 : hping3

실습환경실습환경

1

Page 22: DoS 와  DDoS  공격

22/58

Bonk, Boink 공격의 패킷 분석

ⓐ id 3200 : id 는 필자가 정하여 보낸 값으로 3200 이다 . 이 값이 같으면 패킷을 수신하는 시스템은 모두 한 패킷이라고 생각하게 된다 . 필자는 3200 과 3201 로 패킷을 순차적인 패킷이라고 생각하게끔 전송했다 .

ⓑ length 360 : 패킷 길이다 . 두 종류의 패킷은 각각 IP 헤더와 TCP 헤더를 포함하여 360바이트와 512 바이트로 전송되었다 .

ⓒ 34343:34647 : 시퀀스 넘버다 . 다음 패킷의 번호와 중첩되는 구간이 있게 보냈다 .

실습 13-3 Bonk, Boink 공격하기

2

Page 23: DoS 와  DDoS  공격

23/58

Land Land 를 사전에서 찾아보면‘땅’또는‘착륙하다’외에‘ ( 나쁜 상태에 ) 빠지게 하다’라는

의미

Land( 랜드 ) 공격은 의미 그대로 시스템을 나쁜 상태에 빠지게 하는 것이며 , 방법도 아주 간단

패킷을 전송할 때 출발지 IP 주소와 목적지 IP 주소 값을 똑같이 만들어서 공격 대상에 보내는 것 . 이때 조작된 IP 주소 값은 당연히 공격 대상의 IP 주소여야 함

SYN Flooding 처럼 동시 사용자 수를 점유해버리며 , CPU 부하까지 올림

DoS 공격

Page 24: DoS 와  DDoS  공격

24/58

Land 보안 대책 Land 공격도 현재의 시스템에서는 대부분 효과가 없음

현재의 시스템은 출발지 주소와 목적지 주소를 확인하여 동일한 패킷은 인식하고 버림

라우터나 방화벽에서 출발지 IP 주소가 내부 IP 주소와 동일한 패킷은 처음부터 차단하는 것이 좋음

DoS 공격

Page 25: DoS 와  DDoS  공격

25/58

Land 공격 수행 hping3 192.168.0.10 -a 192.168.0.10 --icmp –flood

실습 13-4 Land 공격하기

• 공격자 시스템 : 리눅스 페도라 12

• 공격 대상 시스템 : 리눅스 페도라 12

• 필요 프로그램 : hping3

실습환경실습환경

1

Page 26: DoS 와  DDoS  공격

26/58

Land 공격의 패킷 분석

실습 13-4 Land 공격하기

2

Page 27: DoS 와  DDoS  공격

27/58

Smurf, Fraggle 웜이 네트워크를 공격하는 데 아직도 많이 쓰는데 , Ping of Death 처럼 ICMP 패킷을

이용

출발지 주소가 공격 대상으로 바뀐 ICMP Request 패킷을 시스템이 매우 많은 네트워크로 브로드캐스트함• 브드캐스트란 확성기를 들고 청중 모두에게 얘기하는 것

• 기본적인 브로드캐스트는 목적지 IP 주소 255.255.255.255 를 가지고 네트워크의 임의의 시스템에 패킷을 보내는 것

DoS 공격

Page 28: DoS 와  DDoS  공격

28/58

다이렉트 브로드캐스트 (Direct Broadcast)• 172.16.0.0 네트워크에 IP 주소가 10.10.10.24 인 공격자가 브로드캐스트하려면 목적지 IP

주소를 172.16.0.255 와 같이 설정하여 패킷을 보내야 함

• 공격자가 172.16.0.255 로 다이렉트 브로드캐스트하면 [ 그림 13-27] 과 같이 패킷이 전달됨

• ICMP Request 를 받게 된 172.16.0.0 네트워크는 ICMP Request 패킷의 위조된 시작 IP 주소로 ICMP Reply 를 [ 그림 13-28] 과 같이 다시 보냄

DoS 공격

Page 29: DoS 와  DDoS  공격

29/58

Smurf, Fraggle 보안 대책 Smurf 는 DDoS 공격의 한 방편으로 이용되기도 함

이 공격을 막는 방법은 다이렉트 브로드캐스트를 막는 것

DoS 공격

Page 30: DoS 와  DDoS  공격

30/58

Smurf 공격 수행 hping 192.168.0.255 -a 10.10.10.5 --icmp --flood

실습 13-5 Smurf, Fraggle 공격하기

• 공격자 시스템 : 리눅스 페도라 12

• 공격 대상 시스템 : 리눅스 페도라 12

• 필요 프로그램 : hping3

실습환경실습환경

1

Page 31: DoS 와  DDoS  공격

31/58

Smurf 공격의 패킷 분석

실습 13-5 Smurf, Fraggle 공격하기

2

Page 32: DoS 와  DDoS  공격

32/58

Mail Bomb 흔히 폭탄 메일이라 하고 스팸 메일도 같은 종류

메일 서버는 각 사용자에게 일정한 디스크 공간을 할당하는데 , 메일이 폭주하여 디스크 공간을 가득 채우면 정작 받아야 하는 메일을 받을 수 없음

Mail Bomb 보안 대책 /etc/mail/access 파일을 이용해 IP 주소 , 이메일 주소 , 도메인별로 제한하거나

Relay 를 허용

DoS 공격

Page 33: DoS 와  DDoS  공격

33/58

설정된 /etc/mail/access 파일 Sendmail 에 적용• makemap hash /etc/mail/access < /etc/mail/access 를 실행하면 같은 폴더의 access.db 에

vi 에디터로 입력한 값이 적용되었는지 strings 명령으로 확인 가능

➊ makemap hash /etc/mail/access < /etc/mail/access

➋ strings /etc/mail/access.db

DoS 공격

➊➋

Page 34: DoS 와  DDoS  공격

34/58

Sendmail 을 통한 메일 전송 telnet 127.0.0.1 25

ⓐ Sendmail 은 텔넷을 이용한다 . 텔넷으로 로컬 IP 주소 (127.0.0.1) 를 쓰고 있으며 , SMTP 포트 번호인 25 번을 뒤에 써주면 Sendmail 에 접속할 수 있다 .

ⓑ Sendmail 에 접속한 후‘ mail from :’뒤에 보내는 사람의 주소를 쓴다 . 이메일은 어떤 주소를 써도 무방하다 . ⓒ‘rcpt to’: 다음에 받는 사람의 주소를 쓴다 . ⓓ‘DATA’ 라고 입력하면 메일의 본문을 입력할 수 있다 . ⓔ 보내는 내용을 적은 다음‘ .’ 을 누르고 키를 입력하면 메일이 보내진다 . 필자는 ‘ Hello. I’m wishfree’ 라고 간단하게

보냈다 .

실습 13-6 Mail Bomb 공격하기

• 공격자 시스템 : 리눅스 페도라 12

• 필요 프로그램 : Sendmail

실습환경실습환경

1

Page 35: DoS 와  DDoS  공격

35/58

Sendmail 에서 전송한 메일 확인

실습 13-6 Mail Bomb 공격하기

2

Page 36: DoS 와  DDoS  공격

36/58

시스템 자원 고갈 공격 가용 디스크 자원 고갈

가용 메모리 자원 고갈

가용 프로세스 자원 고갈

시스템 자원 고갈 공격 보안 대책 Tripwire

• 무결성 체크

쿼타 (quota) 설정• 디스크 자원 고갈과 앞 절에서 다룬 스팸 메일 공격으로부터 시스템의 파괴를 막을 수 있는 방법은 쿼타 (quota) 를 설정

DoS 공격

Page 37: DoS 와  DDoS  공격

37/58

가용 디스크 자원 고갈 공격 1-1 디스크 자원 고갈을 위한 소스 vi disk.c

1-2 디스크 자원 공격 전 상태 확인 df

실습 13-7 자원 고갈 공격하기

• 공격자 시스템 : 리눅스 페도라 12

• 필요 프로그램 : disk.c, memory.c, process.c

실습환경실습환경

1

Page 38: DoS 와  DDoS  공격

38/58

1-3 disk.c 파일 컴파일 ➊ gcc -o disk disk.c ➋ ./disk

1-4 디스크 자원 공격 전 , 실시 , 공격 후 상태 확인 df

실습 13-7 자원 고갈 공격하기

Page 39: DoS 와  DDoS  공격

39/58

1-5 디스크 자원 고갈 공격의 프로세스 확인 및 제거 ➊ ps –ef ➋ kill -9 2628

가용 디스크 자원 고갈 공격 소스

실습 13-7 자원 고갈 공격하기

2

Page 40: DoS 와  DDoS  공격

40/58

DDoS 공격에 대한 이해

공격자 (Attacker) : 공격을 주도하는 해커의 컴퓨터다 . 마스터 (Master) : 공격자에게서 직접 명령을 받는 시스템으로 , 여러 대의 에이전트 (Agent) 를

관리한다 . 핸들러 (Handler) 프로그램 : 마스터 시스템의 역할을 수행하는 프로그램이다 . 에이전트 (Agent) : 공격 대상에 직접 공격을 가하는 시스템이다 .

데몬 (Daemon) 프로그램 : 에이전트 시스템 역할을 수행하는 프로그램이다 .

DDoS 공격

Page 41: DoS 와  DDoS  공격

41/58

DDoS 공격

Page 42: DoS 와  DDoS  공격

42/58

공격자가 마스터와 에이전트를 획득하여 실제적으로 DDoS 공격을 하는 순서① 많은 사용자가 사용하며 , 대역폭이 넓다 . 관리자가 모든 시스템을 세세하게 관리할 수 없는 곳의 계정을 획득하여 스니핑이나 버퍼 오버플로우 등의 공격으로 설치 권한이나 루트 권한을 획득한다 .

② 잠재적인 공격 대상을 파악하기 위해 네트워크 블록별로 스캐닝을 실시한다 . 그리고 원격지에서 버퍼 오버플로우를 일으킬 수 있는 취약한 서비스를 제공하는 서버를 파악한다 .

③ 취약한 시스템 목록을 확인한 후 실제 공격을 위한 Exploit 을 작성한다 .

④ 권한을 획득한 시스템에 침투하여 Exploit 을 컴파일하여 설치한다 .

⑤ 설치한 Exploit 으로 공격을 시작한다

DDoS 공격

Page 43: DoS 와  DDoS  공격

43/58

Trinoo 1999 년 6월 말부터 7월 사이에 퍼지기 시작했으며 , 미네소타 대학 사고의 주범 .

원래 이름은 Trin00

처음 솔라리스 2.x 시스템에서 발견되었으며 , 최소 227 개 시스템이 공격에 쓰인 것으로 알려져 있음

UDP 를 기본으로 하는 공격을 시행하며‘ statd, cmsd, ttdbserverd’ 데몬이 주 공격 대상

Trinoo 는 기본적으로 [ 표 13-3] 과 같은 포트 번호를 사용하지만 소스 코드에서 임의로 변경 가능

DDoS 공격

Page 44: DoS 와  DDoS  공격

44/58

Trinoo

DDoS 공격

Page 45: DoS 와  DDoS  공격

45/58

TFN(TribedFlood Network) 1999 년 8 월 사고를 일으켰던 Trinoo 의 약간 발전된 형태로 믹스터 (Mixter) 라는

사람이 개발

Teletubby Flood Network 라고 부르기도 함

TFN 도 Trinoo 처럼 statd, cmsd, ttdb 데몬의 취약점을 공격

클라이언트를 구동하면 패스워드를 사용하지 않고 , 클라이언트와 데몬 간에는 ICMP Echo Request 패킷을 사용

클라이언트의 각 명령은 ICMP Echo Request 패킷에 16 비트 이진수로 데몬에 전송

TFN 은 공격자 시스템과 마스터 시스템 간 연결이 암호문이 아닌 평문으로 전달되는 약점이 있음 . 이는 데이터가 다른 해커나 관리자에게 스니핑되거나 세션 하이재킹될 수 있으며 , 공격자를 노출시키는 등 치명적일 수 있음

DDoS 공격

Page 46: DoS 와  DDoS  공격

46/58

TFN 2K TFN 의 발전된 형태로 , 역시 믹스터가 개발

특징• 통신에 특정 포트를 사용하지 않고 암호화되어 있으며 , 프로그램을 통해 UDP, TCP, ICMP 를

복합적으로 사용하며 포트도 임의로 결정한다 .

• TCP SYN Flooding, UDP Flooding, ICMP Flooding, Smurf 공격을 쓰고 있다 .

• 모든 명령은 CAST-256 알고리즘으로 암호화된다 .

• 지정된 TCP 포트에 백도어를 실행할 수 있다 .

• 데몬은 설치 시 자신의 프로세스 이름을 변경함으로써 프로세스 모니터링을 회피한다 .

• UDP 패킷의 헤더가 실제 UDP 패킷보다 3바이트만큼 더 크다 .

• TCP 패킷의 헤더의 길이는 항상 0이다 . 정상 패킷이라면 절대로 0일 수 없다 .

DDoS 공격

Page 47: DoS 와  DDoS  공격

47/58

DDoS 공격

Page 48: DoS 와  DDoS  공격

48/58

Stacheldraht 독일어로‘철조망’이라는 뜻

1999 년 10 월에 처음 출현한 것으로 알려져 있으며 , TFN 을 발전시킨 형태

Stacheldraht(슈타첼드라트 ) 역시 TFN 2K 처럼 공격자와 마스터 , 에이전트 , 데몬과의 통신에 암호화 기능이 추가됨

공격자가 마스터에 접속하면 마스터는 현재 접속을 시도한 이가 올바른 공격자인지 확인하기 위해 패스워드 입력을 요구

입력된 패스워드는 최초 설치되기 전에‘ Authentication’ 의‘ Passphrase’ 를 사용하여 암호화된 상태로 공격자에게서 핸들러로 보내짐

DDoS 공격

Page 49: DoS 와  DDoS  공격

49/58

Stacheldraht

DDoS 공격

Page 50: DoS 와  DDoS  공격

50/58

Trinoo 컴파일 1-1 Trinoo 소스 압축 풀기 tar -xvf trinoo.tar

실습 13-8 Trinoo 를 이용해 DDoS 공격하기

• 공격자 시스템과 마스터 시스템 : 리눅스 페도라 12

• 에이전트 시스템 : 리눅스 페도라 12

• 공격 대상 시스템 : 윈도우 XP

• 필요 프로그램 : Trinoo 소스 , gcc 컴파일러

실습환경실습환경

1

Page 51: DoS 와  DDoS  공격

51/58

1-2 Trinoo 에이전트 소스 수정 vi ns.c

1-3 Trinoo 에이전트 컴파일을 위한 Makefile 수정

실습 13-8 Trinoo 를 이용해 DDoS 공격하기

Page 52: DoS 와  DDoS  공격

52/58

에이전트 프로그램 실행 vi ns.c

마스터 프로그램 실행 3-1 Trinoo 마스터 실행 ➊ ./master ➋ g0rave

실습 13-8 Trinoo 를 이용해 DDoS 공격하기

2

Page 53: DoS 와  DDoS  공격

53/58

3-2 Trinoo 마스터로 접속 ➊ telnet 192.168.0.100 27665 ➋ betaalmostdone ➌ bcast

3-3 help 로 명령 사용법 확인 ➊ help ➋ help mdos

실습 13-8 Trinoo 를 이용해 DDoS 공격하기

Page 54: DoS 와  DDoS  공격

54/58

3-4 mdos 명령의 실행 mdos 192.168.0.101

3-5 Trinoo Dos 공격 TCP Dump

실습 13-8 Trinoo 를 이용해 DDoS 공격하기

Page 55: DoS 와  DDoS  공격

55/58

방화벽 설치와 운영 방화벽을 설치하여 내부 네트워크의 진입 차단

다음과 같은 사항 차단• 출발지 주소

• 목적지 주소

• 시도하고자 하는 서비스 ( 포트 번호 )

• 프로토콜

방화벽 룰셋 원칙• 최소한의 서비스만 제공하고 사용하지 않는 서비스의 포트는 닫는다 . 이는 DoS 공격뿐만 아니라

모든 해킹에 대한 기본 대응책이다 . 서비스에 필요하지 않은데 열어놓은 포트는 해커에게 많은 공격 가능성을 제공하는 것과 같다 .

• 외부 네트워크에서 들어오는 패킷의 출발지 주소가 내부 네트워크에 존재하는 주소지와 일치할 경우 차단한다 .

• 침입 차단 시스템 내부 구성 요소 간 트러스트 (Trust, 신뢰 ) 를 금지한다 .

• 내부 /외부에 인증 없이 시스템에 접속할 수 있는 사용자를 허용하지 않는다 .

• 명시적인 서비스 외의 모든 서비스를 금지한다 .

DoS, DDoS 공격에 대한 대응책

Page 56: DoS 와  DDoS  공격

56/58

침입 탐지 시스템 설치와 운영 IDS 를 통해 공격의 탐지와 대응

안정적인 네트워크 설계 시스템 패치

시스템 패치 등을 통한 지속적인 관리

스캐닝 Zombie 툴을 사용한 내부 DDoS 툴의 탐색과 제거

서비스별 대역폭 제한 불필요한 서비스를 제거함으로써 공격 위험의 감소

서비스별 대역폭을 제한함으로써 공격에 따른 피해 최소

DoS, DDoS 공격에 대한 대응책

Page 57: DoS 와  DDoS  공격

57/58

방화벽 설치와 운영 방화벽을 설치하여 내부 네트워크의 진입 차단

침입 탐지 시스템 설치와 운영 IDS 를 통해 공격의 탐지와 대응

안정적인 네트워크 설계 시스템 패치

시스템 패치 등을 통한 지속적인 관리

스캐닝 Zombie 툴을 사용한 내부 DDoS 툴의 탐색과 제거

서비스별 대역폭 제한 불필요한 서비스를 제거함으로써 공격 위험의 감소

서비스별 대역폭을 제한함으로써 공격에 따른 피해 최소

DoS, DDoS 공격에 대한 대응책

Page 58: DoS 와  DDoS  공격

IT CookBook, 정보 보안 개론과 실습 : 네트워크 해킹과 보안 (개정판 )