入侵检测系统结构

image.png
事件产生器(Event generater, E-box)收集入侵检测事件,并提供给IDS其他部件处理,是IDS的信息源。事件包含的范围很广泛,既可以是网络活动也可是系统调用序列等系统信息。事件的质量、数量与种类对IDS性能的影响极大。
事件分析器(Analysis engine, A-box)对输入的事件进行分析并检测入侵。许多IDS的研究都集中于如何提高事件分析器的能力,包括提高对已知入侵识别的准确性以及提高发现未知入侵的几率等。
事件数据库(Event database, D-box)E-boxes 和 A-boxes 产生大量的数据,这些数据必须被妥善地存储,以备将来使用。D-box的功能就是存储和管理这些数据,用于IDS的训练和证据保存。
事件响应器(Response unit, C-box)对入侵做出响应,包括向管理员发出警告,切断入侵连接,根除入侵者留下的后门以及数据恢复等。

入侵检测系统的技术

异常检测和误用检测

异常检测

是基于行为的检测,先建立知识库,存储被认为是正常的行为。之后检查后续的行为是不是与正常行为接近或者相同。

异常检测的核心问题

1 什么是正常的行为?
2 不正常的行为有多不正常?
为了解决这两个问题,我们需要平均值和方差。
平均值就是正常,方差就是偏离度。
image.png
这个例子里,平均值就是H。H在每次更新当前的数值之后也会发生变化。而S就是我们的方差。方差大于0.1就是不正常的。

异常检测面临的问题

用户的所谓正常的行为本身是不是就是不正常的?
用户会不会为了攻击故意把正常行为逐渐变得不正常?比如一开始我中规中矩,每次在不大幅变化的情况下向不正常的位置移动?
此外,假如一个人一直做一件事,怎么让系统认为这是正常的?

解决这些问题,我们通常需要把方差也求平均值,还需要一些新的技术,或者把异常检测和误用检测合起来。

异常检测的优劣

优点就是能解决未知的攻击。缺点就是研究还很不成熟。。。。。。

误用检测

建立起已知的攻击的知识库,判断当前的活动是不是攻击。

误用检测的例子->签名检测

思考我们平时输入密码,在X分钟内最多输错几次。输错多了就锁你。
但这样也不能完全阻止攻击。比如1分钟内最多错5次,我可以只错4次。当我有很多个错4次的时候,一样可以搞垮你。
签名检测很简单,很有效,可以防范已知的攻击。
但签名必须经常更新,去存储各种已知的攻击,但无法抵挡未知的攻击。已知攻击的变化也可能检测不出来。

IDS的核心问题

压低误报率(有一道概率题,正常做简单,但是用贝叶斯容易弄不清)