[세미나] Snort_ Network Intrusion Setection with Snort

 

개요

 

1. Snort's Specifications

1.1 요구 사항

스노트는 generic sniffing interface(libpcap)를 사용하기 때문에 대부분으 시스템에서 동작한다.

 

1.2 Bandwidth Consderations

100Mb : 빠른 속도로 일처리 가능

200 ~ 300Mb : 패킷 손실 발생

500Mb~ : 작동 하지 않음

 

1.3 Snort is an open source Application

 스노트는 오픈소스 이다.

일부 상용버젼도 있다 : silicon Defense & sourcefire

 

2. Detecting Suspicious Traffic via Signatures

 공격자 및 시스템을 탐지 해내는 가장 좋은 방법은 "시그네쳐 기반(signature-based) 탐지" 기법이다.

signature-based detection 기법은 악의적 네트워크 트래픽은 특정 패턴을 가지고 있다는 가정하에 있다.

이러한 특정 패턴을 이용하여서 signature를 생성 할수 있다.

 

alert icmp $EXTERNAL_NET any -> $HOME_NET any

(msg:"ICMP PING NMAP"; dsize: 0; itype:8; )

 외부네트워크에서 들어오는 모든(ANY) ICMP + 데이타 페이로드 부분이 비어 있음 + ICMP 타입필드가 8일 경우 경고 메시지 출력

 

 2.1 Detecting Suspicious Payloads

스노트는 패킷 해더 뿐만이 아니라..페이로드의 내용까지도 확인 할수가 있다.

 

 alert tcp $EXTERNAL_NET any -> $HOME_NET 139

(msg: "DOS SMBdie atack" : flags: A+; content:"|57724c65680042313342577a|";)

 외부 네트워크에서 내부 SMB서버로 들어 오는TCP패킷 중에서 페이로드에 "57724c65680042313342577a"가 들어 있을경우 경고 메시지 출력

 

 2.2 Detecting Specific Protocol Element

성능과 정확도를 위해 스노트 시그네쳐는 특정 프로토콜의 한 요소에 국한 시킬수도 있다.

 

alert tcp $EXTERNAL_NEW any ->$HTTP_SERVERS $HTTP_PORTS

(msg : "WEB-IIS ISAPI .ida attempt"; uricontent:".ida?"; nocase; dsize:>239; flags:A+;)

외부에서 내부의 웹서버로 접근하는 트래픽 중에서 URI에 ".ida"가 들어 있다면 경고 메시지를 출력

 

2.3 Extending Coverage with Custom Rules

자신의 네트워크의 특성에 맞는 룰이나 새로운 룰들을 정의 할수도 있다.

 

alert tcp 192.168.1.1 any -> $HOEM_NET 22

(msg: "suspicious host SSH traffic";)

특정 사용자(192.168.1.1)의 IP를 쓰는 악의적 사용자가 ssh로 접속을 시도 할경우 경고 메시지 출력

 

더 자세한 내용은 12장의 "Basic Rule Writing" 부분을 살펴 보기 바란다.

 

3. Detecting Suspicious Traffic via Heuristics

 

4. Gathering Intrusion Data

또다른 스노트의 주된 특징중 하나는 데이터 수집이다.

필요에 따라서 모든 페이로드를 로그화 할수 있따.

 

 4.1 Assessing Treats

공격 데이터의 페이로드를 분석하는 것은 해당 공격의 성격을 알아 내는데 중요한 역할을 한다.

이렇게 분석한 정보를 이용하여서 정확한 방어및 공격자의 정보를 얻어 낼수 있다.

 

4.2 Preprocessors

 

 

 

5. Alerting via output plug-ins

 

5.1 Aggrefating Data

 

 

5.2 Logging with the Unified format and Baryard

  1. Baryard설치시 스노트는 아웃풋 데이터를 빠른 속도로 Snort unified Format으로 디스크에 저장한다.
    1. "경고"들을 저장후 스노트 데몬은 다른 팻킷 관리에 초점을 맞춘다
  2. 바이너리 데이터는 Baryard에 위해 여러 포맷으로 파싱된후 DB 플러그인이 저장된 Baryard에게 보내진다.

 

고 밴드위스 상에서는 Baryard 사용은 필수 적이다.

 

5.3 Alerting

 

 

6. Prioritizing Alerts

 

6.1 No prioritization

 

6.2 Hard-coded Prioritization

 

6.3 Customizable Prioritization

 

Alert classification 도 아래의 룰을 이용해 정의 할수 있다.

config classification : trojan-activity, A Network Trojan was detected, 1

트로잔 공격을 1등급 경고로 지정

 

트로잔 공격인지 아닌의 classtype 지정은 아래와 같이 할수 있다.

alert tcp $EXTERNAL_NET 27374 -> $HOME_NET any

(msg : "BACKDOOR subseven 22"; flags: A+; content: "|0d0a5b52504c5d3030320d0a|"; classtype:trojan-activity;)

 

 

7. Distributed Snort Architecture

 

7.1 First Tier-The Sensor Tier

7.2 Second Tier- The Sserver Tier

 

 7.3 Third Tier - The Analyst's Console

 

8. Securing Snort

 

 9. Shortcoming