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

선행 학습 → 05. 로그 파일의 권한과 소유권 · 36. 원격 Syslog와 중앙 로그 서버 · 42. 로그 로테이션과 보안관제
이번 글 → Linux 로그 무결성
이어서 → 44. 로그 삭제·변조 흔적 분석

1. 들어가며

로그가 증거가 되려면 "기록된 이후 바뀌지 않았다" 를 보여줄 수 있어야 합니다. 이것이 무결성입니다. 공격자는 흔적을 지우려 하고(T1070), 분석가는 실수로 원본을 바꿀 수 있습니다. 두 위험 모두에 대비해야 합니다.

핵심 요약

  • 무결성은 한 가지 기술이 아니라 계층이다: 접근통제 → 변경 감시 → 속성 보호 → 검증 → 원격 사본 → 불변 저장소
  • 로컬 보호는 root가 탈취되면 무력화될 수 있다 → 원격 사본이 최종 방어선
  • 수집 시 SHA-256 매니페스트를 만들고, 분석은 사본으로 한다.

2. 핵심 개념

계층수단막는 것한계
접근통제0600/0640, 그룹 최소화일반 사용자 변조root 무력
변경 감시auditd, FIM"누가" 기록auditd 중지 가능
속성 보호chattr +a (append-only)덮어쓰기·삭제root가 chattr -a 가능, logrotate와 충돌
검증sha256sum, journal Seal변조 검출사전 해시가 있어야 비교 가능
원격 사본rsyslog → 중앙 서버로컬 삭제 대비전송 전 구간
불변 저장소WORM, Object Lock, 분리된 SIEM관리자 삭제비용·설계

3. 로그 생성 구조

로그 무결성 방어 계층

4. 실제 로그 경로

보호 대상   : /var/log/secure|auth.log, /var/log/audit/, /var/log/journal/
감시 설정   : /etc/audit/rules.d/*.rules (log_tamper), Wazuh FIM(/var/ossec/etc/ossec.conf <syscheck>)
원격 전송   : /etc/rsyslog.d/90-forward.conf
수집 증거   : /evidence/<case>/original/, /evidence/<case>/SHA256SUMS

5. 명령어 실습

# 1) 권한 점검
stat -c '%a %U:%G %n' /var/log/secure /var/log/auth.log /var/log/audit/audit.log 2>/dev/null

# 2) 속성 확인 (append-only 여부)
lsattr /var/log/secure /var/log/audit/audit.log 2>/dev/null

# 3) 저널 무결성 검사
journalctl --verify 2>&1 | tail -3

# 4) 수집본 해시 매니페스트 작성 / 검증 (45편 collect.sh 에서 자동화)
cd /evidence/case-0920/original && sha256sum * > ../SHA256SUMS
sha256sum -c ../SHA256SUMS

# 5) 로컬 vs 중앙 사본 비교 (44편)
comm -13 <(sort local/secure) <(sort central/secure) | wc -l

chattr +a 적용 시 logrotate의 이름 변경이 실패하므로, 적용한다면 prerotate 에서 해제·postrotate 에서 재설정하는 방식으로 운영 영향을 검토해야 합니다. 이 글에서는 원리만 소개하고 운영 서버 적용은 권장하지 않습니다.

6. 로그 예시

실제 실행 결과 — Rocky Linux 9.8 · root@rocky9-lab — 해시 기반 무결성 검증

위 이미지는 Rocky Linux 9.8 실습 환경에서 실제로 실행한 해시 검증 결과입니다. 45편의 수집 스크립트로 만든 증거 디렉터리에서, 분석본(work) 에만 한 줄을 추가했을 때 해시 검증이 FAILED 로 바뀌고, 원본(original) 은 그대로 OK 인 것을 확인했습니다.

7. 로그 필드 분석

출력해석
두 파일 해시 동일분석본이 원본의 정확한 사본
secure: FAILED한 바이트라도 바뀌면 해시가 달라진다
ORIGINAL_OK원본은 변경 없음 — 분석본 분리의 이유
400 root원본은 읽기 전용(0400)
+0000컨테이너 시간대 UTC — 기록 시 시간대 명시 필요

8. 보안관점

정상의심
해시 매니페스트 검증 OK수집 후 해시 불일치 → 수집 체인 조사
journalctl --verify PASSFAIL (파일 손상 또는 조작)
로컬·중앙 사본 일치로컬에만 누락 구간 → 로컬 변조
로그 권한 기본값권한 완화 흔적

해시는 "변조되지 않았음"을 증명할 뿐 "처음부터 진실"임을 증명하지 않습니다. 공격자가 수집 이전에 로그를 바꿨다면 해시는 그 바뀐 상태를 봉인할 뿐입니다. 그래서 원격 사본과의 비교가 필요합니다.

9. SOC 관점

  • Detection: 로그 디렉터리 audit(log_tamper), rsyslog/auditd 중지, 로그 유입량 급감.
  • Architecture: SIEM 저장소는 서버 관리자와 다른 관리 주체가 운영하도록 분리.
  • Evidence: 수집 즉시 해시 → 보고서에 해시값 기재 → 재검증 가능하게.

10. 실습 체크리스트

[ ] 무결성 6계층 설명
[ ] 로그 파일 권한·속성 점검
[ ] journalctl --verify 실행
[ ] SHA-256 매니페스트 작성·검증
[ ] 분석본 변경 시 FAILED 확인
[ ] 해시의 한계와 원격 사본 필요성 설명

11. 핵심 정리

  • 로그 무결성은 여러 계층으로 지킨다.
  • 로컬 보호는 root 탈취에 약하므로 원격 사본과 불변 저장소가 최종 방어선이다.
  • 해시는 변조 검출 수단이며 수집 시점 이후만 보장한다.
  • 원본은 읽기 전용으로 봉인하고 분석은 사본으로 한다.
  • 로컬과 중앙 사본의 차이는 변조의 강력한 근거다.

12. 다음 편 연결

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

0개의 댓글