039. SIEM·로그 수집 — 로그 무결성과 중앙 수집의 가치

changseop lee·6일 전

SIEM · 보안관제 › A. SIEM 구조와 로그 수집 · 39/50편
학습 단계: 저장·파이프라인
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Wazuh 4.x 올인원 / Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

공격자는 흔적을 지우려고 로컬 로그를 삭제·변조합니다. 하지만 로그가 생성 직후 중앙으로 전송되었다면, 로컬에서 지워도 SIEM에는 남습니다. 이것이 SIEM의 가장 중요한 가치 중 하나입니다.

중앙 수집이 지키는 것
 03:12:44 sshd 로그인 성공      → (수 초 내) SIEM 전송 ✔
 03:13:10 sudo -i                 → SIEM 전송 ✔
 03:20:00 > /var/log/secure (삭제) → 로컬 기록 소멸
                                    SIEM 사본은 유지 ✔
 03:20:05 에이전트 중지           → 이후 로그는 SIEM에 없음 ✘

공백이 생기는 경우
 · 수집 지연이 길어 삭제가 전송보다 먼저
 · 에이전트·전송이 먼저 차단된 경우
 · 메모리·버퍼에 남은 이벤트 유실

핵심: 전송이 삭제보다 빠르면 증거는 남는다 — 실시간성이 무결성이다

중앙에 수집된 로그도 SIEM 관리자 권한으로는 수정·삭제가 가능합니다. 그래서 증거로 쓰일 데이터는 접근 권한 분리, 스냅샷, 해시 기록으로 추가 보호합니다.

2. 왜 중요한가

  • 흔적 삭제 이후에도 공격 타임라인을 재구성할 수 있습니다.
  • 로컬 로그와 중앙 로그를 비교하면 삭제·변조를 탐지할 수 있습니다.
  • 중앙 로그는 사고 보고·법적 대응의 증거가 됩니다.

3. 핵심 명령어 / 설정

보호 수단목적
실시간 전송삭제 전 확보
권한 분리SIEM 관리자 단독 삭제 방지
스냅샷시점 고정 사본
해시 기록사후 변조 확인

4. 실습 (실습 예시)

# 로컬과 중앙 로그 비교로 삭제 구간 찾기 (분석 방법)
# 로컬 secure 의 sshd 이벤트 수(최근 1일)
sudo grep -c 'sshd\[' /var/log/secure
# 중앙(alerts.json)에서 같은 호스트 sshd 계열 Alert 수
sudo jq -r 'select(.agent.name=="web01" and (.decoder.parent=="sshd" or .decoder.name=="sshd")) | .timestamp' /var/ossec/logs/alerts/alerts.json | wc -l
# 증거 보존: 조사 대상 Alert 추출본 해시
sudo jq -c 'select(.agent.name=="web01")' /var/ossec/logs/alerts/alerts.json > /root/ir/web01_alerts.json && sha256sum /root/ir/web01_alerts.json

5. 정상 상태

로컬과 중앙 사이 시간대별 이벤트 분포가 일치(Alert화 비율 차이만 존재)

로컬 로그와 중앙 로그의 시간대 분포가 일관되고, 중앙 쪽 공백 구간이 없는 상태가 정상입니다.

6. 이상 상태

중앙: 03:12~03:20 sshd·sudo Alert 존재
로컬 /var/log/secure: 03:00~03:25 구간 내용 없음(파일 크기 감소)
  • 중앙에 있고 로컬에 없는 구간 → 로컬 로그 삭제 확정
  • 삭제 행위 자체가 흔적 삭제(방어 회피) 증거
  • 중앙 사본을 해시와 함께 증거로 고정

7. 로그 분석 (분석 방법)

삭제 구간 확인 흐름입니다(가상의 예시).

[중앙 로그] 시간대별 이벤트 분포
   ↓
[로컬 로그] 같은 시간대 분포·파일 크기 변화
   ↓
 중앙 有 / 로컬 無 → 로컬 삭제
 중앙 無 / 로컬 有 → 수집 공백
 둘 다 無         → 수집 전 차단 또는 행위 없음(추가 증거 필요)
   ↓
[증거 고정] 추출·해시·스냅샷
비교 결과의미
중앙만 존재로컬 삭제
로컬만 존재수집 공백
둘 다 없음차단 또는 무활동

"둘 다 없음" 구간은 에이전트 끊김(007편)·소스 침묵(020편) 기록과 함께 보아야 공격자의 사전 차단인지 판단할 수 있습니다.

8. SOC 관제 포인트

  • 중앙·로컬 비교를 흔적 삭제 의심 시 표준 절차로 씁니다.
  • 조사 대상 로그는 추출 후 해시를 기록합니다.
  • SIEM 데이터 삭제 권한을 최소 인원으로 제한합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,siem_a,">
  <rule id="110380" level="13">
      <decoded_as>ossec</decoded_as>
      <match type="pcre2">(?i)file size reduced|log file.*(truncat|rotated unexpectedly)</match>
      <description>로그 파일 크기 감소·비정상 회전(로컬 로그 삭제 의심)</description>
      <mitre><id>T1070.002</id></mitre>
    </rule>
</group>

logcollector가 감시 중인 파일의 크기가 줄어드는 상황을 남기는 메시지를 경보하는 예시입니다. 메시지 문구는 버전별로 다르므로 실제 ossec.log에서 확인한 뒤 패턴을 맞춥니다.

10. 대응 방법

  1. 초기 확인 — 중앙·로컬 로그의 시간대별 차이를 확인합니다.
  2. 범위 확인 — 삭제 구간과 같은 시간대 다른 흔적 삭제 행위를 확인합니다.
  3. 증거 확보 — 중앙 로그를 추출하고 해시·스냅샷으로 고정합니다.
  4. 차단/조치 — 호스트를 조사하고 로그 보호 설정을 강화합니다.
  5. 재발 방지 — 실시간 전송·권한 분리·증거 고정 절차를 운영합니다.

11. 핵심 정리

원리내용
중앙 수집삭제 전 확보
공백지연·차단 시 발생
비교중앙 vs 로컬
보존해시·스냅샷·권한 분리
면접 포인트"전송이 삭제보다 빠르면 증거는 남는다 — 실시간성이 곧 무결성"

12. 다음 편 예고

다음 편 040. SIEM·로그 수집 — 수집 아키텍처 종합 점검 — 소스에서 저장까지 에서는 031~039편을 포함해 수집·정규화·저장 파이프라인 전체를 하나의 점검표로 종합하고, 구간별 장애 증상과 확인 순서를 정리합니다.


이전 편: 038. SIEM·로그 수집 — 로그 전송 보안 — TLS와 인증
📚 시리즈 전체 보기: SIEM · 보안관제

profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글