📚 네트워크 · 패킷 분석 › 03. Wireshark 패킷 분석 — 111편
이전 글: 110. Conversations · 다음 글: 112. Ethernet 프레임 필드 분석 — eth.src·eth.dst·eth.type로 읽는 2계층 증거

1. 개념

Endpoint는 트래픽을 보내거나 받은 개별 주소 하나입니다. 110. Conversations가 "누구와 누구 사이"를 본다면, Endpoints는 "캡처 안에 누가 등장했고 각자 얼마나 보내고 받았는가"를 봅니다. 두 기능의 기본 차이는 109. Statistics로 전체 흐름 파악 — Conversations·Endpoints·Protocol Hierarchy에서 다뤘습니다.

탭Endpoint 단위주로 쓰는 질문
EthernetMAC 주소같은 LAN에 어떤 장비가 있었나
IPv4 / IPv6IP 주소등장한 호스트 목록, 상위 송신자
TCP / UDPIP + 포트어떤 포트가 트래픽을 많이 받았나 (서비스 식별)

2. 동작 원리

패킷 하나는 출발지와 목적지, 두 Endpoint에 동시에 집계됩니다.

패킷: 192.168.10.20 → 203.0.113.50, 1,200 bytes
        ↓
Endpoint 192.168.10.20 : Tx Packets +1, Tx Bytes +1200
Endpoint 203.0.113.50  : Rx Packets +1, Rx Bytes +1200
        ↓ (파일 끝까지 반복)
Packets = Tx + Rx,  Bytes = Tx Bytes + Rx Bytes

그래서 Endpoints 표의 Packets 합계는 전체 패킷 수의 약 두 배가 됩니다. 비율을 볼 때는 Tx(보낸 것)와 Rx(받은 것)를 따로 봐야 의미가 있습니다.


3. 주요 특징

열의미분석 포인트
Address (Port)Endpoint 주소 (TCP/UDP 탭은 포트 포함)처음 보는 외부 주소, 비표준 포트
Packets / Bytes송수신 합계상위 Endpoint 선별
Tx Packets / Tx Bytes이 주소가 보낸 양과다 송신 호스트
Rx Packets / Rx Bytes이 주소가 받은 양Tx가 0이면 응답하지 않는 대상
Country, City, AS Number 등GeoIP 정보MaxMind DB를 설정했을 때만 표시

GeoIP 열은 Edit → Preferences → Name Resolution → MaxMind database directories에 GeoLite2 등 MaxMind 형식 DB(.mmdb) 경로를 지정해야 나타납니다. 지정하면 IP 계층 Details에도 ip.geoip.src_country 같은 필드가 추가되어 필터로 쓸 수 있습니다.

Endpoint 목록에는 사람이 아닌 주소도 섞여 있으므로 먼저 구분해 둡니다.

주소 예성격처리
255.255.255.255, 192.168.10.255브로드캐스트호스트 아님
224.0.0.251 (mDNS), 239.255.255.250 (SSDP)멀티캐스트로컬 서비스 탐색 트래픽
ff:ff:ff:ff:ff:ff, 01:00:5e:…2계층 브로드캐스트·멀티캐스트 MACEthernet 탭에서 제외하고 봄
게이트웨이 MAC외부 IP 전부가 이 MAC으로 보임113. MAC Address 분석 참고

4. 예시

실습 예시 — tshark로 Endpoint 표를 만듭니다(Rocky/Ubuntu 공통).

F=/tmp/lab.pcapng
tshark -r $F -q -z endpoints,ip
tshark -r $F -q -z endpoints,tcp        # IP+포트 단위
tshark -r $F -q -z endpoints,eth
tshark -r $F -q -z 'endpoints,ip,!(ip.dst == 192.168.10.0/24)'   # 필터를 붙인 집계

-z endpoints,ip 출력의 형식 예시(값은 환경마다 다름)입니다.

Filter:<No Filter>
                       |  Packets  | |  Bytes  | | Tx Packets | | Tx Bytes | | Rx Packets | | Rx Bytes |
192.168.10.20              2410        1.9 MB        1080          210 kB         1330          1.7 MB
203.0.113.50               1370        1.3 MB         950          1.3 MB          420           28 kB
192.168.10.35               840        4.1 MB         830          4.0 MB           10          1.1 kB
줄읽는 법
192.168.10.20Rx가 Tx보다 큼 → 일반 사용자 PC의 다운로드 형태
203.0.113.50외부 서버. 이 캡처에서 가장 큰 외부 송신자
192.168.10.35Tx가 압도적이고 Rx가 거의 없음 → 단방향 대량 송신. 캡처 지점·UDP 스트리밍·유출 여부 확인

필드 추출로 "내부 호스트별 외부 송신 바이트"처럼 원하는 기준을 직접 만들 수도 있습니다.

# 내부 출발지별, 외부로 보낸 바이트 합계
tshark -r $F -Y 'ip.src == 192.168.10.0/24 && !(ip.dst == 192.168.10.0/24)' \
  -T fields -e ip.src -e frame.len \
  | awk '{b[$1]+=$2} END {for (h in b) print b[h], h}' | sort -rn | head

# 한 호스트가 서비스한(응답한) TCP 포트 목록: SYN/ACK의 출발지 포트
tshark -r $F -Y 'tcp.flags == 0x012' -T fields -e ip.src -e tcp.srcport | sort -u

📷 [실습 화면 삽입 위치] Statistics → Endpoints의 IPv4 탭을 Tx Bytes 기준으로 정렬한 화면 (Limit to display filter 체크 상태 포함)

📷 [실습 화면 삽입 위치] MaxMind DB 경로를 지정한 뒤 Endpoints에 Country·AS Number 열이 나타난 화면


5. 보안 관점

Endpoint 관찰정상일 수 있는 경우추가 확인이 필요한 경우
처음 보는 외부 IPCDN·클라우드 서비스의 주소 변경평판 불량, 업무와 무관한 국가·AS
내부 호스트의 Tx 과다백업 서버, 파일 서버일반 사용자 PC에서 대량 외부 송신
Rx만 있고 Tx가 0인 내부 IP꺼진 호스트, 방화벽 drop스캔 대상이 된 주소
TCP 탭에서 한 IP에 포트가 많음서버의 다중 서비스일반 PC가 여러 포트로 응답(SYN/ACK)
등록되지 않은 MAC방문자 단말, MAC 랜덤화서버 대역의 미등록 장비

GeoIP는 등록 정보 기반 추정이며 VPN·클라우드·CDN 주소는 실제 위치와 다를 수 있습니다. 국가만으로 차단·판정하지 않습니다.


6. SOC 관점

Endpoints는 사건 초기에 "이 캡처에 등장한 자산과 외부 주소 목록"을 만드는 데 쓰입니다.

산출물대조 대상관제 질문
내부 IP 목록자산 관리 대장, DHCP 임대 기록목록에 없는 내부 주소가 있는가?
외부 IP 목록위협 인텔리전스, 방화벽 허용 목록알려진 악성·미허가 목적지가 있는가?
상위 Tx 호스트프록시·방화벽 송신량평소 대비 송신량이 급증했는가?
MAC 목록스위치 MAC 테이블, NAC어느 물리 포트의 장비인가?

IOC 추출 절차 전반은 149. Packet에서 IOC 추출에서 다룹니다.

오탐 주의: 캡처 지점이 NAT 바깥이면 내부 호스트가 공인 IP 하나로 합쳐지고, 프록시 뒤라면 외부 Endpoint가 프록시 하나로 보입니다. 또 Endpoints 표만으로는 누가 먼저 연결했는지 알 수 없으므로 방향은 Conversations와 SYN으로 확인합니다.


7. 핵심 정리

  • Endpoint는 개별 주소 단위이며, 패킷 하나가 출발지(Tx)와 목적지(Rx) 양쪽에 집계됩니다.
  • Tx·Rx를 분리해서 보면 과다 송신 호스트, 응답 없는 대상, 서비스 포트를 구분할 수 있습니다.
  • 브로드캐스트·멀티캐스트·게이트웨이 MAC 같은 비호스트 주소를 먼저 걸러 냅니다.
  • GeoIP 열은 MaxMind DB 설정이 필요하고 결과는 추정이므로 단독 판정 근거로 쓰지 않습니다.
  • tshark -q -z endpoints,ip(tcp, eth)와 ip.src·frame.len 추출로 목적별 Endpoint 집계를 만듭니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글