[정리] 와이어샤크 필터링


[그림 1] 네트워크 통신 요약


  침해사고 대응, 악성코드 분석, 네트워크 통신 분석 등 거의 모든 부분에서 활용되고 있는 와이어샤크의 필터링 기능을 살펴보고자 한다. 캡쳐환경에 따라 단 몇초에서 몇분이면 수 십 ~ 수 백mb의 캡쳐파일이 생성이 되는데 이럴경우 패킷분석에 큰 지장을 초래한다. 이를위해 와이어샤크에서는 Capture/Display 필터 기능을 제공하여 보다 효율적인 분석환경을 제공하고 있다. 


Capture Filter : 캡쳐 시작 전에 설정하며 특정 패킷만 캡쳐하는 필터링

Display  Filter : 캡쳐 이후에 설정하며 특정 패킷만 보고자하는 필터링


  Capture Filter는 Capture - Options - Capture Filter에서 설정이 가능하다.


[그림 2] Capture Filter


이미 설정된 필터링을 사용하거나 New 버튼을 이용해 새로운 필터링을 만들 수 있다. 예를 들어 tcp port 80 and not arp와 같이 설정한 경우 아래 그림과 같이 불필요한 패킷을 제외하고 캡쳐된 모습을 확인 할 수 있다.


[그림 3] Capture Filter 적용


  Display  Filter는 이미 캡쳐된 pcap 파일을 확인할 때 원하는 패킷만 볼 수 있도록 하는 필터링이다. 간단한 예로 특정 프로토콜만 확인 하는 경우 http 또는 arp, udp 등을 사용하며 IP와 MAC 주소의 필터링은 물론 데이터의 문자열, window 크기 등 원하는 모든것을 필터링할 수 있다. 또, 필터링 설정 시 "."으로 문법을 확인하며 설정 할 수 있으며 패킷의 데이터에서 원하는 부분을 오른쪽 클릭해 Apply as Filter로 손쉽게 적용이 가능하기 때문에 잘 익혀둔다면 효율적으로 분석을 진행 할 수 있다. 


[그림 4] Display  Filter 적용


  자주 사용하게 되고 유용한 Display  Filter 몇 가지를 소개한다.


ip.addr == ( )

ip.src == ( )

ip.dst == ( )

eth == ( )

eth.src == ( )

etc.dst == ( )

tcp.port == ( )

tcp.dstport == ( )

tcp.flags == ( )

tcp contains ( )

http contains ( )

udp contains ()

tcp.flags.reset == 1

http.host contains " "

http and data-text-lines contains " "

http.request.full_uri contains " "

http.request.method == GET or POST


참고 사이트

http://wiki.wireshark.org/DisplayFilters