Linux 시스템 보안 기초 · 28/50편

이 글은 리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 시리즈를 선행 학습으로 두고, 동일한 개념을 보안관제(SOC) 관점에서 한 단계 확장합니다.

선행 학습

1. 들어가며

개별 프로세스가 '단어'라면, 프로세스 트리는 '문장'입니다. 침해는 대개 여러 프로세스의 연쇄로 일어나므로, 계보 전체를 읽어야 '무슨 일이 벌어졌는가'가 보입니다. 이번 편은 정상 체인과 의심 체인을 대조합니다.

2. 핵심 개념

핵심은 '부모가 이 자식을 띄우는 게 자연스러운가'입니다.

  • 정상: systemd → sshd → bash(사용자 로그인), systemd → nginx(서비스)
  • 의심: nginx → bash → curl → ./payload(웹서버가 쉘·다운로더를 띄움)

웹/DB 서비스가 인터랙티브 쉘이나 네트워크 도구의 부모가 되는 것은 원격 코드 실행(RCE)의 전형적 흔적입니다.

의심 체인 (RCE → 다운로드 → 실행)

nginx
 └── bash              ← 웹서버가 쉘을 띄움 (비정상)
      └── curl         ← 외부에서 파일 다운로드
           └── suspicious_binary   ← 받은 파일 실행

3. 동작 원리

웹 애플리케이션 취약점(명령 삽입, 파일 업로드)이 악용되면, 웹서버 프로세스가 system()류 호출로 쉘을 실행합니다. 이 쉘이 다시 curl/wget으로 페이로드를 받고, 받은 바이너리를 실행하는 연쇄가 만들어집니다.

이 흐름은 계보로만 명확히 보입니다. curl 하나만 보면 정상 도구지만, 부모가 nginx→bash라는 맥락이 붙는 순간 악성으로 판정됩니다. 그래서 트리 분석은 '맥락으로 판단하는' 대표 기법입니다.

4. 명령어 실습

# 전체 트리
ps -eo pid,ppid,user,comm --forest

# 특정 프로세스의 조상 추적 (부모를 거슬러 올라가기)
pstree -ps <PID>

# 웹서버(nginx/apache)의 자식 프로세스만
pgrep -P "$(pgrep -x nginx | head -1)" 2>/dev/null | xargs -r ps -o pid,comm -p

5. 실행 결과

웹서버 하위의 의심 체인 예시입니다. (예시 출력 — RCE 시나리오 가정)

$ pstree -ps 8140
systemd(1)───nginx(910)───bash(8130)───curl(8140)

$ ps -o pid,ppid,user,comm -p 8130,8140
  PID  PPID USER      COMMAND
 8130   910 www-data  bash
 8140  8130 www-data  curl

nginx(910) → bash(8130) → curl(8140) 계보가 www-data 권한으로 이어집니다. 웹서버가 쉘과 다운로더의 조상이라는 사실 자체가 침해의 강한 증거입니다. (본 실습 컨테이너에는 웹서버가 없어 형식 예시입니다.)

6. 보안 관점 — 정상 사용 vs 악용

  • 정상: 서비스는 자기 워커만, 사용자 쉘은 sshd/로그인 매니저 하위.
  • 침해 징후:
    • 웹/DB 서비스 하위의 bash/sh/curl/wget/nc
    • 짧은 시간에 생성·소멸하는 자식들(다운로드→실행→삭제)
    • 계보 중간에 임시 디렉터리 바이너리

트리 분석은 침해사고 타임라인(46편)과 종합 실습(50편)의 뼈대가 됩니다.

7. 탐지 방법

  • 서비스 프로세스의 자식 화이트리스트 이탈 탐지
  • pstree로 조상 추적
  • execve 이벤트를 PPID로 연결해 체인 재구성

8. SOC 관점 — SIEM · Wazuh · IOC

SIEM에서 프로세스 계보 상관분석은 고급 탐지의 핵심입니다. Wazuh/EDR은 execve 이벤트의 PPID를 이어 '프로세스 체인'을 만들고, 'web_server → shell → network_tool' 패턴을 MITRE T1190/T1059로 탐지합니다. 이런 체인은 오탐이 적어 고신뢰 알람으로 다룹니다.

9. 실습 체크리스트

[ ] ps --forest/pstree로 체인 재구성
[ ] 서비스 하위의 쉘/네트워크 도구 탐지
[ ] 임시 디렉터리 바이너리가 계보에 있는지 확인
[ ] execve PPID 연결로 체인 분석

10. 핵심 정리

  • 침해는 프로세스의 연쇄로 일어나 트리로 읽어야 보인다.
  • 판단 기준은 '부모가 이 자식을 띄우는 게 자연스러운가'다.
  • 웹/DB 서비스 하위의 쉘·다운로더는 RCE의 전형이다.
  • curl 하나도 계보 맥락에 따라 악성으로 판정된다.
  • 프로세스 체인 상관분석은 오탐이 적은 고신뢰 탐지다.

11. 다음 편

다음 편에서는 29. Linux 서비스 보안 를 다룹니다. 프로세스를 지속적으로 띄우는 systemd 서비스의 구조와 보안 위험을 봅니다.


본 실습은 격리된 테스트 VM(Rocky Linux / Ubuntu, VMware) 및 테스트 계정 환경을 기준으로 하며, 운영 서버를 대상으로 하지 않습니다. 실행 결과는 실제 캡처와 예시 출력을 명확히 구분해 표기합니다.

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

0개의 댓글