SYN Flood, 또는 TCP SYN Flood는 DoS (Denial-of-Service) 또는 DDoS(Distributed Denial-of-Service) 공격의 일종으로, 버에 대량의 SYN request를 보내 열린 Connection으로 서버를 과부하시킵니다.
SYN Flood는 반개방 공격이라고도 하며, 보낸 SYN 요청에 대한 서버의 SYN-ACK에 응답하지 않고 SYN 요청만 마구잡이로 보내는 네트워크 계층 공격입니다. 결과적으로 많은 수의 열린 TCP Connection으로 인하여 서버의 리소스가 과도하게 소모되어 정상 트래픽의 처리를 어렵게 하면서 정상적인 새로운 Connection을 열 수 없으며, 이미 연결된 사용자의 Connection의 경우에도 서버가 올바르게 작동하기 어렵게 됩니다.
거의 모든 공개 웹사이트를 사용하는 조직들은 이러한 유형의 공격에 취약합니다. SYN Flood를 신속하게 탐지하고 해결하지 않으면 서버가 빠르게 과부하되어 서버 응답이 급격히 느려지고 신규 Connection이 생성되지 않습니다. 이로 인해 서버가 오프라인으로 전환되면서 정상적인 사용자에 대한 서비스가 거부되고, 애플리케이션 및 데이터에 대한 액세스 권한이 상실되거나 전자 상거래를 수행할 수 없게 됩니다. 그 결과, 비즈니스 연속성 상실, 중요 인프라 중단, 매출 손실 또는 평판 손상이 발생할 수 있습니다. 의료 산업과 같은 일부 조직에서는 데이터에 대한 액세스 권한 상실로 인해 생명이 위협받을 수도 있습니다.
F5 Labs의 조사에 따르면 SYN Flood는 매년 발생하는 DoS 공격 가운데 가장 일반적인 공격 중 하나입니다. 이 공격은 랜섬웨어 공격이나 데이터 도용 또는 악성코드 주입을 포함한 다른 유형의 공격과 함께 사용되거나 이러한 다른 공격들을 위한 연막용으로 사용될 수 있습니다.
모든 클라이언트-서버 통신은 표준화된 Three-way handshake에서 시작됩니다. 클라이언트는 SYN 패킷을 전송하고, 서버는 SYN-ACK로 응답하며, TCP connection이 연결됩니다. SYN Flood Attack에서 클라이언트는 엄청난 수의 SYN 요청을 보내고 의도적으로 서버의 SYN-ACK 패킷에 응답하지 않습니다.
이로 인해 서버는 클라이언트로부터의 응답을 기다리는 열린 Connection을 갖게 됩니다. 열린 Connection은 서버의 TCP Connection Table에서 관리되며, 결과적으로 서버의 모든 Connection Table을 채우게 되면서 클라이언트의 새로운 Connecrion의 생성을 차단하게 됩니다. 이로 인해 비즈니스 연속성 및 데이터 액세스 손실이 발생합니다.
F5 DDoS Protection 솔루션은 네트워크에 대한 공격으로 인해 서버나 앱 계층이 손상 또는 종료되지 않도록 하는 데 도움을 줍니다. 당사의 솔루션은 SYN Flood 공격이 발생하고 있음을 인식하고 보호되는 네트워크에 대하여 정상적인 Connection 액세스를 허용하면서 Connection Table을 보호하기 위한 완화 조치를 취할 수 있습니다. 이러한 유형의 방어를 통해 공격자는 공격자의 SYN 요청에 대한 응답을 받기때문에 공격이 작동한다고 생각하지만 유효한 Connection 요청만 Connection Table에 유지되기 때문에 Connection Table은 용량 한도에 도달하지 않습니다.