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

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

선행 학습

1. 들어가며

프로세스가 외부와 대화하는 통로가 네트워크입니다. 침해의 상당수는 결국 '외부와의 통신'으로 드러나므로 (C2 연결, 데이터 유출), 네트워크 경로를 보안 관점에서 이해하는 것이 탐지의 기반입니다.

2. 핵심 개념

패킷이 프로세스에 닿기까지의 경로:

NIC → Kernel(네트워크 스택) → Netfilter(방화벽) → Socket → Process

각 지점이 보안 통제점입니다.

  • Netfilter: 커널 내 방화벽 훅(iptables/nftables가 조작)
  • Socket: 프로세스가 열어 둔 통신 종단점(포트)
  • Process: 실제로 소켓을 소유한 주체
  외부 패킷
     ▼
   [ NIC ]
     ▼
 [ Kernel 네트워크 스택 ]
     ▼
 [ Netfilter ] ── 방화벽 규칙으로 허용/차단
     ▼
 [ Socket ]  ── 어떤 포트가 열려 있나
     ▼
 [ Process ] ── 누가 그 포트를 소유하나

3. 동작 원리

들어온 패킷은 커널 스택에서 처리되며, Netfilter 훅(PREROUTING/INPUT 등)에서 방화벽 규칙 검사를 받습니다. 허용되면 목적지 포트에 바인딩된 소켓으로 전달되고, 그 소켓을 소유한 프로세스가 데이터를 받습니다.

보안 분석은 이 경로를 역으로 추적합니다: '이 포트가 왜 열려 있지?' → '어떤 프로세스가 소유하지?' → '그 프로세스는 정상인가?'. 그래서 포트-프로세스 매핑(ss -p)이 핵심 도구입니다.

4. 명령어 실습

# 열린 포트와 소유 프로세스 (핵심 명령)
sudo ss -tulnp

# 현재 방화벽 규칙(백엔드에 따라)
sudo nft list ruleset 2>/dev/null | head    # nftables
sudo iptables -S 2>/dev/null | head          # iptables

# 확립된 연결(외부와 통신 중)
sudo ss -tnp state established

5. 실행 결과

실습 컨테이너에서 ss -tulnp 실제 실행 결과(일부)입니다. (실제 캡처)

$ sudo ss -tulnp
Netid State  Local Address:Port  Process
tcp   LISTEN 0.0.0.0:22          users:(("sshd",pid=1491,fd=3))

0.0.0.0:22에서 sshd가 대기 중입니다. 0.0.0.0은 모든 인터페이스에서 수신한다는 뜻(37편에서 상세). 포트마다 '어떤 프로세스가, 어떤 주소로' 여는지가 네트워크 보안 점검의 출발점입니다.

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

  • 정상: 필요한 서비스 포트만, 관리 포트는 내부/제한 대역, 방화벽 기본 정책은 deny.
  • 위험 징후:
    • 알 수 없는 프로세스가 포트를 리스닝
    • 관리 포트가 0.0.0.0으로 전체 노출
    • 외부 IP로의 예상 밖 established 연결(C2 정황)

네트워크는 '들어오는 것(listen)'과 '나가는 것(outbound)'을 모두 봐야 합니다. C2는 주로 outbound입니다.

7. 탐지 방법

  • ss -tulnp로 listen 포트-프로세스 매핑
  • established 연결의 상대 IP 확인
  • 방화벽 규칙과 실제 열린 포트의 정합성 점검

8. SOC 관점 — SIEM · Wazuh · IOC

네트워크 가시성은 SOC의 핵심입니다. 호스트에서는 auditd connect syscall(이 시리즈 실습에서 user_connect 키로 설정)과 ss, 네트워크단에서는 방화벽/IDS(Suricata) 로그를 결합합니다. SIEM은 outbound 연결의 목적지 IP/도메인을 위협 인텔리전스와 대조해 C2를 탐지합니다.

9. 실습 체크리스트

[ ] ss -tulnp로 listen 포트 확인
[ ] 각 포트의 소유 프로세스 확인
[ ] established 연결의 상대 IP 확인
[ ] 방화벽-포트 정합성 점검

10. 핵심 정리

  • 패킷 경로는 NIC→Kernel→Netfilter→Socket→Process다.
  • 각 지점이 보안 통제점이며 포트-프로세스 매핑이 핵심이다.
  • 분석은 '포트→프로세스→정상성'을 역추적한다.
  • C2는 주로 outbound라 나가는 연결도 봐야 한다.
  • 호스트 auditd connect와 네트워크 IDS를 결합한다.

11. 다음 편

다음 편에서는 37. Listening Port 보안 점검 를 다룹니다. 열린 포트를 정밀 점검하는 ss 출력 분석, 특히 0.0.0.0과 127.0.0.1의 차이를 봅니다.


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

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

0개의 댓글