14
DoS, DDoS 1012 1705 사이버 경찰학과 홍 윤 기

DoS, DDoS - Y'sUprof.ysu.ac.kr/pds_update/dos, ddos.pdf · 실제 DoS, DDoS 공격이 단 한 줄의 명령어로 실행 될 줄은 몰랐다. 또한 DoS, DDoS 의 실 제 원리를

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DoS, DDoS - Y'sUprof.ysu.ac.kr/pds_update/dos, ddos.pdf · 실제 DoS, DDoS 공격이 단 한 줄의 명령어로 실행 될 줄은 몰랐다. 또한 DoS, DDoS 의 실 제 원리를

DoS, DDoS

1012 1705

사이버 경찰학과

홍 윤 기

Page 2: DoS, DDoS - Y'sUprof.ysu.ac.kr/pds_update/dos, ddos.pdf · 실제 DoS, DDoS 공격이 단 한 줄의 명령어로 실행 될 줄은 몰랐다. 또한 DoS, DDoS 의 실 제 원리를

index

1. DOS

1.1 Definition of DoS (Denial Of Services)

1.2 DoS attack in Network

1) ICMP Flooding

2) SYN Flooding (SYNF)

3) Land Attack

2. DDOS

2.1 Definition of DDOS (Distribute Denial Of Services)

2.2 3.4 DDOS

1) 순서 흐름

2) GET FLOODING, UDP FLOODING

3) 대응 방안

Page 3: DoS, DDoS - Y'sUprof.ysu.ac.kr/pds_update/dos, ddos.pdf · 실제 DoS, DDoS 공격이 단 한 줄의 명령어로 실행 될 줄은 몰랐다. 또한 DoS, DDoS 의 실 제 원리를

종 류 증 상

파괴 공격 디스크나 데이터, 시스템의 파괴

시스템 자원 고갈 CPU, Memory, Disk 사용에 과다한 부하 가중

네트워크 자원 고갈 쓰레기 데이터로 네트워크 대역폭을 고갈

플랫폼 사양

Client (Attacker) Server (Victim)

OS : Linux - Platform 3.8.0-26-generic /GNU

IPv4 : 192.168.1.7

Aim port : 139

OS : Windows Server 2008 R2

IPv4 : 192.168.1.4

Open port : 139

순 서

1 Attacker : ping [target_ip_address] -s [packet size] - i [interval] 작성

1. DoS

1.1 Definition of DoS (Denial of Services)

서비스 거부 공격(DoS) 이란 시스템이나 네트워크의 구조적 취약점을 공격하여 정상적인 서비스를 지연

시키거나 마비시키는 해킹 공격을 말한다. DoS 공격의 유형은 공격자의 위치에 따라 내부에서 의 공격과

외부에서 의 공격으로 나눌 수 있고, 공격 대상의 형태에 따라 특정 네트워크에서 허용하는 대역폭을 모두

소모 시` 키는 방법, 공격 대상 시스템의 자 원을 고갈 시키는 방법, 공격 대상의 시스템 상에서 동작하는 응

용 프로그램의 프로그램 상 오류에 대한 공격으로 서비스를 거부하게 만드는 방법으로 나뉜다.

내부에서 공격하는 방법으로는 CPU, Memory, Disk 등의 시스템 자원에 대한 공격으로 시스템을 독점

하여 앞서 언급한 자원을 과소비 시켜 서비스를 거부하도록 하는 방법이 대부분을 차지하고 있다. 외부에서

의 공격은 네트워크와 시스템에 대한 공격이 주를 이룬다. 네트워크 트래픽을 증가 시키면 실제로 시스템의

사용에는 문제가 없지만 시스템이 사용자에게 제공하는 ‘네트워크 서비스’ 를 의도대로 수행할 수 없다[1].

[표 1] DoS공격과 DdoS 공격의 유형과 대응

1.2 DoS attack on Network

1) Ping flooding (ICMP Flooding)

과부하를 주는 DoS 공격은 서비스나 자원을 반드시 죽이려고 하는 대신 과부하를 줘서 제대로 응답하지

못하게 하는 데 목적이 있다. 과부하를 주는 대상은 CPU 사이클과 시스템 프로세스 같은 자원이 될 수 있

지만 PF 공격은 네트워크 자원을 공격 대상으로 한다. 이 공격의 목적은 공격 대상의 네트워크 대역폭을

잠식해 정상적인 트래픽이 제대로 오고가지 못하게 하는 것이다. 공격자는 크기가 큰 패킷을 대량으로 공격

대상에게 보내 공격 대상 호스트의 네트워크 대역폭을 소모시킨다. (따라서 공격 대상보다 큰 대역폭을 가

지고 있는 공격자가 대량의 데이터를 보내면 공격 대상은 다른 정상적인 트래픽을 제대로 주고받지 못한

다, ICMP = 라우터간의 에러 상태 혹은 상태 변화를 알려주고 요청에 응답을 하는 기능을 담당하는 네트

워크 제어프로토콜)

Page 4: DoS, DDoS - Y'sUprof.ysu.ac.kr/pds_update/dos, ddos.pdf · 실제 DoS, DDoS 공격이 단 한 줄의 명령어로 실행 될 줄은 몰랐다. 또한 DoS, DDoS 의 실 제 원리를

(실제 : ping 192.168.1.4 -s 65500 -i 0.000001)

3

Server (Victim) 측 네트워크

자원 활용 증가 확인

최대 (78 ~ 79%)

① 보안 강화 방법

-> Windows OS 기반 : ICMP Echo 요청 거부

외부 영역 내부 구간 (보호 영역)

공격자 PC 백본 스위치 정보 보호 시스템 스위치

서버 영역

Web

Sevr

Web

Sevr

Web

Sevr

Page 5: DoS, DDoS - Y'sUprof.ysu.ac.kr/pds_update/dos, ddos.pdf · 실제 DoS, DDoS 공격이 단 한 줄의 명령어로 실행 될 줄은 몰랐다. 또한 DoS, DDoS 의 실 제 원리를

2

Server (Victim) 측 네트워크

자원 활용 증가 확인

최대 (100%)

2) TCP SYN Flooding

TCP의 취약점을 이용한 공격, 정확히는 TCP의 통신 동작인 Three hand shaking 규칙을 이용한 공격

이다. Client 가 Server 에 TCP 연결을 시작한다고 가정 할 때, Client 와 Server 가 일련의 메시지를 교환

한다.

① Client 는 Server 에 SYN(Synchronize, 동기화) 메시지를 보냄으로써 연결을 요청한다.

② Server 는 SYN+ACK(Acknowledgment)를 Client 에게 반송함으로써 이 요청을 인정한다.

(backlog queue 에 해당 과정을 저장한다 - backlog queue = 연결 관리 테이블)

③ Client 는 ACK 로 다시 응답하고, TCP 세션이 구축되면 Server는 backlog queue를 삭제

한다.

악의적인 사용자는 최초 1번 과정에서 출발지 IP (Source IP)를 변조하여 (Spoof) SYN 패킷을 서버에게 전송한다.

Server는 해당 IP가 변조된 것인지를 판단할 수 없기 때문에 이에 대한 SYN + ACK 신호를 보내고, backlog queue

에 저장한다. 하지만 서버가 보낸 SYN + ACK 패킷은 변조된 IP로 전송되기 때문에 정상적으로 도달할 수 없고, 따

라서 클라이언트에서 ACK 신호를 받지 못한다. 이러한 과정이 순간적으로 반복되면 server backlog queue는 가득

차게 되고 더 이상의 접속을 유지할 수 없어 서비스를 제공하지 못한다.

[그림 1] TCP Header

순 서

1 Attacker : hping3 [target_ip_address] -i [10 packets for secend] -p [victim_port] -S [SYN flag] -a [spoof IP]

(실제 : hping3 192.168.1.4 -i u1000 -p 139 -S -a 1.2.3.4)

CL SV

Page 6: DoS, DDoS - Y'sUprof.ysu.ac.kr/pds_update/dos, ddos.pdf · 실제 DoS, DDoS 공격이 단 한 줄의 명령어로 실행 될 줄은 몰랐다. 또한 DoS, DDoS 의 실 제 원리를

3Victim Server port 139번으로 spoof IP

1.2.3.4 의 SYN 신호 확인

"EnableDynamicBacklog"=dword:00000001

"MinimumDynamicBacklog"=dword:00000020

"MaximumDynamicBacklog"=dword:00001000

"DynamicBacklogGrowthDelta"=dword:00000010

① 보안 강화 방법

-> Back logqueue의 확장 (실질적인 해결책 X)

-> Windows OS 기반 : 레지스트리 lMaxConnect Backlog 작성, 또는 수정

(위치 :HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters)

-> Backlog 의 크기는 최소 10에서 최대 1000 까지 (용량이 부족할 때 마다 10씩 증가)

-> Windows OS 기반 : 레지스트리 TcpTimedWaitDelay 작성, 또는 수정

(위치 :HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters)

-> TcpTimeWaitDelay 기본값 0xF0(240초)를 0x1E(30초) 또는 그 이하로 조정

Page 7: DoS, DDoS - Y'sUprof.ysu.ac.kr/pds_update/dos, ddos.pdf · 실제 DoS, DDoS 공격이 단 한 줄의 명령어로 실행 될 줄은 몰랐다. 또한 DoS, DDoS 의 실 제 원리를

순 서

1 Attacker : hping3 [target_IP_address] -a [spoof_IP_address] -- icmp --flood

(실제 : hping3 192.168.1.4 -a 1.2.3.4 --icmp --flood)

결과

2 실제 Linux Mint OS에서는 실행했을 때에는 불가, Backtrack5 에서만 가능.

추측하기로 Server 의 OS 가 Windows 95를 초과하는 OS라 불가하다 판단.

-> Linux OS 기반 : Backlog 수정 (linux mint 기본 256, 확장 51

3) Land Attack

2. DDoS

2.1 Definition of DDoS (Distribute Denial of Services)

DDoS 공격은 ‘분산서비스거부(Distributed Denial Of Service)’ 공격의 약자로, 특정 서버에 다량의 트래

픽을 보내어 서버를 다운시키거나 네트워크를 지연시켜 서비스를 불가능하게 만드는 것이다. 공격자는 이른

바 좀비 PC라고 불리는 감염 PC를 조정하여 특정 시간에 특정 사이트를 공격한다. 즉, 수만에 달하는 여러

대의 컴퓨터를 동작하게 하여 특정 웹사이트에 동시에 접속함으로써 해당 사이트의 시스템 과부화를 유발

해 정상적인 서비스를 할 수 없는 상태가 되도록 만드는 것이다.

좀비 PC란 악성코드에 감염되어 악성코드 제작자의 의도에 따라 명령을 수행하는 PC를 뜻한다. 즉, 사

용자가 모르는 사이에 해커의 원격 조정을 받는 PC’로, 원격지에 있는 악성코드 제작자의 명령에 의해

조정된다는 의미에서 좀비라는 용어로 불리게 되었다. 악성코드에 감염된 좀비 PC는 사용자도 모르게

DDoS 공격에 이용돼 특정 사이트로 대량의 트래픽을 전송하는 역할을 한다. 또한 해커가 원할 경우, PC에

담긴 개인정보를 빼내거나 시스템을 손상시킬 수도 있다.[2]

Page 8: DoS, DDoS - Y'sUprof.ysu.ac.kr/pds_update/dos, ddos.pdf · 실제 DoS, DDoS 공격이 단 한 줄의 명령어로 실행 될 줄은 몰랐다. 또한 DoS, DDoS 의 실 제 원리를

[그림 2] DDoS 공격 개념도

좀비 PC란 악성코드에 감염되어 악성코드 제작자의 의도에 따라 명령을 수행하는 PC를 뜻한다. 즉, ‘사

용자가 모르는 사이에 해커의 원격 조정을 받는 PC’로, 원격지에 있는 악성코드 제작자의 명령에 의해

조정된다는 의미에서 좀비라는 용어로 불리게 되었다. 악성코드에 감염된 좀비 PC는 사용자도 모르게

DDoS 공격에 이용돼 특정 사이트로 대량의 트래픽을 전송하는 역할을 한다. 또한 해커가 원할 경우, PC에

담긴 개인정보를 빼내거나 시스템을 손상시킬 수도 있다.[2]

명령제어서버 (통칭 C&C , Command And Control Server) 란 공격자가 일부 좀비PC에 악성코드를

심어 대량의 일반 좀비PC들을 보다 쉽게 제어할 수 있도록 구축해 놓은 서버이다.

2.2 DDoS attack on 3.4 (2011)

3.4 DDoS 공격은 2011년 3월 4일 오전 10시와 오후 6시 30분에 국내 다수의 웹사이트를 대상으로

발생했는데, 7.7 DDoS 대란 때와 마찬가지로 DDoS 공격, C&C 통신, MBR(Master Boot Record)/파일을

파괴하는 기능을 가지고 있었다. 좀비 pc들은 SBUpdate.exe 악성코드가 포함된 파일을 다운, 실행함으로

서 좀비 pc화 된다. 개별 좀비 PC 들은 SBUpdate.exe 파일 내 들어있는 C&C 서버 정보를 참조, 해당 서

버에 접속하여 nt{aa}{dd}.dll(Main DLL) 이라는 동적 라이브러리 파일을 다운, 실행한다. 이후, 서버 통신

모듈, DDOS 공격 모듈, MBR(Mater Boot Record) 파괴 모듈 파일이 생성, 실행되며 이 파일들이 참조하

는 6가지 파일을 추가로 생성한다. 주요 공격 대상은 국방부, 국세청, 국회, 농협, 공군본부 등 총 40개의

사이트들이였다.

Page 9: DoS, DDoS - Y'sUprof.ysu.ac.kr/pds_update/dos, ddos.pdf · 실제 DoS, DDoS 공격이 단 한 줄의 명령어로 실행 될 줄은 몰랐다. 또한 DoS, DDoS 의 실 제 원리를

w{*???}svc.dll(DDoS 모듈)

Win-Trojan/Agent.40960.BOH

Win-Trojan/Ddosagent.42320

Win-Trojan/Ddosagent.36864

C&C 서버 통신 모듈

DDoS 공격 모듈

MBR 파괴 공격 모듈

[그림 3] 3.4 DDoS 전체 개략도

w{*???}svc.dll 파일은 해당 공격지에 3가지 프로토콜을 이용하여 (HTTP GET, UDP, ICMP) DDoS 공

격을 수행했다.

① HTTP Get Flooding Attack

공격 방법 :

-> 서버에 정상적인 TCP Connection (3 hand Shacking)을 형성한 후, HTTP Header 정보를

-> 변조 없이 하나의 Get Request를 전송한 후, FIN Packet을 전송

-> Zombie 시스템의 경우 SYN-Cookie 에 정상 응답, Reset 에는 응답하지 않는 특성을 보임

-> Target 시스템은 DPI 차단 방식을 위회된 상태로 대량의 GET을 수신하게 되어 시스템

-> 부하가 발생 (시스템 과부하로 인한 서비스 불가 상태 발생 )

Page 10: DoS, DDoS - Y'sUprof.ysu.ac.kr/pds_update/dos, ddos.pdf · 실제 DoS, DDoS 공격이 단 한 줄의 명령어로 실행 될 줄은 몰랐다. 또한 DoS, DDoS 의 실 제 원리를

1. MAC Spoofing을 위해 현재 자신의 MAC 주소 확인

2. macchanger 명령어로 현재 MAC 주소 숨김 및 가짜 주소 생성

③ UDP Flooding

공격 방법 :

->

SYN

SYN + ACK

ACK

GET

FIN

SYN

SYN + ACK

ACK

GET

FIN

Heacker Vimtim

HTTP Request methods

· GET : HTTP Client(Web Browser)가 HTTP Server

· GET : (Web Server)와 통신을 할 때 서버쪽에 보내는 신

· GET : 호로써, 예를들면 브라우져에 로드 할 이미지 파일

· GET : 따위를 요청하는 신호이다.

공격 트래픽을 수신하는 서버는 정상적인 TCP 연

· GET : 결과 함께 정상 적으로 보이는 HTTP GET 요청을

· GET : 지속적으로 요청하게 되므로. 서비스를 위해 수행하

는 서버는 기본적인 TCP 세션의 처리뿐만 아니라

· GET : HTTP 의 요청 처리까지 수행해야 한다.

Page 11: DoS, DDoS - Y'sUprof.ysu.ac.kr/pds_update/dos, ddos.pdf · 실제 DoS, DDoS 공격이 단 한 줄의 명령어로 실행 될 줄은 몰랐다. 또한 DoS, DDoS 의 실 제 원리를

3. 192.168.1.4 (Victim) 주소로 udp flooding 공격 실시

( -a = spoof id , -s = source port , -p = destination port)

※ -a 옵션을 수정해 제 3의 victum을 생성 가능, 예를들어 공격자의 ip가

192.168.1.5, victum1 이 192.168.1.4, victum2 가 192.168.1.3 이라면 실

제 패킷은 192.168.1.4 와 1.3 사이에서 처리된다.

4. Source (ip) = 1.2.3.4 (spoof)

5. Source (MAC) = aa:aa:aa:aa:aa:aa (spoof)

Page 12: DoS, DDoS - Y'sUprof.ysu.ac.kr/pds_update/dos, ddos.pdf · 실제 DoS, DDoS 공격이 단 한 줄의 명령어로 실행 될 줄은 몰랐다. 또한 DoS, DDoS 의 실 제 원리를

공격 유형 사용 포트 및 프로토콜 특징

HTTP GET Flooding TCP / 80

GET / HTTP/1.1 요청

Cache-Control 헤더 사용 또는 비사용

Accept,User-Agent 헤더 조건선택

ICMP Flooding ICMP Payload 사이즈가 204 바이트로 고정

UDP Flooding UDP / 80 Payload 사이즈가 1024 바이트로 고정

2) 시간 순서별 진행 순서

[그림 4] 3.4 DDoS 전체 개략도 2

Page 13: DoS, DDoS - Y'sUprof.ysu.ac.kr/pds_update/dos, ddos.pdf · 실제 DoS, DDoS 공격이 단 한 줄의 명령어로 실행 될 줄은 몰랐다. 또한 DoS, DDoS 의 실 제 원리를

[그림 5] 시간 순으로 정렬된 3.4 DDoS 사태

Page 14: DoS, DDoS - Y'sUprof.ysu.ac.kr/pds_update/dos, ddos.pdf · 실제 DoS, DDoS 공격이 단 한 줄의 명령어로 실행 될 줄은 몰랐다. 또한 DoS, DDoS 의 실 제 원리를

참고 문헌, 자료

1. http://blog.naver.com/yk2shm?Redirect=Log&logNo=120073340955

2. UDP Flooding Attack 공격과 방어 - 황교국

3. 침해 사고의 예방과 대응 - KISA

4. 3.4 DDoS 분석보고서 - 안철수 연구소

5. 3.4 DDoS 공격에 사용된 악성코드간의 관계도 (MalwareLAB 블로그) 및 분석 보고서(http://cafe.naver.com/malzero/68513)

6. Windows 시스템 조정(http://pic.dhe.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=%2Fcom.ibm.websphere.express.doc%2Finfo%2Fexp%2Fae%2Ftprf_tunewindows.html)

7. ICMP / TCP 공격(joyfullife.egloos.com/344041)

8. SYN Flooding 공격 방지법 (http://blog.naver.com/PostView.nhn?blogId=cyber143&logNo=20087652254)

9. TCP SYN Flood DOS attack with hping(http://www.binarytides.com/tcp-syn-flood-dos-attack-with-hping/)

10. Hping scanning (http://technocrasy.blogspot.kr/2012/11/hping-scanning.html)

11. [Network_Security] Smurf Attack (Denial of Service) (http://blog.naver.com/PostView.nhn?blogId=limjongmin15&logNo=40161415109&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView)

12. 3.3 DDoS Report.pdf - Sang.Keun.Jang

13. DoS Attack using HPING(www.kislaybhardwaj.com/2011/10/dos-attack-using-hping.html)

14. UDP Flooding 에 의한 DOs 공격 (blog.naver.com/lifewell?Redirect=Log&logNo=110135703154)

15. [DDoS 기획] DDoS 최신 공격 기법과 방어 기법 - AhnLab

(www.ahnlab.com/kr/site/securityinfo/secunews/secuNewView.do?curPage=1&menu_dist=2&seq=16316&)

느낀점.

- 일단 재미있었다. 실제 DoS, DDoS 공격이 단 한 줄의 명령어로 실행 될 줄은 몰랐다. 또한 DoS, DDoS 의 실

제 원리를 알기 위해서는 여러 가지 기초 지식들이 필요하다는 것을 깨달았다. 수업에서 시험을 치기 위한 지

식이 아닌 실용적인 지식을 배우도록 노력해야겠다.