缓冲溢出漏洞危害不容忽视
当您在家里通过宽带体验冲网的极速感觉时,当您在办公室通过即时通讯软件与远在大洋彼岸的客户商业交流时,是否想过您的系统是否坚如磐石,是否被网络另一端心怀叵测的黑客或脚本少年盯上。或许有人认为装上了防火墙、防病毒就可以安全无忧了,遗憾的是这些仅解决了部分问题,而系统本身的漏洞而遭受攻击却极难防范。我们讨论一种漏洞攻击方式-----远程缓冲溢出攻击,因为这种攻击可以使得一个匿名的Internet用户有机会获得一台主机的部分或全部的控制权,危害很大,也是最普遍的漏洞,大约80%的安全事件与缓冲区溢出有关。如最近微软于7月17日公开的Windows安全漏洞“RPC接口缓存溢出可能导致运行任意代码(MS03-026)”,其影响范围和危害不亚于“SQL Slammer”,被认为至今微软最严重缓冲溢出漏洞。
我们知道,缓冲区溢出漏洞是一种软件中边境条件、函数指针等设计不当的造成地址空间错误,它的原理是:向一个有限空间的缓冲区中拷贝了过长的字符串,带来了两种后果,一是过长的字符串覆盖了相临的存储单元而造成程序瘫痪,甚至造成宕机、系统或进程重启等;二是利用漏洞可以让攻击者运行恶意代码,执行任意指令,甚至获得超级权限等。
早在1988年,美国康奈尔大学的计算机科学系研究生,23岁的莫里斯(Morris)利用了UNIX fingered程序不限制输入长度的漏洞使缓冲器溢出。Morris又写了一段程序使他的恶意程序能以root(根)身份执行,并传播到其他机器上,结果造成6000台Internet上的服务器瘫痪,占当时总数的10%。 “SQL Slammer”蠕虫王的发作原理,就是利用未及时更新补丁的MS SQL Server数据库缓冲溢出漏洞。采用不正确的方式将数据发到MS Sql Server的监听端口,这个错误可以引起缓冲溢出攻击。目前新出现的MSBLAST病毒正是利用了微软关于RPC 接口中远程任意可执行代码漏洞,“中招”的机器会反复重启,或者拷贝、粘贴功能不工作等现象。事实上,如果成功利用缓冲漏洞,攻击者就有可能获得对远程计算机的完全控制,并以本地系统权限执行任意指令,如安装程序、查看或更改、删除数据、格式化硬盘等,危害性不言而喻。
通常缓冲区溢出攻击都是一次完成攻击代码植入和程序转向攻击代码两种功能。如通常攻击者将目标定为具有溢出漏洞的自动变量,然后向程序传递超长的字符串,进而引发缓冲区溢出。然后这段精巧设计的攻击代码以一定的权限运行漏洞程序,既而获得目标主机的控制权。这种攻击手段屡次得逞主要利用了C程序中数组边境条件、函数指针等设计不当的漏洞,大多数Windows、Linux、Unix、数据库系列的开发都依赖于C语言,而C的缺点是缺乏类型安全,所以缓冲区溢出攻击成为操作系统、数据库等大型应用程序最普遍的漏洞公告之一。
面对漏洞威胁 积极应对防范
在1998年CERT的13份建议中,有9份是是与缓冲区溢出有关的,在1999年,至少有半数的建议是和缓冲区溢出有关的。2003年7月份公开的10大安全漏洞通告至少有五项属于缓冲区溢出漏洞。可见完全避免这种漏洞造成的安全威胁是不可能的,但我们可以构建完善的防范体系来降低冲区溢出攻击的威胁。
作为编程人员可以使用具有类型-安全的语言 Java以避免C的缺陷;如果在C开发环境下应避免使用Gets、Sprintf等未限定边境溢出的危险函数;此可使用检查堆栈溢出的编译器(如Compaq C编译器)等。另外一个有效的办法是采用非执行堆栈和堆栈保护的方法,最后在产品发布前仍需要仔细检查程序溢出情况,将威胁降至最低。作为普通用户或系统管理员应该做些什么呢?首先确保及时为自己的操作系统和应用程序更新Patch,以修补公开的漏洞,其次应减少不必要的开放服务端口。举一个例子,你屋子里的门和窗户越少,入侵者进入的方式就越少。
值得关注的是,通常传统安全工具如防火墙对这种攻击方式无能为力,因为攻击者传输的数据分组并无异常特征,没有任何欺骗。另外可以用来实施缓存器溢出攻击的字串非常多样化,无法与正常数据有效进行区分。缓冲器溢出攻击不是一种窃密和欺骗的手段,而是从计算机系统的最底层发起攻击,因此在它的攻击下系统的身份验证和访问权限等安全策略形同虚设。
我们知道,单纯依赖部署安全产品如防火墙、IDS等仅能构筑静态被动的防御体系,所以还应注重P2DR模型的作用,即增加Policy(安全策略)、Protection(防护)、Detection(检测)和Response(响应)的能力,按照公式Pt>Dt+Rt,和Et=Dt+Rt(Pt=0),应提高系统的防护时间Pt,降低检测时间Dt和响应时间Rt。国内著名安全公司天行网安秉承安全视为一个过程,而非产品的技术理念,“全程网络安全服务”应运而生,其核心内容包括系统漏洞分析、安全风险评估、方案咨询设计、状态跟踪与安全监控、事件紧急响应和安全修复等部分。“全程网络安全服务”不替代用户现存的任何安全工具,而是充分发挥安全审计和管理平台的作用,构成主动的动态防御体系,充分发挥安全工具的作用,降低威胁并保证网络的可持续健康运行。安全专家小组Security Force与安全专家、民间安全组织具有密切关系,他们具备精湛的技术和丰富的经验,可以针对每一个用户的特定需求和网络环境定制服务策略和服务内容,从而为用户构建安全可信、可持续运行的网络应用平台。
(责任编辑:clearcase/" target="_blank" >ccidnet.com">赵纪雷)