📚 네트워크 · 패킷 분석 › 06. 방화벽 · IDS 기초 — 285편
이전 글: 284. IPS Alert · 다음 글: 286. False Negative
False Positive(오탐) 는 실제로는 공격이나 정책 위반이 아닌 트래픽을 IDS·IPS가 공격으로 판단해 Alert를 만든 경우입니다. 오탐은 관제자의 시간을 소모하고, 누적되면 진짜 Alert를 묻어 버립니다. IPS에서는 정상 서비스를 끊는 장애가 됩니다.
실무에서는 오탐과 비슷하지만 다른 개념을 구분하는 것이 중요합니다.
| 구분 | 규칙 일치가 정확한가 | 위협인가 | 예 | 처리 방향 |
|---|---|---|---|---|
| 오탐(False Positive) | 아니오 — 의도와 다른 대상에 일치 | 아님 | 문서 파일 안의 문자열이 공격 패턴과 우연히 같음 | 규칙 조건 수정 |
| 정상 업무 정탐(Benign True Positive) | 예 — 규칙 의도대로 일치 | 아님(승인된 활동) | 승인된 취약점 점검 도구의 스캔 | 출발지 단위 억제·예외 |
| 정탐(True Positive) | 예 | 예 | 외부의 실제 공격 시도 | 대응 |
"규칙이 틀렸다"와 "규칙은 맞지만 이 활동은 괜찮다"는 다른 문제이므로, 처리 방법도 다릅니다.
오탐은 대부분 다음 원인 중 하나에서 생깁니다.
오탐 원인
├─ 조건이 너무 넓음 content 하나, 위치 제한 없음, 방향 조건 없음
├─ 변수 설정 오류 HOME_NET에 내부 대역 누락 → 내부 통신이 "외부"로 판단
├─ 환경 불일치 Windows 대상 규칙이 Linux 서버 트래픽에 일치
├─ 정상 도구의 특성 모니터링·백업·보안 도구가 공격과 비슷한 패턴 생성
└─ 프로토콜 해석 차이 비표준 구현 장비의 트래픽을 이상으로 판단
오탐 확정은 근거로 합니다. "평소에 많이 뜨는 Alert"라는 이유만으로는 오탐이라고 할 수 없습니다.
| 확인 항목 | 오탐을 뒷받침하는 근거 |
|---|---|
| 페이로드·필드 | 일치한 문자열이 공격 맥락이 아닌 위치(파일 본문, 정상 파라미터)에 있음 |
| 출발지·목적지 | 자산 담당자가 확인한 정상 시스템 간 통신 |
| 대상 환경 | 규칙이 노리는 제품·버전이 대상에 없음 |
| 반복 패턴 | 정해진 주기·정해진 호스트에서만 발생, 업무 일정과 일치 |
오탐을 줄이는 방법은 범위가 좁은 것부터 검토합니다.
| 방법 | 범위 | 예(Suricata·Snort 공통 개념) | 주의점 |
|---|---|---|---|
| suppress | 특정 sid × 특정 IP | threshold 설정 파일의 suppress | 그 IP에서의 실제 공격도 안 보임 |
| threshold·event_filter | Alert 발생 횟수 | 일정 시간 N건만 기록 | 건수 정보가 줄어듦 |
| 규칙 수정 | 규칙 조건 자체 | flow·위치·필드 조건 추가 후 rev 증가 | 원본 규칙 갱신 시 덮어쓰기 주의 |
| 변수 수정 | 모든 규칙 | HOME_NET 보완 | 영향 범위가 넓어 검증 필요 |
| 규칙 비활성화 | 규칙 전체 | disable 목록에 sid 추가 | 최후 수단, 탐지 공백 발생 |
승인된 점검 서버에서만 반복되는 Alert를 억제하는 설정의 형식 예시입니다(값은 환경마다 다름, Suricata threshold.config 문법).
# 형식 예시 — 점검 서버 192.168.10.5에서 출발하는 sid 1000901 Alert만 억제
# 사유: 승인된 주간 취약점 점검(변경 요청 번호 기록), 검토 기한: 2026-12-31
suppress gen_id 1, sig_id 1000901, track by_src, ip 192.168.10.5
# 형식 예시 — 규칙 수정: 위치·방향 조건을 추가하고 rev 증가
# 수정 전
alert tcp any any -> $HOME_NET any (msg:"LOCAL cmd string"; content:"cmd"; sid:1000902; rev:1;)
# 수정 후
alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"LOCAL cmd parameter in URI"; flow:established,to_server; http.uri; content:"cmd="; nocase; sid:1000902; rev:2;)
분석 방법 — 첫 번째는 "규칙은 맞지만 이 출발지는 승인됨"(정상 업무 정탐)에 대한 처리이고, 두 번째는 "규칙이 너무 넓음"(오탐)에 대한 처리입니다. 원인에 맞는 방법을 골라야 탐지 범위를 불필요하게 잃지 않습니다. 설정 파일 위치와 적용 절차는 04 영역 192. IDS Rule을 참고합니다.
관제자가 오탐을 판단할 때 질문
반복 Alert 발견
↓ 근거 수집 (페이로드·자산·환경·업무 일정)
↓ 분류: 오탐 / 정상 업무 정탐 / 정탐
오탐 → 규칙 조건 수정 요청
정상 업무 정탐 → 출발지 단위 suppress (사유·기한 기록)
↓ 적용 후 같은 규칙의 다른 출발지 Alert는 계속 발생하는지 확인
오탐 주의: "이 Alert는 늘 오탐이다"라는 경험은 대상이 바뀌면 틀립니다. 억제되지 않은 새 출발지·새 대상에서 같은 sid가 나오면 처음부터 판단합니다. 반대 방향의 오류는 286. False Negative에서 다룹니다.