시스템 보안 · 취약점 › H. 방어 회피 · 흔적 삭제 징후 · 39/50편 (전체 389/450)
학습 단계: 방어 회피 로그 분석
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
5단계는 방어 회피 로그 분석을 다룹니다. 첫 번째는 삭제된 로그·파일 복원입니다. 파일을 지워도 디스크 블록·저널·메모리·중앙 사본에 흔적이 남을 수 있어, 포렌식으로 복원하면 삭제된 증거를 되살립니다.
삭제된 로그·파일 복원 경로
열린 파일 핸들: /proc/PID/fd (삭제됐지만 열린 상태)
저널·슬랙: 파일시스템 저널·미할당 블록
중앙 사본: 원격 syslog·SIEM(로컬 삭제 무관)
메모리: 실행 중 프로세스 메모리
특징: 삭제 = 참조 제거일 뿐, 데이터 잔존 가능
복원: lsof +L1, debugfs/extundelete, 중앙 로그 대조
핵심은 "삭제는 참조 제거이지 데이터 소거가 아니다"입니다. 열린 핸들·저널·중앙 사본·메모리에서 복원 가능성이 있습니다.
| 소스 | 복원 방법 | 신뢰도 |
|---|---|---|
| 열린 핸들 | lsof +L1, /proc/fd | 높음(실시간) |
| 저널·슬랙 | debugfs·extundelete | 중(단편) |
| 중앙 사본 | SIEM·원격 syslog | 높음 |
| 메모리 | 메모리 덤프 | 중 |
| 완전 소거 | shred 후 | 복원 불가 |
# 삭제된 로그·파일 복원 (분석 방법)
# 삭제됐지만 열린 상태인 파일(가장 쉬운 복원)
sudo lsof +L1 2>/dev/null | grep -E 'deleted' | head
# 특정 프로세스의 삭제된 파일 핸들에서 복원
# cp /proc/<PID>/fd/<N> /evidence/recovered.log (열린 핸들 복사)
# 중앙 로그와 로컬 대조(삭제 구간 식별)
echo "중앙 SIEM에서 해당 호스트·시간대 로그 조회 → 로컬 공백 구간 복원"
$ (삭제+열림 파일) (없음)
$ (중앙 대조) 로컬과 일치(삭제 흔적 없음)
삭제됐지만 열려 있는 로그 파일이 없고, 중앙 로그와 로컬이 일치해 복원이 필요 없는 상태가 정상입니다.
$ (삭제+열림 파일)
rsyslogd ... /var/log/auth.log (deleted) — 삭제됐으나 열림
→ cp /proc/$(pidof rsyslogd)/fd/N 로 복원 가능
$ (중앙 대조)
로컬 auth.log 02:00~03:00 공백 / 중앙엔 로그인 기록 존재
→ 중앙 사본으로 삭제 구간 복원
삭제된 로그·파일 복원 분석입니다(가상의 예시).
[공격자] rm /var/log/auth.log (흔적 삭제)
BUT rsyslogd가 파일 핸들 유지 중
↕ (복원)
[분석가]
lsof +L1 → auth.log (deleted)이지만 열림 확인
cp /proc/<rsyslogd>/fd/<N> → 로그 복원
중앙 SIEM 대조 → 삭제 구간 전체 복원
복원 로그에서 침투·흔적 삭제 활동 재구성
↓
= 삭제해도 핸들·중앙 사본으로 복원 → 증거 확보
| 소스 | 복원 | 활용 |
|---|---|---|
| 열린 핸들 | /proc/fd | 즉시 복원 |
| 중앙 사본 | SIEM | 구간 복원 |
| 저널 | debugfs | 보조 |
열린 핸들 + 중앙 사본이 복원의 핵심 소스입니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_h,defense_evasion,">
<rule id="107380" level="12">
<if_sid>107000</if_sid>
<field name="audit.key">log_delete</field>
<description>로그 삭제 탐지 — 복원·중앙 대조 절차 연계 필요</description>
<mitre><id>T1070</id><id>T1070.002</id></mitre>
</rule>
</group>
삭제 이벤트 발생 시 즉시 lsof +L1로 열린 핸들을 복원하고, 중앙 로그와 대조합니다. 복원은 포렌식 절차(쓰기 방지·해시)를 준수합니다.
| 소스 | 복원 방법 |
|---|---|
| 열린 핸들 | lsof +L1, /proc/fd |
| 저널·슬랙 | debugfs·extundelete |
| 중앙 사본 | SIEM·원격 syslog |
| 메모리 | 메모리 덤프 |
| 면접 포인트 | "삭제는 참조 제거일 뿐 — 열린 핸들·중앙 사본으로 복원 가능" |
다음 편 390. 방어 회피·흔적 삭제 — 아티팩트 교차 검증과 상호 보강 에서는 복원된 아티팩트를 교차 검증하는 아티팩트 교차 검증과 상호 보강을 다룹니다.
이전 편: 388. 방어 회피·흔적 삭제 — 위장·난독화 종합 분석
📚 시리즈 전체 보기: 시스템 보안 · 취약점