SYN 플러드

섬네일|SYN 플러드. 공격자(맬러리(Mallory), 녹색)는 여러 패킷을 전송하지만 서버로 "ACK"를 보내지 않는다. 따라서 연결이 반쯤 열려 서버 리소스를 소모한다. 합법적인 사용자 앨리스(보라색)가 연결을 시도하지만 서버가 연결을 거부하여 서비스 거부(DoS)가 발생한다.
SYN 플러드(SYN flood)는 데이터 통신에 대한 서비스 거부 공격의 한 형태로, 공격자가 연결을 완료하지 않고 서버에 빠르게 연결을 시작하는 공격이다. 서버는 연결이 완전히 열리지 않은 연결을 기다리는 데 리소스를 소모해야 하며, 이로 인해 시스템이 정상적인 트래픽에 응답하지 않을 정도로 많은 리소스가 소모될 수 있다.New York's Panix Service Is Crippled by Hacker Attack, New York Times, September 14, 1996

공격자가 전송하는 패킷은 SYN 패킷으로, 연결 설정에 사용되는 TCP 3방향 핸드셰이크의 일부이다.

 기술 세부 정보 
클라이언트가 서버에 TCP 연결을 시도할 때, 클라이언트와 서버는 일반적으로 다음과 같은 일련의 메시지를 교환한다.

 클라이언트는 서버에 SYN(동기화) 메시지를 전송하여 연결을 요청한다.
 서버는 클라이언트에게 SYN-ACK를 전송하여 이 요청을 확인한다.
 클라이언트는 ACK로 응답하고 연결이 설정된다.

이를 TCP 3방향 핸드셰이크라고 하며, TCP 프로토콜을 사용하여 설정되는 모든 연결의 기반이 된다.

SYN 플러딩 공격은 서버에 예상된 ACK 코드를 보내지 않는 방식으로 작동한다. 악의적인 클라이언트는 단순히 예상된 ACK를 전송하지 않거나, SYN의 소스 IP 주소를 스푸핑하여 서버가 위조된 IP 주소로 SYN-ACK를 전송하도록 만들 수 있다. 위조된 IP 주소는 SYN을 전송하지 않았다는 것을 "알고" 있기 때문에 ACK를 전송하지 않는다.

서버는 ACK 수신을 잠시 기다리게 되는데, 단순한 네트워크 혼잡이 ACK 누락의 원인일 수도 있기 때문이다. 그러나 공격이 발생하면 악의적인 클라이언트가 생성한 반쯤 열린 연결은 서버의 리소스를 묶어 결국 서버의 가용 리소스를 초과할 수 있다. 이 시점에서 서버는 정상 클라이언트 여부와 관계없이 모든 클라이언트에 연결할 수 없게 된다. 이는 사실상 정상 클라이언트에 대한 서비스를 거부하는 것이다. 일부 시스템은 이러한 방식으로 다른 운영 체제 기능의 리소스가 고갈되면 오작동하거나 충돌할 수도 있다.

 같이 보기 
 스머프 공격
 인터넷 제어 메시지 프로토콜
 IP 주소 스푸핑
 핑 플러드
 스머프 공격

 각주 

 외부 링크 
 Official CERT advisory on SYN Attacks

분류:서비스 거부 공격