ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TCP SYN Flooding 공격 이란?
    Engineer information security 2021. 1. 15. 03:28
    반응형

    TCP SYN Flooding 공격은 DoS 공격의 한 종류이며, TCP의 연결과정(3Way Handshake)에서 취약점을 이용하여 공격한다. 이 공격을 당하게 된다면 TCP의 연결 가능한 자원을 모두 소진하게 되고, 외부 사용자는 TCP 연결을 할 수가 없게 된다. 

    TCP SYN Flooding
    SYN Flooding Attack

     

     

    Backlog Queue는 서버가 접속자(Client or Hacker)의 연결 요청을 대기할 때, 요청 정보를 저장하는 공간이다.

    만약 정상 연결이 되었다면(ESTABLISHED), Backlog Queue 공간에서 연결 요청정보가 삭제되어 공간은 계속 유지된다.

    하지만 연결 과정이 중간에 정상적으로 진행되지 않는다면 정보가 계속 Backlog Queue에 남아 있게 되고

    계속 적으로 연결요청 대기 Queue가 쌓이면 Backlog Queue 공간을 가득 채워 다른 연결 요청 정보 저장이 불가하다.

     

     

     

    공격 과정 및 결과

    1. 공격자 서버에 연결 요청(SYN) 전송

    2. 서버는 연결 요청에 응답(SYN , ACK) 전송

    3. 공격자가 ACK를 보내지 않음, 서버는 Backlog Queue에 정보 저장 후 대기중

    4. 공격자가 서버에 다시 연결 요청(SYN) 전송, 반복

    5. 서버는 Backlog Queue에 공격자의 SYN요청을 대기, 계속 Queue가 쌓임

    6. 한정 적인 Backlog Queue에 공격자의 Queue가 가득 채워 가용성 침해.

    7. 정상 Client 접속 시 연결 요청(SYN)을 보내도 서버는 ESTABLISHED(연결 수립) 할 수 없음

     

     

    대응책

    1. Backlog Queue의 크기를 늘린다.

       완벽한 방어 방법은 아니지만, 임시로 접속 문제가 해결될 수 있다.

    예) Backlog Queue를 2048로 늘린다.

       (Linux) : Sysctl -w net.ipv4.tcp_max_syn_backlog=2048 

       (Unix) : ndd -set /dev/tcp tcp_conn_req_max_q0 2048

     

     

    2. SYN Cookie를 설정한다.

       이 설정을 하게 되면, 클라이언트로 부터 ACK를 받을 때까지 Backlog Queue에 연결 요청정보 저장 X

    (Linux) : Sysctl -w net.ipv4.tcp_syncookies=1

     

     

    3. 방화벽의 동일 클라이언트 IP에 대해 연결 요청(SYN) 임계치를 설정한다.

    4. TCP 연결 과정 대기시간을 줄인다.

    반응형

    댓글

Designed by Tistory.