Suricata sudo /usr/bin/suricata –c /etc/suricata/suricata.yaml –I (이더넷 이름) –init-errors-fatal 명령어로 실행할 수 있다
Suricata 룰에 대한 설정은 sudo vi /etc/suricata/suricata.yaml 명령어로 수정할 수 있다
그리고 Suricata log를 확인하려면 cat /var/log/suricata/fast.log 명령어를 사용한다.

1.LAND Attack
인위적으로 송신지 IP 주소 및 Port를 목적지 (대상 웹서버) IP주소 및 Port와 동일하게 설정하여 트래픽을 전송하는 공격 source IP spoofing이라 한다송신지 IP/Port와 목적지 IP/Port가 동일하기 때문에 네트워크 장비의 부하를 유발하기도 한다최근에는 source IP destination IP IPS 등에서 비교하기 때문에 거의 효과가 없는 공격이다. LAND Attack은 다음 명령어로 공격한다.

hping3 –icmp [피해자IP] –d [data_size] –flood –a [피해자 IP]

어느 정도 시간이 지난 후에 Ctrl+C를 이용해 공격을 종료한다그리고 WireShark로 패킷에 대한 정보를 확인하여 보면 다음과 같은 결과가 나온다.




출발지와 목적지가 피해자 IP로 동일한 것으로 보아 IP가 변조되었다는 것을 확인할 수 있다따라서 다음과 같은 룰을 suricata에 추가하여 준다.

drop tcp any any -> any any (msg:”Land Attack”; sameip; sid:1000056;)

다시 공격을 시작하고 시간이 지난 후에 suricata와 공격 모두 종료하면 suricata에 다음과 같은 결과가 도출된다.




85.84%의 높은 드랍율로 피해를 최소화한 것을 확인할 수 있다.

2.Ping Of Death
Ping of Death는 인터넷 프로토콜 허용 범위인 65,536바이트 이상의 큰 패킷을 고의로 전송하는 서비스 거부(Dos: Denial of Service)공격 이다. 공격자의 식별 위장이 용이하고 인터넷 주소 하나만으로도 공격할 수 있다. 다음과 같은 명령어로 공격할 수 있다.

hping3 -–icmp [피해자IP] –d 65000 –flood

어느 정도 시간이 지난 뒤에 종료하고 이번에도 wireshark에서 패킷을 확인한다





시스템이 눈에 띄게 느려졌다는 것을 확인할 수 있었다패킷에 보면 데이터에 X문자열 (58)을 채워서 보냈다는 것을 확인할 수 있다따라서 다음과 같이 룰을 설정하여 준다.

drop ip any any -> $HOME_NET any (msg:”Ping of Death”; content:”|5858585858|”; threshold: type both, track by_src, count 10, seconds 5; sid:10000002; rev:001;)

룰을 설정하고 suricata를 실행 한 뒤에 다시 공격하고 어느 정도 시간이 지나면 종료한다.






 37.89%의 드랍율로 어느 정도 피해를 최소화하였다이 룰을 사용하지 않았을 때는 드랍율이 0%였다.

3.Nmap 포트 스캐닝
포트 스캐닝은 대상 컴퓨터의 TCP UDP 포트 상태를 알아보는 것으로 공격자가 정보수집을 할때 Target PC에 자주 하는 방법이다포트를 차단하는 것도 좋지만 스캔하는 경우를 탐지하여 관리자가 인식하는 경우도 나쁘지 않다.
Nmap Scan Type의 종류는 다음과 같다




SYN 포트스캔 명령어는 다음과 같다.

Namp –sS [피해자 IP]
위의 명령어로 공격을 하게 되면 공격자는 다음과 같이 열려있는 포트를 확인할 수 있다.






 22/TCP 포트가 오픈되어 있다는 걸 알 수 있게 되었다.
피해자의 wireshark를 확인하여 보면 다음과 같은 결과가 나온다.






SYN스캐닝이 진행된 것을 확인할 수 있다
포트가 열려있으면 SYN+ACK 포트가 닫혀있으면 RST+ACK이 오는 것을 확인할 수 있다다음과 같은 명령어로 탐지할 수 있다.

Alert tcp [피해자 광대역 라우터] any-> [피해자ip] any (msg:”SYN Scan Checkk”; flags:S threshold:type both, track by_src, count 5, seconds 10; sid:1000051;)






다음과 같이 192.168.129.130에서 공격한 것을 탐지했다
나머지 포트 스캔 공격도 비슷한 룰로 flags 부분을 수정하여 탐지할 수 있다.

4.SYN Flood 공격
SYN Flooding 공격이란 TCP 세션이 연결될 때의 취약성을 이용한 서버 공격이다접속을 요청하는 SYN 패킷을 지속적으로 보내어 대상 서버에 연결 테이블을 가득 차게 만든다결국 공격자는 피해자를 응답에 대해 전혀 수신하지 못하는 상태로 만든다다음 명령어로 공격할 수 있다공격을 할 때는 DDOS공격처럼 rand IP로 보내는 설정을 추가한다 .

hping3 –syn –S [피해자IP] --flood –rand-source
공격한 후 wireshark를 확인하면 다음과 같은 결과가 도출된다.



SYN Flood Attack이 랜덤한 IP 0번 포트에 공격해 온 것을 확인할 수 있다. Flag S이므로 반복적으로 오는 SYN패킷을 막아주어야 한다목적지는 피해자 IP로 같으므로 track by_dst 옵션을 사용한다따라서 다음과 같은 룰을 사용한다.

Drop tcp any any -> $HOME_NET any (flags : S; msg:”Syn Flood Attack!”; threshold: type both, track by_dst, count 3, seconds 1; sid:10000003;rev:001;)
룰을 저장하고 다시 공격해본다.





35%의 드랍율로 피해를 최소화하였다공격할 때마다 1%~35%까지의 랜덤한 드랍율을 보인다.



※본 연구는 지극히 주관적인 연구이고 결과와 과정이 정확하지 않을 수 있습니다.


+ Recent posts