TCP 3-Way Handshake의 구조적 취약점과 방어 전략





SYN Flood 공격과 TCP 구조의 상관관계 완벽 이해

SYN Flood 공격과 TCP 구조의 관계: 왜 구조적으로 취약한가?

네트워크 보안의 고전이면서도 여전히 강력한 위협인 SYN Flood 공격은 TCP/IP 프로토콜의 근간인 ‘신뢰성’을 역으로 이용합니다. TCP가 연결을 맺기 위해 사용하는 3-Way Handshake 과정에서 발생하는 ‘절반 개방(Half-Open)’ 상태를 악용하여 서버의 자원을 고갈시키는 이 공격은, 프로토콜의 설계 철학 자체에 기인한 문제입니다. 본 포스팅에서는 SYN Flood 공격이 TCP 구조와 어떻게 맞물려 발생하는지, 그리고 현대 네트워크는 이를 어떻게 방어하는지 심도 있게 분석합니다.

1. TCP 3-Way Handshake와 ‘신뢰’의 비용

TCP는 데이터 전송 전 양단간의 연결을 확립하기 위해 3단계 절차를 거칩니다. 이 과정에서 서버는 클라이언트의 신원을 확인하기 전 미리 자원을 할당해야 하는 구조적 특징을 가집니다.

  • 1단계 (SYN): 클라이언트가 서버에 연결 요청 패킷(SYN)을 보냅니다.
  • 2단계 (SYN-ACK): 서버는 요청을 수락하며 응답 패킷(SYN-ACK)을 보내고, ‘백로그 큐(Backlog Queue)’라는 메모리 공간에 클라이언트 정보를 저장합니다. 이 상태를 Half-Open(SYN_RECV)이라고 합니다.
  • 3단계 (ACK): 클라이언트가 최종 확인 패킷(ACK)을 보내면 연결이 완료됩니다.

2. SYN Flood 공격의 핵심 원리: ‘응답 없는 기다림’

SYN Flood 공격은 위 3단계 중 마지막 ‘ACK’가 영원히 오지 않도록 설계된 공격입니다. 공격자는 존재하지 않거나 위조된(Spoofed) IP 주소로 수만 개의 SYN 패킷을 서버에 쏟아붓습니다.

서버는 각 SYN 요청에 대해 SYN-ACK를 보내고, 클라이언트의 마지막 ACK를 기다리며 백로그 큐의 자원을 계속 점유합니다. 하지만 위조된 IP는 ACK를 보내지 않으므로, 서버의 백로그 큐는 금방 가득 차게 됩니다. 결국 서버는 정상적인 사용자의 SYN 요청을 처리할 공간이 없어 연결을 거부하게 되며, 이것이 바로 서비스 거부(DoS) 상태입니다.

3. TCP 구조적 취약점과 공격의 상관관계

SYN Flood 공격이 성립하는 이유는 TCP의 다음과 같은 설계 특징 때문입니다.

TCP 구조적 특징 공격에 이용되는 방식 영향
연결 지향성(Stateful) 연결 상태 정보를 서버 메모리에 저장해야 함 메모리 자원 고갈 유도
비대칭적 자원 소모 클라이언트는 패킷만 보내면 되지만, 서버는 큐를 생성함 적은 비용으로 큰 피해(증폭) 가능
재전송 메커니즘 ACK가 안 오면 서버는 여러 번 SYN-ACK를 재전송함 서버의 CPU 및 네트워크 대역폭 추가 소모

4. 현대적인 방어 전략: SYN Cookies와 그 너머

TCP의 구조적 한계를 극복하기 위해 엔지니어들은 기발한 방어책을 고안해냈습니다.

4.1 SYN Cookies (가장 핵심적인 방어)

서버가 SYN을 받았을 때 백로그 큐에 자원을 미리 할당하지 않는 기술입니다. 대신 클라이언트의 정보를 암호화하여 TCP 시퀀스 번호에 담아 보냅니다. 클라이언트가 정상적인 ACK를 보낼 때 이 번호를 해독하여 그제야 자원을 할당합니다. 즉, ‘신뢰가 확인된 후’에만 자원을 쓰는 방식입니다.

4.2 백로그 큐 확장 및 타임아웃 단축

서버가 더 많은 연결 요청을 견딜 수 있도록 큐의 크기를 늘리고, 응답이 없는 Half-Open 연결을 더 빨리 폐기(Timeout)하도록 커널 파라미터를 조정합니다.

4.3 수신 측 필터링 및 IPS

방화벽이나 IPS(침입 방지 시스템)에서 동일 IP의 과도한 SYN 요청을 차단하거나, 프록시가 대신 3-Way Handshake를 수행하여 검증된 연결만 서버로 전달(TCP Intercept)합니다.

결론: 설계의 허점을 보완하는 운영의 묘미

SYN Flood 공격은 TCP의 신뢰성 보장이라는 장점이 보안 측면에서는 취약점이 될 수 있음을 보여주는 사례입니다. 프로토콜 자체를 바꾸기는 어렵지만, SYN Cookies와 같은 창의적인 알고리즘과 인프라 레벨의 방어 체계를 통해 우리는 이 고전적인 공격을 효과적으로 막아내고 있습니다. 네트워크 엔지니어라면 이러한 하부 레이어의 역학 관계를 이해함으로써 더욱 견고한 시스템 아키텍처를 설계할 수 있을 것입니다.

2026년 현재는 클라우드 기반 DDoS 방어 서비스(Cloudflare, AWS Shield 등)가 에지 레이어에서 이러한 SYN 패킷을 미리 걸러주기 때문에, 실제 오리진 서버까지 공격이 도달하는 경우는 드물지만 여전히 내부망 보안에서는 핵심 개념입니다.