📄 2026.01.20 (Day 59) - Security Onion IDS/IPS 구축 및 Snort 룰 작성


1. 핵심 개념 정리

IDS/IPS 기초 개념

# 핵심 개념 설명 실무/보안 관점
1 IDS Intrusion Detection System, 침입 탐지 시스템 네트워크 또는 호스트 기반으로 비정상 활동을 탐지하여 알림
2 IPS Intrusion Prevention System, 침입 방지 시스템 IDS 기능에 더해 실시간으로 공격 패킷을 차단
3 Inline Mode IPS가 네트워크 경로 중간에 위치하여 트래픽 통제 차단 기능 수행 가능하나 장애 시 전체 네트워크 영향
4 Mirror Mode 트래픽 복사본을 받아 분석하는 수동 모니터링 방식 탐지만 가능하며 실시간 차단 불가
5 Snort 오픈소스 기반 네트워크 침입 탐지/방지 시스템 시그니처 기반 룰셋으로 알려진 공격 패턴 탐지

Security Onion 플랫폼

# 핵심 개념 설명 실무/보안 관점
6 Security Onion Snort/Suricata 기반 통합 네트워크 보안 모니터링 플랫폼 IDS, 전체 패킷 캡처, 로그 분석을 하나의 시스템에 통합
7 Sguil Security Onion의 이벤트 분석 GUI 도구 실시간 알림 확인 및 패킷 상세 분석 가능
8 Suricata Snort의 후속 IDS 엔진, 멀티스레드 지원 고성능 환경에서 Snort 대비 우수한 성능
9 tcpreplay PCAP 파일을 네트워크 인터페이스로 재생 과거 트래픽으로 IDS 룰 테스트 및 검증
10 Rule Update IDS 규칙 파일 변경 후 엔진 재시작 없이 적용 rule-update 명령으로 신규 룰 즉시 반영

웹 취약점 스캐닝

# 핵심 개념 설명 실무/보안 관점
11 OWASP ZAP Zed Attack Proxy, 웹 애플리케이션 취약점 스캐너 자동/수동 스캔으로 OWASP Top 10 취약점 진단
12 Spider 웹 사이트 구조를 크롤링하여 사이트 맵 생성 모든 페이지와 파라미터 자동 수집
13 Active Scan 실제 공격 페이로드를 전송하여 취약점 탐지 SQL Injection, XSS 등 능동적 진단
14 Passive Scan 트래픽 관찰만으로 취약점 힌트 탐지 서비스 영향 없이 안전하게 정보 수집
15 DVWA Damn Vulnerable Web Application, 의도적 취약점 실습 환경 웹 공격 실습 및 방어 기법 학습용

2. 실습 내용 정리

실습 1-1: Security Onion 설치 및 초기 설정

목표: VMware 기반 Security Onion 16 환경 구축

실습 환경:

  • VMware Workstation
  • Security Onion 16 ISO
  • CPU 4코어, RAM 8GB, Disk 100GB

실습 단계:

  1. VMware 가상머신 생성: Custom (advanced) > Linux / Ubuntu 64-bit > SecurityOnion16, 4코어, 8192MB, NAT, 100GB SCSI
  2. ISO 마운트: VM Settings > CD/DVD > Use ISO image file
  3. 설치 완료 후 네트워크 인터페이스 확인: ip addr show
  4. Sguil 접속 테스트: Security Onion 데스크톱에서 Sguil 실행 또는 https://[SecurityOnion_IP]
  5. IDS 정상 작동 테스트: curl http://testmynids.org/uid/index.html 후 Sguil에서 “GPL ATTACK_RESPONSE id check returned root” 알림 확인

확인 항목:

  • Security Onion 설치 완료 및 네트워크 정상 통신
  • Snort/Suricata 프로세스 실행 상태
  • Sguil GUI 정상 접속 및 이벤트 수신
  • testmynids.org 테스트 트래픽 탐지 여부

보안 인사이트:

  • IDS 구축 시 인라인 모드는 네트워크 장애 위험이 있어 미러 모드로 먼저 검증 필요
  • Security Onion은 Snort/Suricata 외에도 Bro, OSSEC 등 다양한 도구 통합
  • 초기 룰셋은 보수적으로 설정하여 오탐지 최소화 후 점진적 강화

실습 1-2: PCAP 파일을 이용한 IDS 룰 검증

목표: 과거 트래픽을 재생하여 IDS 탐지 능력 확인

실습 환경:

  • Security Onion 16
  • 2015-08-31-traffic-analysis-exercise.pcap

실습 단계:

  1. 네트워크 인터페이스 확인: ip addr show (예: ens33, ens160)
  2. PCAP 파일을 Security Onion으로 전송: scp 명령어 활용
  3. tcpreplay로 트래픽 재생: sudo tcpreplay –intf1=ens33 /tmp/2015-08-31-traffic-analysis-exercise.pcap (367초 소요)
  4. Sguil에서 탐지 이벤트 확인:
    • ET CURRENT_EVENTS Possible Evil Redirector Leading to EK
    • ET POLICY Possible External IP Lookup ipinfo.io
    • ET TROJAN AlphaCrypt CnC Beacon
    • ET POLICY Vulnerable Java Version 1.8.x Detected
    • ET TROJAN AlphacryptTeslaCrypt Ransomware CnC Beacon Response
  5. 특정 이벤트 패킷 상세 분석: Sguil에서 Event 우클릭 > Transcript 또는 Wireshark

IDS 이벤트 분석 동작 방식:

  1. tcpreplay가 PCAP 파일의 패킷을 네트워크 인터페이스로 전송
  2. Snort/Suricata가 실시간으로 패킷을 캡처하고 룰셋과 비교
  3. 매칭되는 시그니처 발견 시 Sguil 데이터베이스에 이벤트 기록
  4. Sguil GUI에서 이벤트 목록 표시 및 분석가 검토

발견 가능한 공격 패턴:

  • Evil Redirector: 악성 사이트로 리디렉션하는 중간 매개 공격
  • IP Lookup: 감염 후 외부 IP 확인하는 멀웨어 행위
  • AlphaCrypt/TeslaCrypt: 랜섬웨어 C2 통신 시그니처
  • Vulnerable Java: 취약한 Java 버전 사용으로 익스플로잇 노출
  • PE EXE Download: 실행 파일 다운로드로 악성코드 감염

방어 방법:

  • 웹 프록시에서 알려진 악성 도메인 차단
  • Java, Flash 등 취약한 플러그인 비활성화
  • 실행 파일 다운로드 시 샌드박스 분석
  • DNS 싱크홀로 C2 도메인 무력화

실습 2-1: OWASP ZAP을 이용한 DVWA 취약점 스캔

목표: 웹 애플리케이션 자동 취약점 진단 수행

실습 환경:

  • Windows 10 (ZAP 설치)
  • Metasploitable2 (DVWA 호스팅)

실습 단계:

  1. ZAP 실행 및 프록시 포트 8080 설정
  2. DVWA 로그인: http://[Metasploitable2_IP]/dvwa (admin / password)
  3. Spider를 이용한 사이트 맵 수집: Sites 탭 > 우클릭 > Attack > Spider
  4. Active Scan 실행: Sites 탭 > /dvwa/vulnerabilities 우클릭 > Attack > Active Scan
  5. 스캔 전 Metasploitable2 웹 로그 초기화: cd /var/log/apache2 > sudo rm -rf access.log > sudo /etc/init.d/apache2 restart
  6. 스캔 완료 후 Alerts 탭에서 High/Medium/Low 위험도별 취약점 확인
  7. FTP 또는 SCP로 access.log 파일 다운로드 후 Notepad++로 ZAP 공격 패턴 확인

ZAP Spider 크롤링 방식:

  1. 시작 URL에서 모든 링크, 폼, JavaScript 코드 파싱
  2. 발견된 URL을 큐에 추가하고 순차적으로 방문
  3. 각 페이지에서 다시 링크 추출하여 재귀적으로 탐색
  4. robots.txt, sitemap.xml 등 힌트 파일도 활용

발견 가능한 취약점:

  • Path Traversal: ../../../../etc/passwd 같은 경로 조작
  • SQL Injection: ’ OR 1=1– 같은 쿼리 변조
  • XSS: script alert(1) /script 같은 스크립트 삽입
  • Command Injection: ; cat /etc/passwd 같은 명령어 실행
  • File Upload: 웹쉘 업로드 가능성

방어 방법:

  • 입력값 화이트리스트 기반 검증
  • Prepared Statement로 SQL Injection 방지
  • HTML 엔티티 인코딩으로 XSS 차단
  • 파일 업로드 시 확장자 및 내용 검증
  • WAF 룰셋으로 알려진 공격 패턴 차단

실습 2-2: AI를 활용한 취약점 분석 보고서 작성

목표: ZAP 스캔 결과를 체계적인 보고서로 변환

실습 단계:

  1. ZAP 리포트 생성: Report > Generate HTML Report
  2. 리포트 파일을 AI에게 업로드
  3. AI 프롬프트: 발견된 취약점 요약(High/Medium/Low 분류), 기술적 상세 설명, 공격 시나리오 예시, 권장 조치사항, 위험도 평가
  4. 생성된 보고서 검토 및 수정

보안 인사이트:

  • ZAP 리포트는 기술적 정보 중심이므로 경영진용 요약 필요
  • 우선순위는 위험도뿐 아니라 비즈니스 영향도 고려
  • False Positive 검증을 위해 수동 재확인 필수

실습 3-1: Snort 룰 작성 기초

목표: 사용자 정의 탐지 규칙 작성 및 적용

실습 환경:

  • Security Onion 16
  • /etc/nsm/rules/local.rules

Snort 규칙 파일 경로:

  • /etc/nsm/rules/downloaded.rules (기본 제공 룰셋)
  • /etc/nsm/rules/local.rules (사용자 정의 룰)
  • /etc/nsm/templates/snort/snort.conf ($HOME_NET, $EXTERNAL_NET 등 변수 정의 위치)

기본 규칙 작성 예시:

  • alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:“Snort Test Rule”; content:"/etc/passwd"; nocase; sid:3202411200; rev:1;)

룰 적용:

  • sudo rule-update (룰 문법 검증 및 적용)
  • 오류 발생 시: sudo nsm –sensor –restart –only-snort-alert

Snort 룰 구조: Rule Header + Rule Options으로 구성

Rule Header:

  • Action: alert, log, pass, drop, reject, sdrop
  • Protocol: tcp, udp, icmp, ip
  • Source IP/Port: any, $EXTERNAL_NET, 192.168.1.0/24
  • Direction: -> (단방향), <> (양방향)
  • Destination IP/Port

Rule Options (괄호 안):

  • msg: 알림 메시지
  • content: 탐지할 패턴
  • sid: 규칙 ID (300만 이상 사용자 정의)
  • rev: 규칙 버전

탐지 가능한 공격:

  • content:"/etc/passwd" -> Path Traversal 시도
  • content:“union select” -> SQL Injection
  • content:“script” -> XSS 공격
  • pcre:"/cmd.exe/i" -> 명령어 실행

방어 방법:

  • 룰셋 주기적 업데이트 (ET Open, Snort VRT)
  • 커스텀 룰은 테스트 환경에서 검증 후 프로덕션 적용
  • sid 번호 체계적 관리 (예: 날짜+일련번호)
  • 룰 성능 모니터링 (CPU/메모리 사용량)

실습 3-2: PCRE 정규표현식을 활용한 고급 룰 작성

목표: 정규표현식으로 복잡한 패턴 탐지

PCRE 메타문자: \ ^ $ . | ? * + [ ] ( ) { }

수량자:

  • {n}: 정확히 n개
  • {n,}: n개 이상
  • {n,m}: n개 이상 m개 이하

클래스:

  • [abc]: a, b, c 중 하나

실전 PCRE 룰 예시:

예제 1: SQL Injection 탐지

  • alert tcp any any -> any 80 (msg:“SQL Injection Attempt - UNION SELECT”; pcre:"/union\s+select/Ui"; flow:to_server,established; sid:3202411201; rev:1;)

예제 2: 신용카드번호 유출 탐지 (숫자 4개 이상 연속)

  • alert tcp any any -> any any (msg:“Possible Credit Card Number Leak”; pcre:"/0-9{4,}/"; sid:3202411202; rev:1;)

예제 3: HTTP 응답 코드 탐지 (200 또는 404)

  • alert tcp any 80 -> any any (msg:“HTTP Response 200 or 404”; pcre:"/(200|404)/S"; flow:from_server,established; sid:3202411203; rev:1;)

예제 4: HTTP 헤더에서 select 문자열 탐지

  • alert tcp any any -> any 80 (msg:“SELECT in HTTP Header”; pcre:"/select/Hi"; flow:to_server,established; sid:3202411204; rev:1;)

PCRE 패턴 매칭 과정:

  1. 정규표현식 엔진이 패킷 페이로드를 처음부터 스캔
  2. 정규표현식 패턴과 일치하는 문자열 탐색
  3. 수량자, 클래스 조건을 모두 만족하는지 검증
  4. 매칭 성공 시 알림 생성

PCRE 옵션:

  • /i: 대소문자 구분 안 함
  • /U: URI 정규화 적용
  • /H: HTTP 헤더에서만 매칭
  • /P: HTTP 본문에서만 매칭
  • /S: HTTP 상태 코드에서 매칭

3. Snort 룰 문법 비교표

Action 타입 비교

항목 기능 로그 기록 패킷 차단 사용 시기/적용 방안
alert 알림 생성 O X 탐지만 필요한 경우, 대부분의 IDS 운영
log 로그만 기록 O X 통계 수집용, 오탐지 검증 단계
pass 무시 X X 화이트리스트, 특정 트래픽 예외 처리
drop 차단 및 기록 O O (Inline) IPS 모드, 명확한 악성 트래픽
reject 차단 + RST 전송 O O (Inline) TCP 공격 즉시 차단, ICMP unreachable 응답
sdrop 조용히 차단 X O (Inline) 스텔스 차단, 로그 부하 감소

IP 주소 지정 방법

문법 설명 예시 적용 방안
any 모든 IP any 프로토콜 전체 모니터링
특정 IP 단일 호스트 192.168.1.100/32 중요 서버 타겟팅
네트워크 대역 CIDR 표기 192.168.1.0/24 내부망 전체
! (부정) 제외 !192.168.1.0/24 특정 대역 제외
[ ] (목록) 비연속 IP [192.168.1.1, 10.0.0.1] 여러 서버 동시 지정
$변수 사전 정의 변수 $HOME_NET, $EXTERNAL_NET 설정 파일에서 중앙 관리

4. 심화 분석

IDS 이벤트 분석 - 실제 케이스

구분 Event 내용 시그니처 위협 분석 대응 방안
Event 3.1394 Possible Evil Redirector Leading to EK 64.20.39.203 -> 192.168.137.239:80 Exploit Kit으로 리디렉션하는 중간 매개 공격 출발지 IP 평판 조회 후 차단, 엔드포인트 검사
Event 3.1398 Possible External IP Lookup ipinfo.io 192.168.137.239 -> 54.164.11.220:80 멀웨어 감염 후 외부 IP 확인 행위 내부 호스트 격리, 메모리 포렌식
Event 3.1400 AlphaCrypt CnC Beacon 192.168.137.239 -> 72.55.148.19:80 랜섬웨어 C2 서버 통신 즉시 네트워크 차단, 파일 복구 불가
Event 3.1404 Vulnerable Java Version 1.8.x Detected 192.168.137.239 -> 23.60.139.27:80 취약한 Java 플러그인 사용 Java 업데이트 또는 브라우저 플러그인 차단
Event 3.1408 AlphacryptTeslaCrypt Ransomware CnC Response 72.55.148.19:80 -> 192.168.137.239 C2 서버로부터 암호화 키 수신 호스트 즉시 격리, 침해사고 대응팀 투입

랜섬웨어 감염 시나리오 재구성 (2015-08-31 기준)

1단계: 초기 침투 (05:23:49)

  • 사용자가 악성 광고 클릭 또는 피싱 이메일 링크 접속 -> Evil Redirector (64.20.39.203)로 리디렉션

2단계: Exploit Kit 전달 (05:24:03)

  • Java 취약점 익스플로잇 페이지 로드, 취약한 Java 1.8.0_60 버전 탐지

3단계: 외부 IP 확인 (05:24:03)

  • 멀웨어가 ipinfo.io에 접속하여 피해자 IP 확인
  • GET /ip HTTP/1.1 / Host: ipinfo.io

4단계: C2 통신 시작 (05:24:05)

  • AlphaCrypt/TeslaCrypt 랜섬웨어가 C2 서버에 접속
  • GET /wp-content/plugins/useful-banner-manager/misc.php?[긴 인코딩 문자열]

5단계: 암호화 키 수신 (05:34:06)

  • HTTP/1.1 200 OK 응답 수신, 암호화 키 전달

6단계: 파일 암호화 실행

  • 로컬 파일 시스템 스캔 및 암호화 시작, 랜섬 노트 생성 및 표시

탐지 가능 포인트:

  • Java 플러그인 실행 차단
  • ipinfo.io 접근 알림
  • 알려진 C2 도메인 DNS 싱크홀
  • 비정상적인 파일 I/O 활동 탐지

PCRE 정규표현식 연습 문제 풀이

  • pcre:"/a.a/" -> 정답: aTa (. 은 임의의 한 문자)
  • pcre:"/(one|two) apple/" -> 정답: one apple (| 는 OR 연산)
  • pcre:"/boan?/" -> 정답: boan, boa (? 는 0회 또는 1회)
  • pcre:"/project/" -> 정답: project, prject ( 는 0회 이상)
  • pcre:"/hello+world/" -> 정답: helloworld (+ 는 1회 이상)
  • pcre:"/A-Z{3}/" -> 정답: ABC (대문자 3개 연속)
  • 숫자 9가 4개 이상: pcre:"/9{4,}/"
  • pcre:"/bo{2,4}an/" -> 정답: booan (o가 2~4개)
  • pcre:"/union/Ui" -> 대소문자 무시로 모두 매칭
  • 200 또는 404 응답 코드: pcre:"/(200|404)/S"
  • 요청 헤더에서 select: pcre:"/select/Hi"

5. 실무/보안 적용

SOC 분석가 관점 - IDS 이벤트 대응 포인트

단계/유형 탐지 포인트 로그 예시 대응 방안
초기 탐지 IDS 알림 발생, 이벤트 심각도 확인, 출발지/목적지 IP 식별 ET TROJAN AlphaCrypt CnC Beacon, Src: 192.168.137.239, Dst: 72.55.148.19:80 이벤트 상세 정보 확인, Wireshark로 패킷 분석, 위협 인텔리전스 조회 (VirusTotal, AbuseIPDB)
영향 범위 파악 동일 출발지 IP의 다른 이벤트, 시간대별 활동 패턴, 내부 전파 여부 192.168.137.239 -> Multiple External IPs, Time: 05:23~05:35 해당 호스트 네트워크 격리, 동일 세그먼트 다른 호스트 점검, 공격 타임라인 재구성
침해 확인 C2 응답 성공 여부, 악성 파일 다운로드, 추가 악성 행위 HTTP/1.1 200 OK, Content: —!!!INSERTED!!!—, PE EXE Download Detected 호스트 즉시 차단, 포렌식 이미징, KISA 침해사고 신고 준비

Snort 룰 작성 베스트 프랙티스

기본 구조 템플릿:

  • alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (msg:"[카테고리] 공격명 및 설명"; flow:to_server,established; content:“악성패턴”; nocase; http_uri; pcre:"/정규표현식/Ui"; classtype:trojan-activity; sid:3YYYYMMDD##; rev:1; reference:url,참고자료;)

성능 최적화 팁:

  • content를 먼저 매칭 후 pcre 실행 (빠른 필터링)
  • offset, depth로 탐색 범위 제한
  • flow 옵션으로 불필요한 패킷 사전 필터링

IDS/IPS 운영 체크리스트

룰셋 관리:

  • 일일 룰셋 업데이트 (ET Open, Snort VRT)
  • 커스텀 룰 테스트 환경 검증 후 프로덕션 적용
  • 주간 오탐지 룰 검토 및 튜닝
  • 월간 룰 히트율 분석 및 불필요 룰 제거

성능 모니터링:

  • CPU/메모리 사용률 임계치 설정
  • 패킷 드롭율 1% 이하 유지
  • 평균 패킷 처리 지연 시간 측정
  • 디스크 I/O 병목 현상 점검

6. 배운 점 및 인사이트

새로 알게 된 점

  • Security Onion의 통합 플랫폼 강점: Snort, Suricata, Bro, OSSEC, Sguil 등을 하나의 시스템에서 운영하여 침해사고 분석 효율 극대화
  • tcpreplay의 실전 활용성: 과거 공격 트래픽을 재생하여 IDS 룰 검증 및 신규 분석가 교육에 활용 가능
  • OWASP ZAP의 체계적 접근: Spider로 사이트 맵 수집 후 Active Scan으로 점진적 진단하는 방법론이 효과적
  • Snort 룰의 계층적 구조: content로 1차 필터링 후 pcre로 정밀 탐지하는 방식이 성능과 정확도 균형
  • PCRE 정규표현식의 강력함: 복잡한 공격 패턴도 한 줄의 정규표현식으로 탐지 가능하지만 성능 부하 주의 필요

이전 학습과의 연결고리

  • Wireshark 패킷 분석 확장: 수동 분석을 넘어 IDS로 자동화된 대규모 트래픽 모니터링 체계 구축
  • 웹쉘 공격 탐지 연계: 이전에 학습한 웹쉘 업로드 패턴을 Snort 룰로 작성하여 실시간 탐지
  • ISMS-P 기술적 보호조치 실현: IDS/IPS는 침입 탐지 및 대응 요구사항의 핵심 기술적 통제 수단
  • OWASP Top 10 자동 검증: ZAP 스캔으로 학습한 취약점을 실제 환경에서 자동 진단

실무 적용 아이디어

보안 전문가 관점:

  • 계층적 탐지 체계 구축: Snort(시그니처) + Suricata(프로토콜 이상) + SIEM(상관분석)으로 다층 방어
  • 위협 헌팅 워크플로우: IDS 이벤트를 트리거로 Wireshark 상세 분석 -> 위협 인텔리전스 조회 -> 커스텀 룰 작성
  • False Positive 관리 프로세스: 오탐지 룰은 별도 파일로 분리하고, suppression list로 관리하여 알림 피로도 감소

보안 컨설턴트 관점:

  • 취약점 진단 자동화: ZAP을 CI/CD 파이프라인에 통합하여 코드 배포 전 자동 스캔
  • 맞춤형 룰셋 개발: 고객 환경의 특수한 공격 벡터를 Snort 룰로 제작하여 제공

7. Quick Reference

Snort 룰 관리 명령어

  • sudo nano /etc/nsm/rules/local.rules (룰 파일 편집)
  • sudo rule-update (룰 적용, 문법 검증 포함)
  • sudo nsm –sensor –restart –only-snort-alert (Snort 재시작)
  • sudo nsm –sensor –restart (전체 재시작)
  • ps aux | grep snort (Snort 프로세스 확인)
  • snort -c /etc/nsm/templates/snort/snort.conf -T (룰 문법 수동 검증)
  • snort -c /etc/nsm/templates/snort/snort.conf -r test.pcap -A console (PCAP 파일로 룰 테스트)

Snort 룰 옵션 요약표

구분 항목 핵심 키워드 주요 내용 적용 방법
일반 msg 메시지 알림 이벤트 제목 msg:“공격 설명”;
sid 시그니처 ID 규칙 고유 번호 (300만 이상) sid:3202501201;
rev 버전 규칙 수정 버전 rev:1;
classtype 분류 공격 유형 분류 classtype:trojan-activity;
흐름 flow 방향/상태 트래픽 방향 및 세션 상태 flow:to_server,established;
페이로드 content 문자열 탐지할 패턴 content:“악성문자열”;
nocase 대소문자 대소문자 무시 nocase;
offset 시작 위치 탐색 시작 바이트 offset:5;
depth 탐색 깊이 탐색 범위 제한 depth:20;
pcre 정규표현식 PCRE 패턴 매칭 pcre:"/pattern/Ui";
HTTP http_method HTTP 메소드 GET, POST 등 http_method;
http_uri URI 요청 경로 http_uri;
http_header 헤더 요청/응답 헤더 http_header;
http_client_body 요청 본문 POST 데이터 http_client_body;

PCRE 정규표현식 치트시트

메타문자:

  • : 이스케이프, ^: 문자열 시작, $: 문자열 끝, .: 임의의 한 문자
  • |: OR 연산, ?: 0회 또는 1회, *: 0회 이상, +: 1회 이상

수량자:

  • {n}: 정확히 n개, {n,}: n개 이상, {n,m}: n개 이상 m개 이하

클래스:

  • [abc]: a, b, c 중 하나, a-z: 소문자, A-Z: 대문자, 0-9: 숫자, 1: 숫자 아닌 것

PCRE 옵션:

  • /i: 대소문자 무시, /U: URI 정규화, /H: HTTP 헤더에서 매칭, /P: HTTP 본문에서 매칭, /S: HTTP 상태 코드에서 매칭

8. 트러블슈팅

문제 원인 해결 방법
rule-update 실패 “Syntax Error” 룰 문법 오류, 괄호 누락, 세미콜론 빠짐 오류 메시지에서 라인 번호 확인, 괄호 쌍 점검, 각 옵션 끝에 세미콜론 확인, snort -T 로 상세 오류 확인
Sguil에서 이벤트가 안 보임 Snort 프로세스 중지, 네트워크 인터페이스 미설정, 룰 비활성화 ps aux 로 프로세스 확인, ip addr show 인터페이스 점검, nsm –sensor –restart
tcpreplay 실행 안 됨 인터페이스명 오류, 권한 부족, PCAP 파일 손상 ip addr 로 정확한 인터페이스명 확인, sudo 권한으로 실행, Wireshark로 PCAP 파일 정상 여부 검증
ZAP 스캔 시 타겟 서버 무응답 과도한 요청으로 서버 과부하, WAF 차단, 세션 타임아웃 Scan Policy에서 스레드 수 감소, 스캔 속도 조절(Slow 모드), 세션 쿠키 재설정

Today’s Insight:

IDS/IPS는 단순히 룰셋을 적용하는 것을 넘어, 지속적인 튜닝과 분석가의 전문성이 결합되어야 효과를 발휘한다는 것을 깨달았습니다. Security Onion처럼 여러 도구를 통합한 플랫폼은 침해사고 분석 시 Wireshark 수동 분석부터 Snort 자동 탐지까지 원스톱으로 처리할 수 있어 SOC 업무 효율이 극대화됩니다. PCRE 정규표현식은 강력하지만 복잡한 패턴은 CPU 부하를 유발하므로, content 옵션으로 1차 필터링 후 pcre로 정밀 탐지하는 계층적 접근이 실무에서 필수적입니다. 오늘 학습한 Snort 룰 작성 기법은 실제 SOC에서 Zero-Day 공격이나 조직 특화 위협을 탐지하는 맞춤형 시그니처 개발의 기초가 되었습니다.


  1. 숫자가 아닌 것 ↩︎