检测组合的算法

时间:2010-11-21 04:56:53

标签: algorithm networking network-programming network-protocols

我正在使用jpcap为信息安全课程创建一个简单的入侵检测系统。

其中一个功能是远程操作系统检测,我必须实现一种算法,检测主机何时在20秒内发送5个包含不同ACK,SYN和FIN组合的数据包。

检测这些不同“组合”的好方法是什么?实施蛮力算法非常耗时,但我想不出更好的方法。

注意:jpcap的API允许人们知道数据包是ACK,SYN还是/或FIN。另请注意,为了理解问题,我们不需要知道ACK,SYN和FIN是什么。

谢谢!

2 个答案:

答案 0 :(得分:0)

我根据包含有关数据包类型的“记录”的向量构建了自己的数据结构。

答案 1 :(得分:0)

您需要在每个会话中保持状态。 - 使用哈希表。保持每个syn,ack和fin / fin-ack。几年前我写过并开源IDS嗅探器来做到这一点;随便看看代码。编写一个算法进行被动os检测应该很容易(google it)。我的开源代码在dnasystem