[normaltic 취업반 5기] 2024-01-31 13주차 내용 정리(+추가 과제 포함)

2024. 2. 1. 04:22normaltic 취업반 5기/내용 정리

 

DoS(Denial of Service, 서비스 거부) 공격 

 

  DoS 공격은 공격대상 서버의 자원을 고갈시켜 서비스를 하지 못하도록 하는 것을 목표로 다수의 공격자 혹은 시스템에서 대량의 데이터를 공격대상 서버에 집중적으로 전송하여 정상적인 기능을 하지 못하도록 만든다.

 

  DoS 공격으로 쓰이는 전략에는 3가지가 있으며 다음과 같다.

 

  • 웹 애플리케이션 취약점 이용 공격
  • 서버 리소스 고갈 공격
  • 네트워크 리소스 고갈 공격

 

DoS 공격

 

 

DoS 공격 종류

 

  DoS 공격의 종류에는 대표적인 5가지가 존재하며 다음과 같다.

 

  • Ping of Death
  • SMURFING
  • SYN Flooding
  • Tear Drop
  • Land

 

1) Ping of Death

 

- 정의

  Ping of Death 공격은 Ping 명령을 전송할 때 패킷의 크기를 인터넷 프로토콜 허용 범위(65,536 바이트) 이상으로 전송하여 공격 대상의 네트워크를 마비시키는 공격이다. 

 

- 원리

  공격에 사용되는 큰 패킷은 수백 개의 작은 패킷으로 분할되어 전송된다. 이때 공격대상은 분할된 대량의 패킷을 수신하여 재조립 과정을 거치게 되는 부담을 가지게 되고 분할되어 전송된 각각의 패킷들의 ICMP Ping 메시지에 대한 응답을 처리하느라 시스템이 다운된다.

 

ICMP Ping 메시지란?

  ICMP Ping 메시지는 특정 IP로 패킷이 전송될 때 해당 IP가 현재 운영 중인지 확인을 요청하는 메시지를 의미하며, 만약 운영 중이라면 이에 대한 응답 메시지를 전송한다.

 

- 대안

  이러한 유형의 공격을 방어하기 위하여 ICMP Ping 메시지가 전송되지 못하도록 방화벽에서 차단하는 기술이 개발되었다.

 

 

2) SMURFING

 

- 정의

  SMURFING 공격은 IP나 ICMP의 특성을 악용하여 대량의 데이터를 공격대상에게 보내어 네트워크를 마비시키는 공격이다.

 

- 원리

  공격자는 송신 주소를 공격대상의 IP 주소로 위장하여 해당 네트워크 라우터의 브로드캐스트 주소로 패킷을 전송한다. 브로드캐스트 주소로 전송된 패킷은 네트워크 라우터와 연결된 모든 컴퓨터로 패킷이 전송되며 패킷을 수신받은 모든 컴퓨터는 응답 메시지를 공격대상 IP 주소로 전송하게 된다. 이로 인해 공격 대상은 대량의 응답 메시지를 수신함으로써 네트워크 과부하로 인해 정상적인 서비스를 수행할 수 없게 된다.

 

브로드캐스트 주소란?

  브로드캐스트 주소는 네트워크 내의 특정 대상의 주소가 아니라 네트워크 내에 존재하는 모든 컴퓨터를 대상으로 패킷을 전송할 때 사용하는 주소를 의미한다.

 

- 방안

  이러한 유형의 공격을 방어하기 위하여 각 네트워크 라우터에서 브로드캐스트 주소를 사용할 수 없도록 미리 설정하는 방법이 존재한다.

 

SMURFING 공격 예시

 

 

3) SYN Flooding

 

- 정의

  SYN Flooding 공격은 TCP에서 신뢰성 있는 전송을 위해 사용하는 3-way-handshake 과정의 허점을 이용한 공격으로서 공격자가 존재하지 않는 가상의 클라이언트로 위장하여 공격대상과의 3-way-handshake 과정을 의도적으로 중단시켜 서버를 대기 상태에 놓이게 만들어 정상적인 서비스를 수행할 수 없도록 한다.

 

- 원리

  공격자는 존재하지 않는 IP 주소를 가지는 가상의 클라이언트로 위장하여 공격대상과 TCP로 통신을 시도한다. 공격자는 공격대상에게 SYN 신호를 보내고 신호를 받은 공격대상은 SYN에 대한 응답으로 SYN+ACK 신호를 공격자가 설정한 IP 주소로 보내면서 클라이언트의 접속을 받기 위해 메모리의 일정 공간을 확보한다. 이때 공격대상이 신호를 보낸 IP 주소는 본래 존재하지 않으므로 공격대상은 ACK 신호를 받기 위해 대기하게 된다. 이 과정을 지속적으로 반복하게 되면 클라이언트의 접속을 받기 위한 메모리 공간을 지속적으로 확보하게 되는데 이로 인해 정상적인 서비스를 수행할 수 없게 된다.

 

- 방안

  이러한 유형의 공격을 방어하기 위하여 수신지의 SYN 신호 수신 대기 시간을 줄인다거나 침입 차단 시스템을 활용한다.

 

SYN Flooding 공격 예시

 

 

4) Tear Drop

 

- 정의

  Tear Drop 공격은 Fragment Offset 값을 변경시켜 패킷 재조립 시 오류로 인한 과부화를 발생시켜 시스템이 정상적인 기능을 수행하지 못하도록 한다.

 

- 원리

  데이터 송수신 과정에서 패킷의 크기가 커 여러 개로 분할되어 전송될 때 분할 순서를 알 수 있도록 Fragment Offset 값을 함께 전송하게 된다. 이때 공격자는 Fragment Offset 값을 변경시켜서 패킷 재조립이 제대로 이뤄지지 않도록 한다. 이 과정에서 발생한 오류로 인해 과부하가 발생하여 시스템을 다운시킨다.

 

- 방안

  이러한 유형의 공격을 방어하기 위하여 Fragment Offset 값이 잘못된 경우 해당 패킷을 폐기하도록 설정한다.

 

 

5) Land

 

- 정의

  Land 공격은 패킷을 전송할 때 송신 IP 주소와 수신 IP 주소를 공격대상으로 설정하여 자신에 대해 무한정 응답을 하게 만들어 정상적인 서비스를 수행하지 못하도록 한다.

 

- 원리

  공격자는 공격대상의 IP 주소를 송신 IP 주소와 수신 IP 주소로 설정을 한 상태로 패킷을 전송한다. 공격대상은 수신받은 패킷을 응답하기 위해 패킷을 전송하게 되는데 이때 전송 대상지는 공격대상 자신이므로 자신에게 응답하는 형태가 된다. 이 과정이 지속적으로 반복되어 서비스를 마비시킨다.

 

- 방안

  이러한 유형의 공격을 방어하기 위하여 송신 IP 주소와 수신 IP 주소의 적절성을 검사한다.

 

 

DDoS(Distributed DoS, 분산 서비스 거부) 공격

 

  DDoS 공격은 여러 곳에 분산된 공격 지점에서 공격대상 서버에  분산 서비스 거부 공격을 수행하는 것으로 공격자는 평소에 네트워크를 통해서 취약점이 있는 PC들을 좀비 PC로 감염시킨다. 만약 공격자가 DDoS 공격을 하고자 할 때 C&C 서버로 감염시킨 좀비 PC들에게 명령을 내려 공격대상 서버로 DDoS 공격 명령을 내린다.

 

C&C Server(Command&Control Server, C2 Server)란?

  공격자가 원격지에서 감염된 좀비 PC에 명령을 내리고 악성코드를 제어하기 위한 용도로 사용하는 서버를 의미한다. 

 

DDoS 공격 예시

 

 

DRDoS(Distributed Reflective DoS, 분산 반사 서비스 거부) 공격

 

  DRDoS 공격은 공격자가 송신지 IP 주소를 공격대상 IP 주소로 위장하여 수많은 서버에 SYN 패킷을 보내면 SYN 패킷을 전달받은 수많은 서버는 3-way-handshake 과정에 의해 SYN+ACK 패킷을 공격대상 IP 주소로 보내게 된다. 이때 보내지는 대량의 SYN+ACK 패킷으로 인해 공격대상은 정상적인 기능을 수행할 수 없게 된다.

 

  또한 DRDoS 공격에 사용되는 반사서버는 자신이 보낸 패킷에 대한 응답이 없을 경우 재전송 하는 특성으로 인해 공격자가 초기에 보낸 패킷보다 몇 배 더 많은 패킷을 보낼 수 있기도 하며 패킷의 크기 자체도 증폭이 될 수 있다. 이로 인해 적은 좀비 PC로도 공격 트래픽 양을 증가시킬 수 있다.

 

  그리고 DRDoS 공격은 IP 스푸핑 과정을 거쳐 수 많은 반사서버를 경유하기 때문에 공격의 근원지를 파악하여 역추적하기 불가능하다.

 

DRDoS 공격 예시