查看完整版本: Windows Vista系统的Rootkit攻防

kenknigh 2008-4-22 21:37

Windows Vista系统的Rootkit攻防

Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和链接等信息,Rootkit一般都和木马、后门等其他恶意程序结合使用。Rootkit通过加载特殊的,修改系统内核,进而达到隐藏信息的目的。

   自身对恶意软件的防护主要是通过驱动程序数字签名、用户访问控制(UAC)和WindowsDefender来实现的,前两者对Rootkit类恶意软件的防御尤为重要。因为Rootkit的隐藏功能实现需要加载驱动,我们就先说说Vista的驱动程序加载管理:Vista驱动程序的安装加载管理和原有的Windows版本相比有较大的改进,在Microsoft的中,Vista不允许加载没有经过数字签名的驱动程序,而在之前的、XP、2003系统上,系统虽然会在安装未签名或老版本驱动程序时会有提示,但安装好之后是能够加载的。

  出于Microsoft意料之外的是,“有数字签名的驱动程序才能被Vista所加载”这个设定对Rootkit类的防护作用并不是很大。去年的Blackhat会议上,曾有研究人员演示过在VistaX64Beta2版本上通过修改上页面文件来加载未经数字签名的驱动程序,虽然这个漏洞稍后被Microsoft补上,但已经说明通过技术手段来突破Vista的驱动加载管理并非不可能。但要突破Vista驱动加载管理的更好途径是在数字签名本身上做功夫,之前曾有安全研究人员提到,Vista驱动程序的数字签名申请的审核并不严格,只需要有合法的申请实体,并交纳少许的申请费用即可。这样,通过注册或借用一个公司的名义,Rootkit作者完全可以从Microsoft拿到合法的驱动数字签名,也就是说,很有可能会出现拥有Microsoft数字签名的、“合法”的Rootkit程序。攻击者还可以使用特殊的加载程序来加载没经数字签名的程序,安全公司LinchpinLabs最近就发布了一个叫做Astiv的小,这个工具实现的原理就是使用经过数字签名的系统组件来加载未经数字签名的驱动程序,而且用这种方式加载的驱动程序并不会出现在正常驱动程序列表中,更增强了加载目标驱动程序的隐蔽。

  用户访问控制(UAC)是Vista防御恶意软件的另外一个手段

  在开启了UAC的Vista系统上,用户的权限相当于被限制了的管理员权限,如果用户程序要对系统盘及等地方进行修改的话,需要用户进行交互的二次确认。如果用户拒绝或者是目标程序比较特殊(比如木马、后门等)不出现UAC提示,因为对系统目录和注册表的访问被Vista所拒绝,除了极个别不写入系统目录的之外,大部分目标程序是无法安装成功的。Rootkit程序在UAC环境中同样会因为权限问题而无法安装成功,但很多情况下,攻击者会使用社会工程学的方法来诱骗用户信任攻击者所提供的程序,并在UAC提示时选择允许操作。

  至此可以得出一个结论,由于WindowsVista从设计开始就很重视安全性,因此对它推出之前的Rootkit等恶意软件的防御水平到达了一个新的高度,攻击者单纯靠技术手段攻击的成功率已经比在原先的Windows2000/XP/2003平台上大为下降。但我们也应该注意到,攻击者会更多的使用社会工程手段,伪造和利用各种信任关系,欺骗用户安装恶意软件。

  如何在Vista下对Rootkit类恶意程序进行防护?用户可以参考以下几点:

  1、保持Vista的系统补丁版本为最新。

  2、不在不可信的来源获取软件,并在安装使用时留意系统的各种提示,尤其是有关数字签名的提示。

  3、注意UAC的提示信息,及时拦截试图修改系统的危险操作。

  4、使用反软件并保持病毒库版本为最新,为防护恶意软件多加一层保障。

  5、定期使用支持Vista的反Rootkit工具对系统进行扫描检查。



 2.检查相关文件、执行关键词搜索

  系统同时进行对很多文件的输入和输出,所以几乎所有发生在系统上的活动都会留下一些发生的痕迹。它有许多临时文件、高速缓存文件、一个跟踪最近使用文件的注册文件、一个保留删除文件的回收站和无数的存储运行时间资料的其它位置。

  在调查知识产权或所有权、信息的所有权、性骚扰以及任何实际上包含基于文本的问题上,对目标器执行字符串搜索是非常重要的。很多不同的关键词可能对调查非常重要,这些关键词包括用户ID、密码、敏感资料(代码字)、已知的文件名和具体的主题词。字符串搜索可以在逻辑文件结构上执行,也可以在物理层次上执行。

  3.鉴定未授权的用户帐号或组、“流氓”进程

  检查用户管理器,寻找未授权的用户帐号;使用usrstat浏览域控制器中的域帐号,寻找可疑的项目;使用Event Vcser检查安全日志,筛选出事件为添加新帐号、启用用户帐号、改变帐号组和改变用户帐号的项目。

  鉴定检查一个运行系统时,鉴定“流氓”进程是非常简单的。因为大部分“流氓”进程都要监听连接或探测网络以获得纯文本的用户ID和密码,这些进程很容易在执行过程中被发现。plist命令将列出正在运行的进程,listdlls将提供每个运行中进程的完整的命令行参数,fport将显示监听的进程以及他们所监听得到端口。对于未运行的系统上“流氓”进程,方法是在证据的整个逻辑卷内使用最新的扫描程序进行扫描。如果选择在还原映象的文件系统上运行病毒检查,必须保证这个卷是只读的。

  4.寻找隐藏文件和恢复被删除文件

  所有的坏人都想隐藏一些事情,他们采取这样的办法:一旦一个内部攻击者选择在他的系统上执行未授权或不受欢迎的任务,他可能会让一些文件不可见。这些攻击者可能利用NTFS文件流,在合法文件后隐藏资料。还有可能改变文件的扩展名或特意将文件名命为重要系统文件的名字,最后还可以把文件删除。

  我们知道被删除的文件并不是真正被删除了,它们只是被标记为删除。这就意味着这些文件仍保存完好,直到新数据的写入覆盖了这些被删除文文件所在硬盘驱动器的物理空间。也就是说越早尝试,恢复一个文件成功的机会就越大。File Scavenger甚至可能在硬盘被重新格式化后还能进行恢复。

  5.检查未授权的访问点和安全标识符SID

  当检查到一个受害系统时,必须鉴别系统的访问点以确定进行访问的方式,一些工具都是鉴别系统访问点的重要工具,它们使用API调用以读取内核及用户空间的TCP和UDP连接表的内容。如果想捕获这一信息,需要允许通过还原映象引导系统。如果想在检查运行系统时完成这一步,则要在关闭系统以进行映象之前,比较这两个操作的结果,它们的差异表明存在未授权的后台程序。

  SID用于唯一地标识一个用户或一个组。每一个系统都有自己的标识符。计算机标识府和用户标识符一起构成了SID.因此SID可以唯一地标识用户帐号。所以我们需要比较在受害机器上发现的SID和在中央认证机构记录的SID。

  6.检查Scheduler Service运行的任务

  攻击者常用的一个策略是让调度事件为他们打开后门程序、改变审核策略或者完成更险恶的事。比如删除文件。恶意的调度作业通常是用at或soon工具调度它们的。不带命令行参数的at命令可以显示任何已调度的作业。

  7.分析信任关系

  系统支持不可传递的或单向的信任。这意味着只能单方向提供访问和服务。即使你的NT PDC信任其它域,这个被信任的域也不需要信任你的PDC,因此被信任域中的用户能使用你所在域的服务,但是反过来就不行。则支持可传递的信仰。



三、“隐形”证据的查找

  由于攻击者的诡密性日益提高,他们还使用隐蔽信道的方法躲避检测。我们将隐蔽信道定义为所有秘密的、隐藏的、难以检测的方式。所有与此相关的证据称为“隐形”证据。

  1.难以检测、回放的行为

  所捕捉或被监视到的,但是还需要进行进一步详细检查才能识别出的那些未经授权的流量。这些行为包括诸如Loki 2.0 HTTP命令信道和隧道效应等ICMP和UDP隐蔽信道。查找办法就是仔细检查所监视到的流量,提高鉴别能力。包括任何类型通信中的那些利用任何都不能按人们可读的方式显示或重构的各种行为。查看会话的最常见阻碍就是加密。更多的经验丰富的攻击者可以建立加密信道,使得监视失效。许多网络协议本质上就是难以回放的,X 通信、Netbus通信和其它传输大量图形信息的远程会话都是很难再现的。监视加密通信并不是完全没用,因为它可以证明在确定的IP地址之间没有进行通信。所需的证据就在于这些端点上。

  2.难以跟踪到源IP地址的攻击行为

  它可以通过拒绝服务攻击得到最好的证明。源IP地址通常是被伪装的,这就使得通过源地址跟踪源计算机是非常困难的。以日志文件或嗅探器捕获文件形式保存的电子证据所报告的是错误数据。被伪装的邮件或欺骗性的电子邮件也对按电子邮件跟踪到这些消息的原始计算机提出了挑战。人们会发现中继电子邮件位于一个法律上不合作的国家,并通过此服务器发送伪造电子邮件。这些中继电子邮件服务器通常记录了原始计算机的IP地址,但是由于位于不合作的外国,所以无法获得这些信息。加大在网络边界的监视,充分发挥网关的识别作用,才是解决此类问题的唯一所选。

  3.使得证据难以收集

  通过下列方式可以使证据难以收集——加密文件、安装可装载的核心模块以便利用你的来对付你,以及对二进制文件使用“特洛伊木马”使攻击者的痕迹不过于明显。攻击者阻碍收集证据的另一个技巧是不断改变远程系统的端口。当攻击者以一种看起来随机的方式频繁地修改端口以初始化与受攻击系统的连接时,调查员很难实施获得相关信息的过程。

  对于此种证据的查找,我们采取在线被动的网络监视办法以及通过IDS、 和其他信息源知道有关攻击的多种标志,同时不断总结有效的分析网络通信的调查方法。在网络中发现非法的服务器或通信的非法通道,这是最有效的方法。它为确定可疑行为的程度和确定以非法方式通信的相关系统提供了一种方法,以便确定将系统保持在线状态所冒的风险和系统脆弱程度。根据这些信息,可以采取适当的后续步骤或防范措施。同时并加大培训力度,不断提高监视技巧,加强有力的自动分析工具的开发。

  4.免受监视的行为

  包括ICMP通信、SMTP通信、POP通信、Usenet通信、在外部介质保存文件、看上去无害的Web通信,以及源于内部IP地址的通信。查找此类证据的唯一方法就是监视尽可能多的通信。

  为了维持对攻击者的优势,预见攻击的变革是十分必要的。只有了解攻击者的目标才能知道可能遭受攻击的地方。只有了解这些目标才有可能预见到在网络上发生的攻击,由此我们既要熟悉合法通信的标准,又要深入了解各种网络协议本身然后进行网络监视并仔细检查网络通信以便确认各种不同类型的隐蔽通道,查找出不同的隐形证据。

hp88 2008-4-23 08:43

学习了,vista下的攻防还是第一次看到呢,呵呵

flybird08 2008-4-24 12:11

学习到了,谢谢楼主的告知。今天又学到东西了!

yizigucheng 2008-5-12 14:10

VISTA!

VISTA是不是自带杀毒功能啊!
页: [1]
查看完整版本: Windows Vista系统的Rootkit攻防