정보처리기사

[정보처리기사] DoS란? (Smurf, Land Attack, SYN, ICMP, UDP, HTTP Flood)

dongkeonkim 2023. 4. 24. 16:28
반응형

DoS

 

 

특정 서비스나 시스템에 고의적으로 대량의 트래픽을 보내서 서비스를 마비시키거나

시스템 자원을 고갈시키는 공격 기법입니다.

DoS 공격에는 여러 종류가 있으며, 그 중 몇 가지를 아래에서 소개해 드리겠습니다.

 


1. Smurf

공격자의 IP를 위조합니다.

그리고 공격 대상 시스템으로 대량의 ICMP Echo Request 패킷을 보냅니다.

이렇게 보내진 ICMP 패킷들은 공격 대상의 네트워크에서 받고 응답을 보내게 되며, 이로 인해 공격 대상의 네트워크 대역폭이 고갈되며 정상적인 네트워크 서비스를 할 수 없게 됩니다.

 

2. Land Attack

공격자가 전송하는 TCP 패킷의 출발지 IP와 목적지 IP를 공격 대상의 IP 주소로 설정하여 공격 대상 시스템에 보내는 공격 기법입니다. 공격 대상의 시스템은 자기 자신으로부터 수신한 패킷을 처리하려 하며 시스템 자원을 소모하며, 결국 고갈되어 정상적인 서비스를 제공할 수 없게 됩니다.

 

3. SYN Flood

일반적인 TCP 연결 과정은 다음과 같습니다.

 

1) 클라이언트가 서버에게 SYN 패킷을 보냅니다.

2) 서버는 SYN/ACK 패킷을 보내고, 클라이언트는 ACK 패킷을 보내며 연결을 맺습니다.

 

SYN Flood 공격은 이 과정을 악용하여 대량의 가짜 IP 주소 SYN 패킷을 대상 서버에 전송합니다.

이때, 공격자는 ACK 패킷을 전송하지 않고, 대상 서버는 SYN/ACK 패킷을 대량으로 보내며 대기열에 연결 요청이 쌓이게 됩니다.

따라서 대상 서버는 연결 요청을 처리하지 못하게 됩니다.

 

이를 막기 위한 대표적인 방법은 SYN 쿠키 디펜스 기술이 있습니다.

서버가 SYN 패킷을 받을 때 마다 데이터를 생성하여 클라이언트에게 전송합니다.

이 방법을 통해 서버는 정상적인 연결 요청에만 데이터를 생성합니다.

 

4. ICMP Flood

대량의 ICMP 패킷을 보내는 공격 기법입니다.

 

ICMP (Internet Control Message Protocol)
네트워크에서 발생하는 문제를 진단하고, 오류 메시지를 보내는 등의 제어 메시지를 전달하기 위한 프로토콜

 

공격자는 ICMP Flood 공격을 통해 목표 서버의 CPU 리소스를 고갈시키는 것을 목적으로 합니다. 

간단한 스크립트나 도구를 사용하여 공격할 수 있으며, 대부분의 방화벽에서 차단되지 않는 경우가 많아 대처가 어려운 공격 중 하나입니다. 이를 막기 위해서는 방화벽이나 IPS 등의 보안장비를 사용하여 대량의 ICMP 패킷을 필터링하거나 차단하는 것이 필요합니다.

 

5. UDP Flood

위의 공격 방식들과 같이 UDP 패킷을 대량으로 보내는 방식으로, 대상 시스템의 UDP 포트를 공격하는 방식입니다.

공격자는 UDP 패킷을 보낼 때, 대상 서버의 IP 주소와 포트 번호를 송신자 IP 주소와 랜덤한 포트 번호로 조작하여 전송합니다. UDP 프로토콜은 연결 설정 과정이 없기 때문에, 대상 서버는 대량의 UDP 패킷을 받고 서버에 처리를 요청하게 됩니다.

 

TCP의 연결 설정 과정인 3-way handshake는 클라이언트와 서버 간의 상호 확인하는 단계를 거칩니다.

이에 공격자는 단순히 SYN 패킷을 대량으로 보내는 것 만으로는 공격이 성공하지 않습니다.

 

6. HTTP Flood

가짜 HTTP 요청을 대량으로 전송하는 방식입니다.

여러 대의 컴퓨터를 이용해 대량의 HTTP 요청을 보내고, 이를 받는 웹 서버는 응답을 반환합니다.

 

이러한 공격에 대처하기 위해서는 서버의 부하 분산(Load Balancing) 기술이나 웹 방화벽을 사용할 수 있습니다.로드 밸런싱은 부하를 분산하여 여러 대의 서버에서 분산 처리가 가능하며, 웹 방화벽은 대량의 HTTP 요청을 필터링할 수 있기에 공격 트래픽을 효과적으로 차단할 수 있습니다.

 

7. Slowloris

HTTP 요청 헤더에 특정 값을 포함하여 서버가 요청을 처리하지 못하도록 연결을 계속 유지하는 방식입니다.공격자가 HTTP 요청을 여러 개 보내고, 각 요청에 Keep-Alive 값을 설정해 연결을 유지합니다.서버는 이러한 연결을 모두 처리해야 합니다.


 

반응형