오늘부터 서비스 거부 공격(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 패킷을 요청한 클라이언트와 서버를 대신 연결 |
오늘은 이만-_-
'Security' 카테고리의 다른 글
[Security] 서비스 거부 공격(DoS : Denial of Service)_3 (0) | 2020.02.16 |
---|---|
[Security] 서비스 거부 공격(DoS : Denial of Service)_2 (0) | 2020.02.16 |
[Security] 가상 메모리(Virtual Memory) (0) | 2019.12.29 |
[Security] 메모리 시스템(Memory System) (0) | 2019.12.15 |
[Security] CPU(Central Processing Unit) (0) | 2019.12.10 |