深度数据包检测(DPI)都是关于理解的网络流量,最低限度,意识到它(一个入侵检测系统,或IDS),但是,更常见的这些日子里,做些什么(一个入侵预防系统,或IPS)。
第1部分的DPI报道是出于一个DPI Netronome烘烤大赛。基准使用Snort算法。Snort是一个免费的开源程序实现id或IPS,它得到了广泛的应用。它由程序本身和身体的规则被定期更新。规则的“众包”的一件事让Snort有吸引力。一个安装Snort可以定期更新与新规则。
Snort可以在三种运营模式。前两个简单显示包:一个在屏幕上,另通过日志文件。第三种模式是最强大的一个:它可以搜索内容包,然后选择,做一些如果人选的事情出现。当被动地与网络使用时,Snort作为id。内联的时候,作为一个“撞线,Snort作为ip,可以阻止通过,创建或修改数据包。
Snort的关键是身体的规则,这两个存在,可以创建新的。每条规则由一个头和一组选项。消息头指定一个行动以及交通信息的数据包被监控(来源、目的地港口,等等)。选项提供预警信息和内容,以及可能的限制在哪里寻找内容。
内容主要是基于搜索正则表达式。目前有超过4000条规则。这将创建一个主要的计算负担,因为所有理论上需要与所有信息包的规则。这一事实是独立表明许多规则可以使用独立并行运行内容检查引擎,每个处理单独的规则。
问题是,所有这些规则需要搜索包,这是存储在内存中,没有很多港口允许同时访问数据包。做包的多个副本花费的时间太长,使串联运行规则是唯一的选择。
这种处理规则的方式构建分层次和编译成一棵树,包搜索,在树中移动,有效地消除规则没有得到满足,允许一个更小的子集规则运行。
执行所有这些正则表达式检查仍然是重要的工作,在以后的文章中,我们将看一个选择工作的加速。
更多信息在Snort是可用的在这里…