[정보보안 기사 - 국가기술자격] [Kali Linux] Dos(Denial of Service) 공격 및 방어

Dos 공격이란?

-   시스템이나 네트워크의 구조적인 취약점을 이용하거나 대량의 데이터를 보내어 타깃 시스템이 정상적인 서비스를 하지 못하도록 마비시키는 공격

-   1 대 1 공격 방식이다.

 

Dos 공격의 종류


-   물리적인 파괴(디스크 및 시스템 파괴)
-   시스템 자원 공격(CPU, MEM, DISK의 자원고갈)
-   네트워크 자원 공격(대역폭 고갈)

 

1. Ping Of Death(POD)

 

-   최대 IP 패킷 사이즈보다 큰 Ping 패킷에 대한 검사를 하지 않음으로써 문제가 발생한다.

-   타깃은 해당 쪼개진 패킷을 재조합하는 과정에서 buffer overflow 및 시스템 충돌이 발생한다

 

2. Land Attack

 

 

Land Attack 그림

 

 

-   자신으로부터 전달된 TCP SYN 패킷에 대해 검증 없이 스스로에게 응답을 함으로써 발생한다.

-   출발지 주소/포트 와 목적지 주소/포트가 같은 곳으로 설정한다. 
-   SYN Flooding 공격과 같이 타깃의 자원 고갈로 인한 서비스 장애를 유발한다.

 

-   POD공격과 Land Attack공격은 현재 보안 기술이 적용되어있어 사용되지 않는다.

3. SYN Flooding 공격

 

-   TCP Three-way Handshake 과정에서 타깃은 SYN 패킷을 받은 후 Backlog Queue의 자원을 할당해 주며, 이에 대한 SYN/ACK 응답을 한 후 ACK 패킷이 들어올 때까지 기다린다.

 

 

 

-  이러한 TCP/IP 프로토콜의 구조적인 문제는 다수의 SYN 요청으로 인한 Backlog Queue의 자원을 낭비하여 일반 유저 들에 대한 서비스 장애를 초래 (Half-Open을 저장할 공간이 남아있지 않게 된다.)

 

 

 

 

Kali Linux에서 SYN Flooding 공격

네트워크 구성

 

 

 

 

-   Kali Linux(2.2.2.1)에서 Web Server(10.1.250.3)에게 STN Flooding 공격을 실시하려고 한다.

 

1. 공격전 WebServer 확인

 

-   netstat -an 명령어로 현재 TCP 연결 상태를 확인한다.

-   대부분의 TCP가 LISTENING 상태인 것을 확인할 수 있다.

 

 

 

 

2. Kali Linux에서 hping3 공격(SYN Flooding)

 

 --rand-source:   랜덤한 출발지 주소

www.ictsec.com:  목적지 주소

-p 80:   포트번호 80번으로 전송

-S:   SYN Flooding 공격

 

 

 

 

 

3. Wireshack로 패킷 확인

 

-   랜덤한 출발지 IP에서 SYN Flooding이 발생하는 것을 확인할 수 있다.

 

 

 

 

4. Web Server에서 확인

 

-   netstat an 명령어를 사용하면 SYN_RECEIVED 메시지가 있는 것을 확인할 수 있다.

 

 

 

Dos 공격 방어 방법

 

-   Dos 공격 방어 방법은 TCP Intercept, CoPP 2가지 방법이 존재한다.

 

1. TCP Intercept

 

-   SYN Flooding 공격을 방어할 수 있는 방법 중 하나이다.

-   SYN Flooding 공격은 Firewall, L4 / L7 스위치에서 방어할 수 있다.

-   L4/L7 스위치의 TCP Delay Binding 기능을 활성화하면 SYN Flooding 공격이 발생됐을 때 서버에게 공격이 전달되지 않는다.

  TCP Delay Binding 기능을 L3 장비에서 구현한 것이 TCP Intercept이다.

-   TCP Intercept 기능이 구성된 장비는 클라이언트와 서버 사이에서 TCP 3-Way-Handshakes 과정을 감시하는 것이 가능하다.

 

Intercept 모드

 

1.   Default(기본) 모드

 

-   L3 장비가 자신이 서버 인척 클라이언트와 TCP Connection을 맺고, 정상적으로 TCP Connection이 생성되면 (Established) 해당 Connection 정보를 서버에게 전달한다. (스위치가 중간자 역할을 수행한다.)

-   Attacker가 마지막 Ack를 일정 시간 동안 전송하지 않을 경우 해당 Half-Open 상태를 서버에게 전달하지 않기 때문에 서버에게 부하를 주지 않는다

 

DSW1, 2 스위치에 Intercept 모드 설정

 

 

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

conf t 

access-list 100 permit tcp any host 10.1.250.3 eq 80

ip tcp intercept mode intercept

ip tcp intercept list 100

ip tcp intercept connection-timeout 30

 

패킷 확인

1. netstat -an 확인

 

-   스위치에서 차단하기 때문에 LISTENING 상태만 표시되게 된다.

 

 

 

 

2. WireShack 패킷 확인

 

-   WebServer로 들어오는 패킷은 SYN Flooding이 발생하지 않는다.

 

 

 

-   DSW1, 2로 들어오는 패킷은 SYN Flooding 공격이 발생하지만 RST 패킷을 보낸다.

 

 

 

 

3. show tcp intercept statistics 명령어 확인

 

-   연결이 허용되지 않는 것을 확인할 수 있다. (19 incomplete, 0 established connections)

 

 

 

 

2.   Watch 모드

 

-   Intercept 모드의 경우 L3 장비에 부담이 될 수 있다. 

-   Watch 모드를 사용할 경우 L3 장비가 대신 연결을 맺는 것이 아니라 클라이언트와 서버의 TCP 연결 과정을 감시하게 된다. 

-   클라이언트가 전송해야 하는 마지막 ACK가 30초 이내에 전송되지 않는 경우 자신이 클라이언트 인척 서버에게 RST를 전송하여 연결을 빠르게 종료하도록 유도한다. (Timer 시간 조정 가능하다.)

 

DSW1, 2 스위치에 Watch 모드 설정

 

 

 

 

conf t 

access-list 100 permit tcp any host 10.1.250.3 eq 80

ip tcp intercept mode watch

ip tcp intercept list 100

ip tcp intercept watch-timeout 30

 

 

access-list 100 permit tcp any host 10.1.250.3 eq 80:   출발지는 아무나 10.1.250.3 IP의 80번 포트로 가는 패킷을 허용한다.

ip tcp intercept mode watch:   watch 모드로 설정한다.

ip tcp intercept list 100:   access-list 100번을 watch 대상으로 설정한다.

ip tcp intercept  watch-timeout 30:   ACK 대기시간을 30초로 설정한다.

 

패킷 확인

1. show tcp intercept connection 확인

 

-   STNRCVD, SYNSENT 패킷들이 W(Watch) 모드인 것을 확인할 수 있다.

 

 

 

 

2. Wireshack 패킷 확인

 

-   패킷을 확인하면 30초가 지나면 RST 패킷을 보내는 것을 확인할 수 있다.

-   이로써  Backlog Queue가 가득 차는 것을 어느 정도 방지할 수 있다.

 

 

 

 

2. CoPP(Control Plane Policing)

 

-   Server가 아닌 Network Device(Router / Switch 등)를 대상으로 DoS 공격을 진행하는 경우 Copp를 사용하여 공격을 방어하는 것이 가능하다. 

 

네트워크 구성도

 

 

 

 

-   Attacker(Kali Linux)에서 CE Router로 공격을 시도하려고 한다.

 

-   공격자가 Network Device의 IP 주소를 대량의 Packet을 전송하게 되면 해당 Device는 Control Plane으로 Packet들을 처리하기 때문에 CPU 혹은 메모리 등에 과부하가 발생하게 된다.

-   Control-Plane이 정상적으로 동작할 수 없기 때문에 트래픽 처리가 불가능해 질 수 있다.

 

 

[출처] https://peemangit.tistory.com/87

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 침투테스트(취약점검점검, 모의해킹) 문의 / 답변 졸리운_곰 2017.12.10 28361
21 BIND DNS와 DHCP 보안 취약점 발견...업데이트 필수 file 졸리운_곰 2018.03.11 261
20 인텔 칩 내에서 설계 오류 발견된 이후 이틀간의 기록 file 졸리운_곰 2018.01.04 226
19 [4.28 버그리포트] CVE-2017-8301 外 file 졸리운_곰 2017.04.28 133
18 [4.24 버그리포트] CVE-2015-1521 外 file 졸리운_곰 2017.04.25 108
17 모의해킹 보고서 [2호]_주간취약점동향리포트_20120925.pdf file 졸리운_곰 2014.11.12 360
16 GNU Bash 원격명령 실행 취약점 대응방안 권고.pdf file 졸리운_곰 2014.10.27 266
15 Wordpress Frontend Upload Plugin - Arbitrary File Upload 졸리운_곰 2014.02.17 914
14 Wordpress Buddypress Plugin 1.9.1 - Privilege Escalation 졸리운_곰 2014.02.17 869
13 Daum Game 1.1.0.5 - ActiveX (IconCreate Method) Stack Buffer Overflow 졸리운_곰 2014.02.09 779
12 Android Browser and WebView addJavascriptInterface Code Execution 졸리운_곰 2014.02.09 1375
11 Apache Tomcat Manager Application Upload Authenticated Code Execution 졸리운_곰 2014.02.09 3157
10 NETGEAR ReadyNAS Perl Code Evaluation 졸리운_곰 2014.01.07 2016
9 Adobe Reader ToolButton - Use After Free 졸리운_곰 2014.01.07 1342
8 Moodle Remote Command Execution 가을의 곰을... 2013.11.06 1588
7 Apache + PHP 5.x - Remote Code Execution (Multithreaded Scanner v2) 가을의 곰을... 2013.11.06 1420
6 MS13-080 Microsoft Internet Explorer CDisplayPointer Use-After-Free 가을의 곰을... 2013.10.18 1537
5 Apple iOS 7.0.2 - Sim Lock Screen Display Bypass Vulnerability 가을의 곰을... 2013.10.17 1191
4 XAMPP 1.8.1 (lang.php, WriteIntoLocalDisk method) - Local Write Access Vulnerability 가을의 곰을... 2013.10.17 1260
3 Micorosft Internet Explorer SetMouseCapture Use-After-Free file 가을의 곰을... 2013.10.13 1151
2 Apache Tomcat/JBoss EJBInvokerServlet / JMXInvokerServlet (RMI over HTTP) Marshalled Object file 가을의 곰을... 2013.10.13 4162
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED