시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 7/50편 (전체 257/450)
학습 단계: 프로세스·지속성 기본 개념
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
지속성(persistence)은 공격자가 시스템 재부팅·세션 종료·계정 초기화 후에도 접근을 유지하는 능력입니다. 공격의 성공을 "지속"시키는 핵심 단계로, 지속성을 제거하지 못하면 침해가 반복됩니다.
지속성 메커니즘 분류(Linux)
[스케줄] cron·systemd 타이머 (F19·20)
[서비스] systemd 서비스·init (F20·23)
[셸·로그인] .bashrc·.profile·autostart (F21·22)
[라이브러리] LD_PRELOAD·공유 라이브러리 (F24)
[인증] SSH 키·PAM (F25·26)
[커널] 모듈·rootkit (F27)
공통: "자동 실행" 지점에 악성 코드 연결
지속성의 원리는 시스템이 자동으로 실행하는 지점(부팅·로그인·스케줄·인증)에 악성 코드를 끼워 넣는 것입니다. 모든 자동 실행 지점이 지속성 대상입니다.
| 지속성 유형 | 자동 실행 지점 | 편 |
|---|---|---|
| 스케줄 | cron·타이머 | F19·20 |
| 서비스 | systemd·init | F20·23 |
| 셸·로그인 | .bashrc·autostart | F21·22 |
| 라이브러리 | LD_PRELOAD | F24 |
| 인증 | SSH 키·PAM | F25·26 |
| 커널 | 모듈·rootkit | F27 |
# 지속성 전반 점검 (분석 방법)
# 주요 지속성 지점 스냅샷(기준선 대조)
echo "[cron]"; ls /etc/cron.d/ /var/spool/cron/ 2>/dev/null
echo "[systemd]"; systemctl list-unit-files --state=enabled 2>/dev/null | tail
echo "[셸]"; ls -la /etc/profile.d/ ~/.bashrc 2>/dev/null
echo "[LD_PRELOAD]"; cat /etc/ld.so.preload 2>/dev/null
echo "[SSH 키]"; cat /root/.ssh/authorized_keys 2>/dev/null | wc -l
$ (지속성 점검) 모든 지점이 기준선과 일치(정상 서비스·설정만)
모든 지속성 지점(cron·systemd·셸·라이브러리·키)이 기준선과 일치하는, 비정상 등록이 없는 상태가 정상입니다.
$ (지속성 점검)
[cron] 0hourly-x (신규)
[LD_PRELOAD] /tmp/.so (악성 라이브러리)
[SSH 키] 2줄 (공격자 키 추가)
지속성 공격 개념도입니다(가상의 예시).
[침투·상승·유출] (C·D·E)
↓
[지속성 설치] 자동 실행 지점에 코드 연결
├ cron: 주기 실행
├ systemd: 부팅·재시작 실행
├ .bashrc: 로그인 실행
├ LD_PRELOAD: 모든 프로세스에 주입
└ SSH 키: 비번 없는 재접속
↓
[재부팅·재접속 후에도 거점 유지]
| 지점 | 실행 시점 |
|---|---|
| cron | 주기 |
| systemd | 부팅·재시작 |
| .bashrc | 로그인 |
| SSH 키 | 재접속 |
여러 지점에 심으면 하나를 제거해도 거점이 유지됩니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,persistence,">
<!-- 지속성 위치 변경 기반 룰 -->
<rule id="105060" level="10">
<if_sid>105000</if_sid>
<field name="audit.key">persist</field>
<description>지속성 지점 변경(자동 실행 위치 오염)</description>
<mitre><id>T1543</id><id>T1053</id><id>T1546</id></mitre>
</rule>
</group>
각 지속성 유형별 상세 탐지는 F19~27에서 다룹니다. 전수 점검을 위해 모든 자동 실행 지점을 감사·기준선화합니다.
| 지속성 유형 | 자동 실행 지점 |
|---|---|
| 스케줄 | cron·타이머 |
| 서비스 | systemd·init |
| 셸·로그인 | .bashrc·autostart |
| 인증·커널 | SSH 키·PAM·모듈 |
| 면접 포인트 | "지속성은 자동 실행 지점에 코드 연결 — 전수 제거 없으면 침해 반복" |
다음 편 258. 프로세스·지속성 — 비정상 프로세스·지속성 판정 기준 에서는 비정상 프로세스·지속성 판정 기준을 다루는 비정상 프로세스·지속성 판정 기준을 다룹니다.
이전 편: 256. 프로세스·지속성 — 실행 경로·명령줄·해시 기반 분석 축
📚 시리즈 전체 보기: 시스템 보안 · 취약점