본문 바로가기
개발/Windows

WFP (Windows Filtering Platform) 이란 ?

by lucidmaj7 2020. 5. 7.
728x90
반응형

WFP (Windows Filtering Platform)

과거 Windows에서 네트워크 패킷을 모니터링을 하기 위해서는 TDI(Transport Driver Interface), NDIS 필터, LSP등을 이용했어야 했습니다.
하지만 Windows Vista, server 2008 버전 이후부터 필터 훅 드라이버나 방화벽 훅 등은 사용할 수 없게 되었으며 이러한 기술들은 WFP로 대체 하게 되었습니다.

그렇다면 WFP는 무엇일까?

WFP는 Windows Filtering Platform의 약자로 네트워크 필터링 애플리케이션을 만드는데 필요한 API와 서비스를 제공하는 플랫폼을 말합니다. WFP는 개발자에게 Windows의 네트워크 스택에서 발생하는 네트워크 패킷 처리를 할 수 있도록 도와주며 각 계층에서 수정 할 수 있도록 도와줍니다.
참고로 WPF(Windows Presentation Foundation)와는 다른 겁니다!!

WFP로 무엇을 만들 수 있나?

WFP를 이용하면 네트워크 패킷 모니터링, 수정, 삭제등을 할 수 있는 애플리케이션을 개발 할 수 있습니다. 예를 들면, 침입탐지시스템, 안티바이러스 네트워크 모니터링 기능을 구현 할 수 있습니다. 또 한 단순히 IP/Port기반이 아닌 응용프로그램 수준에서 제어가 가능하게 해줍니다. 예를 들면 putty.exe는 통신을 허용하지 않겠다. 와 같은 정책을 구현할 수 있습니다.

WFP, 커널모드, 유저모드

과거 네트워크 패킷을 탐지하거나 제어하려면 네트워크 드라이버 개발이 거의 필 수 였습니다. 커널 드라이버 개발은 개발자에게 부담을 주게 되며, 시스템의 안정성에도 좀 더 신경써야하는 등 많은 어려움이 있었습니다. 하지만 WFP는 유저모드 API를 제공하기 때문에 유저모드에서 패킷 제어 정책을 설정 할 수 있습니다. 또한 커널모드도 지원하기 때문에 유저모드의 필터링 규칙보다 더 다양하게 필터링을 할 수 있습니다.

참고

https://docs.microsoft.com/en-us/windows/win32/fwp/windows-filtering-platform-start-page

728x90
반응형

댓글