Linux 시스템 보안 기초 · 46/50편
이 글은
리눅스 시스템 기초·파일 · 권한 · 사용자 관리·서비스 · 프로세스 관리시리즈를 선행 학습으로 두고, 동일한 개념을 보안관제(SOC) 관점에서 한 단계 확장합니다.
개별 로그는 점(点)입니다. 이 점들을 시간순으로 이으면 '무슨 일이 어떤 순서로 벌어졌는가'라는 선(線), 즉 침해사고 타임라인이 됩니다. 이번 편은 여러 로그원을 하나의 타임라인으로 엮는 방법을 정리합니다.
공격은 대개 정해진 단계(kill chain)로 진행됩니다.
Initial Access → Authentication → Privilege Escalation
→ Persistence → Execution → Lateral / External Communication
각 단계가 서로 다른 로그원에 흔적을 남깁니다. 타임라인 작성은 이 흔적들을 동일 시간축에 정렬해 인과관계를 복원하는 작업입니다.
시간 →
14:02 auth.log Failed password ×312 (203.0.113.10) [Initial Access]
14:05 auth.log Accepted password for alice [Authentication]
14:06 audit sudo → root [Priv Esc]
14:07 audit useradd hacker / authorized_keys 추가 [Persistence]
14:08 audit /tmp/.x 실행 [Execution]
14:09 ss/IDS 203.0.113.10:4444 연결 [External Comm]
타임라인의 기반은 정확한 시각입니다. 그래서 모든 서버의 시간을 NTP로 동기화하는 것이 전제입니다. 시각이 맞아야 auth.log, audit.log, 네트워크 로그를 하나의 축에 정렬할 수 있습니다.
작성 절차: (1) 사건 구간 확정 → (2) 각 로그원에서 그 구간 추출 → (3) 시각순 병합 → (4) 단계 라벨링 → (5) 인과 검증. SIEM은 이를 자동화하지만, 원리를 알아야 도구 결과를 신뢰·검증할 수 있습니다.
# 사건 구간의 인증 로그
sudo journalctl --since '14:00' --until '14:15' -u ssh
# 같은 구간의 감사 이벤트 (여러 키)
sudo ausearch -ts 14:00:00 -te 14:15:00 -i | grep -E 'key=|comm='
# 여러 로그를 시각으로 병합(간이 타임라인)
{ sudo grep -h '' /var/log/auth.log; sudo ausearch -ts today -i; } \
| grep -E '14:0[0-9]' | sort
간이 타임라인 병합의 형태입니다. (예시 출력 — 침해 시나리오 재구성)
14:02:11 sshd: Failed password for alice from 203.0.113.10 (반복)
14:05:30 sshd: Accepted password for alice from 203.0.113.10
14:06:02 audit(execve): comm=sudo auid=alice → euid=0
14:07:15 audit(identity): /etc/passwd 변경 (useradd)
14:08:40 audit(execve): exe=/tmp/.x auid=alice
14:09:03 ss: ESTAB → 203.0.113.10:4444
동일 IP(203.0.113.10)와 동일 계정(alice)이 각 단계를 관통합니다. 이 흐름이 곧 침해의 '이야기'이며, 50편 종합 실습에서 이 타임라인을 처음부터 끝까지 재구성합니다.
타임라인이 완성되면 침해 범위(어디까지 당했나)와 근본 원인(어떻게 들어왔나)이 드러나, 대응(48편)의 근거가 됩니다.
타임라인 재구성은 SOC 조사(Investigation)의 핵심 산출물입니다. SIEM은 여러 로그를 공통 시간축·공통 필드(IP/사용자)로 상관분석해 자동으로 사건을 묶습니다. Wazuh/ELK에서 동일 IP·계정으로 pivot하면 kill chain 단계가 정렬됩니다. 이 타임라인은 사고 보고서(50편)의 뼈대가 됩니다.
[ ] NTP 시간 동기화 확인
[ ] 사건 구간 다중 로그 추출
[ ] 시각순 병합·단계 라벨링
[ ] 동일 IP/계정 pivot 분석
[ ] 로그 공백 점검
다음 편에서는 47. Linux IOC 수집 방법 를 다룹니다. Part 7 SOC 실무로 넘어가, 타임라인에서 IOC를 체계적으로 수집하는 법을 봅니다.
본 실습은 격리된 테스트 VM(Rocky Linux / Ubuntu, VMware) 및 테스트 계정 환경을 기준으로 하며, 운영 서버를 대상으로 하지 않습니다. 실행 결과는 실제 캡처와 예시 출력을 명확히 구분해 표기합니다.