论文部分内容阅读
随着各种网络安全问题的频频发生,入侵检测能够积极主动的防御各种攻击而逐渐成为安全研究领域的热点。由于入侵者在攻击系统时大都采用的是攻击特权进程的方式,特权进程完成某些特定的行为,因此在其正常执行时的行为轨迹相对稳定,一旦发生入侵就很容易捕捉到。在此基础上,本文提出了基于Linux进程行为的入侵检测,通过监控Linux系统中的某些特权进程对主机实施安全防护,经过实验证明该方法对针对主机的入侵活动具有较好的检测效果。训练数据的收集以及建模方法的选择是决定入侵检测效率的两个重要因素。首先是训练数据的收集,我们分析了由于攻击可能造成的正常行为和入侵行为之间的差异,提出利用系统调用序列作为入侵检测的数据源。利用可加载内核模块(LKM)机制在内核收集数据,而把数据的分析处理放在用户层进行,并利用ioctl的方式实现数据共享。训练数据收集完备以后,需要构建入侵检测的模型。我们研究了几种现有的基于系统调用序列的异常检测算法,分析和比较它们各自的优缺点,并提出了基于系统调用宏的马尔科夫链异常检测模型(Macro MCM)。在建模时,提取程序正常行为迹中大量重复出现的有规律的系统调用短序列作为独立的基本单位(宏),并以宏为基本单位构建Marco MCM。检测时逐一读取系统调用数据并将其与宏进行匹配,然后利用宏序列连续出现的概率判断是否发生入侵。为了验证提出的模型是否可行,在Linux系统中设计并实现了系统调用采集模块、预处理模块、Marco MCM的训练模块以及检测模块。实验结果表明,该模型检测性能要好于基于系统调用的一阶与二阶马尔科夫链模型,在误报率不明显增大的情况下,检测效率高于HMM,与DBCPIDS相当,但计算复杂度要明显好于这两者。最后,针对本文实现的模型,提出了几种适用的入侵响应办法,并分析了它们各自适应的情况。