어 나 정현욱.

DoS / DDoS 개념 및 실습 본문

Network

DoS / DDoS 개념 및 실습

정현욱 2023. 7. 11. 20:21

DoS ( Denial of Service )


서비스 거부 공격

 

DoS를 직역하면 위와 같습니다.

공격 대상의 시스템 리소스를 부족하게 하여 서비스 불가 상태로 만드는 것이 DoS 공격입니다.

 

DoS 공격으로는 다음과 같은 공격 기법이 있습니다.

Ping Of Death

- ICMP 패킷을 정상적인 크기보다 매우 크게 생성하여 전송하는 공격 기법입니다.

- 위와 같은 경우에 MTU( 패킷 최대 전송 크기 )에 의하여 패킷의 단편화( Fragment )가 발생합니다.

- 공격 대상은 단편화된 패킷을 다시 재조립하는 과정에서 많은 부하가 발생하여, 정상적인 서비스가 불가능합니다.

Land Attack

- 출발지 IP 주소와 목적지 IP 주소를 같게 만들어 전송하는 공격 기법입니다.

- 자기 자신을 호출하기 때문에 무한 루프로 인해 자원이 고갈되어 서비스를 불가능하게 합니다.

- 현재는 대부분의 운영체제에서 출발지와 목적지 IP가 같은 패킷을 DROP 시키기 때문에 잘 사용되지 않습니다.

Smurf Attack

- 출발지 IP를 공격 대상 IP로 변경하고 특정 네트워크에 ICMP Echo Request를 브로드캐스트로 보내는 공격입니다.

- Request를 받은 모든 호스트들이 공격 대상 IP에 응답을 보낼 때 많은 부하가 발생하여 서비스를 불가능하게 합니다.

Teardrop Attack

- 공격 대상에 패킷을 전달할 때 Fragment Offset을 틀리게 설정하여 전달하는 공격 기법입니다.

- 공격 대상이 받은 패킷을 재조립할 때 오류가 발생하여 정상적인 서비스를 불가능하게 합니다.

 

DDoS ( Distuributed Denial of Service )


분산 서비스 거부 공격

 

 

DDoS는 DoS와는 다르게 앞에 "분산"이라는 단어가 붙습니다.

그 이유는 통상 좀비 PC라고 불리는 다수의 호스트를 이용하여 공격을 하기 때문입니다.

 

 

Target에 DDoS를 날리는 정X직씨..

 

DDoS의 공격 흐름은 다음과 같습니다.

 

1) 정X직( 공격자 )이 C&C 서버에 DDoS를 명령합니다.

2) C&C 서버는 정X직으로부터 받은 명령을 분산되어 있는 좀비 PC들에게 전달합니다.

3) 좀비 PC는 C&C 서버로부터 받은 명령을 수행하여 Target을 공격하게 됩니다.

 

DDoS 공격으로는 다음과 같은 공격 기법이 있습니다.

TCP SYN Flooding

- 3-Way Handshake 과정에서 TCP SYN 패킷을 다량으로 전송하는 공격 기법입니다.

- 3-Way Handshake 과정에서 클라이언트와 연결이 성립되지 않으면 Backlog Queue에 저장된 상태가 됩니다.

- 위 과정이 반복되어 Backlog Queue가 가득 차면, 정상적인 연결도 불가능해집니다.

HTTP GET Flooding

- 공격 대상에게 다량의 HTTP GET 요청전송하는 공격 기법입니다.

- 콘서트 티켓팅이나 수강 신청할 때 서버가 느려지는 이유와 같은 원리입니다.

 

TCP SYN Flooding 실습


해당 내용은 제가 구축한 모의환경에서 실습한 내용입니다.
실제 서비스되고 있는 환경에서 사용하시면 안 됩니다.

hping3wireshark를 이용해서 TCP SYN Flooding을 직접 실습해 보겠습니다.

 

hping3 명령어를 이용해 DDoS 공격 실행

-S : SYN 패킷을 보냅니다.

-d 64 : 패킷의 사이즈를 설정합니다.

192.168.221.134 : 공격 대상의 IP입니다.

-p 80 : 80번 포트로 패킷을 전송합니다.

--flood : 최대한 많은 패킷을 전송합니다.

--rand-source : 출발지 IP를 무작위로 설정하여 전송합니다.

 

다음은 해당 공격을 받은 리눅스에서 wireshark로 패킷을 캡처한 화면입니다.

 

DDoS 공격 당하고 있는 리눅스

무작위 IP에서 TCP SYN 패킷이 짧은 시간에 다량으로 전송된 것을 알 수 있습니다.

이와 같은 공격이 TCP SYN Flooding입니다.

 

이 글이 DoS와 DDoS를 이해하시는데 도움이 됐으면 좋겠습니다.
더 궁금하신 내용이 있다면 댓글에 남겨주시면 감사하겠습니다. 😉

'Network' 카테고리의 다른 글

TTL ( Time To Live )  (2) 2023.07.14
방화벽 ( FireWall )  (2) 2023.07.07
VPN은 이상한 거 볼 때 쓰는게 아닙니다.  (2) 2023.06.30
OSI 7계층 아직도 모르면 이거 봐라 ㅋㅋ  (13) 2023.06.29