116. Linux 정보 수집 — 기본 게이트웨이·경로 확인

changseop lee·6일 전

시스템 보안 · 취약점

목록 보기
116/310

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

선행 학습

1. 개념

기본 게이트웨이와 외부 연결성 확인은 공격자가 "이 서버가 외부로 나갈 수 있는가(C2 통신·데이터 유출 가능 여부)" 를 파악하는 정찰입니다. 외부로 나가지 못하는 격리 서버인지, 인터넷 접근이 되는지에 따라 공격 전략이 달라집니다.

외부 경로 확인
 ip route show default   → 기본 게이트웨이
 ping 8.8.8.8 / 외부IP    → 외부 연결성 확인(ICMP)
 traceroute 외부          → 외부 경로 추적
 curl/wget 외부(테스트)   → HTTP 외부 연결성

목적: 외부 통신 가능 → C2·데이터 유출 경로 확보 판단
      외부 통신 불가 → 격리 환경, 다른 전략 필요

관리자도 연결 점검으로 ping/traceroute를 쓰지만, 공격자는 외부 도달성 확인 목적으로 조회합니다.

2. 왜 중요한가

  • 외부 연결성 확인은 공격자가 C2(명령·제어) 채널·데이터 유출 경로 확보 가능성을 재는 것입니다.
  • 격리돼야 할 내부 서버가 외부로 나간다면, 그 자체가 네트워크 하드닝 문제이자 공격자에게 유리한 조건입니다.
  • 외부 경로 정찰 뒤 실제 외부 연결(F영역 비정상 프로세스의 외부 통신)이 나타나는지 연계합니다.

3. 핵심 명령어 / 설정

조회정보
ip route show default기본 게이트웨이
ping 외부IP외부 ICMP 도달성
traceroute외부 경로
외부 HTTP 테스트HTTP 유출 가능성

4. 실습 (실습 예시)

# 외부 경로 확인 감사 (실습 예시)
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/ping -F auid>=1000 -F auid!=unset -k recon_net
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/traceroute -F auid>=1000 -F auid!=unset -k recon_net

# 세션에서 외부 연결성 확인 (분석 방법) — 외부 IP 대상인지 확인
sudo ausearch -k recon_net -i --start recent | grep -E 'ping|traceroute' | tail
# 방화벽 아웃바운드 로그와 교차 (외부로 나갔는지)
sudo grep -E 'OUT=.*DST=(8\.8\.8\.8|203\.)' /var/log/messages 2>/dev/null | tail

5. 정상 상태

$ sudo ausearch -k recon_net -i --start today | grep ping | tail -1
10:50:02 auid=admin1 ses=8 comm="ping" (대상 내부 게이트웨이)  (연결 점검)

관리자가 내부 연결 점검으로 게이트웨이에 ping하는 것은 정상입니다. 격리 서버에서 외부 IP로 나가는 것이 이상 신호입니다.

6. 이상 상태

02:13:25 auid=devops ses=12 comm="ip" (route show default)
02:13:28 auid=devops ses=12 comm="ping" (대상 외부 8.8.8.8)
  • 기본 게이트웨이 확인 + 외부 IP 도달성 테스트 → C2·유출 경로 확보 정찰
  • 내부 전용이어야 할 서버가 외부로 나가는지 확인 → 외부 통신 가능성 판단
  • 이후 외부로의 실제 연결(F영역)이 나타나는지 아웃바운드 방화벽 로그로 확인

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

외부 경로 정찰과 아웃바운드 연계입니다(가상의 예시 로그).

type=EXECVE ... a0="ip" a1="route" a2="show" a3="default"
type=EXECVE ... a0="ping" a1="8.8.8.8"
type=SYSCALL ... auid=devops ses=12 comm="ping" key="recon_net"
[방화벽] kernel: ... OUT=ens160 DST=8.8.8.8 PROTO=ICMP
관찰해석
route show default게이트웨이 확인
ping 외부 IP외부 도달성
방화벽 OUT 로그실제 외부로 나감
ses=12외부 경로 정찰 세션

아웃바운드 방화벽 로그(A영역 15편)와 교차하면 "정찰"과 "실제 외부 통신"을 구분할 수 있습니다.

8. SOC 관제 포인트

  • 외부 경로 확인은 대상이 외부 IP인지로 정찰 여부를 판단합니다(내부 게이트웨이는 정상).
  • 격리 서버의 외부 도달성 확인은 하드닝 문제이자 정찰 신호로 주시합니다.
  • 외부 경로 정찰 뒤 실제 아웃바운드 연결(F영역)을 방화벽 로그로 확인합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_c,recon,">
  <rule id="102150" level="8">
    <if_group>audit</if_group>
    <field name="audit.key">recon_net</field>
    <regex type="pcre2">a0="(ping|traceroute)"</regex>
    <description>외부 연결성·경로 확인(C2/유출 경로 정찰 가능성)</description>
    <mitre><id>T1016</id></mitre>
  </rule>
</group>

외부 IP 대상 여부는 execve 인자나 방화벽 아웃바운드 로그로 보강합니다. 내부 전용 서버는 레벨을 높입니다.

10. 대응 방법

  1. 초기 확인 — 외부 경로 확인의 대상(내부/외부)·주체와 실제 아웃바운드 연결을 확인합니다.
  2. 범위 확인 — 외부 경로 정찰 뒤 외부 통신(F영역)·데이터 유출이 있었는지 확인합니다.
  3. 증거 확보 — 세션 조회 흐름과 아웃바운드 방화벽 로그를 보존합니다.
  4. 차단/조치 — 탈취 세션이면 B영역 대응과 아웃바운드 차단을 진행합니다.
  5. 재발 방지 — 외부 경로 정찰과 아웃바운드 연계 탐지를 운영합니다.

11. 핵심 정리

조회정보
route show default게이트웨이
ping/traceroute 외부외부 도달성
방화벽 OUT실제 외부 통신
구분내부 연결 점검(정상) vs 외부 도달성 확인(정찰)
면접 포인트"격리 서버의 외부 ping은 C2·유출 경로 정찰 신호"

12. 다음 편 예고

다음 편 117. Linux 정보 수집 — Listening Port 정보 수집 에서는 서비스 노출 정찰인 Listening Port 정보 수집을 다룹니다.


이전 편: 115. Linux 정보 수집 — hosts 파일 열람 흔적
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글