以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 安全理论 』  (http://bbs.xml.org.cn/list.asp?boardid=65)
----  ROST:信息暗战中的铁腕控制[原创]  (http://bbs.xml.org.cn/dispbbs.asp?boardid=65&rootid=&id=64871)


--  作者:adyy
--  发布时间:7/23/2008 5:41:00 PM

--  ROST:信息暗战中的铁腕控制[原创]
ROST:信息暗战中的铁腕控制

近两年,熊猫烧香、灰鸽子、磁碟机等不断衍生,其变种更是呈几何级数地增长,令传统安全产品疲于应付;在破坏性方面,从网络拥堵到感染可执行文件,再到击破硬盘还原等等,给信息系统带来了巨大的损失。其中,最具摧毁性的无疑是root kit类攻击工具,因为它是基于操作系统内核级的,危及面覆盖信息系统里的所有业务应用及数据,前段时间疯狂作恶的磁碟机病毒,在侵入系统时就加载了大量root kit组件进行破坏。

Root kit的狠招
系统中病毒时,管理员们通常的做法是查看可疑进程,然后一路追杀到文件目录进行清除。随着攻击技术水平的提升,像制造疑似系统进程名这样的初级手段已少有人用,攻击者往往直接将攻击进程嵌入系统进程,这时候,只有借助专门的进程管理器(如procexp等)才能发现。Root kit则更进一步,这种内核级后门通过自身的伪装和隐藏,运行时根本没有进程显示。
我们知道,程序运行的时候,系统会在内存中写入一些数据结构,进程管理器就是通过这些数据结构来显示进程的。Root kit的作法是在内核层修改这些数据结构,用自带的ps、top等程序替代原有系统程序,从而达到隐藏进程的目的。很显然,现在再用pslist进程查看工具已经不济事了。
在隐藏文件时,root kit也是在系统内核层做手脚。具体做法是修改内核文件系统的代码,用自己编写的ls程序来替换,从而使原有的ls文件目录查看工具形同虚设。
从以上的分析可以看出,通过修改操作系统的核心服务(进程管理、文件系统),root kit可以悄无声息地实施攻击行为。此外,root kit还有专门的工具来提升权限,这样一来,信息系统的控制权随时面临着转手他人的危险。
事实上,黑客们在制作工具时,通常都会考虑到攻击效率而专门针对操作系统来开发,很少有针对应用程序的。另一方面,操作系统是硬件与软件之间唯一的交互平台,拥有硬件设备及应用软件的唯一控制权。“匹夫无罪,怀璧其罪”的道理在0与1交互的虚拟世界同样有效,操作系统特别是服务器的操作系统岌岌可危。
就像人为了防止生病而增强肌体免疫力一样,为了抵御面临的安全风险,操作系统同样需要提升自身的免疫力,其中很重要的一项技术就是操作系统安全加固技术,即ROST。

ROST的策略
与root kit一样,ROST也是系统内核级的攻防技术,其思路是对系统核心服务(文件系统、过程控制、内存控制等)加以控制,在系统用户层及内核层之间构筑一道关卡,根据事先制定的策略对交互信息进行过滤,从而杜绝了非法用户对内核资源的访问(包括进程调用、文件访问等)。
Windows操作系统分为用户模式和内核模式。用户模式包括系统支持进程、服务进程、用户进程、环境子系统等,在运行时需要调用原始的Windows操作系统服务,其中服务进程及用户进程通过子系统动态连接库发起调用。在内核模式中,执行体包含了基本的操作系统服务,比如内存管理、进程和线程管理、I/O、网络等。Windows内核是一组底层的操作系统功能,比如线程调度、中断、异常分发等,执行体利用这些例程和对象实现更高层次的功能;设备驱动程序包括硬件设备驱动程序,文件系统和网络驱动程序,其中硬件设备驱动程序将用户的I/O函数调用转换成特定的硬件设备I/O请求;硬件抽象层是一层特殊代码,把内核、设备驱动程序和Windows执行体跟平台相关的硬件差异隔离开来。

基于策略的强制访问控制
ROST技术的实现,是在内核中放置一组安全HOOKS函数来控制对内核对象的访问。当用户进程向系统发送调用请求时,系统首先将消息送给相应类别(鼠标、系统、线程等)的HOOKS,后者根据函数内容对消息进判断,决定是否将其传送给下一个HOOKS函数,以此类推,直到传送到目标进程、文件等核心资源。
HOOKS判断的依据为事先制定的策略,即HOOKS函数对文件、进程等操作系统关键客体所做的敏感标记。ROST强制访问控制过滤程序接收到用户的调用请求后,将遍历策略表以对用户信息(MAC地址、请求内容等)进行校检,符合策略的请求将立即转交原服务函数,否弃丢弃。在基于策略的强制访问控制下,攻击者即使通过root kit或别的工具获取管理员权限,也无法再像以前一样为所欲为。
在开源操作系统Linux中,ROST的实现方法是在内核源代码中放置HOOKS。用户进程运行时,首先会调用系统接口,然后进行错误检查和Linux的自主访问控制检测,在Linux内核试图对内部对象进行访问之前,一个Linux安全模块(LSM)的HOOKS对安全模块所必须提供的函数进行一个调用,从而对安全模块提出访问请求,安全模块根据其安全策略进行决策,做出回答即允许用户访问,或者拒绝进而返回一个错误。

ROST的实际应用
目前,我国在ROST技术产品化工作方面已取得了一些进展,浪潮服务器安全加固系统(SSR)就是首款拥有自主产权的ROST具体产品。该产品在部署初期即对服务器系统中的文件、进程等指定敏感标记,并根据用户级别制定了详细的强制访问控制列表,内容包含用户对进程/文件的调用、进程对文件的调用等等。在用户访问服务器时,系统会根据其用户类型(普通、系统管理员、安全管理员等),遍历内存中存放的标记表,决定其对系统资源的访问权限,从而实现了强制访问控制。

按此在新窗口浏览图片


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.250ms