📚 네트워크 · 패킷 분석 › 06. 방화벽 · IDS 기초 — 273편
이전 글: 272. Firewall Log 구조 · 다음 글: 274. 비정상 Firewall Event
Firewall Log 분석은 방화벽 로그에서 특정 질문에 대한 답을 찾는 과정입니다. 로그 필드의 의미는 272. Firewall Log 구조에서 정리했고, 이 글은 어떤 순서로 로그를 좁히고 묶어서 결론에 도달하는가를 다룹니다.
방화벽 로그 분석은 보통 두 가지 방식으로 시작합니다.
| 시작 방식 | 출발점 | 예 |
|---|---|---|
| 지표 기반(Pivot) | IDS Alert, 외부 통보, IOC의 IP·시각 | "198.51.100.23이 우리 서버와 무엇을 했나?" |
| 통계 기반(Hunting) | 로그 전체의 분포·기준선 | "어제 기본 차단 로그의 상위 출발지는?" |
어느 쪽이든 로그 양이 많기 때문에 질문을 먼저 정하고, 범위를 좁힌 뒤, 집계로 패턴을 보고, 개별 로그로 확인하는 순서를 지킵니다.
지표 기반 분석의 일반적인 흐름입니다.
① 질문 정의: "IP X가 우리 자산에 접근했고, 성공했는가?"
↓
② 범위 설정: 시간(Alert 전후 ±N시간), 장비, IP
↓
③ 집계: action별 건수 → 목적지 IP·포트별 건수 → 시간대별 건수
↓
④ 허용 로그 추출: 어느 규칙으로 허용? 세션 바이트·지속 시간은?
↓
⑤ 피벗: 같은 목적지 서버의 다른 출발지 / 같은 출발지의 다른 목적지
↓
⑥ 타임라인 작성 → 다른 로그(IDS·서버·EDR)와 연결 → 결론
집계 단계에서 자주 쓰는 관점은 다음과 같습니다.
| 집계 관점 | 보는 것 | 발견할 수 있는 패턴 |
|---|---|---|
| 출발지별 고유 목적지 포트 수 | 한 IP가 몇 개 포트를 두드렸나 | 수직 스캔 |
| 목적지 포트별 고유 목적지 IP 수 | 한 포트를 몇 대에 시도했나 | 수평 스캔 |
| 출발지·목적지 쌍의 시간 간격 | 연결 주기 | 비콘 |
| 세션별 송신 바이트 | 보낸 양 | 대용량 반출 |
| action 전환 | deny 뒤 allow | 우회 성공 |
시간대별 빈도 분석과 정상·스캔 비교는 05 영역 243. 시간대와 이벤트 빈도 분석, 스캔 흔적 찾기는 234. Firewall에서 Scan 흔적 찾기에서 다룹니다.
Linux 방화벽 커널 로그를 커맨드라인으로 집계하는 실습 예시입니다(Rocky/Ubuntu 공통, 값은 환경마다 다름). Ubuntu는 /var/log/kern.log나 /var/log/ufw.log, Rocky는 journalctl -k로 로그를 읽습니다.
# 분석 대상 출발지 로그만 추출
sudo journalctl -k --since "2026-09-30 14:00" --until "2026-09-30 16:00" \
| grep 'SRC=198.51.100.23 ' > /tmp/fw_x.log
# 접두어(=규칙)별 건수
grep -o 'FW-[A-Z0-9-]*' /tmp/fw_x.log | sort | uniq -c | sort -rn
# 목적지 IP:포트별 건수
awk '{for(i=1;i<=NF;i++){if($i~/^DST=/)d=substr($i,5); if($i~/^DPT=/)p=substr($i,5)} print d":"p}' \
/tmp/fw_x.log | sort | uniq -c | sort -rn | head
# 고유 목적지 포트 수
grep -o 'DPT=[0-9]*' /tmp/fw_x.log | sort -u | wc -l
# 집계 결과 형식 예시
912 FW-DEFAULT-DROP
3 FW-WEB-IN-ALLOW
고유 목적지 포트 수: 874
분석 방법 — 874개 포트에 대한 차단은 포트 스캔 패턴이고, 이어서 허용된 3건(웹 공개 규칙)이 핵심입니다. 허용 3건의 시각을 기준으로 WAF·IDS·웹 서버 로그를 조회해 스캔 뒤 실제 요청이 무엇이었는지 확인합니다.
분석 결과는 다음 형식으로 정리하면 전달하기 쉽습니다.
| 항목 | 작성 예 |
|---|---|
| 질문 | 198.51.100.23이 DMZ 웹 서버에 접근해 연결에 성공했는가 |
| 범위 | 2026-09-30 14:00~16:00 KST, FW01 |
| 관찰 | 차단 912건(고유 포트 874), 허용 3건(443, 규칙 WEB-IN-443) |
| 해석 | 포트 스캔 후 공개 웹 서비스에 3회 접속 |
| 한계 | 방화벽 로그로는 요청 내용 확인 불가 |
| 다음 단계 | 허용 3건 시각의 WAF·웹 로그 확인 |
관제자가 확인할 질문
오탐 주의: 집계 상위에 나타나는 것이 반드시 중요한 것은 아닙니다. 상위는 대개 인터넷 소음이고, 조사 가치가 높은 이벤트는 하위의 소수 건(내부 출발지 차단, 서버 Outbound)에 있는 경우가 많습니다. 방화벽 로그와 IDS Alert 연계는 296. Alert와 Firewall Log 연계에서 다룹니다.