Wireshark의 capture filter는 캡처를 만들 때 수집할 패킷을 제한합니다. display filter는 이미 저장된 캡처에서 화면에 보여 줄 패킷을 골라 표시하며, 숨긴 패킷을 파일에서 삭제하지 않습니다.

capture filter가 수집 단계에서 제외한 패킷은 그 캡처 파일에 없으므로 display filter를 지워도 복구되지 않습니다. 또한 캡처 결과는 인터페이스, 위치, 권한, 손실과 수집 설정의 범위를 넘어서 네트워크 전체를 증명하지 않습니다.

두 필터의 차이는 패킷을 거르는 시점입니다

Wireshark에서 패킷이 보이지 않을 때 먼저 묻는 질문은 ‘캡처 당시 저장되지 않았나, 저장됐지만 지금 화면에서 숨겨졌나?’입니다. capture filter는 캡처가 진행되는 동안 조건에 맞는 패킷만 수집하도록 제한합니다. 구문은 libpcap filter 언어를 사용합니다. display filter는 캡처 후 패킷을 볼 때 표시할 패킷을 선택합니다. 둘은 문법도 다릅니다. 예를 들어 캡처 조건의 tcp port 443과 화면 조건의 tcp.port == 443은 비슷한 목적을 가질 수 있지만 서로 바꾸어 넣는 같은 문자열은 아닙니다.

가상의 동일한 네트워크 흐름을 두 단계로 나눈 예입니다.
단계사용한 필터저장 또는 표시 결과나중에 다시 볼 수 있는 것
캡처 시작tcp port 443 capture filterTCP 443 패킷만 수집 대상저장된 패킷만 재검토 가능
저장 캡처 열기tcp.port == 443 display filter조건에 맞는 저장 패킷만 화면에 표시필터 해제 시 기존 저장 패킷 전체를 다시 표시
capture filter가 제외한 TCP 80 흐름해당 없음캡처 파일에 포함되지 않음display filter를 바꿔도 되살릴 수 없음

화면 필터를 지우는 것과 다시 수집하는 것은 다릅니다

직접 만든 가상 캡처에 TCP 443 세 패킷과 TCP 80 두 패킷이 저장됐다고 가정해 보겠습니다. tcp.port == 443 display filter를 적용하면 세 패킷만 화면에 남고 두 패킷은 보이지 않습니다. 이 필터를 지우면 원래 파일에 있던 다섯 패킷이 다시 보입니다. 저장 파일의 내용은 그대로입니다. 반면 처음 캡처할 때 capture filter tcp port 443을 걸어 TCP 80을 수집하지 않았다면 파일에는 세 패킷만 있습니다. 이후 tcp.port == 80을 입력해도 표시할 TCP 80 패킷이 없으므로 결과가 나타나지 않습니다. 그 시점의 증거가 필요하면 적절한 범위와 권한으로 다시 캡처해야 합니다.

증거 파일은 필터와 관측 조건을 함께 기록합니다

  1. 원본 캡처 파일을 보존하고, 캡처 당시 사용한 capture filter가 무엇이었는지 기록합니다.
  2. 현재 입력창의 display filter를 확인합니다. 문법이 유효한지와 실제 적용했는지도 구분합니다.
  3. display filter를 지워 전체 저장 패킷을 확인합니다. 이 동작은 파일에 저장된 범위만 다시 보여 줍니다.
  4. 캡처 인터페이스, 관측 지점, 시작·종료 시각과 권한을 함께 확인합니다. 다른 구간의 패킷이 보이지 않는 이유일 수 있습니다.
  5. 필요한 패킷이 수집 전 제외됐거나 관측 지점에 없었다면 원본 증거로 복구할 수 있다고 주장하지 않습니다. 재수집 조건을 정하고 별도 자료로 남깁니다.

캡처 파일에 패킷이 없다는 사실은 그 파일에 해당 패킷이 저장되지 않았다는 뜻입니다. 그러나 네트워크 어느 지점에서도 패킷이 오가지 않았다는 증명은 아닙니다. 캡처 권한이 없거나 다른 NIC를 선택했을 수 있고, 스위치 포트나 가상 네트워크의 관측 위치가 트래픽 경로와 다를 수 있습니다. 캡처 프로그램의 packet drop 통계도 확인 대상입니다. display filter를 해제하는 것만으로 이런 환경적 사각지대가 해결되지는 않습니다.

문법과 증거 누락을 함께 점검합니다

첫 번째 실수는 capture 문법인 tcp port 443을 display toolbar에 넣거나 반대로 display 문법인 tcp.port == 443을 capture filter에 그대로 쓰는 것입니다. 두 번째는 화면에 패킷이 없으니 네트워크에도 없었다고 단정하는 것입니다. 세 번째는 display filter 적용 뒤 packet count가 줄어든 것을 캡처 파일이 편집된 결과로 오해하는 것입니다. Wireshark 사용자 안내서는 display filter가 파일 내용이 아니라 표시를 바꾼다고 설명합니다. 반대로 capture filter는 수집 범위를 실제로 좁히므로 저장 전에 빠진 패킷은 나중에 필터를 바꿔도 생기지 않습니다.

수집 단계와 표시 단계에 각각 증거를 붙입니다

사고 검토 메모에는 ‘캡처 당시 필터’와 ‘현재 화면 필터’를 별도 항목으로 씁니다. 예를 들어 “capture filter 미기록, display filter tcp.port == 443 적용 상태”라면 화면에서 빠진 패킷이 파일에는 있는지 필터를 지워 확인할 수 있습니다. 반면 “capture filter tcp port 443 적용 확인”이면 그 조건 밖의 흐름이 저장되지 않았을 수 있습니다. 이 구분은 무엇을 다시 볼 수 있고 무엇은 다시 수집해야 하는지를 명확하게 합니다.

정답을 가리고 확인해 보세요

이 글을 위해 만든 학습 예시이며 공식 기출문제나 판매 카드의 인용이 아닙니다.

저장된 캡처에서 tcp.port == 443 display filter를 지우자 TCP 80 패킷이 나타났습니다. 반면 캡처 당시 tcp port 443 capture filter가 적용되어 있었다면, 그 파일에서 수집되지 않은 TCP 80 패킷도 필터를 지워 복구할 수 있나요?

정답과 해설 확인아니요. display filter를 지우면 파일에 저장된 패킷은 다시 표시되지만, capture filter가 수집 단계에서 제외한 패킷은 그 파일에 없어 복구할 수 없습니다.

capture filter는 캡처 중 수집 범위를 제한합니다. display filter는 캡처 후 화면 표시를 제한할 뿐 저장 파일 내용은 바꾸지 않습니다. 수집 전에 빠진 증거는 원래 캡처 파일에서 다시 생성되지 않습니다.

이 주제의 회상 연습 이어가기