시스템 보안 · 취약점 › C. Linux 정보 노출 및 수집 · 17/50편 (전체 117/450)
학습 단계: 네트워크 정보 수집
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

로컬에서 리스닝 포트를 조회하면, 외부 스캔으로는 안 보이는 로컬 전용 서비스(127.0.0.1 바인딩) 까지 모두 드러납니다. 공격자는 이를 보고 추가 공격 표면(관리 인터페이스·DB·캐시)을 찾습니다.

외부 포트 스캔 (네트워크 영역 294편) : 외부에서 보이는 포트만
로컬 리스닝 조회 (C영역)            : 로컬 전용 포함 모든 포트
   ss -tulpn:
     0.0.0.0:443  httpd       (외부 노출)
     127.0.0.1:3306 mysqld    (로컬 전용 → 외부 스캔엔 안 보임)
     127.0.0.1:6379 redis     (로컬 전용)
   → 로컬 조회로 내부 공격 표면 전체 파악

A영역 14편(포트 기준선)이 "방어자의 포트 점검"이라면, 여기서는 공격자가 같은 정보를 조회하는 정찰입니다.

2. 왜 중요한가

  • 로컬 전용 서비스(DB·캐시·관리 포트)는 외부에서 안 보이지만, 침입 후 로컬 조회로 드러나 추가 공격 표면이 됩니다.
  • 리스닝 포트 조회로 공격자는 "어떤 서비스를 추가로 노릴지"(DB 접근 등)를 정합니다.
  • 로컬 조회는 외부 스캔과 달리 네트워크 트래픽이 없어, 서버 내부 감사가 주 탐지 수단입니다.

3. 핵심 명령어 / 설정

조회정보
ss -tulpn리스닝 포트+프로세스(로컬 포함)
netstat -lntp(구형) 동일
/proc/net/tcpTCP 소켓(파일)
관심127.0.0.1 바인딩 서비스

4. 실습 (실습 예시)

# 리스닝 포트 조회 감사 (실습 예시)
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/ss -F auid>=1000 -F auid!=unset -k recon_net
-w /proc/net/tcp -p r -k recon_net

# 세션에서 포트 조회 흐름 (분석 방법)
sudo ausearch -k recon_net -i --start recent | grep -E 'comm="ss"|net/tcp|netstat' | tail

5. 정상 상태

$ sudo ausearch -k recon_net -i --start today | grep 'comm="ss"' | tail -1
10:52:02 auid=admin1 ses=8 comm="ss"  (서비스 점검)

관리자가 서비스 상태를 점검하며 ss를 보는 단발 조회는 정상입니다(A영역 14편 포트 점검 포함).

6. 이상 상태

02:13:30 auid=devops ses=12 comm="ss" a1="-tulpn"
02:13:33 auid=devops ses=12 comm="cat" name="/proc/net/tcp"
  • 리스닝 포트 전체(ss -tulpn) + /proc/net/tcp 연속 조회 → 로컬 서비스 전면 파악
  • 127.0.0.1:3306(mysqld) 등 로컬 전용 서비스 식별 → DB 추가 공격 표면
  • 네트워크 정찰(C11~16)에 이어 서비스 정찰로 심화

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

리스닝 포트 정찰 흐름입니다(가상의 예시 로그).

type=EXECVE ... a0="ss" a1="-tulpn"
type=SYSCALL ... auid=devops ses=12 comm="ss" exe="/usr/bin/ss" key="recon_net"
type=PATH ... name="/proc/net/tcp" nametype=NORMAL
관찰해석
ss -tulpn리스닝 포트+프로세스
/proc/net/tcp소켓 전체
127.0.0.1 서비스 식별로컬 전용 공격 표면
ses=12서비스 정찰 세션

로컬 전용 서비스(DB)에 대한 이후 접속 시도는 E영역(중요 정보 접근)과 연계해 봅니다.

8. SOC 관제 포인트

  • 리스닝 포트 조회는 로컬 전용 서비스 식별 관점으로 봅니다(외부 스캔으로는 안 보임).
  • 식별된 로컬 서비스(DB·캐시)에 대한 이후 접근을 E영역과 연계 감시합니다.
  • A영역 14편 포트 기준선과 비교해, 조회 대상이 기준선 밖 서비스인지 확인합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_c,recon,">
  <rule id="102160" level="7">
    <if_group>audit</if_group>
    <field name="audit.key">recon_net</field>
    <regex type="pcre2">a0="ss"|a0="netstat"|/proc/net/tcp</regex>
    <description>리스닝 포트·소켓 조회(로컬 서비스 정찰)</description>
    <mitre><id>T1049</id></mitre>
  </rule>
</group>

T1049(System Network Connections Discovery)에 매핑됩니다. C18(현재 연결)과 함께 봅니다.

10. 대응 방법

  1. 초기 확인 — 포트 조회의 대상(로컬 전용 포함)·연속성·주체를 확인합니다.
  2. 범위 확인 — 식별된 로컬 서비스(DB 등)에 대한 이후 접근을 E영역과 교차 확인합니다.
  3. 증거 확보 — 세션 조회 흐름을 보존합니다.
  4. 차단/조치 — 탈취 세션이면 B영역 대응과 로컬 서비스 접근 점검을 진행합니다.
  5. 재발 방지 — 리스닝 포트 정찰을 네트워크 정찰 상관에 포함합니다.

11. 핵심 정리

조회정보
ss -tulpn리스닝 포트+프로세스
/proc/net/tcp소켓 전체
특징로컬 전용 서비스까지 드러남
구분서비스 점검(정상) vs 로컬 서비스 전면 조회(정찰)
면접 포인트"외부 스캔엔 안 보이는 로컬 전용 서비스가 로컬 조회로 드러난다"

12. 다음 편 예고

다음 편 118. Linux 정보 수집 — 현재 네트워크 연결 조회 에서는 활성 연결 정찰인 현재 네트워크 연결 조회를 다룹니다.


이전 편: 116. Linux 정보 수집 — 기본 게이트웨이·경로 확인
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글