[네트워크 보안] Snort rule 비정상 패킷 탐지

비전·2024년 3월 17일

네트워크 보안

목록 보기
6/14
post-thumbnail

비정상 패킷이란?

비정상 패킷은 네트워크에서 전송되는 데이터 패킷 중에서 예상되는 규칙과 일치하지 않거나, 네트워크 트래픽에서 이상한 패턴을 가진 패킷을 의미한다. 이는 네트워크 보안에 중요한 요소이며 비정상 패킷을 감지하고, 분석함으로써 네트워크 보안을 강화할 수 있습니다.

비정상 패킷을 공격에 사용하는 이유

비정상 패킷은 공격자가 네트워크에 악의적인 행동을 할 때 사용될 수 있다. 일부 공격들은 비정상 패킷을 이용하여 네트워크 서비스를 중단시키거나, 민감한 정보를 탈취하려는 목적으로 사용될 수 있다. 예를들어 DoS(서비스 거부) 공격은 비정상 패킷을 이용하여 네트워크나 시스템에 과부하를 주어 서비스를 마비시키는 공격이다.

비정상 패킷 IP 탐지

1. 사설 IP Snort rule

사설 IP 주소는 일반적으로 내부 네트워크에서 사용되며, 인터넷에 직접 연결되지 않는다. 따라서 인터넷 구간에서 사설 IP 주소를 사용하는 패킷을 감지할 경우, 이는 네트워크 상에서 이상한 행동을 나타낼 수 있다.
아래는 사설 IP 주소를 감지하는 Snort 규칙의 예시이다.

사설 IP 스노트 룰

alert udp $HOME_NET any -> $EXTERNAL_NET 1024: (msg:"Possible Private IP Address Detected"; content:"|C0 A8|";)
  • alert : 알림을 발생시키는 규칙 타입을 나타낸다.
  • udp : UDP 프로토콜을 사용하는 패킷을 대상으로 한다.
  • $HOME_NET : 내부 네트워크의 IP 대역을 나타내는 변수이다.
  • any : 내부 네트워크의 모든 포트를 대상으로 한다.
  • $EXTERNAL_NET : 외부 네트워크의 IP 대역을 나타내는 변수이다.
  • 1024 : 출발지 포트가 1024 이상인 패킷을 대상으로 한다. (시작 포트와 끝 포트를 지정하여 범위를 설정할 수 있다.)
  • content:"|C0 A8|; : 패킷 내에 'C0 A8'(16진수로 사설 IP 주소의 첫번째 두바이트인 192.168)를 포함하는 패킷을 감지한다.

이 규칙들은 내부 네트워크에서 외부 네트워크로 향하는 UDP 패킷 중에서 사설 IP 주소를 포함하는 패킷을 감지한다.

2. 출발지와 목적지가 동일한 IP (Land Attack)

출발지와 목적지 IP 주소가 동일한 패킷은 일반적인 통신 패턴이 아니다.
비정상 패턴으로 간주될 수 있다. 이러한 패킷은 Land Attack이라고도 불릴 수 있는데, 공격자가 자신의 IP 주소를 출발지와 목적지로 설정하여 네트워크 장비를 혼란시키거나, DoS 공격을 수행할 때 사용될 수 있다.

아래는 출발지와 목적지 IP 주소가 동일한 패킷을 감지하는 Snort 규칙의 예시이다.

Land Attack 스노트 룰

alert ip any any -> any any (msg:"Nand Attack Detected"; ip_src:[$HOME_NET]; ip_dst:[$HOME_NET];)
  • alert : 알림을 발생시키는 규칙 타입
  • ip : ip프로토콜을 사용하는 패킷을 대상으로 함
  • any : 모든 IP 주소를 대상으로 한다.
  • msg:"Nad Attack Detected" : 알림 메시지 내용
  • ip_src:[$HOME_NET]; : 출발지 IP 주소가 내부 네트워크 대역인 패킷을 대상으로 한다.
  • ip_dst:[$HOME_NET]; : 목적지 IP 주소가 내부 네트워크 대역인 패킷을 대상으로 한다.

이 규칙은 내부 네트워크에서 출발지와 목적지 IP 주소가 동일한 모든 IP 패킷을 감지한다.

3. ICMP Ping Sweep Detection (ICMP 핑 스위프트 감지)

ICMP 핑 스위프트는 네트워크에서 여러 대상 호스트에 대한 ICMP 핑 요청을 전송하는 것을 의미한다.
이는 네트워크 탐지 및 호스트의 상태를 확인하기 위한 용도로 사용되기도 하지만, 공격자가 대상 네트워크의 호스트를 스캔하여 취약점을 찾기 위해 사용될 수도 있다. 따리서 ICMP 핑 스위프트를 감지하여 이상한 동작을 탐지하는 규칙은 아래와 같다.

ICMP Ping Sweep Detection 스노트 룰

alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"ICMP Ping Sweep Detected"; dsize:0; itype:8;)
  • alert : 알림을 발생시키는 규칙 타입을 나타낸다.
  • icmp : ICMP 프로토콜을 사용하는 패킷을 대상으로 한다.
  • $EXTERNAL_NET : 외부 네트워크의 IP 대역을 나타내는 변수이다.
  • any : 모든 IP 주소를 대상으로 한다.
  • msg:"ICMP Ping Sweep Detectd"; : 알림 메시지 내용
  • dsize:0; 데이터 크기가 0인 ICMP 패킷을 대상으로 한다. 핑 요청은 일반적으로 데이터 크기가 0이다.

이 규칙은 외부 네트워크에서 내부 네트워크로 들어오는 데이터 크기가 0인 ICMP 핑 요청을 감지한다.
이는 ICMP 핑 스위프트를 감지하여 네트워크에서의 이상한 동작을 탐지할 수 있다.

4. Ping of Death Detection (핑 오브 데스 감지)

Ping of Death(DoS 공격의 한 형태)는 ICMP 패킷을 조작하여 대상 시스템을 마비시키는 공격이다.
이공격은 합법적인 ICMP 핑 패킷을 조작하여 너무 큰 크기의 패킷을 생성하여 공격 대상 시스템을 마비시키는 것을 의미한다.

Ping of Death Detection 스노트 룰

alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"Ping of Death Detected"; dsize:>996; itype:8;)
  • alert : 알림을 발생시키는 규칙 타입을 나타낸다.
  • icmp : ICMP 프로토콜을 사용하는 패킷을 대상으로 한다.
  • $EXERNAL_NET : 외부 네트워크 IP 대역을 나타내는 변수
  • any : 모든 IP 주소를 대상
  • msg : 메시지 내용
  • dsize:>996 : 데이터 크기가 996 바이트를 초과하는 ICMP 패킷을 대상으로 한다. ping of Death는 보통 996 바이트를 초과하는 패킷을 생성
  • itype:8 : ICMP 타입이 8인(핑 요청) 패킷을 대상으로 한다.

이 규칙은 외부 네트워크에서 내부 네트워크로 들어오는 데이터 크기가 996 바이트를 초과하는 ICMP 핑 요청을 감지하여 퐁 오브 데스 공격을 탐지합니다.

5. TCP SYN Flood Detetion (TCP SYN 플러드 감지)

TCP SYN Flood는 네트워크 공격의 한 형태로, 공격자가 대량의 SYN 패킷을 보내서 서버가 SYN-ACK를 응답하고 ACK를 기다리는 상태로 만들어 서버를 마비시키는 공격이다. 이를 감지하기 위한 Snort 규칙은 특정 시간 동안 특정 소스 IP 주소에서 SYN 패킷이 일정 횟수 이상 발생하는 경우를 탐지한다.

TCP SYN Flood Detetion 스노트 룰

alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"TCP SYN Flood Detected"; flags:S; threshold: type threshold, track by_src, count 10, seconds 60;)
  • alert: 알림을 발생시키는 규칙 타입을 나타낸다.
  • tcp: TCP 프로토콜을 사용하는 패킷을 대상
  • $EXTERNAL_NET: 외부 네트워크의 IP 대역을 나타내는 변수
  • any: 모든 IP 주소를 대상
  • msg:"TCP SYN Flood Detected";: 알림 메시지
  • flags:S;: SYN 플래그가 설정된 TCP 패킷을 대상으로 한다. SYN Flood는 공격자가 대량의 SYN 패킷을 보내서 서버가 SYN-ACK를 응답하고 ACK를 기다리는 상태로 만들어 서버를 마비시키는 공격이다.
  • threshold: type threshold, track by_src, count 10, seconds 60;: 특정 시간 동안 특정 소스 IP 주소에서 SYN 패킷이 일정 횟수 이상 발생하는 경우를 탐지한다. 이 규칙은 소스 IP 주소별로 10개 이상의 SYN 패킷이 60초 내에 발생하는 경우를 감지한다.

이 규칙은 외부 네트워크에서 내부 네트워크로 들어오는 SYN 플러드 공격을 탐지합니다. 공격자가 대량의 SYN 패킷을 보내고, 서버가 SYN-ACK를 응답하고 ACK를 기다리는 상태로 만들어 서버를 마비시키려는 시도를 감지한다.

profile
아는 만큼 보인다

0개의 댓글