Linux 로그 경로 정리 · 49/50 · Part 6. SOC / SIEM / Wazuh

선행 학습 → 06. Linux 로그의 시간 정보 이해 · 18. Rocky Linux 인증 이벤트 추적 · 48. Linux 로그 기반 IOC 추출 · 기초 50. 보안관제 실습
이번 글 → Linux 로그 타임라인 분석
이어서 → 50. Linux 로그 경로 기반 SOC 종합 분석 실습

1. 들어가며

기초 50편에서는 인증 로그 중심으로 타임라인을 만들었습니다. 이번에는 형식이 서로 다른 세 소스(syslog 형식 secure·cron, epoch 기반 audit.log)를 하나의 시간축으로 정규화·병합하고, 인증 로그만으로는 보이지 않던 "root 셸 안에서 한 일"까지 이어 붙입니다.

핵심 요약

  • 병합 3단계: 정규화(같은 시간 형식·시간대) → 병합(sort) → 필터(의미 있는 이벤트)
  • syslog 형식은 연도·TZ 보완, audit은 epoch → KST 변환(TZ=Asia/Seoul ausearch -i)
  • 타임라인의 각 행은 시각 · 소스 · 이벤트 · 근거를 가진다.

2. 핵심 개념

소스원시 시간 형식정규화 방법
secure, cron (Rocky)Sep 20 02:14:52 (연도·TZ 없음)date -d "Sep 20 2026 02:14:52" '+%F %T' (서버 TZ가 KST임을 확인 후)
auth.log (Ubuntu 24.04)ISO 8601 (+09:00)그대로 정렬 가능
audit.logepoch (UTC)TZ=Asia/Seoul ausearch -i → MM/DD/YY HH:MM:SS → YYYY-MM-DD
journalepoch μs (UTC)journalctl -o short-iso
웹 로그[20/Sep/2026:02:10:11 +0900]date -d 변환

3. 로그 생성 구조

침해 타임라인 (2026-09-20 KST, 실습 시나리오)

SSH Failed → SSH Success → sudo → Process Execution → File Creation → Cron → Outbound Connection → Alert
 (secure)     (secure)    (secure  (audit EXECVE)      (audit)          (cron   (audit SOCKADDR)     (Wazuh)
                           +audit)                                     +audit)

4. 실제 로그 경로

입력 (분석본):  /lab/work/central/secure, /lab/work/central/cron, /lab/work/audit.log
출력:           타임라인 텍스트 → 보고서 Timeline 섹션 (50편)

5. 명령어 실습

#!/usr/bin/env bash
# timeline.sh - secure / cron / audit 를 하나의 시간축(KST)으로 병합 (분석본만 사용)
W=${1:-/lab/work}; YEAR=2026
{
  for f in secure cron; do
    while read -r mon day time host rest; do
      echo "$(date -d "$mon $day $YEAR $time" '+%F %T') | $f | $rest"
    done < "$W/central/$f"
  done
  TZ=Asia/Seoul ausearch -if "$W/audit.log" -m EXECVE,SOCKADDR -i 2>/dev/null \
   | grep -E '^type=(EXECVE|SOCKADDR)' \
   | sed -E 's#^type=([A-Z]+) msg=audit\(([0-9]+)/([0-9]+)/([0-9]+) ([0-9:]+)\.[0-9]+:[0-9]+\) : #20\4-\2-\3 \5 | audit | \1 #; s/argc=[0-9]+ //; s/ a[0-9]+=/ /g; s/ a0=/ /'
} | grep -E 'Accepted|COMMAND|new user|password changed|REPLACE|syscheck|\| audit \|' | sort
  • date -d 변환은 실행 환경의 TZ를 따릅니다. 원본 서버 TZ(6편)와 같게 맞춘 뒤 실행합니다.
  • 필터(grep -E)는 핵심 이벤트만 남깁니다. 실패 로그인 42건은 IOC 요약(48편)으로 대체해 가독성을 확보했습니다.

6. 로그 예시

실제 실행 결과 — Rocky Linux 9.8 · root@rocky9-lab — timeline.sh (입력: 실습 시나리오 분석본)

위 이미지는 실습 시나리오 데이터(직접 작성한 가상 로그) 분석본을 입력으로 Rocky Linux 9.8 실습 환경에서 timeline.sh 를 실제로 실행한 결과입니다.

7. 로그 필드 분석

시각 (KST)단계근거 (소스)해석
01:02 ~ 01:09기준선secure운영자 opsadmin 공개키 로그인·정상 sudo — 비교 기준
02:13:05 ~ 02:15:07초기 접근 시도secure(중앙)무차별 대입 42회 (48편)
02:14:52초기 접근securedeploy 비밀번호 로그인 성공
02:15:30권한 상승secure + auditsudo /bin/bash — 두 소스 일치
02:16:10 ~ 17실행audit다운로드 → 실행 → 숨김 경로 복사
02:16:40 ~ 48지속성(계정)secure + auditsysbackup 생성·비밀번호 설정
02:17:05지속성(cron)cron + auditroot crontab 교체
02:20:01 ~지속성 동작cron + audit5분 주기 실행 (auid=unset: cron 실행)
02:20:02C2 의심audit SOCKADDR198.51.100.23:4444 연결 시도
02:23:40 ~ 55방어 회피audit로그 삭제·히스토리 삭제

교차검증 포인트: 02:15:30, 02:16:40, 02:17:05는 두 개 소스가 같은 초에 일치합니다. 소스 간 시각이 어긋난다면 시간대·NTP 문제를 먼저 의심합니다.

8. 보안관점

  • 기준선(01시대 정상 운영)과 사고 구간을 함께 두면 "무엇이 비정상인지" 설명이 쉬워진다.
  • 로컬 secure 는 변조됐으므로(44편) 타임라인에는 중앙 사본을 사용하고 그 사실을 기록한다.
  • 로그인 → 셸 획득까지 38초, 로그인 → 지속성 설정까지 2분 13초 — 자동화 도구 또는 숙련된 공격자 가능성을 시사(판정은 추가 근거 필요).

9. SOC 관점

타임라인 단계MITRE ATT&CKWazuh Alert (47편 실측)
무차별 대입 → 성공T1110.001, T10785763(10), 40112(12)
sudo 셸T1548.0035403(4)
다운로드·실행T1105, T1059.004(exec_log 커스텀 룰 후보)
계정 생성T1136.0015902(8), 40501(15)
cronT1053.0032833(8), 100212(10)
외부 연결T1071100211(10)
로그 삭제T1070.002100210(12)

10. 실습 체크리스트

[ ] 소스별 시간 형식과 정규화 방법 정리
[ ] 서버 TZ 확인 후 변환
[ ] timeline.sh 로 병합
[ ] 기준선과 사고 구간 구분
[ ] 두 소스 일치 지점으로 교차검증
[ ] 각 단계를 MITRE·Alert 와 매핑

11. 핵심 정리

  • 타임라인은 정규화 → 병합 → 필터로 만든다.
  • syslog 형식은 연도·시간대를, audit은 epoch 변환을 처리해야 한다.
  • 서로 다른 소스가 같은 시각에 일치하는 지점이 가장 강한 근거다.
  • 변조된 로컬 로그 대신 중앙 사본을 쓰고 그 사실을 기록한다.
  • 각 단계를 MITRE 기법과 SIEM Alert에 연결하면 보고서와 탐지 개선으로 바로 이어진다.

12. 다음 편 연결

구분글
◀ 이전 글48. Linux 로그 기반 IOC 추출
▶ 다음 글50. Linux 로그 경로 기반 SOC 종합 분석 실습
시리즈Linux 로그 경로 정리 전체 보기
선행 시리즈리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 · Linux 시스템 보안 기초
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글