📚 네트워크 · 패킷 분석 › 06. 방화벽 · IDS 기초 — 273편
이전 글: 272. Firewall Log 구조 · 다음 글: 274. 비정상 Firewall Event

1. 개념

Firewall Log 분석은 방화벽 로그에서 특정 질문에 대한 답을 찾는 과정입니다. 로그 필드의 의미는 272. Firewall Log 구조에서 정리했고, 이 글은 어떤 순서로 로그를 좁히고 묶어서 결론에 도달하는가를 다룹니다.

방화벽 로그 분석은 보통 두 가지 방식으로 시작합니다.

시작 방식출발점예
지표 기반(Pivot)IDS Alert, 외부 통보, IOC의 IP·시각"198.51.100.23이 우리 서버와 무엇을 했나?"
통계 기반(Hunting)로그 전체의 분포·기준선"어제 기본 차단 로그의 상위 출발지는?"

어느 쪽이든 로그 양이 많기 때문에 질문을 먼저 정하고, 범위를 좁힌 뒤, 집계로 패턴을 보고, 개별 로그로 확인하는 순서를 지킵니다.


2. 동작 원리

지표 기반 분석의 일반적인 흐름입니다.

① 질문 정의: "IP X가 우리 자산에 접근했고, 성공했는가?"
   ↓
② 범위 설정: 시간(Alert 전후 ±N시간), 장비, IP
   ↓
③ 집계: action별 건수 → 목적지 IP·포트별 건수 → 시간대별 건수
   ↓
④ 허용 로그 추출: 어느 규칙으로 허용? 세션 바이트·지속 시간은?
   ↓
⑤ 피벗: 같은 목적지 서버의 다른 출발지 / 같은 출발지의 다른 목적지
   ↓
⑥ 타임라인 작성 → 다른 로그(IDS·서버·EDR)와 연결 → 결론

집계 단계에서 자주 쓰는 관점은 다음과 같습니다.

집계 관점보는 것발견할 수 있는 패턴
출발지별 고유 목적지 포트 수한 IP가 몇 개 포트를 두드렸나수직 스캔
목적지 포트별 고유 목적지 IP 수한 포트를 몇 대에 시도했나수평 스캔
출발지·목적지 쌍의 시간 간격연결 주기비콘
세션별 송신 바이트보낸 양대용량 반출
action 전환deny 뒤 allow우회 성공

3. 주요 특징

  • 차단보다 허용이 중요합니다. 차단 로그는 "시도"를, 허용 로그는 "실제 연결"을 보여 줍니다. 분석 보고서의 핵심 문장은 대부분 허용 로그에서 나옵니다.
  • 건수보다 고유 값 수가 유용합니다. 1,000건의 차단이 한 포트에 대한 재전송인지, 1,000개 포트에 대한 스캔인지는 고유 포트 수로 구분됩니다.
  • 첫 등장(First Seen) 을 봅니다. 조직 전체에서 처음 등장한 목적지 IP·포트는 기준선 밖의 통신입니다.
  • 로그가 보여 주지 않는 것을 결론에 적습니다. 방화벽 로그만으로는 요청 내용·공격 성공 여부를 알 수 없습니다.

시간대별 빈도 분석과 정상·스캔 비교는 05 영역 243. 시간대와 이벤트 빈도 분석, 스캔 흔적 찾기는 234. Firewall에서 Scan 흔적 찾기에서 다룹니다.


4. 예시

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·웹 서버 로그를 조회해 스캔 뒤 실제 요청이 무엇이었는지 확인합니다.


5. 보안 관점

  • 분석 전에 로그의 완전성을 확인합니다. 속도 제한, 수집 공백, 로깅되지 않는 규칙이 있으면 "없음"이라는 결론을 내릴 수 없습니다(271. Firewall Logging).
  • 원본 로그는 수정하지 않고, 추출·집계 결과는 별도 파일로 남겨 재현 가능한 분석을 유지합니다.
  • 분석에 사용한 검색 조건(시간 범위, 필터)을 기록해 두어야 다른 분석자가 결과를 검증할 수 있습니다.
  • 개인 PC 로그를 다룰 때는 업무 목적 범위 안에서만 조회합니다.

6. SOC 관점

분석 결과는 다음 형식으로 정리하면 전달하기 쉽습니다.

항목작성 예
질문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 연계에서 다룹니다.


7. 핵심 정리

  • 방화벽 로그 분석은 질문 정의 → 범위 설정 → 집계 → 허용 로그 확인 → 피벗 → 타임라인 순서로 진행합니다.
  • 건수보다 고유 포트·고유 IP 수, 첫 등장, 연결 간격이 패턴을 더 잘 보여 줍니다.
  • 차단 로그는 시도를, 허용 로그는 실제 연결을 보여 주므로 결론은 허용 로그에 근거합니다.
  • 로그 완전성과 방화벽 로그의 한계를 결론에 함께 적습니다.
  • 집계 상위의 소음보다 하위의 소수 이벤트가 더 중요한 경우가 많습니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글