260. 프로세스·지속성 — 위장(masquerading) 프로세스 탐지

changseop lee·7일 전

시스템 보안 · 취약점

목록 보기
260/450

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

선행 학습

1. 개념

공격자는 악성 프로세스를 정상 프로세스로 위장(masquerading)해 탐지를 피합니다. kworker·sshd·systemd 같은 익숙한 이름을 쓰거나, 정상 경로를 흉내 내거나, 오타 이름(sshd vs sshdd)을 씁니다.

프로세스 위장 기법
 이름 위장: [kworker/0:0] 흉내, sshd·systemd 사칭
 오타 위장: sshd→sshdd, cron→crond2
 경로 위장: /usr/bin/sshd 아닌 /tmp/sshd
 공백·특수문자: "nginx " (뒤 공백)

탐지: 이름 같아도 경로·해시·계보가 정상과 불일치

위장의 핵심은 "이름은 정상 같지만 경로·해시·계보가 다르다"입니다. 이름만 믿지 말고 실제 경로·해시를 검증해야 합니다.

2. 왜 중요한가

  • 위장은 관제원·간단한 탐지가 이름만 보고 넘기게 만드는 회피 기법입니다.
  • 정상 프로세스는 이름·경로·해시·부모가 일관되지만, 위장은 하나 이상 불일치합니다.
  • 커널 스레드 사칭([kworker] 등)은 실제 커널 스레드가 아닌 사용자 프로세스입니다.

3. 핵심 명령어 / 설정

위장 기법신호탐지
이름 사칭(sshd)경로 불일치exe 경로 검증
오타(sshdd)미세 차이이름 정밀 비교
커널 스레드 사칭[kworker] 흉내PPID·경로
경로 위장/tmp/sshd표준 경로 대조
해시 변조정상명·악성 해시해시 대조

4. 실습 (실습 예시)

# 위장 프로세스 탐지 (분석 방법)
# 정상 이름인데 비표준 경로(위장)
sudo ausearch -k proc_exec -i --start recent 2>/dev/null | grep -E 'comm="(sshd|systemd|nginx|cron)"' | grep -vE 'exe=/usr/|exe=/lib/|exe=/sbin/'
# 커널 스레드 사칭(실제 커널 스레드는 PPID=2[kthreadd])
ps -eo pid,ppid,comm | awk '$3 ~ /\[/ && $2 != 2 {print "위장의심:",$0}'

5. 정상 상태

$ (이름-경로 불일치) (없음)
$ (커널 스레드 사칭) (없음)

정상 이름 프로세스가 모두 표준 경로에서 실행되고, 커널 스레드 사칭이 없는 상태가 정상입니다.

6. 이상 상태

$ (이름-경로 불일치)
comm="sshd" exe=/tmp/sshd ppid_comm="sh"   (sshd 사칭)
$ (커널 스레드 사칭)
위장의심: 3100 3001 [kworker/9:9]  (PPID≠2, 사용자 프로세스)
  • comm은 sshd인데 경로가 /tmp/sshd → 이름 위장(정상 sshd는 /usr/sbin)
  • [kworker] 흉내인데 PPID가 kthreadd(2) 아님 → 커널 스레드 사칭
  • 이름 정상·경로/계보 불일치 → 위장 → 정탐

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

프로세스 위장 분석입니다(가상의 예시).

[정상] comm="sshd" exe=/usr/sbin/sshd ppid=systemd
[위장] comm="sshd" exe=/tmp/sshd ppid=sh
       이름 같음 but 경로·부모 불일치 → 위장
[커널 사칭] comm="[kworker/9:9]" ppid≠2 → 사용자 프로세스
검증정상위장
경로/usr/sbin/sshd/tmp/sshd
부모systemdsh
커널 스레드PPID=2PPID≠2

이름이 같아도 경로·부모·해시로 위장을 식별합니다.

8. SOC 관제 포인트

  • 위장(masquerading)은 악성 프로세스를 정상 이름으로 꾸며 탐지를 회피합니다.
  • 이름만 믿지 말고 경로·해시·계보의 불일치로 위장을 식별합니다.
  • 커널 스레드 사칭([kworker] 등)은 PPID·경로로 실제 여부를 검증합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,process,">
  <!-- 정상 이름인데 비표준 경로(위장) -->
  <rule id="105090" level="13">
    <if_sid>105010</if_sid>
    <field name="audit.comm" type="pcre2">^(sshd|systemd|nginx|httpd|cron|crond|kworker)$</field>
    <field name="audit.exe" type="pcre2">^(/tmp/|/dev/shm/|/var/tmp/|/home/)</field>
    <description>정상 이름 프로세스의 비표준 경로 실행(위장)</description>
    <mitre><id>T1036.005</id></mitre>
  </rule>
</group>

정상 프로세스명의 표준 경로 매핑을 기준선으로 두고 경로 불일치를 탐지합니다. 커널 스레드 사칭은 PPID로 보완합니다.

10. 대응 방법

  1. 초기 확인 — 정상 이름 프로세스의 실제 경로·해시·부모 일치 여부를 확인합니다.
  2. 범위 확인 — 이름 위장·오타·커널 스레드 사칭·경로 불일치를 확인합니다.
  3. 증거 확보 — 위장 프로세스 정보(이름·경로·해시·계보)를 보존합니다.
  4. 차단/조치 — 위장 정탐이면 프로세스 종료·바이너리 격리·IOC 등록을 진행합니다.
  5. 재발 방지 — 경로·해시·계보 검증 기반 위장 탐지를 운영합니다.

11. 핵심 정리

위장 기법탐지
이름 사칭(sshd)exe 경로 검증
오타(sshdd)이름 정밀 비교
커널 스레드 사칭PPID≠2
해시 변조해시 대조
면접 포인트"위장은 이름만 정상 — 경로·해시·계보 불일치로 식별, 이름만 믿지 말 것"

12. 다음 편 예고

다음 편 261. 프로세스·지속성 — 부모-자식 관계 이상 탐지 에서는 부모-자식 관계 이상을 다루는 부모-자식 관계 이상 탐지를 다룹니다.


이전 편: 259. 프로세스·지속성 — 비표준 경로 실행 프로세스 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글