시스템 보안 · 취약점 › E. 중요 정보 접근 로그 분석 · 4/50편 (전체 204/450)
학습 단계: 접근 로그 기본 개념
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
접근 탐지의 핵심은 "정상 접근과 이상 접근을 구분"하는 것입니다. 중요 정보는 정상적으로도 접근됩니다(백업·서비스·관리). 따라서 정상 기준선을 만들어야 이상을 판별할 수 있습니다.
중요 정보 접근 기준선 요소
주체: 정상 접근 프로세스/계정 (backup·mysqld·root)
시점: 정상 접근 시간대 (백업 03:00 등)
빈도: 정상 접근 횟수 (일 N회)
경로: 정상 접근 대상 (서비스별 데이터)
방법: 정상 접근 명령 (mysqld가 DB파일, backup이 tar)
기준선 이탈 = 이상 접근 후보
기준선이 없으면 모든 접근이 경보가 되어(과탐) 운영이 불가능합니다. 정상을 알아야 이상이 보입니다.
| 기준선 요소 | 정상 예 | 이상 신호 |
|---|---|---|
| 주체 | mysqld·backup·root | 쉘·웹계정·일반사용자 |
| 시점 | 백업 시간·업무 | 새벽·비정기 |
| 빈도 | 정기·소수 | 급증·반복 |
| 경로 | 서비스별 데이터 | 광범위·교차 |
| 방법 | 서비스 프로세스 | cat·cp·tar·curl |
# 중요 정보 접근 기준선 수립 (분석 방법)
# 중요 파일별 정상 접근 주체 집계(기준선)
sudo ausearch -k sensitive_read,cred_access,data_access -i --start week 2>/dev/null \
| grep -oE 'comm="[^"]+"' | sort | uniq -c | sort -rn
# 접근 시간대 분포(정상 패턴 파악)
sudo ausearch -k data_access -i --start week 2>/dev/null | grep -oE '[0-9]{2}:[0-9]{2}:[0-9]{2}' | cut -d: -f1 | sort | uniq -c
$ (접근 주체 집계)
120 comm="mysqld" 14 comm="backup" 6 comm="root"
$ (시간대 분포)
14 03 (백업 시간대 집중)
접근이 서비스 프로세스(mysqld)·백업에 집중되고 정기 시간대(03시)에 발생하는, 일관된 정상 패턴이 기준선입니다.
$ (접근 주체 집계)
120 comm="mysqld" 8 comm="cat" 5 comm="curl" (신규)
$ (시간대 분포)
3 04 (비정기 새벽 접근 신규)
cat·curl의 중요 정보 접근 → 기준선 이탈(주체 축)접근 기준선 비교 흐름입니다(가상의 예시).
[기준선] 정상 주체(mysqld·backup)·시점(03시)·방법(서비스)
↓ (비교)
[관측] cat /etc/shadow (04시, 쉘)
↓
[이탈 판정] 주체(쉘)·시점(새벽)·방법(cat) 모두 이탈
↓
[이상 접근 후보] 6축 판정(E08)으로 정탐 확정
| 축 | 기준선 | 관측 | 판정 |
|---|---|---|---|
| 주체 | mysqld | cat | 이탈 |
| 시점 | 03시 | 04시 | 이탈 |
| 방법 | 서비스 | 쉘 | 이탈 |
기준선 대비 이탈 축이 많을수록 이상 접근 가능성이 높습니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_e,sensitive_access,">
<!-- 서비스 프로세스가 아닌 주체의 중요 정보 접근(기준선 이탈) -->
<rule id="104030" level="10">
<if_sid>104000</if_sid>
<field name="audit.comm" type="pcre2">^(cat|cp|less|more|head|tail|vi|vim|dd|xxd|strings|scp|curl|wget)$</field>
<description>비서비스 주체(쉘 명령)의 중요 정보 접근</description>
<mitre><id>T1005</id></mitre>
</rule>
</group>
정상 서비스 프로세스(mysqld·backup)는 화이트리스트로 예외 처리합니다. 기준선은 서비스 구조에 맞게 조정합니다.
| 요소 | 정상 vs 이상 |
|---|---|
| 주체 | 서비스(mysqld) vs 쉘·웹계정 |
| 시점 | 정기·백업 vs 새벽·비정기 |
| 빈도 | 소수 vs 급증·반복 |
| 방법 | 서비스 vs cat·curl·tar |
| 면접 포인트 | "중요 정보는 정상 접근 존재 — 기준선(주체·시점·방법) 이탈이 이상 접근" |
다음 편 205. 중요 정보 접근 — 접근 주체·경로·시점의 분석 축 에서는 접근 분석의 축을 다루는 접근 주체·경로·시점의 분석 축을 다룹니다.
이전 편: 203. 중요 정보 접근 — 파일 접근 감사의 기반 구성(auditd read·watch)
📚 시리즈 전체 보기: 시스템 보안 · 취약점