Syn Cookie

IT위키
Syn Flooding 공격을 방지하기 위한 방어 기술

Syn Flooding[편집]

  • SYN 패킷을 다량으로 보내고 연결을 완료하지 않음으로써 Backlog Queue를 가득차게 만들어 정상적인 연결을 못하게 만든다.
  • 자세한 내용은 Syn Flooding 문서 참조

Syn Cookie[편집]

  • 클라이언트에서 연결요청이 있을 경우 SYN/ACK 패킷에 특별한 쿠키값을 담아 보낸다.
  • ACK이 올 경우 쿠키값을 검증하여 제대로 된 값인 경우 연결을 형성한다.
  • 연결 수립에 필요한 정보들을 Cookie를 통해 보냄으로써 SYN Backlog Queue를 사용하지 않는다.
  • 고의적으로 연결을 완료하지 않아 Syn Backlog Queue를 가득 채우는 공격을 방지할 수 있다.

설정법[편집]

리눅스에선 아래와 같은 명령으로 설정 가능하다.

# sysctl -w net.ipv4.tcp_syncookies=1

한계점[편집]

  • 큐 없이 연결 과정에 있음을 확인할 수 있는 부가 정보들을 쿠키에 담아 보내야 하므로 그에 대한 작업 부담이 있다.
  • 연결 요청이 많을 경우 쿠키 값을 만들어 보내고, 쿠키 값을 검증하는 과정만으로 가용성이 많이 떨어질 수 있다.