266. 프로세스·지속성 — 비정상 네트워크 연결 프로세스 탐지

changseop lee·6일 전

시스템 보안 · 취약점

목록 보기
266/450

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

선행 학습

1. 개념

프로세스를 네트워크 연결과 결합해 보면 강력한 신호가 나옵니다. 어떤 프로세스가 어디로 연결하는가를 보면, 정상 서비스가 아닌 셸·임시 바이너리의 외부 연결(C2·유출)을 포착할 수 있습니다.

비정상 네트워크 연결 프로세스
 셸·임시 바이너리의 외부 연결: bash/_tmp/.x → 외부 (C2)
 비서비스의 리스닝 포트: 셸이 포트 열기 (bind shell, F30)
 비표준 포트 아웃바운드: → 4444·비표준 (F34)
 서비스의 예상 외 연결: nginx → 외부 랜덤 IP

핵심: 프로세스(무엇이) + 연결(어디로/포트) 결합

정상 연결은 알려진 서비스가 예상된 목적지로 합니다. 셸·임시 바이너리의 외부 연결, 비서비스의 리스닝은 이상입니다.

2. 왜 중요한가

  • 프로세스-연결 결합은 "무엇이 어디로 연결하는가"로 C2·유출·백도어를 포착합니다.
  • 셸·임시 바이너리의 외부 연결은 C2·유출의 직접 신호입니다.
  • 비서비스 프로세스가 포트를 여는 것(리스닝)은 백도어(bind shell) 신호입니다.

3. 핵심 명령어 / 설정

연결 패턴의미위험
셸·임시 → 외부C2·유출매우 높음
비서비스 리스닝bind shell높음
비표준 포트 아웃C2높음
서비스 예상 외 연결침해·변조높음
정상 서비스 연결정상정상

4. 실습 (실습 예시)

# 비정상 네트워크 연결 프로세스 탐지 (분석 방법)
# 프로세스별 네트워크 연결(셸·임시 바이너리 주목)
ss -tnp 2>/dev/null | grep -vE '127.0.0.1|::1' | grep -E 'sh|bash|/tmp/|nc|python|socat'
# 리스닝 포트와 프로세스(비서비스 리스닝)
ss -tlnp 2>/dev/null | grep -vE 'sshd|nginx|mysqld|systemd'

5. 정상 상태

$ (프로세스 연결) 정상 서비스의 예상 목적지 연결만
$ (리스닝 포트) 알려진 서비스(sshd·nginx)만 리스닝

네트워크 연결이 정상 서비스의 예상 목적지에 그치고, 리스닝 포트가 알려진 서비스만인 상태가 정상입니다.

6. 이상 상태

$ (프로세스 연결)
bash → 192.0.2.88:4444 (셸의 외부 연결, C2)
/tmp/.x → 203.0.113.9:443 (임시 바이너리 외부)
$ (리스닝 포트)
0.0.0.0:1337 users:(("sh"))  (셸이 포트 리스닝, bind shell)
  • bash·/tmp/.x의 외부 연결 → C2·유출
  • 셸이 1337 포트 리스닝 → bind shell 백도어
  • 비서비스 프로세스의 외부 연결·리스닝 → 정탐

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

비정상 네트워크 연결 프로세스 분석입니다(가상의 예시).

[C2 연결]
bash(3002) → 192.0.2.88:4444 (리버스 셸)
 계보: nginx→sh→bash (F11) + 연결(F16) = 웹셸→C2
[bind shell]
sh(3100) listen 0.0.0.0:1337 → 공격자 접속 대기
 → 비서비스 셸의 리스닝 = 백도어
결합해석
셸+외부 연결C2
임시+외부유출·C2
셸+리스닝bind shell
계보+연결웹셸→C2

프로세스와 연결을 결합하면 C2·백도어가 명확히 드러납니다.

8. SOC 관제 포인트

  • 프로세스-네트워크 연결 결합은 "무엇이 어디로"로 C2·유출·백도어를 포착합니다.
  • 셸·임시 바이너리의 외부 연결, 비서비스의 리스닝(bind shell)이 핵심 신호입니다.
  • 계보(F11)+연결(F16)을 결합하면 웹셸→C2 공격 체인이 드러납니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,process,">
  <!-- 셸·임시 바이너리의 네트워크 연결 -->
  <rule id="105150" level="13">
    <if_sid>105010</if_sid>
    <field name="audit.comm" type="pcre2">^(sh|bash|dash|nc|ncat|socat|python[0-9.]*)$</field>
    <field name="audit.syscall" type="pcre2">^(connect|bind|listen)$</field>
    <description>셸·임시 바이너리의 네트워크 연결(C2·bind shell)</description>
    <mitre><id>T1071</id><id>T1059.004</id></mitre>
  </rule>
</group>

connect/bind/listen 시스템 콜 감사와 ss 연결 정보를 결합합니다. 네트워크 모니터링(NetFlow)과 상관합니다.

10. 대응 방법

  1. 초기 확인 — 비정상 연결 프로세스(셸·임시)·목적지·포트·방향을 확인합니다.
  2. 범위 확인 — 외부 연결(C2·유출)·비서비스 리스닝(bind shell)·계보를 확인합니다.
  3. 증거 확보 — 프로세스-연결 결합 정보와 네트워크 로그를 보존합니다.
  4. 차단/조치 — C2·백도어 정탐이면 연결 차단·프로세스 종료·계보 추적을 진행합니다.
  5. 재발 방지 — 프로세스-네트워크 결합 탐지를 운영합니다.

11. 핵심 정리

연결 패턴의미
셸·임시 → 외부C2·유출
비서비스 리스닝bind shell
비표준 포트 아웃C2
서비스 예상 외침해·변조
면접 포인트"프로세스+연결 결합이 핵심 — 셸의 외부 연결·리스닝은 C2·백도어"

12. 다음 편 예고

다음 편 267. 프로세스·지속성 — 리소스 이상 프로세스(암호화폐 채굴 등) 탐지 에서는 리소스 이상 프로세스를 다루는 리소스 이상 프로세스(암호화폐 채굴 등) 탐지를 다룹니다.


이전 편: 265. 프로세스·지속성 — 단기 실행·반복 실행 프로세스 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글