ccidnet????

出版日期:2005-06-20 总期号:1421 本年期号:44

本期导读
要闻综合
中国信息化
网络与通信
产品与应用
渠道与市场
华东专刊
华南专刊
东北专刊
西北专刊
“行为安全盒”技术独特的安全效能
上海浦东软件园信息技术有限公司


   本系列文章的前两篇对“行为安全盒”技术做了基本描述,指出了它的创新思路和技术特点,但人们更关心的是它在网络安全的保护上与现有技术相比效能如何,有何独到之处。本篇是该系列的第三篇,结合分析部分典型的网络入侵攻击手段及具体实例,给出“行为安全盒”技术所能做到的防护效果。

  网络入侵源自系统部分或全部控制权被“黑客”所掌握,通过防止各种行为“失控”情况的发生,包括程序运行和系统配置上的失控,可使该问题得到较好的解决。“行为安全盒”技术的核心,简要的说就是:在实施“最少资源”原则基础上,同时采用多种有效的技术手段规范应用程序的行为,并籍此来阻止失控事件的发生,最终达到系统安全的目的。以下的技术分析都可在此找到依据。

  对“堆栈溢出”攻击的防范

  “堆栈溢出”攻击以其巨大的危害性始终成为网络黑客最为推崇的一种攻击形式。在安全领域对其已非常关注的情况下,仍有分析报告指出当今被广泛利用的薄弱环节中有50%都是缓冲区溢出,并且比例仍在上升,说明了对其防范的复杂与困难。

  所谓堆栈溢出攻击,简单地说,就是指通过往程序的缓冲区写超出其长度的内容,造成其溢出,从而破坏程序的堆栈,使程序转而执行其他指令,以达到攻击的目的。目前常见的防范方法有:堆栈区不可执行;编写正确的代码;检查数组边界;检查程序完整性。

  以上几种方法各有特点,但它们都存在一个致命弱点:认为缓冲区溢出是一个编程问题,要防止此类攻击,只有寄希望于正确的编写程序。由于信息技术的不断发展,程序代码量的不断膨胀,这显然是不现实的。

  “行为安全盒”技术以其独特的思路和有效的手段可有效地解决这个典型问题。堆栈溢出攻击的成功通常依赖两个基本前提:转入执行一段“新”的“入口”代码;执行一个指定的程序。由于“行为安全盒”技术采用了“最少资源”策略及地址空间控制手段,即使第一个条件可以侥幸躲过“行为安全盒”检查,第二个条件却是无法过关的,原因是黑客代码中“执行指令”的“地址”和“关联”及执行的文件不可能合法,它是“黑客”新加入的。

  对程序“后门”的防范

  程序中的“后门”通常指:为黑客再次潜入系统留下途径,经常隐藏在正常程序当中、为特定实体服务的非公开的软件入口及其相关代码。它可能是黑客更改系统后留下的,也可能是预先设置的。“后门”可能对网络系统安全构成的危害是显而易见的,目前最引起关注的“Bot网络”就是应用后门的实例。它极具隐蔽性,且难于被发现。对其的防范主要依赖于对开发商、发布渠道的信任和使用文件完整性工具。随着计算机及网络技术应用的不断普及和深入,具有较高安全要求并希望完全掌握安全主动权的部门是无法满足现状的。

  在采用“行为安全盒”技术实施安全防范的系统中,一道应用程序的“行为安全盒”是在安全的环境下制作并审计完成的,不具备激发“后门”并运行相关代码的环境和条件,因此程序中即使存在“后门”,当应用程序在“行为安全盒”约束下运行时,“黑客”也无法打开并利用其中的“后门”,自然对安全也就失去威胁。对需要激发的专用后门是如此,对不需要激发的公共后门,同样会因为“行为安全盒”技术的“最少资源”监控而遭受堵截。

  后门实例:在系统运行了Web服务时,创建CGI后门对黑客就非常有吸引力。将代码“system param(crackersays) if param('crackersays');”加到某个Perl CGI脚本的开始处,黑客只需创建自己的HTML表单,使其包含名为crackersays的参数,即可方便地通过此后门运行该字段指定的值(各种对黑客有用的系统命令等)。但在Web服务程序的“行为安全盒”约束下,访问“crackersays”的值必定被阻挡,原因是“执行地址”非法且访问“crackersays”所对应的文件也非法,如图1所示。

  对“木马”的防范

  “木马”是一种恶意代码,是“社会工程”手段及其他黑客入侵后最乐意做的一件事。常用于长期盗窃机密信息,监视系统的活动等。通常的防范措施是:(1)目标一致性。用于检测目标对象是否被意外改变过。目标可以是文件、目录、设备等。(2)谨慎使用新软件。

  “行为安全盒”技术防止“木马”攻击的措施分为两种情况:(1)“行为安全盒”是在程序被植入木马前为程序定制的,在那以后植入的“木马”将一定会被有效地阻止,原因是:“木马”代码段要完成有意义的“任务”,必定会超出“行为安全盒”的最小资源限定范围(包括文件、系统软机制的使用等),进而被系统发现并被阻断。这应是大多数情况。(2)“行为安全盒”是在程序被植入木马后为程序定制的,这时系统提供了对“行为安全盒”数据的透明检查,可通过严格审计应用程序对系统敏感数据的访问及访问方式,及时发现被植入木马的程序。这种情形常发生在来源不可靠的软件上,较易避免。

  对“root用户”攻击的防范

  在“行为安全盒”技术所采取的控制策略中,程序行为对系统中任何资源访问是否被允许,是“以完成正常功能所必需”为准则的,也就是说它是否为“行为安全盒”所准许。而当前任务是否拥有“root”身份并不是可访问的充分条件。对受“行为安全盒”约束的网络服务程序而言,“root”身份已不是原来意义上的“root”用户,它也仅能根据实际需要使用资源,不再具备各种特权,从而避免了“root”特权的滥用。

  对新型攻击手段的防范

  CNNET/CC在其“2004年网络安全工作报告”中对我国未来的网络安全展望称:各种网络安全漏洞的大量存在和不断被发现,仍将是网络安全的最大隐患。新的漏洞就意味着新的攻击手段。面对“漏洞”,有人在网络安全上提出了:确保你比黑客领先一步。

  要想确保你比黑客领先一步,仅靠被动的修补“漏洞”是难以做到的。而“行为安全盒”技术为确保你比黑客领先一步创造了条件。它将系统构造成一个对网络访问来讲完全受控的系统,当你为一道道网络应用程序建立相应的“行为安全盒”并投入控制后,你已经提前为该程序中可能被黑客利用来威胁你安全的漏洞筑起了一道屏障,且不会失控。其中的道理前面已有所描述,不论是可能的“堆栈溢出”、“格式字符串”漏洞,还是“解码漏洞”等,可能的黑客行为必将超出“行为安全盒”允许的范围(否则就不会成为黑客行为),在其未开始就将被终结。因此“行为安全盒”技术的保障能力与攻击手段无关,它可以对抗新型未知的攻击手段,包括老手段的变异。

  无对攻击的漏报与误报

  “行为安全盒”技术还有一个突出的特点:在安全检测中无漏报和误报情况发生,这大大减轻了安全管理人员的心理压力和劳动强度。之所以如此,是因为“行为安全盒”是以程序的正常行为特征信息为基础的,完全尊重应用逻辑,较少人为的假设。因此一旦检测到异常行为出现,一定是应用或者超出了其正常运行逻辑,或者非法访问了不该访问的系统资源。而不会像某些系统那样,由于制定的安全策略规则存在这样或那样的问题而发生误报和漏报。

  (下期刊登《如何应用“行为安全盒”技术》)