📚 네트워크 · 패킷 분석 › 06. 방화벽 · IDS 기초 — 275편
이전 글: 274. 비정상 Firewall Event · 다음 글: 276. IPS란 무엇인가

1. 개념

IDS(Intrusion Detection System, 침입 탐지 시스템) 는 네트워크 트래픽이나 호스트 활동을 관찰해 공격·정책 위반으로 의심되는 행위를 탐지하고 Alert(경보)를 생성하는 시스템입니다. 센서의 대역 외 배치, SPAN·TAP 같은 장비 측 구조는 04 영역 156. IDS란 무엇인가와 188. IDS 동작 구조에서 다뤘습니다.

이 글부터 06 영역은 방화벽에서 IDS·IPS로 넘어갑니다. 방화벽이 "누가 어디로 가도 되는가"를 판단한다면, IDS는 "허용된 트래픽 안에 공격의 흔적이 있는가" 를 판단합니다.

비교FirewallIDS
판단 대상헤더·연결 상태헤더 + 페이로드 + 행위 패턴
결과물허용·차단 로그Alert
차단함하지 않음(탐지만)
배치트래픽 경로 위(인라인)보통 복사본 관찰(대역 외)
주된 오류잘못된 정책오탐·미탐

IDS가 차단하지 않는다는 점은 약점이자 장점입니다. 오탐이 있어도 서비스에 영향을 주지 않으므로, 넓고 민감하게 탐지하도록 운영할 수 있습니다. 차단 기능은 276. IPS란 무엇인가에서 다룹니다.


2. 동작 원리

네트워크 IDS가 패킷을 받아 Alert를 만들기까지의 흐름입니다.

SPAN / TAP 으로 복사된 패킷
   ↓
[패킷 디코딩] Ethernet → IP → TCP/UDP
   ↓
[흐름 추적·재조립] 같은 연결의 패킷을 묶고 TCP 스트림 재조립
   ↓
[프로토콜 해석] HTTP, DNS, TLS 등 응용 계층 필드 추출
   ↓
[탐지 엔진] 시그니처 비교 / 이상 행위 판단
   ↓ 일치
[Alert 생성] 규칙 ID, 메시지, 분류, 심각도, 5-tuple, 시각
   ↓
로그 파일 / SIEM 전송 → 관제자 분석

탐지 방식과 IDS 유형은 이어지는 글에서 각각 다룹니다.


3. 주요 특징

IDS의 탐지 결과는 실제 상황과 비교해 네 가지로 분류됩니다.

분류실제 공격IDS 판단의미
True Positive (정탐)있음Alert올바른 탐지
False Positive (오탐)없음Alert정상 트래픽을 공격으로 오인 (285. False Positive)
False Negative (미탐)있음없음공격을 놓침 (286. False Negative)
True Negative없음없음정상을 정상으로 판단
  • Alert는 "의심"이지 "사건"이 아닙니다. 규칙이 일치했다는 사실만 알려 줄 뿐, 공격이 성공했는지는 알려 주지 않습니다.
  • 암호화 트래픽의 한계: TLS로 암호화된 페이로드는 볼 수 없습니다. 대신 TLS 핸드셰이크 정보(SNI, 인증서 정보)나 JA3 같은 지문 기반 탐지를 활용합니다.
  • 보는 위치가 곧 보는 범위입니다. 센서가 연결되지 않은 구간의 트래픽은 탐지되지 않습니다.

4. 예시

Suricata가 남기는 Alert의 형식 예시입니다(값은 환경마다 다름, 규칙은 실습용 로컬 규칙 가정).

# 형식 예시 — fast.log (한 줄 요약형)
09/30/2026-16:02:11.482113  [**] [1:1000001:1] LOCAL ICMP echo request to HOME_NET [**] [Classification: Misc activity] [Priority: 3] {ICMP} 192.168.10.50:8 -> 192.168.10.20:0
# 형식 예시 — eve.json alert 이벤트 (주요 필드만)
{"timestamp":"2026-09-30T16:02:11.482113+0900","flow_id":1234567890,"event_type":"alert",
 "src_ip":"192.168.10.50","dest_ip":"192.168.10.20","proto":"ICMP",
 "alert":{"action":"allowed","signature_id":1000001,"rev":1,
          "signature":"LOCAL ICMP echo request to HOME_NET","category":"Misc activity","severity":3}}

실습 예시 — Suricata가 설치된 센서 VM에서 Alert를 확인합니다(Rocky/Ubuntu 공통, 패키지 기본 경로 기준).

sudo tail -f /var/log/suricata/fast.log
sudo jq -c 'select(.event_type=="alert") | [.timestamp, .src_ip, .dest_ip, .alert.signature]' /var/log/suricata/eve.json

alert.action이 allowed인 것은 IDS 모드에서 탐지만 하고 통과했다는 뜻입니다. IPS 모드에서 차단하면 blocked로 기록됩니다. flow_id는 같은 연결의 다른 이벤트(flow, http, dns 등)와 Alert를 연결하는 열쇠입니다.


5. 보안 관점

  • IDS는 방화벽이 허용한 경로 안의 공격을 보는 두 번째 눈입니다. 방화벽 허용 로그와 함께 봐야 의미가 완성됩니다.
  • 시그니처가 오래되면 새 공격을 놓칩니다(미탐). 규칙 업데이트와 로컬 규칙 관리가 필요합니다(192. IDS Rule).
  • 튜닝하지 않은 IDS는 오탐이 너무 많아 진짜 Alert가 묻히는 문제가 생깁니다. 탐지 성능만큼 관리 가능한 Alert 양이 중요합니다.
  • 센서 자체의 상태(패킷 드롭, 프로세스 중단)도 관제 대상입니다. 센서가 멈추면 Alert가 없어도 안전한 것이 아닙니다.

6. SOC 관점

관제자가 Alert를 받으면 확인할 질문

  • 어떤 규칙이 일치했고, 그 규칙은 무엇을 탐지하려는 규칙인가? 규칙 원문을 확인합니다.
  • 방향은 외부 → 내부인가, 내부 → 외부인가? 출발지·목적지의 자산 정보는?
  • 방화벽 로그에서 해당 연결은 허용됐는가? 세션 바이트 수는?
  • 대상 시스템이 그 공격에 취약한 환경인가(운영체제·서비스 버전)?
  • 같은 flow_id의 응용 계층 로그(HTTP 응답 코드 등)는 무엇을 보여 주는가?
Alert 수신 → 규칙 의미 확인 → 방향·자산 확인
   ↓
방화벽 로그: 연결 허용 여부 → 패킷·응용 로그: 실제 내용
   ↓
판단: 오탐 / 시도(실패) / 성공 가능성 → 대응 또는 종결

오탐 주의: 취약점 스캐너, 모니터링 도구, 개발·테스트 트래픽은 공격 시그니처와 자주 일치합니다. IDS Alert 분석 절차는 283. IDS Alert, 05 영역의 스캔 Alert 확인은 235. IDS에서 Scan Alert 확인에서 이어집니다.


7. 핵심 정리

  • IDS는 트래픽·호스트 활동에서 공격 의심 행위를 탐지해 Alert를 만드는 시스템이며, 차단하지 않습니다.
  • 방화벽이 허용한 트래픽 안의 공격을 보는 것이 IDS의 역할입니다.
  • Alert는 규칙 일치라는 의심 신호이며, 정탐·오탐·미탐을 구분하는 분석이 필요합니다.
  • 암호화 트래픽과 센서가 없는 구간은 IDS가 볼 수 없는 영역입니다.
  • Alert는 방화벽 로그·응용 로그·자산 정보와 연결해야 사건 여부를 판단할 수 있습니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글