TCP SYN Flooding 공격
1. 개요
TCP SYN Flooding은 DDoS(Distributed Denial of Service) 공격의 일종으로, TCP 3-way Handshake 과정을 악용하여 서버의 연결 자원을 고갈시키는 공격이다. 공격자는 다량의 SYN 패킷을 전송하고, 정상적인 3-way Handshake를 완료하지 않음으로써 서버가 연결 요청을 처리하지 못하게 만듭니다.
2. 공격 원리
1) TCP 3-way Handshake 과정 (TCP 3단계 과정을 통해 설정)
① SYN(Synchronize) : 클라이언트가 서버에 연결 요청을 보냄
② SYN-ACK(Synchronize-Acknowledge) : 서버가 클라이언트 요청을 승인하고 응답
③ ACK(Acknowledge) : 클라이언트가 서버 응답을 확인하며 연결 설정 완료
2) SYN Flooding 공격의 원리
① 공격자는 서버로 다량의 SYN 패킷을 보냄
② 서버는 SYN-ACK 패킷을 응답하며 연결을 대기 상태로 유지
③ 클라이언트(공격자)는 최종 ACK를 보내지 않음
④ 결과적으로 서버의 백로그 큐(Backlog Queue)가 가득 차서 새로운 연결 요청을 처리하지 못하게 됨
3) 공격의 특징
- 공격자는 IP 스푸핑을 통해 출발지 주소를 위조해, 추적을 어렵게 만듦
- 정상적인 SYN 패킷과 유사하기 때문에 탐지가 어려움
- 서버의 메모리와 CPU를 소모시켜 서비스 중단을 유발
3. 탐지 방법
1) 네트워크 트래픽 분석
- Wireshark 또는 tcpdump와 같은 네트워크 분석 도구로 비정상적인 SYN 패킷의 급증을 확인
- 정상적인 TCP 3-way Handshake의 완료율이 낮아지거나, SYN 요청이 대량으로 발생하는 패턴을 탐지
2) 로그 및 모니터링
- 방화벽 또는 IDS/IPS 로그에서 비정상적인 연결 시도 증가를 확인.
- 네트워크 모니터링 도구(Zabbix, Nagios)를 통해 SYN 패킷의 폭주를 감지.
3) Backlog 큐 확인
- 서버의 netstat 명령어로 연결 상태 확인 : netstat -an | grep SYN
- SYN 상태의 연결이 비정상적으로 많으면 공격 가능성 있음
4) 트래픽 비율 분석
- SYN 패킷과 ACK 패킷의 비율이 비정상적(예: SYN 비율이 지나치게 높은 경우)일 때 공격 의심
4. 대응 방법
1) 네트워크 레벨 대응
① SYN Cookie 활성화
- SYN Cookie는 서버가 백로그 큐를 사용하지 않고 SYN 요청을 처리하도록 함
- Linux에서 활성화 : echo 1 > /proc/sys/net/ipv4/tcp_syncookies
- SYN Cookie는 백로그 큐를 우회하여 메모리 소모를 줄이고, 공격을 완화
② 방화벽 설정
- IPTables로 SYN 패킷 속도를 제한 : iptables -A INPUT -p tcp --syn -m limit --limit 10/second -j ACCEPT
- 특정 IP에서 과도한 SYN 요청이 발생하면 차단
③ Rate Limiting : 라우터나 스위치에서 클라이언트당 연결 속도를 제한.
④ DDoS 방어 솔루션 : Cloudflare, AWS Shield, Akamai 등에서 제공하는 DDoS 방어 서비스를 활용
2) 서버 설정 변경
① 백로그 큐 크기 조정
- 서버가 대기 상태의 연결을 처리할 수 있는 큐 크기를 늘림
- Linux 설정 : echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog
② TCP 타임아웃 감소
- 백로그 큐에서 오래된 연결을 빨리 제거 : echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
③ 불완전 연결 제한
- 백로그 큐의 연결 제한을 강화 : echo 1 > /proc/sys/net/ipv4/tcp_abort_on_overflow
3) 어플리케이션 레벨 대응
- WAF(Web Application Firewall) 사용 : 공격 패턴을 탐지하고 차단
- 로드 밸런싱 : 여러 서버에 트래픽을 분산시켜 한 서버의 자원이 고갈되는 것을 방지
4) 사후 조치
- 공격 소스 차단 : 공격에 사용된 IP를 추적하여 차단
- ISP와 협력 : 대규모 공격 발생 시 인터넷 서비스 제공업체(ISP)와 협력하여 공격 트래픽을 차단
5. 예방 조치
- 정기적인 보안 점검 : 서버 설정 및 네트워크 방화벽 규칙을 정기적으로 점검
- 최신 보안 업데이트 적용 : 운영 체제와 네트워크 장비의 보안 패치를 최신 상태로 유지
- DDoS 방어 훈련 : DDoS 공격 시나리오를 가정한 모의 훈련을 통해 대응 전략 강화
- 로그 및 트래픽 모니터링 자동화 : 이상 트래픽을 자동으로 탐지하고 대응할 수 있는 시스템 구축