DoS, DDoS 1012 1705 사이버경찰학과 홍윤기
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) 대응방안
1. DoS 1.1 Definition of DoS (Denial of Services) 서비스거부공격 (DoS) 이란시스템이나네트워크의구조적취약점을공격하여정상적인서비스를지연시키거나마비시키는해킹공격을말한다. DoS 공격의유형은공격자의위치에따라내부에서의공격과외부에서의공격으로나눌수있고, 공격대상의형태에따라특정네트워크에서허용하는대역폭을모두소모시` 키는방법, 공격대상시스템의자원을고갈시키는방법, 공격대상의시스템상에서동작하는응용프로그램의프로그램상오류에대한공격으로서비스를거부하게만드는방법으로나뉜다. 내부에서공격하는방법으로는 CPU, Memory, Disk 등의시스템자원에대한공격으로시스템을독점하여앞서언급한자원을과소비시켜서비스를거부하도록하는방법이대부분을차지하고있다. 외부에서의공격은네트워크와시스템에대한공격이주를이룬다. 네트워크트래픽을증가시키면실제로시스템의사용에는문제가없지만시스템이사용자에게제공하는 네트워크서비스 를의도대로수행할수없다 [1]. 종류파괴공격시스템자원고갈네트워크자원고갈 증상디스크나데이터, 시스템의파괴 CPU, Memory, Disk 사용에과다한부하가중쓰레기데이터로네트워크대역폭을고갈 [ 표 1] DoS 공격과 DdoS 공격의유형과대응 1.2 DoS attack on Network 1) Ping flooding (ICMP Flooding) 과부하를주는 DoS 공격은서비스나자원을반드시죽이려고하는대신과부하를줘서제대로응답하지못하게하는데목적이있다. 과부하를주는대상은 CPU 사이클과시스템프로세스같은자원이될수있지만 PF 공격은네트워크자원을공격대상으로한다. 이공격의목적은공격대상의네트워크대역폭을잠식해정상적인트래픽이제대로오고가지못하게하는것이다. 공격자는크기가큰패킷을대량으로공격대상에게보내공격대상호스트의네트워크대역폭을소모시킨다. ( 따라서공격대상보다큰대역폭을가지고있는공격자가대량의데이터를보내면공격대상은다른정상적인트래픽을제대로주고받지못한다, ICMP = 라우터간의에러상태혹은상태변화를알려주고요청에응답을하는기능을담당하는네트워크제어프로토콜 ) 플랫폼사양 Client (Attacker) OS : Linux - Platform 3.8.0-26-generic /GNU IPv4 : 192.168.1.7 Aim port : 139 Server (Victim) OS : Windows Server 2008 R2 IPv4 : 192.168.1.4 Open port : 139 순서 1 Attacker : ping [target_ip_address] -s [packet size] - i [interval] 작성
( 실제 : ping 192.168.1.4 -s 65500 -i 0.000001) 3 Server (Victim) 측네트워크 자원활용증가확인 최대 (78 ~ 79%) 외부영역내부구간 ( 보호영역 ) 공격자 PC 백본스위치정보보호시스템스위치 서버영역 Web Web Web 1 보안강화방법 Sevr Sevr Sevr -> Windows OS 기반 : ICMP Echo 요청거부
2) TCP SYN Flooding TCP의취약점을이용한공격, 정확히는 TCP의통신동작인 Three hand shaking 규칙을이용한공격이다. Client 가 Server 에 TCP 연결을시작한다고가정할때, Client 와 Server 가일련의메시지를교환한다. 1 CL 2 3 SV 1 Client 는 Server 에 SYN(Synchronize, 동기화 ) 메시지를보냄으로써연결을요청한다. 2 Server 는 SYN+ACK(Acknowledgment) 를 Client 에게반송함으로써이요청을인정한다. (backlog queue 에해당과정을저장한다 - backlog queue = 연결관리테이블 ) 3 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) 2 Server (Victim) 측네트워크 자원활용증가확인 최대 (100%)
3 Victim Server port 139 번으로 spoof IP 1.2.3.4 의 SYN 신호확인 1 보안강화방법 -> Back logqueue의확장 ( 실질적인해결책 X) -> Windows OS 기반 : 레지스트리 lmaxconnect Backlog 작성, 또는수정 ( 위치 :HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters) -> Backlog 의크기는최소 10에서최대 1000 까지 ( 용량이부족할때마다 10씩증가 ) "EnableDynamicBacklog"=dword:00000001 "MinimumDynamicBacklog"=dword:00000020 "MaximumDynamicBacklog"=dword:00001000 "DynamicBacklogGrowthDelta"=dword:00000010 -> Windows OS 기반 : 레지스트리 TcpTimedWaitDelay 작성, 또는수정 ( 위치 :HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters) -> TcpTimeWaitDelay 기본값 0xF0(240 초 ) 를 0x1E(30 초 ) 또는그이하로조정
-> Linux OS 기반 : Backlog 수정 (linux mint 기본 256, 확장 51 3) Land Attack 순서 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 라불가하다판단. 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]
[ 그림 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개의사이트들이였다.
[ 그림 3] 3.4 DDoS 전체개략도 w{*???}svc.dll(ddos 모듈 ) Win-Trojan/Agent.40960.BOH Win-Trojan/Ddosagent.42320 Win-Trojan/Ddosagent.36864 C&C 서버통신모듈 DDoS 공격모듈 MBR 파괴공격모듈 w{*???}svc.dll 파일은해당공격지에 3 가지프로토콜을이용하여 (HTTP GET, UDP, ICMP) DDoS 공 격을수행했다. 1 HTTP Get Flooding Attack 공격방법 : -> 서버에정상적인 TCP Connection (3 hand Shacking) 을형성한후, HTTP Header 정보를 -> 변조없이하나의 Get Request를전송한후, FIN Packet을전송 -> Zombie 시스템의경우 SYN-Cookie 에정상응답, Reset 에는응답하지않는특성을보임 -> Target 시스템은 DPI 차단방식을위회된상태로대량의 GET을수신하게되어시스템 -> 부하가발생 ( 시스템과부하로인한서비스불가상태발생 )
SYN SYN + ACK ACK GET FIN HTTP Request methods GET : HTTP Client(Web Browser) 가 HTTP Server GET : (Web Server) 와통신을할때서버쪽에보내는신 GET : 호로써, 예를들면브라우져에로드할이미지파일 GET : 따위를요청하는신호이다. 공격트래픽을수신하는서버는정상적인 TCP 연 Heacker SYN SYN + ACK ACK GET FIN Vimtim GET : 결과함께정상적으로보이는 HTTP GET 요청을 GET : 지속적으로요청하게되므로. 서비스를위해수행하는서버는기본적인 TCP 세션의처리뿐만아니라 GET : HTTP 의요청처리까지수행해야한다. 3 UDP Flooding 공격방법 : -> 1. MAC Spoofing 을위해현재자신의 MAC 주소확인 2. macchanger 명령어로현재 MAC 주소숨김및가짜주소생성
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)
공격유형 사용포트및프로토콜 특징 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
[ 그림 5] 시간순으로정렬된 3.4 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 의실제원리를알기위해서는여러가지기초지식들이필요하다는것을깨달았다. 수업에서시험을치기위한지식이아닌실용적인지식을배우도록노력해야겠다.