284. 프로세스·지속성 — 프로세스 은닉(rootkit·hiding) 탐지

changseop lee·2026년 10월 7일

시스템 보안 · 취약점

목록 보기
284/450

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

선행 학습

1. 개념

rootkit(F24 라이브러리·F27 커널)은 ps·ls·netstat 등 사용자 도구의 출력을 조작해 악성 프로세스·파일·포트를 숨깁니다. 조작된 도구를 믿을 수 없으므로, 교차 검증(cross-view)으로 숨은 요소를 찾아냅니다.

rootkit 은닉과 교차 검증(cross-view)
 은닉: ps에서 프로세스 숨김, ls에서 파일 숨김, netstat에서 포트 숨김
 교차 검증 원리:
   ps 목록 vs /proc 직접 조회 → 불일치 = 숨은 프로세스
   ls 목록 vs 직접 접근/inode → 불일치 = 숨은 파일
   netstat vs /proc/net 직접 → 불일치 = 숨은 포트

핵심: 조작 가능한 도구 vs 저수준 소스 비교

rootkit이 상위 도구를 조작해도 저수준 소스(/proc·inode)까지 완벽히 숨기기는 어렵습니다. 두 관점의 불일치가 은닉의 증거입니다.

2. 왜 중요한가

  • rootkit은 사용자 도구를 조작하므로 그 출력을 신뢰할 수 없습니다.
  • 교차 검증(도구 vs 저수준 소스)의 불일치가 숨은 요소의 증거입니다.
  • 전용 도구(rkhunter·chkrootkit)·EDR·오프라인 분석이 rootkit 탐지에 유효합니다.

3. 핵심 명령어 / 설정

은닉 대상교차 검증불일치 의미
프로세스ps vs /proc숨은 프로세스
파일ls vs inode/직접숨은 파일
포트netstat vs /proc/net숨은 포트
모듈lsmod vs /sys숨은 모듈
PIDps vs /proc/[0-9]*숨은 PID

4. 실습 (실습 예시)

# rootkit 은닉 교차 검증 (분석 방법)
# 프로세스 교차 검증: ps vs /proc
diff <(ps -eo pid --no-headers | tr -d ' ' | sort -n) <(ls /proc/ | grep -E '^[0-9]+$' | sort -n)
# 포트 교차 검증: ss vs /proc/net
# 숨은 포트는 ss에 없지만 /proc/net/tcp에 있을 수 있음
# rootkit 점검 도구(설치 시)
sudo rkhunter --check --sk 2>/dev/null | grep -i warning | tail

5. 정상 상태

$ (ps vs /proc) (차이 없음)
$ (rkhunter) (경고 없음)

ps와 /proc의 프로세스 목록이 일치하고, rootkit 점검 도구에 경고가 없는 상태가 정상입니다.

6. 이상 상태

$ (ps vs /proc)
> 3002   (/proc엔 있으나 ps엔 없음 = 숨은 프로세스)
$ (rkhunter)
Warning: Hidden process / Suspicious file properties
  • /proc에 3002가 있으나 ps에 안 보임 → rootkit이 숨긴 프로세스
  • rkhunter가 숨은 프로세스·의심 파일 경고 → rootkit 징후
  • 도구 vs 저수준 불일치 → 프로세스 은닉 rootkit → 정탐

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

rootkit 교차 검증 분석입니다(가상의 예시).

[조작된 뷰] ps → 3001, 3003 (3002 숨김)
   vs
[저수준 뷰] /proc/ → 3001, 3002, 3003
   ↓ (비교)
[불일치] 3002가 /proc엔 있고 ps엔 없음
   ↓
[결론] rootkit이 3002를 은닉 → 숨은 악성 프로세스 발견
[확정] /proc/3002/exe·cmdline으로 정체 분석
뷰3002
ps(조작)안 보임
/proc(저수준)있음
불일치은닉 증거

교차 검증 불일치가 rootkit이 숨긴 요소를 드러냅니다.

8. SOC 관제 포인트

  • rootkit은 사용자 도구 출력을 조작해 프로세스·파일·포트를 은닉합니다.
  • 교차 검증(도구 vs 저수준 소스 /proc·inode)의 불일치가 은닉의 증거입니다.
  • 조작된 도구를 믿지 말고, 저수준 소스·전용 도구·EDR로 교차 확인합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,rootkit,">
  <!-- 교차 검증 결과(숨은 프로세스·rootkit 경고)를 로그로 수집 -->
  <rule id="105330" level="14">
    <decoded_as>json</decoded_as>
    <field name="check" type="pcre2">hidden_process|rootkit</field>
    <field name="status">found</field>
    <description>rootkit 은닉 탐지(교차 검증·숨은 프로세스/파일)</description>
    <mitre><id>T1014</id></mitre>
  </rule>
</group>

교차 검증·rkhunter/chkrootkit 결과를 로그로 수집·경보합니다. rootkit 확정 시 오프라인 분석·재설치를 검토합니다.

10. 대응 방법

  1. 초기 확인 — 교차 검증(ps/ls/netstat vs /proc·inode) 불일치를 확인합니다.
  2. 범위 확인 — 숨은 프로세스·파일·포트·모듈과 rootkit 점검 경고를 확인합니다.
  3. 증거 확보 — 교차 검증 결과·숨은 요소·저수준 소스를 보존합니다.
  4. 차단/조치 — rootkit 정탐이면 오프라인 분석·전체 무결성 점검·재설치를 검토합니다.
  5. 재발 방지 — 교차 검증 기반 rootkit 은닉 탐지를 운영합니다.

11. 핵심 정리

은닉 대상교차 검증
프로세스ps vs /proc
파일ls vs inode
포트netstat vs /proc/net
모듈lsmod vs /sys
면접 포인트"rootkit은 도구 출력 조작 — 도구 vs 저수준 소스 불일치(cross-view)로 탐지"

12. 다음 편 예고

다음 편 285. 프로세스·지속성 — 로그·흔적 삭제(anti-forensic) 탐지 에서는 로그·흔적 삭제를 다루는 로그·흔적 삭제(anti-forensic) 탐지를 다룹니다.


이전 편: 283. 프로세스·지속성 — 프로세스 인젝션·후킹 징후 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글