通过使用硬件资源来检测网络业务中的矛盾的根套件检测的制作方法

文档序号:9650859阅读:577来源:国知局
通过使用硬件资源来检测网络业务中的矛盾的根套件检测的制作方法
【技术领域】
[0001]在此描述的实施例大体涉及恶意程序(malware)检测,并且具体地涉及检测试图从反恶意软件中隐藏网络业务的恶意程序。
【背景技术】
[0002]根套件(Rootkit)是一种秘密类型的设计用于在通常的检测方法中隐藏某些进程或者程序的存在的恶意软件(恶意程序)。Rootkit典型地能够实现对折衷系统的持续有特权的访问。当攻击者获得根(root)或者管理员访问时,Rootkit安装可以是自动的或者激活的。获得这一访问是利用已知的弱点对系统的直接攻击的结果,或者通过获得对密码(通过破解、权限升级或者社会工程)的访问。一旦被安装,Rootkit典型地尝试隐藏入侵并且保持其自己(或者其他进程)的有特权的访问。
[0003]Rootkit检测很困难,因为Rootkit能够破坏试图找到它的软件。检测方法包括使用替代的、可信的操作系统、基于行为的方法、签名扫描、差别扫描以及存储器转储分析。移除可以是非常复杂的或者在实践上不可能的,尤其是在Rootkit驻留在内核中的情况下。重新安装操作系统可能是唯一针对这一问题的有用的方法。当处理固件Rootkit时,移除可能需要硬件替换或者专门装置。
[0004]现代Rootkit不必提升访问,但是通常被用于通过增加隐藏能力来产生其他的不能够检测的软件有效负荷。由于它们携带的有效负荷是恶意的,所以大部分Rootkit被分类为恶意程序。例如,有效负荷可能会悄悄偷走用户密码、信用卡信息、计算资源,或者执行其他未授权的行为。极少数量的Rootkit被其用户认为有用的应用程序:例如,Rootkit可能掩盖CD-ROM-仿真驱动器,允许视频游戏用户来战胜需要将原始安装介质插入物理光驱动器中从而验证软件是正当购买的反盗版措施。
[0005]Rootkit可以在计算机环境的不同的特权级别或者模式中运行。用户模式Rootkit在与多数其他的用户应用程序相同的模式下运行,而不是低层系统进程。它们具有很多可能的安装向量从而拦截和修改应用编程接口(API)的标准行为。一些将动态链接库(例如.DLL文件、.dylib文件、.so文件或者.shlib文件)注入其他进程,并且因此能够在其中执行任何目标进程从而欺骗它。其他具有充足特权的仅仅覆盖目标应用的存储器。
[0006]内核模式Rootkit (零环)和/或驻留在虚拟层(有时被称为环_1)上的Rootkit通过增加代码或者替换核心操作系统部分以最高的操作系统特权来运行,核心操作系统包括内核和相关的装置驱动器。多数操作系统支持内核模式装置驱动器,其以与操作系统自身相同的特权来执行。如此,很多内核模式Rootkit被发展为装置驱动器或者可加载模块,例如可加载内核模块或者装置驱动器。这一类Rootkit具有不受限制的安全访问。内核Rootkit可能非常难被检测和移除,由于它们以与操作系统自身相同的安全等级来运行,并且因此能够拦截或者破坏多数可信的操作系统操作并且因此以类似秘密的方式将它们自己“隐藏”。隐藏它们在系统中的存在的Rootkit和其他恶意程序很难被在受感染的操作环境的范围内检测和清除。
【附图说明】
[0007]图1是示出了根据一个实施例的具有隐藏的网络业务的计算机网络的框图。
[0008]图2是示出了根据一个实施例的在以安全环境和不安全环境监视的网络业务之间的差别的图表。
[0009]图3是示出了根据一个实施例的用于检测Rootkit的计算机系统的框图。
[0010]图4是示出了根据一个实施例的用于检测恶意程序的技术的流程图。
[0011]图5是示出了根据另一个实施例的用于检测恶意程序的技术的流程图。
[0012]图6是示出了根据再一个实施例的用于检测恶意程序的技术的流程图。
【具体实施方式】
[0013]在下面的描述中,出于解释的目的,阐述了很多特定的细节以用于提供对本发明的透彻的理解。但是,很明显,对于本领域技术人员来说没有这些特定的细节也可能实现本发明。在其他例子中,以框图的形式示出了结构和装置从而避免混淆本发明。对没有下标或者后缀的数字的参考被理解为参考了所有对应于该参考数字的下标和后缀的例子。此外,在本公开中使用的语言已经被选择主要为了易读性和指导目的,并且可能没有被选择来描绘或者限制发明主题,而采取必要的权利要求来确定这样的发明主题。在说明书中对“一个实施例”或者“实施例”的参考意味着结合该实施例描述的特定的特征、结构,或者特性包括在本发明的至少一个实施例中,并且多次对“一个实施例”或者“实施例”的参考不应当被理解为必须全部参考相同的实施例。
[0014]在此描述的实施例是例子并且是为了示意性的目的。本领域技术人员可以识别到能够使用用于实现公开的主题的替代技术。示例性实施例的元件可能被设置在不同的配置中或者与不同示例性实施例的元件组合。例如,框和流程的执行的顺序可以改变。这些流程图的一些框可以被改变、省略或者组合并且如期望地可以增加其他框。
[0015]如在此使用的,术语“计算机系统”可以指代单个计算机或者多个在一起工作的计算机来执行在此描述为在计算机系统上或者被其执行的功能。
[0016]逐渐地,对商业、政府机构以及其他的网络攻击都是隐藏和持续的。结果,检测隐藏通信的能力变得对能够处理对知识产权和个人信息的偷窃越来越重要。
[0017]用于掩盖一个人的轨迹的主要的因素包括从操作系统中的软件驻留隐藏。通常避免检测的方法是使用能够从例如反病毒软件和基于主机的入侵检测中隐藏行为的恶意程序。当前的威胁更关注于隐藏在操作系统中(Rootkit和Bootkit)而遮挡网络传输是自然的下一步,因此检测恶意程序通信正变得越来越有意义和重要。Bootkit (在操作系统在boot进程阶段初始化之前激活的Rootkit)可以控制操作系统与网络硬件的交互。它们也可以使用网络堆栈,典型的是互联网协议(IP)堆栈。这可能在不能够看到恶意的网络业务的操作系统下(包括入侵检测或者其他安全软件)呈现操作系统和软件操作。Rootkit代码还能够从固件激活,该固件会使得其很难检测并且极其难被移除。
[0018]市场上有多种使用不同方法的Rootkit检测程序。比较可信的和潜在感染的信息的方法也是公知的并且被使用在很多反Rootkit工具中,例如通过Russinovich的RootkitRevealer的基于差别的检测,其能够检测Sony DRM Rootkit。其他的例子是F-Secure的Blacklight和McAfee的RootkitDetective,所有这些都将差别观察用作主要的检测方法之一。但是,现有的反Rootkit方法没有考虑网络业务,并且隐藏网络业务的Rootkit或者Bootkit使用完全基于软件的基于差别的检测来检测如果不是不可能的话则将会是非常困难的。
[0019]识别检测隐藏的网络业务的值以及检测这一业务的问题产生了下面描述的方案。下面是在隐藏、持续威胁的情境中示出了这一发明的重要性的一些例子。
[0020]考虑到通过无论什么方法加载的恶意程序(例如,在网站中获得的)。该恶意程序设计来收集信息和将收集的信息周期性地泄露给外部实体。由于入侵监测系统,其可能是基于主机或者基于网络的,能够将该行为标记为可疑的,恶意程序设计者试图阻止入侵检测代理来检测该泄露。为了避免基于网络的日志记录和入侵检测系统,恶意程序可被设计来仅当没有代理被使用或者当连接到已知的私人IP地址(例如192.168.X.X)时才发送消息。即使外部实体是当前不知道的并且没有被入侵检测系统设置黑名单为恶意的,夕卜部实体可能此后变为已知的。为了保持隐藏,恶意程序设计者可能试图使用Rootkit或者Bootkit来保持用于与通过基于主机的入侵检测系统而没有被检测到的外部实体的通信的网络业务。这产生了在被真实发送和接收的与被操作系统环境记录为被发送和接收的之间的网络记录之间的矛盾,因此限制基于主机的入侵监测系统所检测的。该突破口提供了解决隐藏的网络业务问题的方法的机会。
[0021]在另一个例子中,隐名代理时常偶然发现指令和控制(C&C)系统。该系统可变成已知的C&C系统并且检测与C&C系统的通信可以分发恶意程序的存在。恶意程序要做的相应的事情就是保持与隐藏的C&C系统的该接触。但是这产生了在真实的网络业务和网络业务监视器在操作系统环境中可以检测到的网络业务之间的矛盾,并且提供了另一个方法的机会。
[0022]在此描述的方法的目的是捕获期望试图被隐藏的网络业务。这些都是通常对于尝试
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1