Linux 로그 경로 정리 · 45/50 · Part 5. 로그 관리와 무결성

선행 학습 → 43. Linux 로그 무결성 · 44. 로그 삭제·변조 흔적 분석 · 20. Rocky Linux 로그 기반 초동조사
이번 글 → 로그 보존 정책과 증거 보존
이어서 → 46. Linux 로그를 SIEM으로 보내는 구조

1. 들어가며

Part 5의 마지막은 증거 보존입니다. 분석 결과가 아무리 정확해도, 증거가 어떻게 수집되고 보관됐는지 설명할 수 없으면 보고서의 신뢰도가 떨어집니다. 또한 보존 기간 정책이 짧으면 사고를 발견했을 때 이미 로그가 없습니다.

핵심 요약

  • 보존 정책(retention) = 평소 얼마나 오래 로그를 남길까 / 증거 보존(preservation) = 사고 증거를 어떻게 봉인할까
  • 절차: 원본 보존 → 수집 → 무결성 확인 → 분석본 생성 → 분석 → 타임라인 → IOC → 판정
  • 원본 로그를 sed -i, vim, rm 으로 직접 다루는 일은 없다.

2. 핵심 개념

요소원칙구현
retention로컬·중앙·아카이브 단계별 기간 정의logrotate, journald, SIEM 인덱스 수명주기
timestamp수집 시각·기준 시간대 기록date '+%F %T %Z'
원본 보존원본은 읽기만, 수집본은 쓰기 금지cp -a + chmod 0400
분석본 분리분석은 복사본에서original/ ↔ work/
해시수집 즉시 SHA-256SHA256SUMS 매니페스트
접근권한최소 인원, 기록root 전용 디렉터리, 접근 로그
Chain of Custody누가·언제·무엇을·어떻게수집 기록서

보존 기간 예시(조직 정책에 따라 다름): 로컬 4~5주(logrotate 기본) → 중앙 SIEM 핫 스토리지 수개월 → 콜드 아카이브 1년 이상. 법·규제(예: 개인정보 처리 시스템 접속기록 보관 의무 등)가 요구하는 기간은 조직의 법무·컴플라이언스 기준을 따릅니다.

3. 로그 생성 구조

증거 보존 절차 (원본 보존 → 판정)

4. 실제 로그 경로

수집 대상 (Rocky)  : /var/log/secure*, /var/log/cron*, /var/log/messages*, /var/log/audit/audit.log*
수집 대상 (Ubuntu) : /var/log/auth.log*, /var/log/syslog*, /var/log/audit/audit.log*
공통               : /var/log/journal/ (또는 journalctl -o export), /var/log/wtmp, /etc/passwd (UID 매핑용)
증거 저장          : /evidence/<case>/original/ (0400), /evidence/<case>/work/, /evidence/<case>/SHA256SUMS

5. 명령어 실습

실습에 사용한 수집 스크립트입니다. 원본 로그 경로는 읽기만 하고, 증거 디렉터리에만 씁니다.

#!/usr/bin/env bash
# collect.sh - 증거 보존: 원본 로그 수집 → 해시 → 읽기 전용 → 분석본 분리
set -euo pipefail
CASE=${1:-case-0920}; SRC=/lab/local/var/log; EV=/evidence/$CASE
mkdir -p "$EV/original" "$EV/work"
cp -a "$SRC/secure" "$SRC/cron" "$SRC/messages" "$SRC/audit/audit.log" "$EV/original/"
( cd "$EV/original" && sha256sum * > ../SHA256SUMS )
chmod 0400 "$EV/original/"*; chmod 0444 "$EV/SHA256SUMS"
cp "$EV/original/"* "$EV/work/" && chmod 0600 "$EV/work/"*
echo "[+] collected_at=$(TZ=Asia/Seoul date '+%F %T %Z') by=$(whoami) host=$(hostname)"
cat "$EV/SHA256SUMS"
( cd "$EV/original" && sha256sum -c ../SHA256SUMS )
ls -l "$EV/original"

실제 서버에서는 SRC=/var/log 로 바꾸고, 순환 파일(secure-*, audit.log.*)과 저널(journalctl -o export > journal.export 또는 /var/log/journal 복사), /etc/passwd 사본을 추가합니다. 증거는 가능한 한 외부 저장소(분석 서버, 읽기 전용 매체)로 옮깁니다.

6. 로그 예시

실제 실행 결과 — Rocky Linux 9.8 · root@rocky9-lab — collect.sh 증거 수집

위 이미지는 Rocky Linux 9.8 실습 환경에서 수집 스크립트를 실제로 실행한 결과입니다(수집 대상은 실습 시나리오 데이터).

7. 로그 필드 분석

출력증거 보존 관점 의미
collected_at=... KST by=root host=...수집 시각·수집자·호스트 → Chain of Custody 기록
해시 4개파일별 SHA-256 — 보고서에 그대로 기재
OK ×4복사 직후 원본과 일치 확인
-r--------수집본 읽기 전용
Sep 26 01:02 (UTC) vs 수집 시각 KSTcp -a 가 원본 mtime을 유지 — 원본 파일 시각이 보존됨

수집 기록서 템플릿

Case ID      : case-0920
Host         : web01 (10.0.0.12)
Collected by : <이름/계정>          Collected at : 2026-09-26 10:03:32 KST
Method       : collect.sh (cp -a + sha256sum), 대상 목록 첨부
Hash list    : SHA256SUMS (파일 4개)
Storage      : /evidence/case-0920 (root 0400) → 분석 서버 전송
Access log   : <열람자 / 일시 / 목적>

8. 보안관점

올바른 보존잘못된 보존
수집 즉시 해시분석 후에 해시
원본·분석본 분리원본에서 직접 grep > 결과 작업 중 실수로 덮어쓰기
수집 기록서 작성누가 언제 수집했는지 불명
저널·audit 순환 파일까지 수집현재 파일만 수집

9. SOC 관점

  • Escalation 기준: 권한 상승·지속성·로그 변조가 확인되면 증거 보존 절차를 시작하고 IR팀에 이관.
  • SIEM 보존: 사고 관련 인덱스는 수명주기 삭제 대상에서 제외(Legal Hold).
  • Report: 증거 목록·해시·수집 방법을 보고서 부록으로 첨부(50편 템플릿).

10. 실습 체크리스트

[ ] retention 과 preservation 구분
[ ] 수집 대상 목록(순환·저널·passwd 포함) 작성
[ ] collect.sh 실행 및 해시 확인
[ ] 원본 0400 / 분석본 분리 확인
[ ] 수집 기록서 작성
[ ] 보존 기간 3단계(로컬·중앙·아카이브) 정책 설명

11. 핵심 정리

  • 보존 정책과 증거 보존은 다른 개념이다.
  • 원본 보존 → 수집 → 해시 → 분석본 분리의 순서를 지킨다.
  • 수집 즉시 해시를 만들고 보고서에 기재한다.
  • 수집 기록서로 누가·언제·어떻게를 남긴다.
  • 사고 관련 로그는 수명주기 삭제에서 제외한다.

12. 다음 편 연결

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

0개의 댓글