리눅스 : 서버 운영 기본

TCP SYN Flooding Attack

gyuho.kim 2018. 8. 1. 15:57

TCP Syn Flooding


TCP 프로토콜의 3-way handshaking 을 이용한 공격 기법으로 ,  공격 대상에게 지속적으로 SYN 패킷을 전송하여 대상 시스템의 Backlog queue에 오버플로우를 발생시키는 공격입니다.


※ 공격 수행


  /실습 환경

 Address

OS 

 version

 공격자 시스템 정보

192.168.1.130

 Kali Linux

Debian 4.16.16-2kali2 x86_64 

피해 시스템 정보 

 192.168.1.131

Metasploitable2 

metasploitable 2.6.24-16-server 


1. 공격자 시스템에서 hpin3 를 이용해 TCP SYN FLOODING 공격을 수행한다.

# hping3 ①-S ②--flood  ③192.168.1.131

① -S : 패킷에 SYN 플래그를 설정한다. ( --syn)

② --flood :  전송가능한 가장 빠른 속도로 대량의 패킷을 전송함

③  Target IP : 공격을 수행할 대상의 IP 주소



2. 와이어샤크를 통해 SYN FLOODING 공격을 수행하는 모습을 캡쳐한 화면으로, 공격자인 192.168.1.130 으로 부터 피해자 시스템인 192.168.1.131 으로 무수히 많은 SYN 패킷이 전송되고 있는 것을 볼 수 있다.


※ 대응방법

① 백로그 큐를 늘린다.

- #sysctl -w net.ipv4.tcp_max_syn_backlog = 2048

- /etc/sysctl.conf  파일에 직접 작성해도 동일하다.

sysctl

버전 번호나 보안 설정 같은 시스템의 커널 속성을 읽고 수정하는 몇몇 유닉스 계역 OS의 기능.

② 외부에서 내부 네트워크로 들어오는 IP 대역 차단 ( 방화벽 필터링 )

③ TCP Timeout 시간 최소로 설정

④ 1초당 전송 패킷 제한 

- /etc/sysctl.conf 파일에 inet.ipv4.tcp = 1  작성