1

由于libnids似乎已有两年历史并且没有当前更新,是否有人知道 libnids 的任何替代解决方案或比它更好的库,因为它似乎以超过 1G/每秒的速度丢弃数据包

而且它不支持 64 位 IP 地址。

4

1 回答 1

3

一个替代方案libnidsBro。它带有一个健壮的 TCP 重组器,多年来已经被网络安全监控社区彻底测试和使用。它附带了一组用于常见协议的协议分析器,例如 HTTP、DNS、FTP、SMTP 和 SSL。

Bro 是“网络处理的 Python”:它有自己的特定于域的脚本语言,具有一流的 IP 地址(v4 和 v6)、子网、端口类型和功能。编程风格具有基于异步事件的风格:用户为反映网络活动的事件编写回调函数。分析以连接粒度进行。这是一个例子:

event connection_established(c: connection)
{
    if ( c$id$orig_h == 1.2.3.4 && c$id$resp_p == 31337/udp )
        // IP 1.2.3.4 successfully connected to remote host at port 31337.
}

此外,Bro 支持允许对 10 Gbps 链路进行线速监控的集群模式。因为大多数分析不需要共享互连状态,Bro 可以很好地跨核心(使用PF_RING)以及多个节点进行扩展。存在 >= 140 个节点的 Bro 安装。典型的部署如下所示:

NIDS 集群
(来源:bro.org

由于高可扩展性,通常不再需要处理低级细节和微调 C 实现。或者换一种说法,与 Bro 一起,您将时间花在分析而不是实施上。

于 2012-10-02T05:33:07.610 回答