지식

[Network] 네트워크 기초 이론 17강 — Wireshark의 구조와 작동 원리: 센서와 애널라이저

네트워크 기초 이론 시리즈 정리 — 17강. 참고: 널널한 개발자 TV, 와이어샤크의 내부 구조와 작동 원리 (재생목록)

16강에서 Wireshark는 네트워크를 하려면 반드시 써야 하는 도구라고 했다. 도구는 구조와 원리를 알고 쓸 때와 모르고 쓸 때가 다르다 — 이번에는 Wireshark가 컴퓨터 어디에 끼어들어 무엇을 하는 프로그램인지를 구조로 정리한다. 그 과정에서 필터, 바이패스와 드롭, 인바운드와 아웃바운드, 센서 같은 — 네트워크·보안 전반에서 계속 만나게 될 용어들이 함께 나온다.

무대 복습 — 데이터가 오르내리는 길

윈도우 PC에서 크롬이 HTTP 통신을 한다고 하자. HTTP는 L7이고, 그 아래에서 TCP(L4)와 IP(L3) 기반으로 통신이 이루어진다. 유저 모드의 애플리케이션은 TCP/IP를 추상화한 소켓 인터페이스를 통해 커널에 접근한다(1강).

유저 모드 :  [ 크롬 (HTTP, L7) ]
                     │  소켓 ── 데이터 단위: 스트림
커널      :        TCP  ──────── 세그먼트 (최대 MSS)
                    IP  ──────── 패킷 (최대 MTU)

                디바이스 드라이버

하드웨어  :        NIC  ──────── 이더넷 프레임 (L2)

계층마다 데이터 단위가 붙는 것은 7강 그대로다 — 소켓 수준은 스트림, TCP는 세그먼트, IP는 패킷, L2로 내려가면 이더넷 프레임. 이 수직의 길에서 계층과 계층 사이에는 틈이 있다는 것이 이번 이야기의 출발점이다. 그 틈에는 무언가 끼어들 수 있다.

틈에 끼어드는 것 ① — 필터

그 틈에 끼어들어 지나가는 트래픽을 검사하고, 어떤 것은 통과시키고 어떤 것은 잘라내는 소프트웨어를 필터(filter) 라고 한다. 여기서 용어 두 쌍이 나온다.

용어
바이패스(bypass) 필터가 트래픽을 검사하고 통과시킨 것
드롭(drop) 필터가 트래픽을 차단·폐기한 것 (필터링됐다)
아웃바운드(outbound) 호스트에서 네트워크 바깥으로 나가는 트래픽
인바운드(inbound) 네트워크에서 호스트 안으로 들어오는 트래픽

필터는 내려가는(아웃바운드) 트래픽에도, 올라오는(인바운드) 트래픽에도 걸 수 있다. 방화벽이 하는 일이 정확히 이것이다 — 규칙에 맞으면 바이패스, 걸리면 드롭.

틈에 끼어드는 것 ② — 센서

같은 자리에 끼어들되 아무것도 자르지 않는 경우가 있다. 오가는 모든 트래픽을 무조건 바이패스시키면서, 대신 지나가는 것을 전부 읽어 수집만 하는 것 — 이건 필터라고 부르지 않고 센서(sensor) 라고 부른다.

  • 필터: 검사하고 선별한다 (바이패스 or 드롭)
  • 센서: 항상 바이패스, 대신 수집(sensing) 한다

이 구별이 Wireshark를 이해하는 열쇠다.

Wireshark의 두 몸 — 센서와 애널라이저

Wireshark를 설치하면 사실은 두 가지가 설치된다.

      [ Wireshark 본체 ]  ← 애널라이저: 수집된 원문을 프로토콜 규칙대로 디코딩

              │  수집한 데이터를 끌어올림
      [ Npcap (센서) ]    ← 커널 계층 사이의 틈에 끼어듦 — 전량 바이패스 + 수집

   인바운드 · 아웃바운드 트래픽
  • Npcap — 센서. 커널의 그 틈에 설치되어, 송수신되는 인바운드·아웃바운드 데이터를 모조리 읽어 위로 끌어올린다. 필터링은 하지 않는다 — 센서니까 전량 바이패스다. (윈도우 기준 예전에는 WinPcap이 이 역할이었고, 지금은 Npcap으로 바뀌었다.)
  • Wireshark 본체 — 애널라이저(analyzer). 센서가 올려 준 원문 데이터를 받아 가장 먼저 하는 일이 디코딩이다. 이 바이트열이 어떤 프로토콜이고 각 필드의 의미가 무엇인지, 프로토콜 규칙에 맞게 해석해서 사람이 읽을 수 있는 형태로 보여 준다. 16강에서 본 IP 헤더가 16진수 덤프와 해석된 필드로 나란히 보이는 것이 바로 이 디코딩의 결과다. Wireshark가 스스로를 "네트워크 프로토콜 애널라이저"라고 부르는 이유다.

정리하면 — 수집은 센서(Npcap)가, 해석은 애널라이저(Wireshark)가 한다. 구조는 이 두 줄이 전부다.

수집의 양면 — 애널라이저와 스니퍼 사이

구조보다 무거운 이야기가 남아 있다. 센서가 하는 일의 본질은 수집이고, 수집은 대상이 누구냐에 따라 성격이 완전히 달라진다.

지나가는 것이 메신저 트래픽이라면 그 안에는 메시지가, 음성 통화라면 음성이 실려 있다. 내 트래픽을 수집해 네트워크 장애를 진단하고 보안 이슈를 확인하는 것은 아무 문제가 없다 — 이때의 수집은 감시(모니터링)이고, 보안 목적이라면 이 장치를 시큐리티 센서라고 부를 수 있다. 그런데 같은 도구로 남의 트래픽을 수집해 읽는 순간, 그 수집의 이름은 감청이 된다. 통신비밀보호법이 금지하는 명백한 불법이다.

그래서 Wireshark는 애널라이저라고 불리는 한편 스니퍼(sniffer) 라고도 불린다 — 무차별로 수집해 엿듣는다는 뉘앙스가 실린 이름이다. 14강에서 헤더는 유통을 위해 구조적으로 공개되지만 페이로드는 그렇지 않다며 DPI의 무게를 이야기했는데, 정확히 같은 문제가 여기서 도구의 모습으로 다시 나타난 것이다.

도구 자체는 잘 드는 칼과 같아서, 누가 어떤 목적으로 쥐느냐가 성격을 결정한다. 목적이 정당한가, 적법한 절차에 따른 수집인가 — 이 두 질문이 같은 행위를 진단과 범죄로 가른다. 네트워크를 깊이 다루는 사람일수록 이 윤리 의식과 책임감이 기본기의 일부다.

정리

  • 커널의 프로토콜 계층 사이의 틈에는 소프트웨어가 끼어들 수 있다. 검사해서 선별하면 필터(통과=바이패스, 차단=드롭), 전량 바이패스하며 수집만 하면 센서다.
  • 트래픽 방향 용어 — 호스트에서 밖으로 나가면 아웃바운드, 밖에서 호스트로 들어오면 인바운드.
  • Wireshark는 두 부분이다 — 센서(Npcap)가 인바운드·아웃바운드 트래픽을 전량 수집해 올리고, 애널라이저(Wireshark 본체)가 프로토콜 규칙대로 디코딩해 보여 준다.
  • 수집은 대상에 따라 성격이 갈린다 — 내 트래픽이면 진단·감시, 남의 트래픽이면 감청(불법). 그래서 이 도구의 별명이 애널라이저이자 스니퍼다.
  • 도구의 성격은 목적과 절차가 결정한다. 정당한 목적, 적법한 절차 — 강력한 도구를 다루는 사람의 기본기다.
조회 1댓글 0

댓글

아직 댓글이 없습니다. 첫 댓글을 남겨보세요.