1. Snort
- 네트워크상의 실시간 트래픽 분석 및 패킷 로깅을 수행할 수 있는 오픈소스 네트워크 침입 탐지 시스템
2. 기능 및 동작 과정
2.1) 기능
패킷 스니퍼 | 네트워크 상 패킷 스니핑 |
패킷 로거 | 모니터링한 패킷 저장 및 로깅 |
네트워크 침입탐지 | 트래픽 분석 후 침입탐지 |
2.2) 동작과정
스니퍼 | 네트워크 패킷 수집 |
패킷 디코더 | 전처리기와 탐지 엔진이 파싱 할 수 있도록 정규화 |
전처리기 | 특정 행위가 발견된 패킷을 탐지 엔진으로 전송 |
경고/로깅 | 스노트 규칙에 매핑된 경우 경고 출력 및 기록 |
3. Rule
- 룰 헤더 부분과 룰 옵션 부분으로 구성
- Ex) alert tcp any any -> any any (msg:"Web Attack"; sid:10000002; rev:1)
룰 헤더 | 룰 옵션 | ||||||
Action | Protocol | Src IP | Src Port | Direction | Dst IP | Dst Port | Option |
탐지 후 행위 | 탐지 프로토콜 | Src IP | Src Port | 탐지 방향 | Dst IP | Dst Port | Option |
※ Rule은 /etc/snort/rules/local.rules에 추가한다.
※ 모든 구성하는 모든 요소가 참이어야 룰이 실행됨
※ 각 구성 요소들은 AND 연산을 수행하는 것으로 간주하며, 동시에 다양한 규칙에 대해서는 OR 연산을 수행하는 것으로 간주함.
3.1) Action
- 패킷 탐지 시 해당 패킷 처리 방법 명시
alert | 사용자가 설정한 규칙에 따라 경고 발생 및 로그 기록 |
log | 패킷에 대한 로그 기록 |
pass | 패킷을 무시 |
drop | 방화벽을 통해 패킷 차단 및 로그 기록(응닶 없이 차단) |
reject | 방화벽을 통해 패킷 차단 및 로그 기록(응답 후 차단) |
sdrop | drop 과 동일 하나 로그 없음 |
active | alert 발생 시키고 대응하는 dynamic rule을 활성화 복잡한 패킷이나 공격에 대해 적용 시 좀더 효과적인 탐지와 하나의 데이터에 대해서 다양한 검사 가능 |
dynamic | 처음에 비활성화 상태로 있다가 activate 액션에 의해 활성화 활성화 된 이후에는 log액션 규칙과 동일 |
3.2) Protocol
- 탐지할 프로토콜을 지정
- TCP, UDP, ICMP, IP 네 가지 프로토콜 지원하며 any로 지정 시 모든 프로토콜을 나타냄
- 하나의 룰에는 하나의 프로토콜 지정 가능
3.3) Src IP[Dst IP], Src Port[Dst Port]
- 출발지 IP, Port와 목적지 IP, Port 지정
- IP 주소 지정 시 any를 이용하여 모든 IP를 지정할 수 있으며, 특정 IP를 명시할 수 있음
192.168.100.0/24 | 192.168.100.0 ~ 192.168.100.255 |
192.168.100.2/32 | 192.168.100.2 특정 |
! | 특정 IP 혹은 대역을 제외 시킬 경우 |
[] | 단일 IP와 네트워크 대역 등 연속적이지 않은 IP 지정 |
$EXTERNAL_NET $HOME_NET |
효율적인 IP 명시를 위하여 변수 사용 가능 |
- Port 역시 특정 포트 혹은 포트 범위 지정 가능
포트번호 | 특정 포트 번호 |
포트번호:포트번호 | 포트번호 ~ 포트번호 |
포트번호: | 포트번호 이상 모든 포트 |
:포트번호 | 포트번호 이하 모든 포트 |
3.4) Direction
- 패킷의 방향성을 표시
- <-는 존재하지 않음
-> | 출발지 -> 목적지 |
<> | 양방향 지정 |
3.5) Option
- Option은 Snort의 핵심이며 편의성과 유연성을 결합
- 각 Option은 세미콜론(;)으로 구분하며, 콜론(:)으로 인수와 구분함
msg | 설정한 rule에 따라 패킷이 탐지될 경우 표현할 메시지 |
content | 패킷에서 검색할 문자 혹은 바이너리 패턴 바이너리 형식으로 지정할 경우 |90 90 90|와 같이 지정 |
nocase | 대소문자 구분하지 않고 content 검색 |
offset | 검색을 시작할 byte 명시 |
depth | offset 부터 검색할 byte 명시 |
distance | 최초 content 매치 이후 지정한 byte 만큼 이동 후 content 탐색 |
within | 최초 content 매치 이후 distance 부터 검색할 byte 지정 |
- 스노트에 관하여 잘 정리된 블로그
'도구 > 네트워크' 카테고리의 다른 글
버프슈트(Burp Suite) #2 (0) | 2022.09.26 |
---|---|
버프슈트(Burp Suite) (1) | 2022.09.26 |
쇼단(Shodan) (1) | 2022.09.25 |
와이어샤크(WireShark) (0) | 2022.07.26 |