用专家系统对入侵进行检测,经常是针对有特征入侵行为。所谓的规则,即是知识,不同的系统与设置具有不同的规则,且规则之间往往无通用性。专家系统的建立依赖于知识库的完备性,知识库的完备性又取决于审计记录的完备性与实时性。
入侵检测(IDS)系统
专家系统
入侵的特征抽取与表达,是入侵检测专家系统的关键。在系统实现中,将有关入侵的知识转化为if-then结构(也可以是复合结构),条件部分为入侵特征,then部分是系统防范措施。运用专家系统防范有特征入侵行为的有效性完全取决于专家系统知识库的完备性。
文件完整性检查
文件完整性检查系统检查计算机中自上次检查后文件变化情况。文件完整性检查系统保存有每个文件的数字文摘数据库,每次检查时,它重新计算文件的数字文摘并将它与数据库中的值相比较,如不同,则文件已被修改,若相同,文件则未发生变化。
文件的数字文摘通过Hash函数计算得到。不管文件长度如何,它的Hash函数计算结果是一个固定长度的数字。与加密算法不同,Hash算法是一个不可逆的单向函数。采用安全性高的Hash算法,如MD5、SHA时,两个不同的文件几乎不可能得到相同的Hash结果。从而,当文件一被修改,就可检测出来。在文件完整性检查中功能最全面的当属Tripwire。
文件完整性检查系统的优点
从数学上分析,攻克文件完整性检查系统,无论是时间上还是空间上都是不可能的。文件完整性检查系统是非常强劲的检测文件被修改的工具。实际上,文件完整性检查系统是一个检测系统被非法使用的最重要的工具之一。
文件完整性检查系统具有相当的灵活性,可以配置成为监测系统中所有文件或某些重要文件。
当一个入侵者攻击系统时,他会干两件事,首先,他要掩盖他的踪迹,即他要通过更改系统中的可执行文件、库文件或日志文件来隐藏他的活动;其它,他要作一些改动保证下次能够继续入侵。这两种活动都能够被文件完整性检查系统检测出。
文件完整性检查系统的弱点
文件完整性检查系统依赖于本地的文摘数据库。与日志文件一样,这些数据可能被入侵者修改。当一个入侵者取得管理员权限后,在完成破坏活动后,可以运行文件完整性检查系统更新数据库,从而瞒过系统管理员。当然,可以将文摘数据库放在只读的介质上,但这样的配置不够灵活性。
做一次完整的文件完整性检查是一个非常耗时的工作,在Tripwire中,在需要时可选择检查某些系统特性而不是完全的摘要,从而加快检查速度。
系统有些正常的更新操作可能会带来大量的文件更新,从而产生比较繁杂的检查与分析工作,如,在Windows NT系统中升级MS-Outlook将会带来1800多个文件变化。
入侵检测技术分析
执行动作 Action
在大多数的IDS程序中,你可以为规则赋予动作。在你定义规则时,通常必须考虑将规则实施到网络上的时机和方式。一项规则的其它元素包括:
·需要保护的主机。你可以指定某台主机或某一范围内的主机。
·需要做日志记录的和禁止的主机。你可以指定某台主机或某一范围内的主机。
·实施策略的时间段
·事件的描述
·对发生的事件如何反应,包括:
·重新配置防火墙
·阻塞特定的TCP连接日志记录机制
·邮件,传真,电话提示
·启动其它程序来阻止攻击
·SNMP陷阱
IDS程序要求你先建立规则,进而赋予动作。你可以自己定义规则。然而,大多数的IDS厂商已经设想了许多场景。这并不意味着你不需要建立自己的规则或编辑已经存在的规则来确保它们符合你的需求。
误报
如同实施防火墙,IDS也需要仔细地设置。否则,你将收到并不实际存在的攻击和问题的报告。误报“false positive”就是指这种不准确的报告。
然而,完全忽略误报是不明智的。IDS程序有时候会检测到一些非法的网络活动,即使并没有对这些活动定义规则。例如,许多IDS系统会报告说存在过多的与NetBus和某些UNIX的root kit相关的SYN连接。虽然你需要对误报引起重视,但你还必须培养识别何时忽略误报何时认真对待它们的能力。网络级的IDS更容易发生误报情况,尤其在它们被配置成检测对某些主机的攻击时,例如NetBus,密码攻击等等。