376. 방어 회피·흔적 삭제 — 프로세스·파일 은닉 탐지

changseop lee·7일 전

시스템 보안 · 취약점

목록 보기
376/450

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

선행 학습

1. 개념

루트킷(H24·H25) 외에도 공격자는 여러 기법으로 프로세스·파일을 숨깁니다. 숨김 이름·비정상 위치·마운트 은폐·메모리 전용 실행 등이며, 각각 다른 교차 점검으로 드러납니다.

프로세스·파일 은닉 기법
 숨김 파일: .으로 시작, 공백·특수문자 이름
 비정상 위치: /dev/shm·/tmp·/var/tmp 실행 파일
 마운트 은폐: 디렉터리 위에 마운트로 가리기
 메모리 전용: memfd_create·fileless 실행(디스크 없음)
 프로세스 위장: 커널 스레드명[...] 흉내

탐지: /proc 교차·숨김 실행 파일·마운트 비교·deleted 바이너리

핵심은 "정상 위치·형태가 아닌 프로세스·파일"입니다. /proc의 실제 상태와 디렉터리 리스팅을 교차하면 은닉이 드러납니다.

2. 왜 중요한가

  • 루트킷 없이도 숨김 이름·비정상 위치·마운트 은폐로 프로세스·파일을 감출 수 있습니다.
  • 메모리 전용(fileless) 실행은 디스크에 파일이 없어 /proc의 deleted 흔적으로만 포착됩니다.
  • /proc 실제 상태와 디렉터리·마운트 교차가 은닉 탐지의 핵심입니다.

3. 핵심 명령어 / 설정

은닉방식탐지
숨김 이름.·특수문자find 숨김 파일
비정상 위치/dev/shm 실행실행 파일 스캔
마운트 은폐overmount마운트 비교
메모리 전용memfd·fileless/proc exe deleted
프로세스 위장[kthread] 흉내계보·exe 확인

4. 실습 (실습 예시)

# 프로세스·파일 은닉 탐지 (분석 방법)
# 비정상 위치 실행 파일(메모리·임시)
sudo ls -la /proc/*/exe 2>/dev/null | grep -E '/tmp/|/dev/shm/|memfd:|\(deleted\)' | head
# 숨김 실행 파일
sudo find /tmp /dev/shm /var/tmp -name '.*' -type f -perm -u+x 2>/dev/null | head
# 커널 스레드 위장(exe 있는 [대괄호] 프로세스)
for p in /proc/[0-9]*; do n=$(cat $p/comm 2>/dev/null); e=$(readlink $p/exe 2>/dev/null); [ -n "$e" ] && echo "$n" | grep -q '^\[' && echo "$p $n $e"; done 2>/dev/null | head

5. 정상 상태

$ (비정상 위치 exe) (없음)
$ (숨김 실행 파일) (없음)
$ (스레드 위장) (없음 — 진짜 커널 스레드는 exe 없음)

프로세스 exe가 정상 경로이고, 비정상 위치·숨김 실행 파일·스레드 위장이 없는 상태가 정상입니다.

6. 이상 상태

$ (비정상 위치 exe)
/proc/6666/exe -> /dev/shm/.x (memfd/임시 실행)
/proc/7777/exe -> /tmp/.payload (deleted) (삭제 후 메모리 실행)
$ (스레드 위장)
PID 8888 comm="[kworker/0:2]" exe=/tmp/.k (커널 스레드 위장)
  • /dev/shm·memfd 실행 → 메모리 전용(fileless) 은닉
  • exe가 (deleted) → 파일 삭제 후 메모리에서 실행(흔적 최소화)
  • [kworker] 이름인데 exe 존재 → 커널 스레드 위장
  • 비정상 위치·deleted·위장 → 프로세스·파일 은닉 → 정탐

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

프로세스·파일 은닉 분석입니다(가상의 예시).

[공격자 은닉 기법]
 ① /dev/shm/.x 실행 → 메모리 전용(디스크 흔적 적음)
 ② 실행 후 파일 삭제 → exe (deleted)
 ③ comm을 [kworker]로 위장 → ps에서 정상처럼
      ↕ (교차 탐지)
[분석가]
 /proc/PID/exe → /dev/shm·memfd·(deleted) 확인
 [대괄호] 이름인데 exe 존재 → 위장 발각
 숨김 실행 파일 find
   ↓
= /proc 실제 상태 교차로 은닉 발각 → 정탐
은닉/proc 단서
메모리 실행exe memfd
삭제 후 실행exe (deleted)
스레드 위장[이름]+exe

/proc/PID/exe 교차가 프로세스·파일 은닉 탐지의 핵심입니다.

8. SOC 관제 포인트

  • 프로세스·파일 은닉은 루트킷 외에 숨김 이름·비정상 위치·마운트 은폐·메모리 전용으로 이뤄집니다.
  • fileless 실행은 디스크에 파일이 없어 /proc/PID/exe의 memfd·(deleted)로 포착됩니다.
  • /proc 실제 상태와 디렉터리·마운트·계보 교차가 은닉 탐지의 핵심입니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_h,defense_evasion,">
  <rule id="107250" level="13">
    <if_sid>107000</if_sid>
    <field name="audit.exe" type="pcre2">/dev/shm/|memfd:|/tmp/\.|\(deleted\)</field>
    <description>비정상 위치·메모리 전용·삭제 후 실행(프로세스·파일 은닉)</description>
    <mitre><id>T1564</id><id>T1620</id></mitre>
  </rule>
</group>

/proc/PID/exe를 주기 스캔해 memfd·(deleted)·비정상 위치 실행을 탐지합니다. 커널 스레드명 위장은 exe 유무로 구분합니다.

10. 대응 방법

  1. 초기 확인 — /proc/PID/exe의 비정상 위치·memfd·(deleted)를 확인합니다.
  2. 범위 확인 — 숨김 실행 파일·마운트 은폐·커널 스레드 위장을 확인합니다.
  3. 증거 확보 — 은닉 프로세스·exe 경로·메모리 이미지를 보존합니다.
  4. 차단/조치 — 프로세스·파일 은닉 정탐이면 프로세스 덤프·은닉 파일 복원·C2 연계 조사를 진행합니다.
  5. 재발 방지 — 프로세스·파일 은닉 탐지를 운영합니다.

11. 핵심 정리

은닉방식
숨김 이름.·특수문자
비정상 위치/dev/shm 실행
메모리 전용memfd·fileless
프로세스 위장[kthread] 흉내
면접 포인트"fileless는 디스크에 없음 — /proc/PID/exe의 memfd·(deleted)로 포착"

12. 다음 편 예고

다음 편 377. 방어 회피·흔적 삭제 — 네트워크 연결 은닉 탐지 에서는 네트워크 연결 은닉을 다루는 네트워크 연결 은닉 탐지를 다룹니다.


이전 편: 375. 방어 회피·흔적 삭제 — LD_PRELOAD·syscall 후킹 은닉 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글