374. 방어 회피·흔적 삭제 — 커널 모듈·루트킷 기반 은닉 탐지

changseop lee·2026년 10월 8일

시스템 보안 · 취약점

목록 보기
374/450

시스템 보안 · 취약점 › H. 방어 회피 · 흔적 삭제 징후 · 24/50편 (전체 374/450)
학습 단계: 보안 기능 무력화·은닉
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

커널 모듈 루트킷(LKM rootkit)은 커널에 악성 모듈을 적재해, 사용자 영역 도구(ps·ls·ss)가 보는 결과를 커널 수준에서 조작합니다. 프로세스·파일·네트워크 연결·모듈 자신을 숨겨, 일반 탐지를 근본적으로 무력화합니다.

커널 루트킷 은닉 패턴
 모듈 적재: insmod/modprobe 악성.ko
 은닉 대상: 프로세스(ps)·파일(ls)·연결(ss)·모듈(lsmod)
 방식: syscall 테이블 후킹, VFS 후킹
 자기 은닉: lsmod에서 자신을 숨김
 특징: 사용자 도구 결과를 조작 — 도구 간 불일치 발생

탐지: 비정상 모듈 적재·도구 간 결과 불일치·커널 무결성

핵심은 "커널이 거짓말을 한다"입니다. ps/ls가 숨겨도 /proc 직접 조회·커널 자료구조와 결과 불일치로 드러나며, 모듈 적재 자체가 핵심 신호입니다.

2. 왜 중요한가

  • 커널 루트킷은 사용자 도구 결과를 조작해 프로세스·파일·연결을 근본적으로 숨깁니다.
  • ps/ls/ss가 못 봐도 /proc·커널 자료구조 직접 확인과 결과 불일치로 탐지됩니다.
  • 비정상 커널 모듈 적재(insmod)는 루트킷·은닉의 직접 신호입니다.

3. 핵심 명령어 / 설정

은닉 대상조작탐지
프로세스ps 조작/proc vs ps
파일ls 조작inode vs ls
네트워크ss 조작/proc/net vs ss
모듈lsmod 조작/sys vs lsmod
적재insmod모듈 감사

4. 실습 (실습 예시)

# 커널 모듈·루트킷 은닉 탐지 (분석 방법)
# 비정상 커널 모듈 적재
sudo ausearch -k proc_exec,kmod -i --start recent 2>/dev/null | grep -E 'insmod|modprobe|finit_module' | tail
# 적재 모듈 vs 서명·정상 목록(비정상 모듈)
lsmod 2>/dev/null | head; echo '---'; sudo cat /proc/modules 2>/dev/null | wc -l
# 도구 간 불일치(ps vs /proc)
ps -eLf 2>/dev/null | wc -l; ls /proc | grep -E '^[0-9]+$' | wc -l

5. 정상 상태

$ (모듈 적재) (없음 또는 서명된 정상 모듈)
$ (ps vs /proc) 일치

비정상 커널 모듈 적재가 없고, ps와 /proc 등 도구 간 결과가 일치하는(은닉 없음) 상태가 정상입니다.

6. 이상 상태

$ (모듈 적재)
proctitle="insmod /tmp/.hide.ko" (악성 커널 모듈 적재)
$ (도구 간 불일치)
ps: PID 6666 안 보임 / /proc/6666 존재
ss: 203.0.113 연결 안 보임 / /proc/net/tcp 존재
→ 커널 루트킷이 ps·ss 결과 조작
  • 비정상 모듈(/tmp/.hide.ko) 적재 → LKM 루트킷
  • ps엔 없는데 /proc엔 있는 PID → 프로세스 은닉
  • ss엔 없는데 /proc/net엔 있는 연결 → 연결 은닉
  • 도구 간 불일치 + 비정상 모듈 → 커널 루트킷 → 정탐

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

커널 루트킷 은닉 분석입니다(가상의 예시).

[공격자] insmod /tmp/.hide.ko (악성 커널 모듈)
   ↓ (커널 후킹)
syscall 후킹: ps/ls/ss 호출 결과에서 악성 항목 제거
   → ps: 악성 PID 숨김
   → ls: /tmp/.payload 숨김
   → ss: C2 연결 숨김
      ↕ (불일치 탐지)
[분석가] 커널 직접 조회 vs 사용자 도구
   /proc/6666 존재 but ps 없음 → 은닉 발각
   /proc/net/tcp에 연결 but ss 없음 → 은닉 발각
   ↓
= 커널이 조작해도 /proc 직접 조회와 불일치로 탐지
도구조작됨교차
ps악성 PID 숨김/proc
ls악성 파일 숨김inode
ss연결 숨김/proc/net

도구 간 결과 불일치가 커널 루트킷 탐지의 핵심입니다.

8. SOC 관제 포인트

  • 커널 모듈 루트킷은 커널 수준에서 사용자 도구 결과를 조작해 프로세스·파일·연결을 숨깁니다.
  • ps/ls/ss가 못 봐도 /proc·커널 자료구조 직접 조회와 결과 불일치로 탐지됩니다.
  • 비정상 커널 모듈 적재(insmod)와 도구 간 불일치가 핵심 신호입니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_h,defense_evasion,">
  <rule id="107230" level="14">
    <if_sid>107000</if_sid>
    <field name="audit.comm" type="pcre2">^(insmod|modprobe)$</field>
    <field name="audit.exe" type="pcre2">(/tmp/|/dev/shm/|/var/tmp/)</field>
    <description>비정상 경로 커널 모듈 적재(LKM 루트킷 은닉)</description>
    <mitre><id>T1014</id><id>T1562.001</id></mitre>
  </rule>
</group>

커널 모듈 적재를 감사(kmod)하고, 서명되지 않은·비정상 경로 모듈을 경보합니다. 도구 간 불일치 점검을 주기적으로 수행해 은닉을 탐지합니다.

10. 대응 방법

  1. 초기 확인 — 비정상 커널 모듈 적재(insmod·비정상 경로)를 확인합니다.
  2. 범위 확인 — ps/ls/ss와 /proc·커널 자료구조의 결과 불일치를 확인합니다.
  3. 증거 확보 — 모듈 적재 이벤트·불일치 결과·커널 무결성을 보존합니다.
  4. 차단/조치 — 커널 루트킷 정탐이면 모듈 식별·제거(또는 격리·재설치)·은닉 자원 조사를 진행합니다.
  5. 재발 방지 — 커널 모듈·루트킷 기반 은닉 탐지를 운영합니다.

11. 핵심 정리

은닉 대상탐지
프로세스/proc vs ps
파일inode vs ls
네트워크/proc/net vs ss
모듈/sys vs lsmod
면접 포인트"커널 루트킷은 도구 결과를 조작 — /proc 직접 조회와 불일치로 탐지"

12. 다음 편 예고

다음 편 375. 방어 회피·흔적 삭제 — LD_PRELOAD·syscall 후킹 은닉 탐지 에서는 LD_PRELOAD·syscall 후킹 은닉을 다루는 LD_PRELOAD·syscall 후킹 은닉 탐지를 다룹니다.


이전 편: 373. 방어 회피·흔적 삭제 — EDR·백신 우회·종료 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글