管理者和代理的通信
在你学习如何为网络挑选产品时,需要明确管理者和代理的通信方式。大多数的IDS程序要求你首先和管理者通信,然后管理者会查询代理。
通常,管理者和代理在通信时使用一种公钥加密。例如,Axent的产品使用400位长Diffie-Helman加密。标准的SSL会话使用128位的加密。比较这两种标准,你可以发现大多数的IDS厂商都采用安全的通信。
有些老的主机级的产品采用明文或经过非常弱地加密的会话。这种功能很具讽刺意味,由于明文传输易遭受hijacking和Man-in-the-middle攻击,这样会严重地破坏你监测和保护网络安全。
有些管理者可以和其它管理者通信。这种管理者之间的通信可以节省带宽并减轻你的管理负担。通过使用组织结构有可能避免这种通信。例如,Axent Intruder Alert(ITA)使用被称作domain的层次结构来组织代理。
审计管理者和代理的通信
作为审计人员,你应该对用户名和密码进行核实,而不应保留缺省设置。同时,你还要确保通信要经过加密和尽可能的安全。
混合入侵检测
基于网络的入侵检测产品和基于主机的入侵检测产品都有不足之处,单纯使用一类产品会造成主动防御体系不全面。但是,它们的缺憾是互补的。如果这两类产品能够无缝结合起来部署在网络内,则会构架成一套完整立体的主动防御体系,综合了基于网络和基于主机两种结构特点的入侵检测系统,既可发现网络中的攻击信息,也可从系统日志中发现异常情况。
规则
就像应用防火墙,你必须为IDS建立规则。大多数的IDS程序都有预先定义好的规则。你最好编辑已有的规则并且增加新的规则来为网络提供最佳的保护。通常建立的规则有两大类:网络异常和网络误用。企业级的IDS通常可以实施上百条规则。
不同厂商在使用审计的术语时有所差别。例如,eTrust Intrusion Detection用“rules”来讨论安全审计的规则,而Intruder Alert却使用“policies”。你将会了解到Intruder Alert使用“policies”时意味更深远,它允许你为个别策略建立规则。因此,在理解各个厂商的产品时,不要被术语所迷惑。
网络异常的监测
IDS程序会报告协议级别的异常情况。如果配置正确的话,它可以提示你有关NetBus,Teardrop或Smurf攻击。例如,如果存在过多的SYN连接,IDS程序会向你报警。
网络误用监测
网络误用包括非工作目的的Web浏览,安装未授权的服务(如WAR FTP服务),和玩儿游戏(如Doom或Quake)。你可以对其进行日志记录,阻塞流量或主动地制止。例如,你可以利用程序实施反击或设置“dummy”系统或网络进行诱导。
网络误用是物理的,操作系统的或远程攻击的结果。物理攻击包括偷取硬盘或物理操纵机器来获取信息。操作系统攻击指经过验证的用户试图获得root的访问权限。远程攻击指攻击者通过网络来攻击设备。
常用检测方法
入侵检测系统常用的检测方法有特征检测、统计检测与专家系统。据公安部计算机信息系统安全产品质量监督检验中心的报告,国内送检的入侵检测产品中95%是属于使用入侵模板进行模式匹配的特征检测产品,其他5%是采用概率统计的统计检测产品与基于日志的专家知识库系产品。
特征检测
特征检测对已知的攻击或入侵的方式作出确定性的描述,形成相应的事件模式。当被审计的事件与已知的入侵事件模式相匹配时,即报警。原理上与专家系统相仿。其检测方法上与计算机病毒的检测方式类似。目前基于对包特征描述的模式匹配应用较为广泛。该方法预报检测的准确率较高,但对于无经验知识的入侵与攻击行为无能为力。
统计检测
统计模型常用异常检测,在统计模型中常用的测量参数包括:审计事件的数量、间隔时间、资源消耗情况等。常用的入侵检测5种统计模型为:
1、操作模型,该模型假设异常可通过测量结果与一些固定指标相比较得到,固定指标可以根据经验值或一段时间内的统计平均得到,举例来说,在短时间内的多次失败的登录很有可能是口令尝试攻击;
2、方差,计算参数的方差,设定其置信区间,当测量值超过置信区间的范围时表明有可能是异常;
3、多元模型,操作模型的扩展,通过同时分析多个参数实现检测;
4、马尔柯夫过程模型,将每种类型的事件定义为系统状态,用状态转移矩阵来表示状态的变化,当一个事件发生时,或状态矩阵该转移的概率较小则可能是异常事件;
5、时间序列分析,将事件计数与资源耗用根据时间排成序列,如果一个新事件在该时间发生的概率较低,则该事件可能是入侵。
统计方法的最大优点是它可以“学习”用户的使用习惯,从而具有较高检出率与可用性。但是它的“学习”能力也给入侵者以机会通过逐步“训练”使入侵事件符合正常操作的统计规律,从而透过入侵检测系统。
专家系统
用专家系统对入侵进行检测,经常是针对有特征入侵行为。所谓的规则,即是知识,不同的系统与设置具有不同的规则,且规则之间往往无通用性。专家系统的建立依赖于知识库的完备性,知识库的完备性又取决于审计记录的完备性与实时性。入侵的特征抽取与表达,是入侵检测专家系统的关键。在系统实现中,将有关入侵的知识转化为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,密码攻击等等。