捕获数据包然后丢弃数据包IPS系统

时间:2011-09-10 10:18:00

标签: c# c++ matlab neural-network libpcap

在Windows中是否有任何可能的方法来“丢弃”像真正的IPS(入侵防御系统)一样的数据包,类似于unix中的iptables。

此外,如果我使用matlab有一种方法来“捕获网络上的数据包”并将它们送入神经网络?在Windows上的Matlab是。

我很难理解libpcap如何“捕获”数据,但你却无法实时“丢弃”数据?

相当令人讨厌的snort无法做到这一点,snort仅在Windows上作为IDS,而在Linux上作为IDS / IPS,因为它能够对iptables进行正确的规则。

1 个答案:

答案 0 :(得分:6)

对于Windows 7 / Vista,您可以使用Windows过滤平台(WFP)API进行简单的数据包过滤,类似于使用iptables可以实现的过滤。然而,API有点冗长。

对于更复杂的过滤,例如说有效负载解析/检查的URL过滤,你需要(1)编写设备驱动程序,如WFP标注驱动程序,或(2)使用可以将数据包转移到用户模式应用程序的第三方程序包。

对于后者,有WinDivert(GLPv3)和WinpkFilter(商业许可)。这两个包都是C / C ++,因此您需要编写适当的MatLab绑定。 披露:我是WinDivert的作者。

警告技术:像Winpcap这样的软件包不会丢弃数据包,因为它使用的驱动程序类型(确切地说是NDIS协议驱动程序)。协议潜水员只能看到数据包的副本,无法阻止原始数据包。为此,他们需要将Winpcap驱动程序重新实现为NDIS IM或LWF驱动程序。