SNORT 실습 예제



[SNORT 실습] 예제 3개

0. 실습 준비

테스트 환경 예시(꼭 이대로가 아니어도 됩니다):

  • OS : Ubuntu Linux (또는 다른 리눅스)

  • 권한 : sudo 사용 가능

  • SNORT 설치 (Ubuntu 기준 예시)

sudo apt update
sudo apt install snort -y

설치 도중 물어보는 네트워크 인터페이스는
일반적으로 eth0 또는 ens33 같은 이름이 들어갑니다.

※ 자신의 인터페이스 이름은 아래 명령으로 확인

ip addr

1. 예제 1 – 스니퍼 모드로 패킷 구경하기

목표: SNORT를 “단순 패킷 구경 도구”처럼 써보기

1-1. SNORT 실행

sudo snort -i eth0 -v
  • -i eth0 : eth0 인터페이스에서 패킷을 봄

  • -v : 패킷 헤더를 화면에 출력

1-2. 다른 터미널에서 트래픽 만들기

같은 머신에서 단순히 ping만 쳐도 됩니다.

ping -c 3 8.8.8.8

다시 SNORT가 돌아가는 터미널을 보면
ICMP 패킷 정보가 쭉 출력되는 걸 볼 수 있어요.

👉 정보보안기사 포인트
SNORT의 동작 모드

  • 스니퍼(sniffer) 모드

  • 로거(logger) 모드

  • NIDS(침입탐지) 모드
    를 구분하는 문제가 자주 나옵니다.
    지금 한 건 스니퍼 모드 예시라고 기억해 두면 좋아요.


2. 예제 2 – “PING 탐지” 간단 규칙 만들어 보기

목표: 직접 규칙(rule)을 만들어서, PING(ICMP)을 감지해 보기

2-1. 나만의 룰 파일 만들기

홈 디렉터리에서 myrules.rules 파일을 만듭니다.

cd ~
nano myrules.rules

아래 내용을 그대로 붙여 넣고 저장하세요.

alert icmp any any -> any any (msg:"ICMP PING DETECTED"; sid:1000001; rev:1;)
  • alert : 경고(alert)를 발생시키는 동작

  • icmp : ICMP 패킷(주로 ping)에 대해

  • any any -> any any : 출발지/목적지 IP, 포트 모두 상관 없음

  • msg:"..." : 화면에 찍힐 메시지

  • sid:1000001 : 룰 고유 번호

  • rev:1 : 룰 버전

2-2. 이 룰로 SNORT 실행

sudo snort -i eth0 -A console -q -c ~/myrules.rules
  • -A console : 경고를 콘솔에 출력

  • -q : 불필요한 배너 메시지 생략

  • -c : 사용할 룰 파일 지정

2-3. 다시 ping 보내기

다른 터미널에서:

ping -c 2 8.8.8.8

SNORT 터미널에 아래와 비슷한 메시지가 나오면 성공입니다.

[**] [1:1000001:1] ICMP PING DETECTED [**]

👉 정보보안기사 포인트
SNORT 룰의 기본 구조
동작(action) 프로토콜 출발지IP 출발지포트 -> 목적지IP 목적지포트 (옵션)
를 정확히 외워 두면 시험에서 룰 관련 문제가 나와도 당황하지 않습니다.


3. 예제 3 – HTTP 요청에서 특정 키워드 탐지하기

목표: 웹 요청 중에 admin 이라는 단어가 들어가면 경고 발생

3-1. 룰 추가하기

아까 만들었던 myrules.rules를 다시 엽니다.

nano ~/myrules.rules

기존 ICMP 룰 아래에 한 줄 더 추가합니다.

alert icmp any any -> any any (msg:"ICMP PING DETECTED"; sid:1000001; rev:1;)
alert tcp any any -> any 80 (msg:"HTTP admin keyword detected"; content:"admin"; sid:1000002; rev:1;)
  • tcp any any -> any 80 : 목적지 포트 80(HTTP)으로 가는 TCP 트래픽

  • content:"admin"; : 패킷 내용에 admin 문자열이 들어 있으면 탐지

3-2. SNORT 다시 실행

sudo snort -i eth0 -A console -q -c ~/myrules.rules

3-3. HTTP 요청 보내기

다른 터미널에서 curl을 이용해 간단히 요청을 보냅니다.

curl http://example.com/admin

SNORT 터미널에 이런 메시지가 출력됩니다.

[**] [1:1000002:1] HTTP admin keyword detected [**]

이제 “내가 만든 규칙으로 HTTP 트래픽을 감지했다!”는 걸 확인한 거예요 😊

👉 정보보안기사 포인트

  • HTTP 같은 애플리케이션 계층 공격/탐지를 위해
    SNORT는 **패킷 내용(content)**까지 검사할 수 있다.

  • 룰 옵션에서 content:"문자열"; 은 매우 자주 등장하는 키워드!


4. 마무리 정리

이번 글에서는 SNORT를 이용해

  1. 스니퍼 모드로 패킷을 구경하고,

  2. PING(ICMP)을 탐지하는 규칙을 직접 만들어 보고,

  3. HTTP 요청에서 특정 키워드(admin)를 찾는 규칙까지 작성해 보았습니다.

정보보안기사 시험에서는 SNORT 자체의 모든 옵션을 외우기보다는
“SNORT는 어떤 모드로 동작하는지, 룰 구조는 어떻게 생겼는지”를 이해하는 것이 중요합니다.
간단한 실습이라도 한 번 직접 해 보면, 이론만 볼 때보다 훨씬 오래 기억에 남습니다.

댓글 쓰기

새 댓글을 작성할 수 없습니다.*

다음 이전