Security

[Security] 서비스 거부 공격(DoS : Denial of Service)_1

구루싸 2020. 2. 12. 22:04
반응형
SMALL

오늘부터 서비스 거부 공격(DoS : Denial of Service)에 대해 알아보겠습니다

DoS는 CPU, Memory, Network 등 컴퓨터의 자원(Resource)을 고갈 시키기 위한 공격을 말하고

소프트웨어의 취약점을 이용하는 공격과 IP Header를 변조하여 공격하는 Logic Attack

무작위로 패킷을 발생시키는 Flooding Attack으로 구분됩니다

DoS 중 여러 대의 공격자 서버가 분산되어 특정 시스템을 집중적으로 공격하는 것을

DDoS(Distributed Denial of Service)라고 합니다

오늘 학습할 내용은 이 DDoS 중 "TCP SYN Flooding" 입니다

TCP SYN Flooding은 TCP 패킷의 SYN 비트를 이용한 공격 방법으로

많은 연결 요청을 통해 대상 시스템이 Flooding하게 만들어서 서비스를 중단시키는 공격입니다

이 공격 방법이 가능한 이유는 TCP의 초기 연결 과정인 3-Way Handshaking 때문인데

좀 더 자세히 보면 Hacker가 발신 주소를 자신의 IP 주소가 아닌 임의의 IP 주소로 설정하여

대상에게 TCP SYN packet을 연속적으로 전송하면

대상 서버는 대기 큐에 할당하고 임의의 IP 주소로 TCP SYN/ACT packet을 전송하게됩니다

물론 임의의 IP를 가진 호스트는 응답이 없고 대상은 TCP ACK를 수신받지 못해

이 과정이 반복되면 결국 큐는 Overflow가 발생하여 더 이상 서비스를 제공할 수 없게 됩니다

아래의 표는 이 TCP SYN Flooding 공격의 대응책을 정리한 것입니다

대응책 내용
방화벽에서 대응 IP 당 SYN 요청에 대한 PPS(Packet Per Second) 임계치를 단계적으로 조정
First SYN Drop(Spoofed) 설정 SYN 패킷을 보낸 클라이언트의 존재 여부를 파악하여 차단하는 방법으로 클라이언트에서 전송된 첫 번째 SYN을 Drop하여 재요청 여부를 확인 후 Spoofing 여부를 판단
TCP 세션 연결 차단 트래픽 유형별 임계치를 조정하여 TCP 세션 연결 차단
Back queue 증가

임시적인 방법으로 서버의 Queue 사이즈를 증가

sysctl -w net.ipv4.tcp_max_syn_backlog = 1024

라우터에서 대응 Watch Mode SYN 패킷을 통과시키고 일정 시간 동안 연결이 이루어지지 않으면 라우터가 SYN 패킷을 차단
  Intercept Mode 라우터에 유입되는 SYN 패킷 요청을 서버로 전송하지 않고, 라우터에서 가로채어 SYN 패킷을 요청한 클라이언트와 서버를 대신 연결

오늘은 이만-_-

 

반응형
LIST