[카테고리:] 미분류

  • GoodbyeDPI(WinDivert/WFP)

    title: "Windows 네트워크 스택: GoodbyeDPI(WinDivert/WFP) vs Wireshark(Npcap/NDIS)"
    slug: windows-stack-goodbyedpi-vs-wireshark
    series: "URL·TLS·SNI·필터링·DPI 실전 가이드"
    author: EX Corp. Tech Team
    summary: "GoodbyeDPI는 WFP(WinDivert)에서 인라인 수정/주입, Wireshark는 NDIS(LWF: Npcap)에서 패시브 캡처. 서로 경쟁하지 않고 레이어가 달라 공존한다. 인/아웃바운드 경로별로 무엇이 먼저/나중에 보이는지 정리."
    tags: [Windows, WFP, WinDivert, Npcap, NDIS, DPI, 패킷캡처, 네트워크스택]
    reading_time: "10~12분"
    cover_image_suggestion: "Windows 네트워크 스택 단면도: App↔TCP/IP↔WFP(WinDivert)↔NDIS(Npcap)↔NIC, 인/아웃바운드 화살표 포함"
    

    한눈에 핵심

    • GoodbyeDPI = WinDivert = WFP 레이어: 패킷을 가로채서(인라인) 분할/변형/드롭/재주입할 수 있다.
    • Wireshark = Npcap = NDIS LWF 레이어: 프레임을 복사해서(패시브) 캡처만 한다. 변경은 못 한다.
    • 경쟁 아님: 서로 다른 드라이버/레이어이므로 공존. 다만 다른 보안/ VPN 드라이버와 순서/성능 상호작용은 있을 수 있다.
    • 관측 관점:
      • 아웃바운드: Wireshark는 GoodbyeDPI가 가공한 후의 패킷을 본다.
      • 인바운드: Wireshark는 원본 프레임(NIC에서 올라온 직후) 을 먼저 보고, 이후 GoodbyeDPI가 드롭/가공할 수 있다.

    1) Windows 스택 개념도

    [User App] 
       │ Winsock
    [afd.sys / tcpip.sys]  ← L4/L7 스택
       │
    [WFP callout 레이어]  ← WinDivert(=GoodbyeDPI) 훅 포인트 (인라인 수정/주입)
       │
    [NDIS LWF 필터 체인]  ← Npcap(=Wireshark) 훅 포인트 (패시브 캡처)
       │
    [NIC Miniport Driver] 
       │
    ────────────── 네트워크 ──────────────
    
    • WFP(Windows Filtering Platform): 커널 네트워크 경로의 여러 지점(ALE/Transport/Stream 등)에 콜아웃(callout) 을 걸어 허용/차단/수정/주입 가능. WinDivert는 이 레이어를 이용.
    • NDIS(LWF: Lightweight Filter): NIC 드라이버 위/아래에 필터 드라이버 를 적층하여 프레임을 관찰/미러링. Npcap은 여기에서 복사본을 어플리케이션(Wireshark)로 전달.

    2) 인/아웃바운드에서 “무엇을 먼저 보나”

    아웃바운드(내 PC → 인터넷)

    App → TCP/IP → WFP(WinDivert/GoodbyeDPI: 수정/분할/주입) → NDIS(Npcap/Wireshark: 캡처) → NIC → 외부
    
    • Wireshark는 수정된 결과물을 본다.
    • 예: TLS ClientHello가 분할/재정렬되면 캡처에도 동일하게 나타난다.

    인바운드(인터넷 → 내 PC)

    외부 → NIC → NDIS(Npcap/Wireshark: 캡처) → WFP(WinDivert/GoodbyeDPI: 드롭/수정) → TCP/IP → App
    
    • Wireshark는 NIC에서 올라오는 원본 프레임을 먼저 본다.
    • 이후 GoodbyeDPI가 해당 패킷을 드롭했다면, 애플리케이션까지는 도달하지 않아도 캡처에는 남는다.

    결론: “누가 앞이냐”는 방향에 따라 달리 보이지만, 구조적으로는 WFP(조작) → NDIS(캡처) 순으로 이해하면 쉽다(아웃바운드 기준).


    3) 역할 차이 정리

    항목GoodbyeDPI (WinDivert/WFP)Wireshark (Npcap/NDIS)
    레이어WFP callout(커널 필터/주입)NDIS LWF(경량 필터)
    동작인라인: 허용/차단/수정/분할/재주입패시브: 복사·제공(읽기 전용)
    목적트래픽 행위 변경/교란/정책 적용트래픽 관찰/포렌식/디버깅
    영향세션 상태/성능에 직접 영향 가능성능 영향은 비교적 적음(캡처 부하 제외)
    공존성다른 WFP 콜아웃과 순서 상호작용다른 LWF와 적층, 순서 영향 가능

    4) 현업 관측 팁(안전·합법 범위 내)

    • 동일 세션을 두 시점에서 비교:
      • 아웃바운드: Wireshark에 잡힌 ClientHello가 분할/변형 돼 보이면, 상위(WFP)에서 가공이 있었던 것.
      • 인바운드: 캡처에는 보이는데 앱이 못 받으면, WFP 단계에서 드롭/차단 가능성.
    • 다른 보안/VPN과의 상호작용:
      • EPP/EDR, VPN(TAP/LWF/WFP), 방화벽 드라이버가 레이어·순서에 관여. 성능 이슈나 캡처 누락이 생기면 드라이버 스택 순서/우선순위 점검.
    • 성능:
      • 캡처는 드롭률 모니터링(고속 NIC, 다량 세션).
      • 인라인 조작은 RTT/핸드셰이크 실패율 지표로 영향 평가.

    주의: 업무·법규를 준수한 진단/관측 목적에서만 활용하세요. 타인의 통신을 무단으로 조작하거나 회피를 유도하는 행위는 금지됩니다.


    5) 안전한 랩(테스트) 체크리스트

    • 테스트 대상/범위: 사내 승인된 테스트 호스트/도메인 으로 한정.
    • 측정 지표: ClientHello 분할 유무, ServerHello 수신 여부, RST/타임아웃 패턴.
    • 툴 세트:
      • Wireshark/Npcap(최신), tshark로 CSV 로깅
      • Windows 이벤트 로그(네트워킹), 성능 카운터
    • 재현성: 동일 조건으로 3회 이상 캡처 비교(아웃/인 바운드, VPN 온/오프, H2/H3).

    6) 트러블슈팅 Q&A

    Q1. Wireshark가 “수정된” 패킷만 보여요. 원본도 보고 싶어요.
    A. 인바운드 관점 캡처를 추가하세요(NIC 수신 경로). 아웃바운드만 보면 이미 WFP 변형 후입니다.

    Q2. 캡처가 비면 Npcap/인터페이스 문제일까요?
    A. 관리자 권한, 올바른 인터페이스 선택(특히 VPN 어댑터), 오프로드 옵션 확인. 고속 환경은 버퍼/스냅렌 조정.

    Q3. 다른 보안 제품과 충돌합니까?
    A. 충돌이라기보다 순서·성능 상호작용 이슈가 잦습니다. VPN/EDR 배포 시 레이어 우선순위 문서를 확인하세요.


    7) 요약

    • GoodbyeDPI는 WFP(WinDivert) 에서 조작하는 인라인 도구, Wireshark는 NDIS(Npcap) 에서 관찰하는 캡처 도구.
    • 아웃바운드에서는 Wireshark가 조작 이후 의 패킷을, 인바운드에서는 조작 이전 의 프레임을 본다.
    • 둘은 경쟁하지 않고 공존한다. 다만 다른 필터/드라이버와의 순서/성능 관리가 중요하다.