257. 프로세스·지속성 — 지속성(persistence)의 개념과 공격 단계

changseop lee·2026년 10월 7일

시스템 보안 · 취약점

목록 보기
257/450

시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 7/50편 (전체 257/450)
학습 단계: 프로세스·지속성 기본 개념
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

지속성(persistence)은 공격자가 시스템 재부팅·세션 종료·계정 초기화 후에도 접근을 유지하는 능력입니다. 공격의 성공을 "지속"시키는 핵심 단계로, 지속성을 제거하지 못하면 침해가 반복됩니다.

지속성 메커니즘 분류(Linux)
 [스케줄]   cron·systemd 타이머 (F19·20)
 [서비스]   systemd 서비스·init (F20·23)
 [셸·로그인] .bashrc·.profile·autostart (F21·22)
 [라이브러리] LD_PRELOAD·공유 라이브러리 (F24)
 [인증]     SSH 키·PAM (F25·26)
 [커널]     모듈·rootkit (F27)

공통: "자동 실행" 지점에 악성 코드 연결

지속성의 원리는 시스템이 자동으로 실행하는 지점(부팅·로그인·스케줄·인증)에 악성 코드를 끼워 넣는 것입니다. 모든 자동 실행 지점이 지속성 대상입니다.

2. 왜 중요한가

  • 지속성은 공격의 성과를 유지시켜, 제거하지 못하면 침해가 반복됩니다.
  • 메커니즘이 다양해(스케줄·서비스·셸·라이브러리·인증·커널) 전수 점검이 필요합니다.
  • 모든 지속성은 "자동 실행 지점에 코드 연결"이라는 공통 원리를 가집니다.

3. 핵심 명령어 / 설정

지속성 유형자동 실행 지점편
스케줄cron·타이머F19·20
서비스systemd·initF20·23
셸·로그인.bashrc·autostartF21·22
라이브러리LD_PRELOADF24
인증SSH 키·PAMF25·26
커널모듈·rootkitF27

4. 실습 (실습 예시)

# 지속성 전반 점검 (분석 방법)
# 주요 지속성 지점 스냅샷(기준선 대조)
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

5. 정상 상태

$ (지속성 점검) 모든 지점이 기준선과 일치(정상 서비스·설정만)

모든 지속성 지점(cron·systemd·셸·라이브러리·키)이 기준선과 일치하는, 비정상 등록이 없는 상태가 정상입니다.

6. 이상 상태

$ (지속성 점검)
[cron] 0hourly-x (신규)
[LD_PRELOAD] /tmp/.so (악성 라이브러리)
[SSH 키] 2줄 (공격자 키 추가)
  • 신규 cron·악성 LD_PRELOAD·추가 SSH 키 → 다중 지속성
  • 여러 지점에 거점 → 하나 제거해도 유지(중복 지속성)
  • 다중 자동 실행 지점 오염 → 장기 침해 → 정탐

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

지속성 공격 개념도입니다(가상의 예시).

[침투·상승·유출] (C·D·E)
      ↓
[지속성 설치] 자동 실행 지점에 코드 연결
   ├ cron: 주기 실행
   ├ systemd: 부팅·재시작 실행
   ├ .bashrc: 로그인 실행
   ├ LD_PRELOAD: 모든 프로세스에 주입
   └ SSH 키: 비번 없는 재접속
      ↓
[재부팅·재접속 후에도 거점 유지]
지점실행 시점
cron주기
systemd부팅·재시작
.bashrc로그인
SSH 키재접속

여러 지점에 심으면 하나를 제거해도 거점이 유지됩니다.

8. SOC 관제 포인트

  • 지속성은 재부팅·재접속 후에도 거점을 유지하는 공격 단계입니다.
  • 스케줄·서비스·셸·라이브러리·인증·커널 등 모든 자동 실행 지점이 대상입니다.
  • 공통 원리는 "자동 실행 지점에 코드 연결"이며, 전수 점검이 필요합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 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에서 다룹니다. 전수 점검을 위해 모든 자동 실행 지점을 감사·기준선화합니다.

10. 대응 방법

  1. 초기 확인 — 지속성 지점(cron·systemd·셸·라이브러리·인증·커널)의 기준선 이탈을 확인합니다.
  2. 범위 확인 — 여러 지점의 중복 지속성·자동 실행 연결을 확인합니다.
  3. 증거 확보 — 지속성 등록·변경 이벤트와 관련 파일을 보존합니다.
  4. 차단/조치 — 지속성 정탐이면 전 지점 전수 제거(F19~27)·기준선 갱신을 진행합니다.
  5. 재발 방지 — 자동 실행 지점 전수 감사·지속성 탐지를 운영합니다.

11. 핵심 정리

지속성 유형자동 실행 지점
스케줄cron·타이머
서비스systemd·init
셸·로그인.bashrc·autostart
인증·커널SSH 키·PAM·모듈
면접 포인트"지속성은 자동 실행 지점에 코드 연결 — 전수 제거 없으면 침해 반복"

12. 다음 편 예고

다음 편 258. 프로세스·지속성 — 비정상 프로세스·지속성 판정 기준 에서는 비정상 프로세스·지속성 판정 기준을 다루는 비정상 프로세스·지속성 판정 기준을 다룹니다.


이전 편: 256. 프로세스·지속성 — 실행 경로·명령줄·해시 기반 분석 축
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글