【问题标题】:capture packets then drop packet IPS system捕获数据包然后丢弃数据包 IPS 系统
【发布时间】:2011-11-14 07:46:13
【问题描述】:

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

另外,如果我使用 matlab 有没有办法“捕获网络上的数据包”并将它们输入神经网络? Windows 上的 Matlab 就是这样。

我很难理解 libpcap 如何“捕获”数据,但您却不能实时“丢弃”数据?

相当烦人的 snort 无法做到这一点,snort 仅在 Windows 上充当 IDS,但在 linux 上充当 IDS/IPS,因为它能够正确地对 iptables 进行规则。

【问题讨论】:

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


    【解决方案1】:

    对于 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 驱动程序。

    【讨论】:

    • 我可以在 Microsoft Visual Studio 2010 上使用它吗?实际上我正在创建的是为我的 IDS 设置的函数,这将在 dll 文件中。那么你能指导我使用 Windivert for Windows 吗?
    • 抱歉回复晚了。是的,您可以将它与 VS2010 一起使用,但最好离线讨论。请给我发电子邮件。
    • 非常感谢@Basil 的分享!我想在我的解决方案“C#Win7”上使用你的库来进行某种过滤,在应用程序运行期间丢弃除特定端口之外的传出数据包,应用程序将在管理权限下运行 在客户端,客户端应将其添加到其防病毒软件的例外列表中;问题是在启用其他防火墙软件时使用这个库是否仍然有效?比如如果用户运行 Symantic 防火墙,是否会安装库驱动程序并使用 WinDivert 丢弃数据包可能会起作用?
    • @Jalal 我没有对此进行测试,但我预计将 WinDivert 与其他防火墙系统一起使用不会有任何问题。
    • 好的,再次感谢这么棒的库,在我看到 WinDivert 之前,我已经在网上搜索了几天以找到有关如何在 C# 中创建自定义防火墙的任何线索,现在我别无选择但是为了测试它,我将开始为它编写一个 C# 包装器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    相关资源
    最近更新 更多