通过现场可编程门阵列的电压测量结果来检测恶意软件的制作方法

文档序号:11142313阅读:480来源:国知局
通过现场可编程门阵列的电压测量结果来检测恶意软件的制造方法与工艺

除非在本文中另外表明,否则在本部分中描述的材料对于本申请中的权利要求来说不是现有技术并且不由于包括在本部分中而被承认是现有技术。

硬件加速器,也被称为协处理器,在执行特定任务时的能效可能比通用处理器高出许多倍,因此非常适合于其中降低功耗可能是合乎需要的移动装置和其它装置。协处理器可以使用固定逻辑或可再编程的现场可编程门阵列(FPGA)来实现。对于移动装置,FPGA实现的协处理器可能优于固定逻辑协处理器,因为当不同的任务出现时,同一硬件(FPGA)可用不同的协处理器再次编程。



技术实现要素:

本公开一般地描述了通过现场可编程门阵列(FPGA)的电压测量结果来检测恶意软件的技术。

根据一些示例,提供了一种通过FPGA的电压测量结果来检测FPGA处的恶意软件的方法。该方法可以包括:针对恶意软件发起对FPGA的的扫描;测量FPGA内的相异区域中的电压;根据这些电压创建功率图(power map);并且通过将功率图与和FPGA相关联的预期活动信息进行比较来执行扫描。

根据其它示例,提供可一种通过FPGA的电压测量结果来检测FPGA处的恶意软件的、包括处理器的计算装置。该计算装置可以包括存储器和控制器,存储器被配置为存储指令,控制器耦合到存储器,并且被配置为结合存储的指令来执行恶意软件检测模块。恶意软件检测模块可被配置为:针对恶意软件发起对FPGA的扫描;测量FPGA内的相异区域中的电压;根据这些电压创建功率图;从配置控制器获取与FPGA相关联的预期活动信息;并且基于功率图与预期活动信息的比较来执行扫描。FPGA上的既有传感器和/或邻近FPGA定位的新的传感器可被用来测量电压。

根据一些示例,一种计算机可读介质可存储通过FPGA的电压测量结果来检测FPGA处的恶意软件的指令。这些指令在被执行时可使这样的方法被执行,该方法可以包括:基于FPGA的状态针对恶意软件发起对FPGA的扫描,该状态包括FPGA不活动和/或FPGA部分不活动;并且使用FPGA上的既有传感器和/或邻近FPGA定位的新的传感器来测量FPGA内的相异区域中的电压。该方法可进一步包括:根据电压创建功率图;从配置控制器获取与FPGA相关联的预期活动信息;并且通过将功率图与预期活动信息进行比较来执行扫描。

前面的概要仅仅是说明性的,而并不意图以任何方式是限制性的。除了以上描述的说明性的方面、实施例和特征,另外的方面、实施例和特征将通过参考附图和下面的详细描述而变得清楚。

附图说明

根据结合附图进行的以下描述和所附权利要求,本公开的前述和其它特征将变得更充分地清楚。应当理解,这些附图仅仅描绘了根据本公开的几个实施例,因此,不应被认为是限制其范围,将通过使用附图来更具体地、更详细地描述本公开,在附图中:

图1图示部署在可配置环境中的现场可编程门阵列(FPGA)的示例示意图;

图2图示测量FPGA内的协处理器的功率使用的示例;

图3图示适合于测量FPGA内的协处理器的功率使用的示例环形振荡器;

图4图示测量FPGA处的功率使用并且与预期配置信息进行比较以在FPGA处扫描恶意软件的示例;

图5图示基于FPGA处的功率使用测量结果的恶意软件扫描的示例流程图;

图6图示通用计算装置,其可被用来通过FPGA的功率使用测量结果来检测FPGA处的恶意软件;

图7是图示通过FPGA的功率使用测量结果来检测FPGA处的恶意软件 的示例方法的流程图;以及

图8图示通过FPGA的功率使用测量结果来检测FPGA处的恶意软件的示例计算机程序产品的框图,

所有附图都是依照本文所述的至少一些实施例来安排的。

具体实施方式

在以下具体实施方式中,对附图进行参考,所述附图形成具体实施方式的一部分。除非上下文另外指示,否则在附图中,相似的符号通常标识相似的部件。在具体实施方式、附图和权利要求中描述的说明性实施例并不意味着是限制性的。在不脱离本文所提供的主题的精神或范围的情况下,可以利用其它实施例,以及可以进行其它改变。如在本文中一般地描述的和在图中图示的那样,本公开的各方面可以以广泛多样的不同配置被布置、替代、组合、分割和设计,所有这些在本文中都被明确地构想。

本公开总体上针对与通过FPGA的电压测量结果来检测FPGA处的恶意软件相关的方法、设备、系统、装置和/或计算机程序产品,以及其他事物。

简单地说,一般地描述了检测现场可编程门阵列(FPGA)上的恶意软件的技术。在一些示例中,可通过确定与FPGA内的相异区域相关联的电压来创建FPGA执行协处理器的功率图。然后可将功率图与和执行协处理器相关联的预期活动信息进行比较以确定是否有任何不匹配发生,诸如在预期没有功率使用的情况下所检测的功率使用。不匹配可指示在FPGA上执行的恶意软件的存在。

图1图示根据本文中所描述的至少一些实施例布置的、部署在可配置环境中的现场可编程门阵列(FPGA)的示例示意图。

如示图100所示,计算平台可以包括操作系统(OS)103,其被配置为调度一个或多个过程102以供用于在一个或多个不同的计算核心104上执行。这些过程可与一个或多个应用相关联,计算平台可以是任何合适的计算平台,诸如台式计算机、服务器、移动装置或类似装置。核心104可经由系统存储器总线耦合到系统存储器110。系统存储器110还可耦合到FPGA 112。FPGA 112可被配置为实现如上所述的被设计为提高计算效率的协处理 器,并且在一些实施例中,可具有多个逻辑基元或数字单元,这些逻辑基元或数字单元可被组合以形成具有各种功能的电路和/或处理器。配置控制器106可被配置为将一个或多个协处理器(例如,作为下文更详细描述的一个或多个配置件(configware)或配置文件)加载到FPGA 112上。在一些实施例中,加载FPGA 112上的每个协处理器可与在核心104上执行的过程102中的一个或多个相关联。在一些实施例中,单个的核心可将它们的计算负荷的一部分转移到FPGA 112上的相关联的协处理器,例如通过经由系统存储器110传送数据。可被配置为比核心104更高效率地执行密集计算的协处理器然后可将计算结果放回到系统存储器110中以供处理器102使用。这可提高过程102的计算效率和执行速度。

在一些实施例中,配置控制器106可被配置为基于存储在配置件库108中的一个或多个配置程序或配置件将协处理器加载到FPGA 112上并且从FPGA 112卸载协处理器,配置件库108可以被存储在存储器中。配置件可以包括用于待加载到FPGA 112上的协处理器的描述符文件。例如,配置件中的描述符文件可列出待连接在FPGA 112上的各种数字元件和输入/输出以便将特定协处理器加载到FPGA 112上。在一些实施例中,描述符文件可采取硬件描述符语言(HDL)文件的形式,HDL文件可被编译以提供网表文件。网表文件又可以包括协处理器电路的连接和元件的详细列表。根据各种实施例,除了HDL之外的格式也可被用来实现FPGA。在一些实施例中,配置件还可以包括(或者改为包括)对应协处理器的二进制文件,例如从适当的描述符文件中编译得出的。

随着与协处理器相关联的应用变得更普遍,单个的应用可以包括软件模块和相关联的描述协处理器的配置件两者。这些配置件可以以适合于不同硬件类型的不同版本出现,并且可被周期性地或偶尔地更新。在一些实施例中,类似于应用,不同的配置件版本可以是可以从web服务器下载的。这可引入新的脆弱性,因为可下载的配置件可能被恶意软件损害。当在FPGA中下载并实现协处理器时,恶意的配置件可以从FPGA内部操作,对在装置计算核心上执行的病毒检测应用的视角而言是隐藏的(躲避这些病毒检测应用的检测)。在FPGA硬件中实现的恶意的配置件可能与计算机病毒一样危险 或者更危险,因为配置件可实际上物理地损害FPGA硬件。例如,恶意软件可以引起短路电路的形成,这能够毁坏FPGA或者甚至容纳FPGA的装置。

为了解决这个问题,如本文所描述的,可以在FPGA上实现恶意软件感测。在一些实施例中,可以测量FPGA上的各种分区中的功率使用。然后可将测量的功率使用与在FPGA上实现的已知协处理器的预期功率使用进行比较。测量的功率使用和预期功率使用之间的不匹配可指示在FPGA上操作的恶意软件的存在。

图2图示根据本文中所述的至少一些实施例布置的测量FPGA内的协处理器的功率使用的示例。

如示图200所示,FPGA 202(类似于图1中的FPGA 112)可以实现一个或多个协处理器。例如,FPGA 202可以实现第一协处理器CP1 204、第二协处理器CP2 206、第三协处理器CP3 208以及第四协处理器CP4 210。FPGA 202进一步包括由被描绘为灰线的、多个功率分布走线(trace)形成的功率分布网络以及未示出的接地平面层。例如,功率分布网络可以包括电耦合到内部走线222、224、226和228的外部分布走线220。虽然在示图200中描绘四个内部走线了,但是FPGA功率分布网络可以包括更多的或更少的内部走线。

FPGA功率分布网络可将功率以电流和电压的形式提供给FPGA 202中的各种数字元件。在一些实施例中,FPGA功率分布网络可被用来,基于用于给每个区域供电的功率分布走线,将FPGA划分为不同的、相异区域或分区(在本文中可互换地提及)。例如,在示图200中,FPGA 202的由走线222和226供给的区域可被标记为象限1 212,由走线224和226供给的区域可被标记为象限2 214。由走线224和228供给的区域可被标记为象限3 216,由走线222和228供给的区域可被标记为象限4 218。当然,在其它实施例中,FPGA可以基于感兴趣的功率分布走线而被划分为多于四个相异区域或少于四个相异区域。

加载在FPGA 202上的每个协处理器可以从给其在FPGA中的区域提供功率的功率分布走线接收用于其组成数字元件的功率。例如,第一协处理器CP1 204位于象限1 212和象限4 218内,并且可以从通过这些象限的走线 (即,走线222、226和228)接收功率。第二协处理器CP2 206位于象限2 214内,并且可以从走线224和226接收功率。第三协处理器CP3 208和第四协处理器CP4 208都位于想象4 218内,并且可以从走线222和228接收功率。

与不同的FPGA区域相关联的功率使用可通过测量FPGA功率分布网络上的某些位置处的电压和/或电流而被确定。在FPGA 202中,四个传感器230、232、234和236,每个被放置或定位在FPGA 202的周边、并且在外部走线220和内部走线222-228之一的接合点处,可能足以确定和/或推断与四个象限相关联的电压、电流和/或功率使用。传感器230-236可以是电压和/或电流传感器,并且可以是FPGA 202上的已有的传感器或邻近FPGA 202定位的新的传感器。在一些实施例中,传感器230-236中的一个或多个可以包括加载到FPGA 202上的专用协处理器。

图3图示根据本文中描述的至少一些实施例布置的适合于测量FPGA内的协处理器的功率使用的示例环形振荡器。

如以上结合图2所述的,在一些实施例中,用于测量FPGA中的电压和/或电流的传感器可以包括加载到FPGA上的专用协处理器。如示图300所示,这种协处理器可以包括环形振荡器302。环形振荡器302可以包括连接在反馈链中的奇数个反相器。该链的最终输出是第一反相器的输入的逻辑反相或非(NOT),并且在输入进入第一反相器之后的有限量时间内有效。因为该链的最终输出连接到第一反相器的输入,所以反馈链可使环形振荡器302振荡。环形振荡器302的振荡频率可能对于供应给环形振荡器302中的反相器的功率电压是敏感的。结果,计数器304可耦合到环形振荡器302的最终输出以测量随时间变化的环形振荡器302的振荡周期(例如,通过对随时间变化的最终输出的转变进行计数)。测量的振荡周期相对时间特性然后可被转换为电压相对时间特性,并且因为电压与功率直接相关,所以环形振荡器302可被用来测量FPGA在被实现为协处理器时的功率变化。

图4图示根据本文中描述的至少一些实施例布置的、测量FPGA处的功率使用并且将之与预期配置信息进行比较以扫描FPGA处的恶意软件的示例。

如示图400中所描绘的,计算平台可以包括检测FPGA 112处的恶意软件的部件。示图400中的计算平台可以包括与示图100中的所示的部件类似的部件,其中类似编号的元件的行为是类似的。如以上结合图2所述的,被放置或定位在FPGA 112的周边附近的一个或多个传感器402可被配置为测量与附近的功率分布走线相关联的电压、电流和/或功耗。传感器402可以包括在FPGA 112上的已有的传感器、安装在FPGA 112周围的外部传感器、和/或加载在FPGA 112上的测量协处理器。在一些实施例中,测量协处理器可以包括如以上在图3中所述的环形振荡器。传感器402测量的功率使用数据,诸如电压、电流和/或功率,然后可被发送到配置控制器106。

示图400中的计算平台的操作系统还可调度用于在核心104上执行的病毒检查程序过程406。在一些实施例中,病毒检查程序过程406可以是恶意软件检测应用或模块的一部分,并且可被配置为针对恶意软件的存在扫描FPGA 112。病毒检查程序过程406可以从配置控制器106接收传感器402测量的功率使用数据。通过使用功率使用数据以及FPGA 112周围的收集数据的位置的知识,病毒检查程序过程406可以能够确定(a)FPGA 112的消耗功率的区域以及(b)不同FPGA区域消耗的功率量。病毒检查程序过程406然后可以使用所确定的信息来产生FPGA 112的功率图。

病毒检查程序过程406还可以从配置控制器106接收关于FPGA 112上的当前加载的协处理器的信息。负责将协处理器加载到FPGA 112上并且从FPGA 112卸载协处理器的配置控制器106可知悉当前加载在FPGA 112上的协处理器及其位置。例如,配置控制器106可以知道CP1位于第一象限和第四象限中,CP2位于第二象限中,CP3和CP4位于第四象限中。而且,配置控制器106还可以知道协处理器是活动的、还是不活动的。例如,配置控制器106可以知道CP2虽然被加载在FPGA 112中但是当前是不活动的。

配置控制器106和/或病毒检查程序过程406还可知悉加载到FPGA 112上的已知协处理器中的每个的预期功耗。给定协处理器的预期功耗可以基于其活动状态。例如,活动的协处理器可具有相对较大的功耗,而不活动的协处理器可具有相对较低的或者甚至为零的功耗。协处理器的预期功耗还可以基于其功耗历史。例如,活动的协处理器可被预期消耗和它在过去活动时消 耗的功率差不多的功率。

病毒检查程序过程406然后可将产生的FPGA 112的功率图与从配置控制器106接收的预期协处理器功耗信息进行比较以确定是否存在功耗差异。例如,假设配置控制器106指示只有CP2被加载在第二象限中并且CP2当前不活动,但是FPGA功率图指示第二象限中的功耗相对较高。病毒检查程序过程406然后可以基于功耗不匹配来推断出恶意软件存在于第二象限中,要么在CP2内,要么在配置控制器106未知的单独的协处理器中。当配置控制器106指示特定FPGA区域不具有加载的任何协处理器、但是功率图指示该区域中的功耗高时,病毒检查程序过程406也可推断出恶意软件存在。在一些实施例中,病毒检查程序过程406可响应于确定加载在FPGA 112上的协处理器的实际功耗超过某个预定阈值而指示恶意软件存在于该协处理器中。预定阈值可以基于协处理器的先前的功耗测量结果,或者可以基于来自包含恶意软件/病毒特性的数据存储的恶意软件功耗特性。

响应于确定恶意软件存在于FPGA 112上,病毒检查程序过程406可使恶意软件被隔离或移除。病毒检查程序过程406可自己执行恶意软件隔离/移除,或者可执行专门的过程来执行恶意软件隔离/移除。在一些实施例中,病毒检查程序过程406可使指示恶意软件存在的消息被发送到计算平台的用户(一个或多个)。病毒检查程序过程406也可被配置为使与检测的恶意软件相关联的报告被发送到病毒检查程序的制造商或任何其它合适的实体。

图5图示根据本文中所描述的至少一些实施例布置的、基于FPGA处的功率使用测量结果的恶意软件扫描的示例流程。

根据示图500,基于FPGA处的功率使用测量结果的恶意软件扫描可以开始于定时器502,其指示FPGA恶意软件扫描将被执行。恶意软件扫描可被定时器502调度以按预定义的时间间隔或者按基于用户输入、计算平台操作、FPGA操作和/或协处理器操作而确定的动态时间间隔执行。在一些实施例中,恶意软件扫描过程可以开始于操作504“检查临界配置”,其中FPGA上的协处理器的特定(也被称为“临界”)配置可触发恶意软件扫描,而不是定时器502。例如,恶意软件扫描可以基于以下项而被触发,协处理器加载到FPGA上、协处理器从FPGA卸载、协处理器启动或停用、或任何其它 合适的FPGA协处理器配置标准。在一些实施例中,与临界配置相关联的配置信息506可以从配置控制器518(例如,配置控制器106)获得。

在操作508,“启动FPGA扫描”,恶意软件扫描过程(例如,病毒检查程序过程406)可启动FPGA恶意软件扫描。当启动FPGA扫描时,配置控制器518可触发FPGA的功率使用测量结果(510),并创建功率图(512)。例如,恶意软件扫描过程可根据与FPGA相关联的一个或多个传感器(例如,传感器402)来触发电压、电流和/或功耗的测量结果。

在操作514,“寻找异常”,如上所述,恶意软件扫描过程可将功率图与已知协处理器配置信息进行比较以确定是否存在功耗异常。这种异常可以包括:当没有协处理器或者只有不活动的协处理器被加载在FPGA区域中时该区域消耗功率,和/或已知协处理器消耗的功率多于先前测量结果的功率。在一些实施例中,已知协处理器配置信息506可以从配置控制器518获取。在操作516,“发送可能的检测”,恶意软件扫描过程可以基于在操作514处执行的比较的结果来将可能的恶意软件检测提供给用户和/或恶意软件扫描程序制造商。恶意软件扫描过程也可发起任何检测的恶意软件的隔离或移除。

图6图示根据本文中所描述的至少一些实施例布置的、可被用来通过FPGA的功率使用测量来检测FPGA处的恶意软件的通用计算装置。

例如,计算装置600可被用来如本文中所述的那样检测FPGA处的恶意软件。在示例的基本配置602中,计算装置600可以包括一个或多个处理器604和系统存储器606。存储器总线608可被用于处理器604和系统存储器606之间的通信。基本配置602在图6中通过内部虚线内那些部件而被示出。

取决于期望的配置,处理器604可以是任何类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或它们的任何组合。处理器604可以包括一个多等级的高速缓存(诸如等级高速缓存存储器)612、处理器核心614和寄存器616。示例处理器核心614可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核心(DSP核心)或它们的任何组合。示例存储器控制器618也可与处理器604一起被使用,或在一些实施方式中存储器控制器618可以是处理器604的内部部分。

取决于期望的配置,系统存储器606可以是任何类型,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或它们的任何组合。系统存储器606可以包括操作系统620、恶意软件检测模块622以及程序数据624。恶意软件检测模块622可以包括如本文中所述的通过FPGA的功率使用测量结果来实现恶意软件检测的功率使用测量模块626。如本文中所述的,除了其它数据之外,程序数据624可以包括扫描数据628等。

计算装置600可具有用于促进基本配置602和任何所需的装置和接口之间的通信的附加特征或功能以及附加接口。例如,总线/接口控制器630可被用来促进基本配置602与一个或多个数据存储装置632之间经由存储接口总线634的通信。数据存储装置632可以是一个或多个可移除存储装置636、一个或多个不可移除存储装置638或它们的组合。可移除存储装置和不可移除存储装置的示例举几个例子来说包括诸如软盘驱动器和硬盘驱动器(HDD)的磁盘装置、诸如压缩盘(CD)驱动器或数字通用盘(DVD)驱动器的光盘驱动器、固态驱动器(SSD)和磁带驱动器。示例计算机存储介质可以包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的易失性和非易失性、可移除和不可移除的介质。

系统存储器606、可移除存储装置636和不可移除存储装置638是计算机存储介质的示例。计算机存储介质包括但不限于:RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字通用盘(DVD)、固态驱动器或其它光学存储装置、磁带盒、磁带、磁盘存储装置或其它磁存储装置,或可用于存储期望的信息以及可被计算装置600访问的任何其它介质。任何这样的计算机存储介质可以是计算装置600的一部分。

计算装置600也可以包括用于促进经由总线/接口控制器630从各种接口装置(例如,一个或多个输出装置642、一个或多个外围接口644以及一个或多个通信装置666)到基本配置602的通信的接口总线640。示例输出装置642中的一些包括图形处理单元648和音频处理单元650,其可被配置为经由一个或多个A/V端口652与诸如显示器或扬声器的各种外部装置进行通信。 一个或多个示例外围接口644可以包括串行接口控制器654或并行接口控制器656,其可被配置为经由一个或多个I/O端口658与诸如输入装置(例如,键盘、鼠标、笔、声音输入装置、触摸输入装置等)或其它外围装置(例如,打印机、扫描仪等)的外部装置进行通信。示例通信装置666包括网络控制器660,其可被布置为促进经由一个或多个通信端口664通过网络通信链路与一个或多个其它计算装置662的通信。一个或多个其它计算装置662可以包括数据中心处的服务器、客户设备以及类似的装置。

网络通信链路可以是通信介质的一个示例。通信介质可以通过计算机可读指令、数据结构、程序模块、或者诸如载波或其它传输机制的经调制数据信号中的其它数据来具体化,并且可以包括任何信息递送介质。“经调制数据信号”可以是具有以对信号中的信息编码的方式设置或改变的一个或多个自身特征的信号。通过举例但并非限制,通信介质可以包括有线介质(例如有线网络或直接有线连接)和无线介质(例如声、射频(RF)、微波、红外(IR)和其它无线介质)。本文使用的术语计算机可读介质可以包括存储介质和通信介质两者。

计算装置600可被实现为为通用或专用服务器、大型机或包括以上功能中的任何一个的类似计算机的一部分。计算装置600也可被实现为个人计算机,包括膝上型计算机和非膝上型计算机配置。

图7是图示根据本文中所描述的至少一些实施例布置的、通过FPGA的电压测量结果来检测FPGA处的恶意软件的示例方法的流程图。

示例方法可以包括如方框722、724、726、728和/或730中的一个或多个所示的一个或多个操作、功能或动作,并且在一些实施例中可由计算装置(诸如图7中的计算装置700)执行。方框722-730中所述的操作也可被作为计算机可执行指令存储在计算机可读介质(诸如计算装置710的计算机可读介质720)中。

用于通过FPGA的电压测量结果来检测FPGA处的恶意软件的示例过程可以开始于方框722,“发起现场可编程门阵列(FPGA)的针对恶意软件的扫描”,其中可以发起针对FPGA的恶意软件扫描过程。在一些实施例中,扫描过程可以基于定时器(例如,如操作502中所述的)或临界协处理器配 置(例如,如操作504中所述的)而被发起。

方框722之后可以接着是方框724,“测量FPGA内的区域中的功率使用”,其中如上所述,与FPGA相关联的一个或多个传感器可被用来测量与FPGA的相异区域相关联的电压、电流和/或其它功耗参数。测量可由恶意软件扫描过程或配置控制器(例如,配置控制器106)直接触发。

方框724之后可以接着是方框726,“根据测量的功率使用创建功率图”,其中如上所述,恶意软件扫描过程可以使用感测的电压、电流和/或其它功耗参数来创建FPGA的功率图。

方框726之后可以接着是方框728,“从配置控制器获取与FPGA相关联的预期活动信息”,其中如上所述,关于加载在FPGA上的已知协处理器的信息可以从配置控制器获取。该信息可以包括加载在FPGA上的协处理器的标识和/或位置以及加载的协处理器的先前的功耗测量结果。

最后,方框728之后可以接着是方框730,“通过将功率图与预期活动信息进行比较来执行扫描”,其中恶意软件扫描过程将功率图与预期活动信息进行比较以确定是否存在功耗差异。例如,恶意软件扫描过程可确定当没有协处理器或者只有不活动的协处理器被加载在FPGA区域中时该区域是否消耗功率、和/或已知协处理器正在消耗是否多于先前测量结果的功率的功率。

图8图示根据本文中所述的至少一些实施例布置的、通过FPGA的功率使用测量结果来检测FPGA处的恶意软件的示例计算机程序产品的框图。

在一些示例中,如图8所示,计算机程序产品800可以包括信号承载介质802,信号承载介质802还可以包括当被例如处理器执行时可提供本文中所述的功能的一个或多个机器可读指令804。因此,例如,参照图6中的处理器604,恶意软件检测模块622可响应于通过介质802传递给处理器604的指令804来执行图8中所示的任务中的一个或多个,以执行如本文中所述的与检测FPGA处的恶意软件相关联的动作。根据本文中所述的一些实施例,这些指令中的一些可以包括例如:针对恶意软件发起对FPGA的扫描;测量FPGA内的区域中的功率使用;根据测量的功率使用创建功率图;从配置控制器获取与FPGA相关联的预期活动信息;和/或并且通过将功率图与预期活 动信息进行比较来执行扫描。

在一些实施方式中,图8中所描绘的信号承载介质802可包含计算机可读介质806,诸如但不限于硬盘驱动器、固态驱动器、压缩盘(CD)、数字通用盘(DVD)、数字带、存储器等。在一些实施方式中,信号承载介质802可包含可记录介质807,诸如但不限于存储器、读/写(R/W)CD、R/W DVD等。在一些实施方式中,信号承载介质802可包含通信介质801,诸如但不限于数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等)。因此,例如,程序产品800可通过RF信号承载介质802被递送给处理器604的一个或多个模块,其中信号承载介质802可通过无线通信介质810(例如,符合IEEE 802.11标准的无线通信介质)被递送。

根据一些示例,一种通过现场可编程门阵列(FPGA)的电压测量结果来检测FPGA处的恶意软件的方法可以包括:针对恶意软件发起对FPGA的扫描;测量FPGA内的相异区域中的电压;根据这些电压创建功率图;并且通过将功率图与和FPGA相关联的预期活动信息进行比较来执行扫描。

根据一些实施例,所述方法可进一步包括使用FPGA上的既有传感器和/或邻近FPGA定位的新的传感器来测量电压。所述方法可进一步包括基于FPGA的状态来发起扫描,该状态包括FPGA不活动和/或FPGA部分不活动的。所述方法可进一步包括:根据所述电压的子集推断电压中的至少一个;评估所述相异区域中的没有协处理器的一个区域的功耗;和/或评估所述区域中的具有至少一个不活动协处理器的一个区域的功耗。

根据其它实施例,所述方法可进一步包括:评估FPGA的协处理器超过预定阈值的功耗;和/或从与协处理器相关联的先前的测量结果的数据存储库和/或病毒数据存储库取预定阈值。所述方法可进一步包括响应于从识别FPGA内的恶意软件的扫描中检测到与FPGA相关联的可疑行为,执行过程,该过程包括:恶意软件的隔离、恶意软件的移除、将与恶意软件相关联的通信向用户的发送、和/或将与恶意软件相关联的报告向病毒检查程序的制造商的另一个发送。

根据进一步的实施例,所述方法可以包括在FPGA处添加测量协处理器以测量电压中的至少一个。所述方法可进一步包括:利用环形振荡器和计数 器形成所述测量协处理器;通过耦合在反馈回路中的奇数个反相器形成环形振荡器,在该反馈回路中,该反馈回路的最终输出是第一输入的逻辑NOT,从而在第一输入之后的有限量时间内有效的最终输出引起的反馈使环形振荡器振荡;检测环形振荡器的振荡频率;并且将振荡周期除以与振荡周期相关联的时间值转换为电压除以时间值。

根据其它示例,一种通过现场可编程门阵列(FPGA)的电压测量结果来检测所述FPGA处的恶意软件的计算装置可以包括存储器和控制器,存储器被配置为存储指令,控制器耦合到存储器,并且被配置为结合存储的指令执行恶意软件检测模块。恶意软件检测模块可被配置为:针对恶意软件发起对FPGA的的扫描;测量FPGA内的相异区域中的电压;根据这些电压创建功率图;从配置控制器获取与FPGA相关联的预期活动信息;并且基于功率图与预期活动信息的比较来执行扫描。FPGA上的既有传感器和/或邻近FPGA定位的新的传感器可被用来测量电压。

根据一些实施例,恶意软件检测模块可被进一步配置为:基于FPGA的状态来发起扫描,该状态包括FPGA不活动和/或FPGA部分不活动;并且/或者从所述电压的子集推断所述电压中的至少一个。恶意软件检测模块可被进一步配置为:评估所述相异区域中的没有协处理器的一个区域的功耗;并且/或者评估所述相异区域中的具有至少一个不活动协处理器的一个区域的功耗。

根据其它实施例,恶意软件检测模块可被进一步配置为:评估FPGA的协处理器超过预定阈值的功耗;和/或从与所述协处理器相关联的先前的测量结果的数据存储库和/或病毒数据存储库获取预定阈值。恶意软件检测模块可被进一步配置为:响应于从识别FPGA内的恶意软件的扫描中检测到与FPGA相关联的可疑行为,执行过程,该过程包括:恶意软件的隔离、恶意软件的移除、将与恶意软件相关联的通信向用户的发送、和/或将与恶意软件相关联的报告向病毒检查程序的制造商的另一个发送。

根据进一步的实施例,恶意软件检测模块可被进一步配置为:在FPGA处添加测量协处理器以测量电压中的至少一个,其中测量协处理器可以利用环形振荡器和计数器来构建。恶意软件检测模块可被进一步配置为:通过耦 合在反馈回路中的奇数个反相器形成环形振荡器,在该反馈回路中,该反馈回路的最终输出是第一输入的逻辑NOT;从而在第一输入之后的有限量时间内有效的最终输出引起的反馈使环形振荡器振荡,检测环形振荡器的振荡频率,并且将振荡周期除以时间值转换为电压除以该时间值。

根据进一步的示例,一种计算机可读存储介质可存储通过现场可编程门阵列(FPGA)的电压测量结果来检测FPGA处的恶意软件的指令。这些指令当被执行时可使一种方法被执行,所述方法包括:基于FPGA的状态针对恶意软件发起对FPGA的扫描,该状态包括FPGA不活动和/或FPGA部分不活动的;并且使用FPGA上的既有传感器和/或邻近FPGA定位的新的传感器来测量FPGA内的相异区域中的电压。所述方法可进一步包括:根据电压创建功率图;从配置控制器获取与FPGA相关联的预期活动信息;并且通过将功率图与预期活动信息进行比较来执行扫描。

根据一些实施例,可以评估FPGA的没有协处理器的第一区域的第一功耗,并且可以评估FPGA的具有至少一个不活动协处理器的第二区域的第二功耗。可以评估协处理器的超过预定阈值的功耗,其中预定阈值可以从与所述协处理器相关联的先前测量结果的数据存储库以及病毒数据存储库中获取。所述指令可进一步包括响应于从识别FPGA内的恶意软件的扫描中检测到与FPGA相关联的可疑行为,执行过程,该过程包括:恶意软件的隔离、恶意软件的移除、将与恶意软件相关联的通信发送给用户的发送、和/或将与恶意软件相关联的报告发送给病毒检查程序的制造商的另一个发送。

系统的各方面的硬件实现和软件实现之间区别很小:硬件或软件的使用一般是(但不总是,因为在某些上下文下,硬件和软件之间的选择可能变得重要)表示成本对效率权衡的设计选择。存在通过其可实现本文中所述的处理和/或系统和/或其它技术的各种媒介物(例如,硬件、软件和/或固件),并且优选媒介物将随着部署这些处理和/或系统和/或其它技术的环境而变化。例如,如果实施者确定速度和精度是最重要的,则实施者可选择主要硬件和/或固件媒介物;如果灵活性是最重要的,则可选择主要软件实施方式;或者,再一次可替换地,实施者可选择硬件、软件和/或固件的某一组合。

前述的详细描述已经通过使用框图、流程图和/或示例阐述了装置和/或处 理的各种实施例。只要这样的框图、流程图和/或示例包含一个或多个功能和/或操作,本领域技术人员将理解,这样的框图、流程图或示例内的每个功能和/或操作可以由范围广泛的硬件、软件、固件或几乎其任何组合单独地和/或共同地实现。在一个实施例中,本文中所述的主题的几个部分可经由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它集成格式来实施。然而,本领域技术人员将认识到,本文中所公开的实施例的一些方面整个地或部分地可在集成电路中被等效地实现为在一个或多个计算机上运行的一个或多个计算机程序(例如,在一个或多个计算机系统上运行的一个或多个程序),实现为在一个或多个处理器上运行的一个或多个程序(例如,在一个或多个微处理器上运行的一个或多个程序),实现为固件,或者实现为它们的几乎任何组合,并且将认识到,根据本公开,设计电路和/或针对软件或固件编写代码完全属于在本领域技术人员的技术之内。

本公开不限于本申请中描述的具体实施方式,其旨在例示各个方面。对本领域技术人员明显的是,在不背离其精神和范围的情况下可以进行很多修改和改变。在本公开的范围内的功能上等同方法和设备,除了在此举例的那些,在阅读以上描述之后,将对于本领域技术人员是明显的。这些修改和变化旨在落入所附的权利要求的范围内。公开仅仅受到所附权利要求项以及这些权利要求的等同物的完整范围所限制。应理解的是这里使用的术语目的只是在于描述具体实施方式,并非进行限制。

此外,在本领域中的技术人员将会理解,本文中描述的主题的机制能够分配为各种形式的程序产品,并且,本文中描述的主题的例示性实施方式的应用与用于实际进行分配的信号承载介质的特定类型无关。信号承载介质的示例包括但不限于:可记录类型的介质,诸如软盘、硬盘驱动器、压缩盘(CD)、数字通用盘(DVD)、数字带、计算机存储器、固态驱动器等;以及传输型介质,诸如数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等)。

本领域技术人员将认识到,以本文中所阐述的方式描述装置和/或处理、其后使用工程实践将这样的所述的装置和/或处理集成到数据处理系统中在本 领域内是常见的。也就是说,本文中所述的装置和/或处理的至少一部分可经由合理量的实验集成到数据处理系统中。本领域技术人员将认识到,数据处理系统可以包括以下中的一个或多个:系统单元壳体、视频显示装置、诸如易失性和非易失性存储器的存储器、诸如微处理器和数字信号处理器的处理器、诸如操作系统的计算实体、驱动器、图形用户界面、以及应用程序、诸如触控板或触摸屏的一个或多个交互装置、和/或包括反馈回路和控制电机(例如,用于感测塔架系统的位置和/或速率的反馈;用于移动和/或调整部件和/或数量的控制电机)的控制系统。

数据处理系统可利用任何合适的商业部件来实现,诸如常见于数据计算/通信和/或网络计算/通信系统中的那些部件。本文中所述的主题有时示出包含在不同的其它部件中的或与不同的其它部件连接的不同部件。应该理解这些描述的架构仅为示例,实际上实现相同功能的很多其它架构可以被实现。在概念方面,实现相同功能的部件的任何设置是有效地“相关联”的,从而实现期望的功能。因此,这里组合以实现特定功能的任何两个部件可以看做是彼此“相关联”的,从而实现期望的功能,而与架构或中间部件无关。同样地,任何这样关联的两个部件还可以视为是彼此“可操作地连接”或“可操作地耦合”以实现期望的功能,并且能够这样相关联的任何两个部件还可以视为是彼此“可操作地可耦合的”以实现期望的功能。可操作地结合的特定示例包括但不限于物理可匹配的和/或物理交互的部件和/或无线可交互和/或无线交互部件和/或逻辑交互的和/或逻辑可交互的部件。

关于这里的实质上任意复数和/或单数术语的使用,为适于上下文和/或应用,本领域技术人员可以将复数转换为单数和/或将单数转换为复数。为了清楚起见,这里可以明确地阐述各种单数/复数置换。

本领域技术人员应该理解,通常,这里使用的术语,尤其是所附权利要求书中使用的术语(例如所附权利要求书的主体部分)通常意在作为“开放式”术语(例如,术语“包括”应该被解释为“包括但不限于”,术语“具有”应该被解释为“至少具有”,术语“包含”应该被解释为“包含但不限于”等)。本领域技术人员应进一步理解,如果目的在于引入特定数目的权利要求记载,这样的目的应该明确地记载于权利要求中,如果没有这样的记 载,则这样的目的不存在。例如,为了便于理解,下述的所附权利要求可以包含引导语“至少一个”和“一个或多个”的使用以引入权利要求记载。然而,即使同一个权利要求包括引导语“一个或多个”或“至少一个”以及不定冠词例如“一个”或“一”(例如,“一个”或“一”通常应该被解释为表示“至少一个”或“一个或多个”),这些短语的使用也不应该被解释为暗示通过不定冠词“一个”或“一”的权利要求记载的引导对任何包括这样引入的权利要求记载的特定权利要求限制为仅包括一个这样的记载的发明;对于用于引入权利要求记载的定冠词也同样适用。此外,即使明确记载了特定数量的引入权利要求记载,本领域技术人员也应该认识到这样的记载通常应该被解释为表示至少为所记载数量(例如,没有其它修饰地简单记载“两个记载”通常表示至少两个记载或者两个或多个记载)。

此外,在其中使用类似约定“A、B和C等中的至少一个”的那些实例中,通常这样的结构意在在某种意义上让本领域技术人员能够理解约定(例如“具有A、B和C中的至少一个的系统”应该包括但不限于只有A、只有B、只有C、有A和B、有A和C、有B和C、和/或有A、B和C等的系统)。本领域技术人员将进一步理解的是,表示两个或更多个另选术语的几乎任何转折词和/或词组,无论在说明书、权利要求书还是在附图中,都应该被理解为预想到包括术语中的一个、术语中的另一个或两个术语的可能性。例如,词组“A或B”应该理解为包括“A”或“B”或“A和B”的可能性。

如本领域的技术人员将理解的,出于任何和所有的目的,诸如在提供书面描述方面,本文中公开的所有范围还涵盖任何和所有可能的子范围及其子范围的组合。任何所列出的范围可以容易地识别为充分描述并且能够将同一范围分割成至少相等的两份、三份、四份、五份、十份等。作为非限制性示例,可以容易地将本文中讨论的每个范围分割成下三分之一、中三分之一和上三分之一等。如本领域的技术人员还将理解的,所有例如“高达”、“至少”、“大于”、“小于”等的语言包括所叙述的数量,并且指随后可以被分割成如上所述的子范围的范围。最后,如本领域的技术人员将理解的,范围包括每个单个构件。因此,例如,具有1到3个单元的组是指具有1个、2 个或3个单元的组。类似地,具有1到5个单元的组是指具有1、2、3、4或5个单元的组,以此类推。

虽然本文中已经公开了各个方面和实施例,但是其它方面和实施例将对于本领域技术人员变得清楚。本文中所公开的各个方面和实施例是出于例示的目的,而非意图限制,其中真实范围和精神由以下权利要求来指明。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1