防止对具有多个cpu的设备的攻击的制作方法

文档序号:6534122阅读:267来源:国知局
防止对具有多个cpu的设备的攻击的制作方法
【专利摘要】公开了用于利用两个不同处理单元(例如,CPU)来相互监测的系统和方法。处理单元可以具相互之间有限的能见度和/或只读访问以降低一个受影响的处理单元破坏第二个处理单元的可能性。包含有不同架构的多个处理单元可以被配置以使得一种类型的处理单元监测另一种类型的处理单元。当处理单元为不同架构时,单个恶意软件(恶意程序)不大可能影响两个处理单元。每个处理单元可以被配置为检测系统/设备的其它处理器上的根程序病毒包和其它类型的恶意程序。
【专利说明】防止对具有多个CPU的设备的攻击

【技术领域】
[0001] 本公开总体上涉及用于利用两个不同的处理单元来相互监测并检测可能表明其 它处理单元已被破坏的异常的系统和方法。更具体地,但并非以限制的方式,本公开涉及用 于利用不同架构和操作环境的处理单元来相互监测并检测病毒和其它恶意软件(即使感 染性软件包含类似隐形的机制)的系统和方法。

【背景技术】
[0002] 现代的移动设备通常使用两个处理单元。这些处理单元中的第一个可以用于通信 (例如,传输/接收、编码/解码、协议支持等)而这些处理单元中的第二个可以用于用户界 面或应用程序支持(例如,屏幕、键盘、接口、操作系统、应用程序)。由于具有两个处理单 元,所以黑客可以试图破坏任意一个处理单元。
[0003] 根程序病毒包(rootkit)是隐形类型的恶意软件(恶意程序),其被设计为隐藏 某些进程或程序的存在以避开常规的检测方法。根程序病毒包通常使能对被破坏的系统的 连续特权访问。根程序病毒包的安装可以是自动的或者是在攻击者获得根或管理员访问时 被激活的。获得该访问时对系统直接攻击(即,利用已知的漏洞)的结果或是通过获取密 码(通过破解、特权升级、或社交工程)的结果。一旦安装完成,根程序病毒包的目的通常 在于隐藏该侵入以及为其自身(或其它进程)保持特权访问。像任何软件一样,根程序病 毒包可以具有好的目的或恶意目的。对系统的完全控制意味着可以修改现有软件,这包括 否则可以用于检测或规避攻击的软件。
[0004] 根程序病毒包检测是困难的,这是因为根程序病毒包可能能够毁坏用于寻找根程 序病毒包的软件。检测方法包括使用替代的、可信的操作系统;基于行为的方法;签名扫 描;差异扫描;以及内存转储分析。移除可能是复杂的或者实际上是不可能的,特别是在根 程序病毒包驻留于内核中的情况下;重新安装操作系统可能是对于该问题唯一可行的解决 方案。当处理固件根程序病毒包时,移除可能需要硬件替换、或专业设备。
[0005] 现代的根程序病毒包并不一定提升访问,相反其用于通过增加隐形能力而使得另 一个软件负载不能被检测到。大多数的根程序病毒包被归类为恶意软件,这是因为它们所 捆绑的负载是恶意的。例如,负载可以隐蔽地窃取用户密码、信用卡信息、计算资源、或其它 未授权的活动。少数根程序病毒包可以被它们的用户认为是工具应用程序:例如,根程序病 毒包可以虚拟光盘仿真驱动器,这允许视频游戏用户使得要求将原始安装介质插入到物理 光驱中以验证该软件是合法购买的反盗版措施无效
[0006] 根程序病毒包能够以计算机环境的不同特权级别(例如,模式)运行。用户模式 根程序病毒包以与大多数其它用户应用程序相同的模式运行,而非低级别系统进程。它们 具有多个可能的安装向量以截获并修改应用程序接口(API)的标准行为。一些根程序病毒 包将动态链接库(例如,.DLL文件、.dylib文件、.so文件、或.shlib文件)注入到其它进 程,并且由此能够在任何目标进程内执行以冒充该目标进程;具有足够特权的其它根程序 病毒包仅重写目标应用程序的存储器。
[0007] 通过增加代码或替换核心操作系统(包括内核和相关联的设备驱动器)的一部 分,内核模式根程序病毒包以最高操作系统特权来运行。大多数操作系统支持内核模式设 备驱动器,其以与操作系统自身相同的特权来执行。由此,许多内核模式根程序病毒包被开 发为设备器读取或可加载模块,例如可加载内核模块或设备驱动器。这类根程序病毒包具 有不受限制的安全访问。内核根程序病毒包可能特别难以检测并移除,这是因为它们以与 操作系统自身相同的安全级别来运行,并且它们因此能够截获或毁坏最可信的操作系统操 作并由此以类似隐形的方式"隐藏"它们自己。
[0008] 由于根程序病毒包以及其它病毒(其包括所有类型的恶意代码:特洛伊木马、漏 洞利用、外壳代码、键盘记录器、后门、间谍软件、僵尸网络、广告软件、信息窃取软件等)以 上文所述的类似隐形的方式(在其它程序中)运行,所以它们难以检测和/或在被感染的 操作环境的范围内难以清除。本公开解决了这些和其它问题以提供方法和系统来检测试图 在被感染的处理单元上隐藏自己以避开检测的活动根程序病毒包以及其它病毒(即,恶意 代码)。

【专利附图】

【附图说明】
[0009] 图1是根据一个或多个所公开的实施例的示出了网络架构100的框图。
[0010] 图2是根据一个或多个所公开的实施例的示出了具有多个处理单元(其可以被配 置为相互监测)的计算机的框图。
[0011] 图3是根据一个或多个所公开的实施例的对可以用两个处理单元来配置的蜂窝 电话的示出。
[0012] 图4是根据一个或多个所公开的实施例的针对交叉处理单元监测的过程的流程 图,其用于示出一个示例流程。
[0013] 图5是根据一个或多个所公开的实施例的用于更新与检测技术相关联的监测代 码和/或监测信息的过程的流程图。

【具体实施方式】
[0014] 如上文所说明的,来自被感染的计算环境内的根程序病毒包检测是难以检测的。 这主要是因为根程序病毒包一旦活跃,就通常通过截获对其进行检测的尝试并且向试图执 行该检测的进程返回捏造的结果而主动地隐藏自己以避开检测。不能信任诸如请求运行进 程的列表、或目录中的文件的列表这样的动作如期望地表现。用于操作系统级别的根程序 病毒包检测的现有技术方法通常要求用户关闭疑似感染的计算机,然后通过从替代的可信 介质(例如,救援光盘或救援USB闪速存储器)中启动来检查其存储设备。该技术是有效 的,这是因为如果根程序病毒包没有运行,则它不能主动地隐藏其存在。然而,这类补救措 施对于移动设备(例如,蜂窝电话)来说通常是不可行的并且这类补救措施通常要求昂贵 的足以并包括进行返厂维修的费用。如在下文中进一步说明的,所公开的技术通过使用用 于从第二处理单元监测第一处理单元的系统和方法(其中可以定义两个处理单元之间的 访问并且可以以安全的方式来更新监测信息)解决了这些和其它问题。
[0015] 现在参考图1,其示意性地示出了基础设施100。基础设施100包含计算机网络 102。计算机网络102包括许多当今可用的不同类型的计算机网络例如互联网、企业网或 局域网(LAN)。这些网络中的每一个网络可以包含有线或无线设备并且使用任何数量的网 络协议(例如,TCP/IP)来运行网络102被连接到网关和路由器(由108表示)、终端用户 计算机106以及计算机服务器104。在基础设施100中还示出了用于蜂窝通信的蜂窝网络 103。如在本领域中众所周知的,蜂窝网络支持蜂窝电话和许多其它类型的设备(例如,未 示出的平板型计算机)。基础设施100中的蜂窝设备被示出为蜂窝电话110。
[0016] 现在参考图2,以框图的形式示出了根据一个实施例的用于提供所公开的检测技 术的示例处理设备200。处理设备200可以作为蜂窝电话110、网关或路由器108、客户端 计算机106、或服务器计算机104中的处理器。示例处理设备200包括系统单元210,其可 以可选地连接到用于系统的输入设备260 (例如,键盘、鼠标、触摸屏等)和显示器270。程 序存储设备(PSD) 280 (有时被称为硬盘、闪速存储器、或计算机可读介质)包括于系统单元 210。系统单元210还包含网络接口 240,其用于经由网络(蜂窝或计算机)与其它计算和 企业基础设施设备(未示出)或其它蜂窝通信设备进行通信。网络接口 240可以包含于系 统单元210内或在系统单元210外部。在这两种情况下,系统单元210将被通信地耦合到 网络接口 240。程序存储设备280表示任何形式的非易失性存储设备,包括但不限于:所有 形式的光和磁存储器(包括固态)、存储元件(包括可移动介质)并且可以包含于系统单元 210内或在系统单元210外部。程序存储设备280可以用于存储用于控制系统单元210的 软件、用于由处理设备200所使用的数据、或两者。
[0017] 系统单元210可以被编程为执行根据本公开的方法。系统单元210包括一个或多 个处理单元(由PU 1220和PU 2225表示)、输入输出(I/O)总线250、存储器230、以及共 享存储器231。可以使用通信总线250来实现对存储器230的存储器访问。共享存储器231 表示可以被任何处理单元直接访问的共享存储器或存储器区域。处理单元220和225可以 包括任何可编程控制器设备,包括例如大型机处理器、蜂窝电话处理器、或以下成员中的一 个或多个:来自 Intel Corporation 的 Intel Atoird Core' Pentium? 和Celeron"'处 理器系列以及来自ARM的Cortex和ARM处理器系列(INTEL、INTEL ATOM、CORE、PENTIUM、 和 CELERON 是 Intel Corporation 的注册商标。CORTEX 是 ARM Limited Corporation 的注 册商标。ARM是ARM Limited Company的注册商标)。存储器230可以包括一个或多个存 储器模块并且包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PR0M)、 可编程读写存储器、以及固态存储器。PU 220和225还可以包括一些内部存储器,包括例如 高速缓冲存储器或专用于特定处理单元并且与其它处理单元隔离以用于保持监测信息以 供结合公开的根程序病毒包的实施例使用的存储器。
[0018] 处理设备200可以驻留于任何期望的操作系统。可以使用任何期望的编程语言 来实现所公开的检测技术的实施例,并且其可以被实施为一个或多个可执行程序,所述一 个或多个可执行程序可以链接到可以由检测软件/固件的供应商、操作系统的供应商、或 适合的库例程的任何其它期望的供应商所提供的可执行例程的外部库。如在本文中所使用 的,术语"计算机系统"可以指代用于执行本文中所描述的在计算机系统上或由计算机系统 所执行的功能的单个计算机或多个共同工作的计算机。
[0019] 为在处理设备200上执行所公开的实施例做准备,用于将处理设备200配置为执 行所公开的实施例的程序指令可以被提供为存储在任意类型的非瞬时性计算机可读介质、 或可以从服务器104下载到程序存储设备280上。重要的是要注意到,即使PU (220和225) 被示出在单个处理设备200上,但是可以设想的并且可以是理想的情况是,在被配置为用 于根据所公开的实施例进行根程序病毒包检测的设备中具有多于一个处理设备200。艮P, PU220和225可以从单个处理器设备200内进行相互监测、或者来自不同处理设备(例如, 多个处理设备200)的处理单元可以互相监测。
[0020] 现在参考图3,其示出了蜂窝电话300(来自图1的蜂窝设备110的示例)。蜂窝 电话300可以使用一个或多个处理设备200进行配置并且因此具有多个处理单元(例如, 220、225)。蜂窝电话300还具有用户界面屏幕310、用户输入机制320和天线330。蜂窝电 话300还可以具有用于蜂窝、WiFi、射频识别(RFID)、近场通信(NFC)等的多个天线。在现 代的蜂窝电话中,用户界面310和经由天线330与蜂窝网络进行通信的通信接口(未示出) 可以被不同的处理单元或处理设备所控制。除了其它功能之外,这使得蜂窝电话的用户能 够与在该蜂窝电话上执行的应用程序进行交互而同时仍然参与经由蜂窝网络的通信会话。 另外,基于功耗要求,不同的处理单元可以被配置到蜂窝电话300中,并且可以被配置为当 其在监测蜂窝网络但并没有由用户主动与蜂窝网络进行交互时,允许延长的电池寿命。具 有多个(稍微隔离的)处理单元的蜂窝电话300提供适合的环境以利用本文中所公开的检 测技术。
[0021] 因为现代的蜂窝电话(即,智能电话)通常具有蜂窝网络接口和计算机网络接口, 所以它们可能以许多不同的方式被感染。电话(例如,300)可能经由蜂窝网络被冒充移动 天线以感染病利用通信处理单元的进程所感染。一旦受到这种攻击的感染,可能允许跨电 话的"蠕虫"的传播,从而导致严重的影响。另外,当蜂窝电话连接到计算机网络时,在数据 下载或应用程序下载的情况下,恶意代码可能被转移到该电话。
[0022] 有了关于根程序病毒包、它们的检测问题、基础设施细节、和设备配置的上述细 节,现在我们转向对各个实施例的讨论以提供改进的根程序病毒包检测技术。如将在下文 中所示的,来自单个设备(例如,移动电话300)的不同处理单元可以相互监测并且它们的 监测将不会受到感染被检测的处理器的根程序病毒包的影响。如本领域普通技术人员考虑 到本公开而将会理解的,根程序病毒包的类似隐形的检测规避机制不能影响或扭曲由独立 处理单元在执行的监测。
[0023] 现在参考图4,流程图400示出了根据一个所公开的实施例的交叉处理单元监测 过程的流程图400。在以下示例中,CPU的编号仅仅是两个处理单元的示例。当然,任意数 量的具有不同编号的处理单元也是可能的。在块405开始,初始化(例如,启动)诸如蜂窝 电话300这样的设备上的第一处理单元(PU 1)。接着,在块410,初始化该设备上的第二处 理单元(PU2)。当然,根据软件或硬件设计,每个处理单元可以被并行或按顺序地初始化。 在块415,PU 2变得受到根程序病毒包(一种隐形类型的病毒(任意类型的恶意软件))的 影响(例如,感染)。由于这些类型的病毒和恶意软件通常制造在PU 2的环境以及PU 2的 操作系统内隐藏自己的根程序病毒包(或病毒)(块420)。随后(块425),PU 1询问PU2, 并且因为PU 1并不被类似隐形的隐藏能力所影响,所以检测到根程序病毒包或病毒。在检 测之后(块430),可以通知用户该检测并且可以进行清理PU 2的环境的尝试。
[0024] 现在参考图5,流程图500示出了对由一个处理单元监测另一个处理单元所要求 的监测代码或监测信息进行更新的过程的流程图500。可以设想的是在制造处理设备时,可 以构造处理设备使得基于固件的监测代码(例如,用于监测不同类型的处理器的代码)可 以与处理设备集成(块505)。这通常可以通过将代码置于设备的固件中或处理器制造领域 中的技术人员已知的其它方法来完成。另外,可以定义"安全"存储器区域并且专用于保持 关于由本处理单元要监测的其它处理单元的操作环境的监测信息。该信息可以包括关于全 局中断表内容、特定存储器地址值等的信息。该监测信息会被特别地定义为针对要被监测 的操作环境(例如,特定的操作系统和相关的设备软件版本信息)。由于经由升级或补丁周 期性地更新操作系统和软件,所以可能理想的是如在块510中所示的,操作系统(或设备软 件)厂商更新监测测代码和/或监测信息。更新的监测测代码和/或监测信息可以在更新 服务器上被使得可用并且在更新服务器与包含监测PU和被监测PU的设备之间建立通信链 接(块515)。在建立了通信链接之后,可以根据需要执行安全更新过程(块520)。如将会 显而易见的,用于更新被监测的操作环境的任何更新过程可能要与在过程500中所概括的 更新过程相协调。
[0025] 在不同实施例中,被监测的处理单元和执行监测的处理单元可以具有不同的物理 架构并且运行完全不同的环境。最低要求是从监测环境对被监测环境的适当等级的能见 度。在两者的环境都具有相似的运行条件的配置中,可能重要的是充分地将它们隔离从而 不允许同时感染被监测环境和监测环境。显然,如果两个环境同时被感染,则复杂的根程序 病毒包或病毒可以试图主动地隐藏在交叉监测处的尝试。还可以想到的是具有多于两个 PU,其中以类似于所呈现的两个的实施例的方式,一个PU观察多个其它PU (它们可以每 个都互相观察)。
[0026] 在前述描述中,为了说明的目的,阐述了许多具体细节以便提供对所公开的实施 例的透彻理解。然而,对本领域技术人员显而易见的是,可以实现所公开的实施例而无需这 些具体细节。在其它实例中,以框图的形式示出了结构和设备以避免模糊所公开的实施例。 对没有下标或后缀的数字的引用被理解为引用对应于所引用的数字的下标和后缀的所有 实例。另外,本公开中所使用的语言主要是针对可读性和指导的目的而选择的,并且可能没 有被选择为描绘或限制本发明主题,有必要依靠权利要求来确定这样的本发明主题。说明 书中所引用的"一个实施例"或"实施例"意味着关于实施例所描述的特定特征、结构、或特 性被包含在至少一个所公开的实施例中,并且"一个实施例"或"实施例"的多个引用不应 被理解为一定都指代相同的实施例。
[0027] 还要理解的是,上述描述是示例性的而非限制性的。例如,上述实施例可以进行互 相结合来使用并且可以以不同于所示的顺序来执行示例性过程步骤。在查看上述描述时, 许多其它实施例对本领域技术人员来说将是显而易见的。因此,应当参考所附权利要求以 及这些权利要求所授权的等效物的全部范围来确定本发明的范围。在所附权利要求中,将 术语"包括"和"在其中"分别用作相应术语"包含"和"其中"的纯英语同义词。
[0028] 以下示例关于本公开的进一步实施例。示例中的细节可以用于一个或多个实施例 中的任何地方。
【权利要求】
1. 一种包含有存储于其上的计算机可执行指令的非瞬时性计算机可读介质,所述指令 使得一个或多个处理单元执行下列操作: 由第一处理单元询问与第二处理单元相关联的信息;以及 由所述第一处理单元分析所述信息以确定与所述第二处理单元相关联的运行条件是 否表明潜在的异常,所述潜在的异常操作为试图隐藏以避开由所述第二处理单元执行的指 令。
2. 根据权利要求1所述的非瞬时性计算机可读介质,进一步包括:使得所述一个或多 个处理单元基于所述确定而执行补救措施的指令。
3. 根据权利要求2所述的非瞬时性计算机可读介质,其中,使得所述第一处理单元分 析所述信息的指令包括:使得所述第一处理单元将所述信息与监测信息进行比较的指令。
4. 根据权利要求3所述的非瞬时性计算机可读介质,其中,所述监测信息能够由所述 第一处理单元访问而不能够由所述第二处理单元访问。
5. 根据权利要求1-4中的任意一项所述的非瞬时性计算机可读介质,其中,所述第一 处理单元和所述第二处理单元具有不同的架构。
6. 根据权利要求1所述的非瞬时性计算机可读介质,其中,所述潜在的异常包括恶意 代码。
7. -种移动设备,包括: 第一处理单元;以及 第二处理单元,其被配置为监测与所述第一处理单元相关联的运行环境; 其中,所述第二处理单元被配置为: 询问与所述第一处理单元相关联的信息;并且 分析所述信息以确定与所述第一处理单元相关联的所述运行环境的运行条件是否表 明潜在的异常,所述潜在的异常操作为试图隐藏其自身以避开与所述第一处理单元相关联 的所述运行环境。
8. 根据权利要求7所述的移动设备,其中,所述第二处理单元进一步被配置为基于所 述确定而执行补救措施。
9. 根据权利要求7所述的移动设备,进一步包括:蜂窝通信接口,其中,所述第一处理 单元被配置为支持所述蜂窝通信接口。
10. 根据权利要求7所述的移动设备,其中,所述第一处理单元被配置为支持用户界面 功能。
11. 根据权利要求7-10中的任意一项所述的移动设备,其中,所述第一处理单元被配 置为支持蜂窝通信接口而所述第二处理单元被配置为支持用户界面功能。
12. 根据权利要求7-10中的任意一项所述的移动设备,其中,所述第一处理单元和所 述第二处理单元具有不同的架构。
13. 根据权利要求7-10中的任意一项所述的移动设备,其中,所述第二处理单元具有 对不能够由所述第一处理单元访问的监测信息的访问。
14. 根据权利要求7-10中的任意一项所述的移动设备,其中,所述第二处理单元被配 置为通过将与所述第一处理单元相关联的所述信息与所述监测信息的至少一部分进行比 较,来分析与所述第一处理单元相关联的所述信息。
15. 根据权利要求7所述的移动设备,其中,所述第一处理单元被配置为: 询问与所述第二处理单元相关联的信息;并且 分析所述信息以确定与所述第二处理单元相关联的所述运行环境的运行条件是否表 明潜在的异常,所述潜在的异常操作为试图隐藏以避开与所述第二处理单元相关联的所述 运行环境。
16. 根据权利要求7或15所述的移动设备,其中,所述第二处理单元具有对从所述第一 处理单元能够以只读模式访问的监测信息的访问。
17. 根据权利要求7或15所述的移动设备,其中,所述潜在的异常包括恶意代码。
18. -种用于更新移动设备的方法,所述移动设备包括第一处理单元、第二处理单元、 和存储器,所述方法包括: 在所述移动设备和更新服务器之间建立连接; 取回要被所述第一处理单元利用以监测所述第二处理单元的代码或监测信息; 执行更新过程以将所述代码或监测信息存储到对于所述第一处理单元能够访问的存 储器的区域;并且 确定与所述第二处理单元相关联的运行环境的运行条件是否表明潜在的异常,所述潜 在的异常操作为试图隐藏其自身以避开与所述第二处理单元相关联的所述运行环境。
19. 根据权利要求18所述的方法,其中,所述第一处理单元和所述第二处理单元具有 不同的架构。
20. 根据权利要求18所述的方法,其中,对于所述第一处理单元能够访问的存储器的 所述区域对于所述第二处理单元不能够访问。
21. 根据权利要求18-20中的任意一项所述的方法,其中,对于所述第一处理单元能够 访问的存储器的所述区域包括:用于存储固件代码的存储器的区域。
22. 根据权利要求18-20中的任意一项所述的方法,其中,对于所述第一处理单元能够 访问的存储器的所述区域进一步包括:与用于存储固件代码的存储器的所述区域隔离的用 于存储所述监测信息的存储器的区域。
23. 根据权利要求18所述的方法,其中,仅监测信息在所述移动设备上被取回并更新。
24. 根据权利要求18所述的方法,其中,所述潜在的异常包括恶意代码。
25. 根据权利要求18所述的方法,其中,从所述更新服务器取回由所述第一处理单元 利用以监测所述第二处理单元的所述代码或监测信息。
26. -种用于更新移动设备的系统,所述移动设备包括第一处理单元、第二处理单元、 和存储器,所述系统包括: 用于在所述移动设备和更新服务器之间建立连接的模块; 用于取回要被所述第一处理单元利用以监测所述第二处理单元的代码或监测信息的 模块; 用于执行更新过程以将所述代码或监测信息存储到对于所述第一处理单元能够访问 的存储器的区域的模块;以及 用于确定与所述第二处理单元相关联的运行环境的运行条件是否表明潜在的异常的 模块,所述潜在的异常操作为试图隐藏以避开与所述第二处理单元相关联的所述运行环 境。
【文档编号】G06F11/30GK104428786SQ201380028334
【公开日】2015年3月18日 申请日期:2013年6月27日 优先权日:2012年6月29日
【发明者】I·穆蒂科 申请人:迈克菲公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1