Snort作为一个轻量级的网络入侵检测系统,在实际中应用可能会有些力不从心,但如果想了解研究IDS的工作原理,仔细研究一下它的源码到是非常不错.首先对snort做一个概括的评论。
从工作原理而言,snort是一个NIDS。[注:基于网络的入侵检测系统(NIDS)在网络的一点被动地检查原始的网络传输数据。通过分析检查的数据包,NIDS匹配入侵行为的特征或者从网络活动的角度检测异常行为。] 网络传输数据的采集利用了工具包libpcap。snort对libpcap采集来的数据进行分析,从而判断是否存在可疑的网络活动。
从检测模式而言,snort基本上是误用检测(misuse detection)。[注:该方法对已知攻击的特征模式进行匹配,包括利用工作在网卡混杂模式下的嗅探器被动地进行协议分析,以及对一系列数据包解释分析特征。顺便说一句,另一种检测是异常检测(anomaly detection)。]具体实现上,仅仅是对数据进行最直接最简单的搜索匹配,并没有涉及更复杂的入侵检测办法。
尽管snort在实现上没有什么高深的检测策略,但是它给我们提供了一个非常 优秀的公开源代码的入侵检测系统范例。我们可以通过对其代码的分析,搞清IDS 究竟是如何工作的,并在此基础上添加自己的想法。
snort的编程风格非常优秀,代码阅读起来并不困难,整个程序结构清晰,函 数调用关系也不算复杂。但是,snort的源文件不少,函数总数也很多,所以不太 容易讲清楚。因此,最好把代码完整看一两遍,能更清楚点。
2019-12-21 19:36:52
1.45MB
snort
1