Ⅰ. SYN Flooding 공격이란?
TCP 프로토콜의 연결 방식인 3-way handshake 절차를 악용한 DDoS(분산 서비스 거부) 공격입니다. 공격자는 다량의 가짜 연결 요청을 보내 서버의 자원을 고갈시키고, 정당한 사용자의 접속을 차단하는 것이 목적입니다.
Ⅱ. SYN Flooding 공격 원리
ⅰ. TCP 3-Way Handshake
TCP는 데이터를 신뢰성 있게 전송하기 위해 3단계 연결 절차(handshake)를 거칩니다.
- SYN: 클라이언트가 서버에 연결을 요청 (SYN 패킷 전송)
- SYN-ACK: 서버가 수신 확인 응답 (SYN-ACK 패킷 전송)
- ACK: 클라이언트가 응답을 확인하고 연결 확립 (ACK 패킷 전송
ⅱ. SYN Flooding 공격 원리
1. TCP 연결 시 3단계 절차(SYN → SYN-ACK → ACK)를 이용.
2. 공격자가 출발지 IP를 위조(spoofing)한 수많은 SYN 패킷을 서버에 보냄.
3. 서버는 각 요청에 대해 SYN-ACK 패킷을 응답하며, 세션 정보를 메모리에 저장하고 ACK를 기다림.
4. 하지만 위조된 IP이기 때문에 실제로 ACK가 오지 않음 → 연결 반쯤 열린 상태(SYN_RECV) 유지.
4. 일정 시간(예: 60초) 동안 서버 메모리에 이 연결 정보가 유지되면서 Backlog Queue가 포화 상태가 됨.
5. 서버는 더 이상 새로운 연결을 처리하지 못하고, 결과적으로 정상 사용자 접속이 차단됨.
Ⅲ. SYN Flooding 공격 주요 특징
ⅰ. IP 스푸핑 사용
→ 출발지 IP를 위조하여 추적 어려움
ⅱ. ACK 없음
→ 연결 미완성 상태 유지
ⅲ. Backlog Queue 포화
→ 서버 자원 고갈로 인한 사용자 접속 차단
ⅳ. 소형 패킷 반복
→ 빠른 트래픽 과부하 유발
ⅴ. IoT 봇넷 이용
→ 대규모 분산 공격 가능 (예: Mirai bot)
Ⅳ. Flooding 공격 유형 분류
ⅰ. 직접 공격 (Direct): 실제 공격자 IP로 전송 (추적 쉬움)
ⅱ. 반사 공격 (Reflective): 스푸핑된 IP로 제3자 장비 응답 유도
ⅲ. 변종 형태
1) ACK Storm 유발형: SYN+ACK+기타 플래그 혼합
2) SSL/TLS 연계형: 암호화 핸드셰이크 남용
3) IoT 봇넷 활용형: 초당 수백만 SYN 생성
Ⅴ. SYN Flooding 공격 탐지 및 분석 방법
ⅰ. 시스템 수준 탐지
| watch -n 1 'netstat -ant | grep SYN_RECV | wc -l' 정상: 10개 미만 이상징후: 500개 이상 |
ⅱ. 패킷 분석 (Wireshark)
| 필터: tcp.flags.syn == 1 && tcp.flags.ack == 0 |
1) 출발지 IP 다양성(엔트로피 ≥ 7.5)
2) 특정 포트 집중 공격
3) 동일 크기(60~80바이트)
Ⅵ. SYN Flooding 공격 대응 및 방어 전략
ⅰ. 운영체제(OS)
| sysctl -w net.ipv4.tcp_max_syn_backlog=65536 sysctl -w net.ipv4.tcp_syncookies=1 sysctl -w net.ipv4.tcp_synack_retries=2 SYN Cookie 사용: 해시 기반 임시 세션 생성, 리소스 소모 줄임 |
ⅱ. 네트워크 장비 활용
ⅲ. 어플레케이션 계층 보호(WAF 등)
Ⅶ. SYN Flooding 공격 요약
| 항목 | 내용 |
| 공격 방식 | TCP 3-way handshake 악용 (ACK 생략) |
| 주요 특징 | IP 스푸핑, 저용량 대량 트래픽, 반개방 연결 고갈 |
| 탐지 기법 | 시스템 모니터링, 패킷 분석, 머신러닝 |
| 대응 방안 | SYN Cookie, 커널 파라미터 조정, 네트워크/클라우드 보안 장비 |
'네트워크' 카테고리의 다른 글
| RIP(Routing Information Protocol)과 OSPF (Open Shortest Path First)에 대해 알아보겠습니다. (3) | 2025.07.02 |
|---|---|
| QUIC(Quick UDP Internet Connections)에 대해 알아보겠습니다. (1) | 2025.06.19 |
| DHCP Spoofing 과 Snooping에 대해 알아보겠습니다. (1) | 2025.06.11 |
| nslookup에 대해 알아보겠습니다. (0) | 2025.05.08 |
| ERR_CONNECTION_TIMED_OUT 에 대해 알아보겠습니다. (0) | 2025.03.25 |