恶意软件代理的行为检测的制作方法

文档序号:12515397阅读:482来源:国知局
恶意软件代理的行为检测的制作方法与工艺

本申请要求2014年9月25日提交的题为“Behavioral Detection of Malware Agents(恶意软件代理的行为检测)”的美国实用新型申请号14/496,158的优先权,所述申请通过引用结合在此。

技术领域

本申请涉及计算机安全领域,并且更具体地涉及恶意软件代理的行为检测。



背景技术:

恶意软件代理是可以安装在最终用户的机器上来为在所谓的“僵尸网络”中使用或者为其他恶意目的而盗用机器的资源的恶意可执行对象。在一个示例中,僵尸网络是每个安装有恶意软件代理并且因此响应来自恶意软件命令和控制(C&C)服务器的命令的“僵尸”机器的分布式网络。C&C服务器进而可以被编程以执行任意数量的恶意功能。例如,僵尸网络可以被配置成用于执行对抗特定服务器的拒绝服务(DoS)攻击。在另一个示例中,僵尸网络可以用于发出批量电子邮件(“垃圾邮件”)。在又另一个示例中,僵尸网络可以被配置成用于为恶意动作者执行分布式计算任务,如挖掘所谓的“加密货币”、通过强攻击术视图破译加密密钥、或者执行恶意分布式动作。

当计算机已经被盗用作为僵尸网络上的僵尸,对于机器以及对于用户的各种不期望的后果可能随之而来。例如,僵尸网络代理可以在僵尸计算机上盗用用户自己的数据、盗用后来对于用户而言不可用的计算和网络资源、或者花费用户隐私、时间以及金钱。僵尸网络代理还可能试图跨其他在同一网络运行的机器进行自行传播,这可能引发企业安全方面的考虑。僵尸网络代理的这些消极影响仅通过示例的方式提供,并且应认识到,当网络已经被危害时可能会有其他消极影响。

其他种类的恶意软件代理还可能报告给C&C服务器,并且可能导致其他类型的伤害。

附图说明

当与附图一起阅读时,将从以下详细描述中更好地理解本公开。强调的是,根据行业中的标准实践,不同特征未按比例绘制,并且仅用于说明性目的。实际上,为了讨论的清晰起见,可以任意地放大或者减小各种特征的尺寸。

图1是根据本说明书的一个或多个示例的安全使能网络的框图。

图2是根据本说明书的一个或多个示例的计算设备的框图。

图3是根据本说明书的一个或多个示例的安全服务器的框图。

图4A和图4B是根据本说明书的一个或多个示例的由客户端引擎执行的方法的流程图。

具体实施方式

概述

在示例中,检测引擎根据行为识别潜在的恶意软件对象。为了规避黑名单以及基于指纹的检测,恶意软件服务器可以频繁更改域名,和/或更改分布式恶意软件代理的指纹。恶意软件代理可能只进行初始DNS查找,并且此后使用所述服务器的原始IP地址经由“裸”HTTP分组与恶意软件命令与控制服务器进行通信。所述检测引擎通过这种行为识别恶意软件代理。在一个示例中,如果可执行对象在DNS查找“生存时间”已经期满后向地址作出重复的HTTP请求,则所述对象可以被标记为潜在的恶意软件。

本公开的示例实施例

以下公开内容提供了用于实施本公开的不同特征的许多不同实施例或示例。以下描述了部件和安排的具体示例以便简化本公开。当然,这些仅是示例并且并不旨在是限制性的。进一步地,本公开在不同示例中可以重复参考标号和/或字母。这种重复是出于简明性和清楚性的目的,并且本身并不决定所讨论的不同实施例和/或配置之间的关系。

不同实施例可以具有不同优点,并且不必需要任何实施例的特定优点。

因为僵尸网络代理以及本文所讨论的其他恶意软件代理的严重后果,期望最终用户或者企业安全管理员部署被配置成用与检测并抑制恶意软件攻击的安全解决方案,并且拒绝到恶意软件代理的资源,如例如,在僵尸机器上运行的僵尸网络代理。

在某些现有安全架构中,可以部署反恶意软件代理以检测并抑制恶意软件,包括僵尸网络代理以及连接至C&C服务器的其他恶意软件代理。如贯穿本说明书所使用的,“恶意软件代理”具体是指向远程C&C服务器报告或者与远程C&C服务器通信的任何种类的恶意软件,除非另有说明。

现有反恶意软件方案可以依靠多种技术,如已知C&C服务器域的黑名单、指纹化以识别已知恶意软件代理、恶意软件测试以试图识别恶意软件代理的C&C服务器的IP地址、和/或手动分析以避免误肯定。

上述解决方案的某些实施例可能易于被恶意软件作者反冲击。例如,僵尸网络C&C服务器可以频繁地更改其域名以避免黑名单。在这种情况下,恶意软件代理可以在安装以后立刻向最近已知的好域名作出DNS请求,并且此后向那个地址发送裸HTTP业务。在这种上下文中,“裸”HTTP分组是直接发送至原始IP地址而没有相关联的DNS查找、或者在相关联的DNS查找的生存时间(TTL)已经期满后发送的分组。标准兼容可执行对象不应该发送这种裸HTTP请求。频繁的或大量的裸HTTP请求因此可以至多是对软件未被专业开发并且缺少质量控制的指示。这种可执行对象对于增加的审查可能至少是值得的,即使它并非有意是恶意的。

恶意软件作者还可以频繁地对恶意软件代理进行细微改变,包括重新命名变体以及重新编译以击败基于指纹的方法。因此,结合裸HTTP事务、移动域名以及更改指纹,谨慎的恶意软件作者能够避免现有解决方案的简单的检测。

然而,本说明书中公开了一种检测引擎,所述检测引擎包括可操作用于检测并抑制恶意软件代理的硬件、软件和/或固件,其中,所述系统和方法是可以抵抗上述方法的。

在一个示例中,僵尸网络代理试图通过发送裸HTTP请求来击败安全解决方案,从而限制它执行的DNS查找的数量以接触其C&C服务器。在这个示例中,恶意软件作者可以频繁地更改C&C服务器的域名,但保持相同的静态IP地址。因此,用最小的努力就可以击败依靠已知的坏域名的黑名单的安全解决方案。僵尸网络代理软件可以在它被首先安装时执行单个DNS查找,并且只要它们继续工作,可以在此后仅使用裸HTTP事务。这使得恶意软件作者频繁地更改域名而无需向它的僵尸网络代理提供频繁地更新。如果它对于C&C服务器更改其IP地址是必要的,所述C&C服务器然后可以在一些情况下传播至其对于继续通信而言必要的恶意软件代理信息,如,下一个“活动目标”域名。因此通过最小化对可疑地址的DNS查询,恶意软件作者可以更好地隐瞒恶意软件代理免受简单的检测。

然而,在本说明书中认识到,这种行为是可检测的。具体地,标准兼容DNS请求具有“生存时间”(TTL)字段。可以由权威名称服务器将TTL设置为特定的域名。当缓存(递归)名称服务器向权威名称服务器查询资源(如,域名)时,它应该为指定时间(这可以用秒表示)缓存记录。

进而,“存根解析器(stub resolver)”可以查询缓存名称服务器。如果TTL还未期满,则缓存名称服务器将仅返回缓存值。这减少了权威名称服务器上的负荷。

典型的TTL可以用秒表示,并且普通的TTL值是86,400秒,对应于24小时。在一些特殊情况下,TTL可以设置的较低,如,300秒(5分钟),并且在一般情况下,可以使用任何任意值。

在TTL期满后,正常运行的网络套接口不应该继续发送裸HTTP请求。相反,它应该执行新的DNS查询以刷新IP地址。然而,依从这个标准基本上是自发的;尽管正常运行的和非恶意的程序应该接受所述TTL,但不能保证它总是会接受。因此,当执行网络操作的可执行对象忽略了所述TTL时,则可以推断所述可执行对象是恶意的或者至多没有正常运行。

在本说明书的一个示例中,检测引擎被配置成用于检测这种行为并且确定所述行为是否有可能是恶意软件代理的结果。例如,在一个实施例中,检测代理传入和传出业务两者均进行监控。所述代理可以首先确定业务是DNS业务还是HTTP业务。如果都不是,则在一个实施例中,可以安全地忽略所述业务。然而,如果是DNS业务,则从DNS请求中提取相关数据,包括TTL值。对于HTTP业务,检测代理可以确定是否存在与地址相关联的先前DNS请求,以及在那个DNS请求上的TTL是否已经期满。如果TTL已经期满并且父进程仍然向所述地址发送裸HTTP请求,所述分组及其父进程(换言之,源于所述分组的进程或者其他可执行对象)可以被标记为可疑的或者标记为恶意软件。

在一个实施例中,裸HTTP请求的单个实例可以被认为是异常或次要故障。然而,随着裸分组的数量增加,始发进程是恶意软件的概率增加。相反,如果底层进程不是恶意软件,这种非标准兼容行为至少表明所述软件可能未被专业开发或不是关键任务。因此,没必要利用完美的置信度确定分组及其父进程是恶意软件。相反,概率的平衡可以采用有利于将所述分组及其父进程指定为可疑的或恶意软件的方式进行加权。一旦分组或其父进程已经被指定为恶意软件,检测引擎就可以采取补救动作对抗所述父进程。这种动作可以包括:例如,隔离、抑制、分离、报告、阻止、删除或者以其他方式对所述父进程采取动作。补救动作还可以包括:丢弃来自所述父进程的网络分组或者引导网络分组进入沙箱环境中。

认识到关键任务应用程序可以假设地发送裸HTTP请求是可能的,为用户或安全管理员提供设备以将特定的可执行对象列入白名单也是有用的。在这种情况下,可以允许可执行对象无阻碍地运行,即使其有类恶意软件的行为。

本文描述的检测引擎,在某些实施例中,可以是独立的安全解决方案。在其他实施例中,它可以是更大并且更全面的安全架构的一部分,包括一个或多个防火墙、反病毒代理、反恶意软件代理、反广告软件代理、隐私防护以及利用黑名单化和指纹化能力配置的僵尸网络检测代理。

现在将更具体地参照所附附图来描述检测引擎以及相关联的系统和方法。

图1是根据本说明书的一个或多个示例的分布式安全网络100的网络层次图。在图1的示例中,多个用户120操作多个计算设备110。具体地,用户120-1操作台式计算机110-1。用户120-2操作膝上型计算机110-2。并且用户120-3操作移动设备110-3。

每个计算设备可以包括适合的操作系统,如微软视窗操作系统、Linux操作系统、Mac OSX操作系统、苹果iOS操作系统、Unix操作系统或类似操作系统。前述的操作系统中的一些操作系统可能在一种设备类型上比另一操作系统更常用。例如,台式计算机110-1(其在一些情况中还可以是操作工作台)可能更可能使用微软视窗操作系统、Linux操作系统、Unix操作系统或Mac OSX操作系统之一。膝上型计算机110-2(其通常为具有较少定制选项的便携式现有设备)可能更可能运行微软视窗操作系统或Mac OSX操作系统。移动设备110-3可能更可能运行安卓操作系统或iOS操作系统。然而,这些示例的目的不在于限制。

计算设备110可以经由网络170通信地耦合到彼此以及其他网络资源。网络170可以是任何合适的网络或网络的组合,通过非限制性示例的方式,包括例如局域网、广域网、无线网、蜂窝网或者互联网。在此展示中,为了简单起见,网络170被示为单一网络,但在一些实施例中,网络170可以包括大量的网络,如,连接至互联网的一个或多个企业内部网。

同样连接至网络170的是一个或多个服务器140(所述服务器中的一个或多个可以是安全服务器)、应用程序储存库160以及通过各种设备连接的人类参与者,包括,例如,恶意软件管理员180。服务器140可以被配置成用于提供适当的网络服务,包括在本说明书的一个或多个示例中公开的某些服务。在一个实施例中,服务器140以及网络170的至少一部分由一个或多个安全管理员150进行管理。

在没有来自恶意软件管理员180的干扰的情况下,成功地操作他们各自的计算设备110可能是用户120的目标。

在一个示例中,恶意软件管理员180具有造成恶意伤害或损害的目标或目的。恶意伤害或损害可以采取以下形式:在计算设备110上安装Root kit或其他恶意软件以便篡改系统、安装间谍软件或广告软件以便收集个人和商用数据、丑化网站、操作僵尸网络,如,垃圾邮件服务器或仅打搅和骚扰用户120。因此,恶意软件管理员180的一个目标可能是在一个或多个计算设备110上安装他的恶意软件以使得它们作为僵尸网络僵尸进行操作。如贯穿本说明书所使用的,恶意软件(“恶意软件”)包括被设计成用于采取可能不需要的行动的任何病毒、木马、僵尸、根程序病毒包、后门、蠕虫、间谍软件、广告软件、勒索软件、拨号器、有效载荷、恶意浏览器辅助对象、cookie、记录器等,通过非限制性示例的方式,包括数据毁坏、隐藏数据收集、浏览器劫持、网络代理或重定向、隐藏跟踪、数据记录、键盘记录、过多的或蓄意的移除阻碍、联系人采集以及未授权的自传播。

恶意软件管理员182可以操作C&C服务器182,其可以如本文所描述的执行恶意软件C&C的功能。

这种恶意软件中的一些或所有恶意软件可以包括被编程为用于提供裸HTTP请求以避免由在计算设备110和服务器140上运行的服务进行的检测的恶意软件代理。

可以由合适的企业操作服务器140以提供安全更新和服务,包括反恶意软件服务。服务器140还可以提供实质性服务,如,布线、联网、企业数据服务以及企业应用程序。在一个示例中,服务器140被配置成用于分配和实施企业计算和安全策略。可以根据书面企业策略由安全管理员150管理这些策略。服务器140还可以提供威胁情报数据库。安全管理员150还可以负责管理和配置服务器140以及网络170的全部或部分。

其他开发者还可以在网络170上进行操作。开发者可能不具有恶意意图,但可能开发出造成安全风险的软件。例如,众所周知的并且经常使用的安全缺陷是所谓的缓冲器溢出,其中,恶意用户(如,恶意软件管理员180)能够将过长的字符串输入到输入表中并且因此获得执行任意指令或者使用升级特权来操作计算设备110的能力。缓冲器溢出可能是例如不良输入验证或者未完成的垃圾收集的结果,并且在许多情况下,出现在非显而易见的上下文中。因此,尽管开发者本身不是恶意的,但是其可能为恶意软件管理员180提供攻击向量。开发者所开发的应用程序也可以引起固有问题,比如崩溃、数据丢失或者其他非期望的行为。在一个特定示例中,无意开发者可以提供执行过量裸HTTP请求的软件。

开发者可以自行托管软件,或者可以将软件上传至应用程序储存库160。因为那个软件本身可能是期望的,所以开发者在漏洞变得已知时偶尔提供修复漏洞的更新或补丁是有益的。

应用程序储存库160可以表示向用户120提供交互地或自动地下载并在计算设备110上安装应用程序的能力的视窗操作系统或苹果操作系统的“app商店”、类Unix操作系统程序库或端口收集、或者其他网络业务。合法的开发者和恶意软件管理员180都可以经由应用程序储存库160提供软件。如果应用程序储存库160具有使恶意软件管理员180难以公然分配恶意软件的适当的安全措施,恶意软件管理员180反而可以暗中将漏洞插入到显然有益的应用程序中。

在一些情况中,一个或多个用户120可以属于企业。企业可以提供对可以安装的应用程序(例如来自应用程序储存库160)的类型进行限制的策略指示。因而,应用程序储存库160可以包括并非无意被发开且并非恶意软件,但虽然如此仍违反策略的软件。例如,一些企业限制对娱乐软件(如媒体播放器和游戏)的安装。因此,甚至安全的媒体播放器或游戏也可能不适合企业计算机。安全管理员150可以负责分配与这种限制一致的计算策略。

在另一个示例中,用户120可以是小孩子的父母,并且希望保护小孩子不受非期望内容(通过非限制性示例的方式,比如,色情作品、广告软件、间谍软件、不符合年龄的内容、对某些政治、宗教或社会运动的倡导、用于讨论非法或者危险活动的论坛)的影响。在这种情况下,父母可以执行安全管理员150的一些或全部职责。

集中地,任何成为上述内容类型之一的候选对象,包括僵尸网络代理以及其他接触恶意软件C&C服务器的恶意软件,可以被称为“潜在非想要内容”(PUC)。PUC的“潜在”方面意味着当对象被标记为PUC时,它就没必要被列入黑名单。相反,有可能认为它是可疑的,以及是用于抑制或补救的候选项。因此,用户120和安全管理员150的目标是配置并操作计算设备110,从而有用地分析PUC并且做出有关如何响应PUC对象的智能决策。这可以包括计算设备110上的代理(比如,图2的检测引擎224),其可以为了附加情报与服务器140进行通信。服务器140可以提供基于网络的服务,包括图3的服务器端安全引擎324以及全球化的威胁情报数据库,它们被配置成用于实施策略,并且以其他方式辅助计算设备110适当地对PUC分类以及采取动作。

图2是根据本说明书的一个或多个示例的计算设备110的框图。计算设备110可以是任何适合的计算设备。在各种实施例中,通过非限制性示例的方式,“计算设备”可以是或可以包括:计算机、嵌入式计算机、嵌入式控制器、嵌入式传感器、个人数字助理(PDA)、膝上型计算机、蜂窝电话、IP电话、智能电话、平板计算机、可转换平板计算机、手持计算器或者用于处理和传达数据的任何其他电子、微电子或者微机电设备。

计算设备110包括连接至存储器220的处理器210,所述存储器具有存储在其中的用于提供操作系统222和检测引擎224的可执行指令。计算设备110的其他部件包括存储设备250、网络接口260以及外围设备接口240。

在示例中,处理器210经由存储器总线270-3通信地耦合至存储器220,举例来说可以是例如直接存储器访问(DMA)总线,但是其他存储器架构是可能的,包括其中存储器220经由系统总线270-1或一些其他总线与处理器210进行通信的存储器架构。处理器210可以经由系统总线270-1通信地耦合至其他设备。如贯穿本说明书所使用的,“总线”包括任何有线或者无线互连线、网络、连接、线束、单条总线、多条总线、交叉式网络、单级网络、多级网络或可操作用于在计算设备的部分之间或在计算设备之间承载数据、信号或电力的其他传导介质。应当注意的是,仅通过非限制性示例的方式来公开这些用途,并且一些实施例可以省略前述总线中的一条或多条总线,而其他实施例可以采用附加或不同总线。

在各个示例中,“处理器”可以包括硬件、软件或提供可编程逻辑的固件的任何组合,通过非限制性示例的方式,包括微处理器、数字信号处理器、现场可编程门阵列、可编程逻辑阵列、专用集成电路或虚拟机处理器。

处理器210可以经由DMA总线270-3连接至DMA配置中的存储器220。为了简化本公开,存储器220被公开为单个逻辑块,但是在物理实施例中可以包括具有任何一种或多种适当的易失性或非易失性存储器技术的一块或多块,包括例如DDR RAM、SRAM、DRAM、缓存、L1或L2存储器、片上存储器、寄存器、闪存、ROM、光学介质、虚拟存储器区域、磁性或磁带存储器等。在某些实施例中,存储器220可以包括相对低等待时间的易失性主存储器,而存储设备250可以包括相对更高等待时间的非易失性存储器。然而,存储器220和存储设备250无需是物理分离的设备,并且在一些示例中可以仅表示功能的逻辑分离。还应当注意的是,尽管通过非限制性示例的方式公开了DMA,但是DMA并不是与本说明书一致的唯一协议,并且其他存储器架构是可用的。

存储设备250可以是任何种类的存储器220,或者可以是分离的设备,如硬盘驱动器、固态驱动器、外部存储设备、独立磁盘冗余阵列(RAID)、网络附接存储设备、光学存储设备、磁带驱动器、备份系统、云存储设备、或前述任何组合。存储设备250可以是或其中可以包括一个或多个数据库或存储在其他配置中的数据,并且可以包括操作软件的存储副本,如操作系统222以及检测引擎224的软件部分。许多其他配置也是可能的,并且旨在包括在本说明书的宽泛范围内。

可以提供网络接口260来将计算设备110与有线或无线网络通信地耦合。如贯穿本说明书所使用的“网络”可以包括可操作用于在计算设备内或在计算设备之间交换数据或信息的任何通信平台,通过非限制性示例的方式包括自组织本地网、提供具有电交互能力的通信设备的互联网架构、简易老式电话系统(POTS)(计算设备可以使用所述简易老式电话系统来执行交易,在所述交易中它们可以由人类操作员来帮助或在所述交易中它们可以自动地将数据键入到电话或其他合适的电子设备中)、提供通信接口或在系统中的任何两个节点之间进行交换的任何分组数据网络(PDN)、或任何局域网(LAN)、城域网(MAN)、广域网(WAN)、无线局域网(WLAN)、虚拟专用网(VPN)、内联网或促进网络或电话环境中的通信的任何其他适当的架构或系统。

在一个示例中,检测引擎224是执行如根据本说明书执行方法图4A和图4B的方法400或者根据本说明书的其他方法等方法的工具或者程序。在各种实施例中,检测引擎224可以在硬件、软件、固件或其一些组合中被具体化。例如,在一些情况下,检测引擎224可以包括被设计成用于执行方法或方法的一部分的专用集成电路,并且还可以包括可操作用于指示处理器执行所述方法的软件指令。在一些情况下,检测引擎224可以作为“守护进程”程序运行。“守护进程”可以包括作为后台进程、终止并驻留程序、服务、系统扩展、控制面板、启动程序、BIOS子例程或者在没有直接的用户交互的情况下进行操作的任何类似程序而运行的任何程序或者可执行指令系列(无论在硬件、软件、固件或其任何组合中实施)。还应当注意的是,检测引擎224仅通过非限制性示例的方式被提供,并且包括交互式或用户模式软件的其他硬件和软件,还可以结合、除了或替代检测引擎224而被提供,以便执行根据本说明书的方法。在某些实施例中,检测引擎224还可以是“低级”进程或者可以利用提升的系统特权来运行,从而使得它在没有来自恶意软甲代理或其他进程的干扰的情况下对网络流量进行检查和分类。检测引擎224可以使用操作系统“钩子”或者类似方法来拦截资源,包括网络流量。

在一个示例中,检测引擎224包括存储在可操作用于执行图4A和图4B的方法400、或根据本说明书的类似方法的非瞬态介质上的可执行指令。在适当时间上,比如,在启动移动设备110之后或者在来自操作系统222或用户120的命令之后,处理器210可以从存储设备250中检索检测引擎224(或其软件部分)的副本并将其加载到存储器220中。然后,处理器210可以迭代的执行检测引擎224的指令。

外围设备接口240可以被配置成用于与连接至计算设备110的但不一定是计算设备110的核架构的一部分的任何辅助设备接口连接。外围设备可以可操作用于计算设备110提供扩展的功能,并且可能或可能不完全依赖于计算设备110。在一些情况下,外围设备可以是计算设备本身。通过非限制性示例的方式,外围设备可以包括输入和输出设备,比如,显示器、终端、打印机、键盘、鼠标、调制解调器、网络控制器、传感器、换能器、致动器、控制器、数据采集总线、照相机、麦克风、扬声器或者外部存储设备。

图3是根据本说明书的一个或多个示例的服务器140的框图。服务器140可以是如结合图2而描述的任何适当计算设备。通常,除非另外特别指出,图2的定义和示例可以被认为同样适用于图3。

服务器140包括连接至存储器320的处理器310,所述存储器具有存储在其中的用于提供操作系统322和服务器端安全引擎324的可执行指令。服务器140的其他部件包括存储设备350、网络接口360以及外围设备接口340。

在示例中,处理器310经由存储器总线370-3通信地耦合至存储器320,所述存储器总线可以是例如直接存储器访问(DMA)总线。处理器310可以经由系统总线370-1通信地耦合至其他设备。

处理器310可以在DMA配置中经由DMA总线370-3连接至存储器320,或者可以是经由另一条总线(比如,系统总线370)连接的非DMA存储器。为了简化本公开,如结合图2的存储器220而描述的,存储器320被公开为单个逻辑块,但是在物理环境中可以包括具有任何一种或多种适当的易失性或非易失性存储器技术的一个或多个块。在某些实施例中,存储器220可以包括相对低延迟易失性主存储器,而存储设备350可以包括相对较高延迟非易失性存储器。然而,如结合图2而进一步描述的,存储器320和存储设备350无需是物理分离的设备。

存储设备350可以是任何种类的存储器320,或者可以是分离的设备,如结合图2的存储设备250所描述的。存储设备350可以是或者其中可以包括一个或多个数据库或存储在其他配置中的数据,并且可以包括所存储的操作软件副本(比如,操作系统322以及服务器端安全引擎324的软件部分)。许多其他配置也是有可能的,并且旨在被包括在本说明书的广泛范围内。

可以提供网络接口360来将服务器140与有线或无线网络通信地耦合。

在一个示例中,服务器端安全引擎324是执行根据本说明书的方法的工具或程序。在各种实施例中,服务器端安全引擎324可以在硬件、软件、固件或其一些组合中被具体化。例如,在一些情况下,服务器端安全引擎324可以包括被设计成用于执行方法或其部分的专用集成电路,并且还可以包括可操作用于指示处理器执行所述方法的软件指令。如以上所描述的,在一些情况下,服务器端安全引擎324可以作为守护进程而运行。还应当注意的是,仅通过非限制性示例的方式提供服务器端安全引擎324,并且也可以结合除了或者代替安全引擎324而提供其他硬件和软件(包括交互式或用户模式软件),以便执行根据本说明书的方法。

在一个示例中,服务器端安全引擎324包括存储在可操作用于执行根据本说明书的方法的非瞬态介质上的可执行指令。在适当时间,比如,在服务器140之后或者在来自操作系统322或用户120的命令之后,处理器310可以从存储设备350中检索服务器端安全引擎324(或其软件部分)的副本并将其加载到存储器320中。然后,处理器310可以迭代的执行服务器端安全引擎324的指令。

外围设备接口340可以被配置成用于与连接至服务器140的但不一定是服务器140的核架构的一部分的任何辅助设备接口连接。外围设备可操作用于向服务器140提供扩展的功能,并且可能或可能不完全依赖于服务器140。在一些情况下,外围设备可以是计算设备本身。通过非限制性示例的方式,外围设备可以包括结合图2的外围设备接口240而讨论的设备中的任何设备。

图4A和图4B提供了根据本说明书的一个或多个示例的执行恶意软件代理检测的检测引擎224的方法400的流程图。

在框410中,检测引擎224检测传入流量。在这种上下文中,“传入”流量是指以任何方向传入到网络接口260中的流量。因此,所述流量可以来源于计算设备110之内,或者可以来自网络170。检测引擎224可以利用提升的系统特权来运行,从而使得它可以采用其最低级别访问这种流量。

在检测框420中,检测引擎224判定所述传入流量是否是DNS流量。

如果所述传入流量是DNS流量,则在检测框440中,检测引擎224判定所述流量是否是DNS响应。

如果所述流量不是DNS响应,则它对于检测引擎224的某些实施例不感兴趣。在这种情况下,控制可以返回开始框400。

返回至框440,如果所述传入流量是DNS响应,则在框442中,检测引擎224存储来自DNS响应分组的响应参数。这些响应参数可以包括,例如,发送器、接收器、域名、IP地址以及TTL字段。在检测引擎224已经存储响应参数之后,控制返回开始框400。

返回至框420,如果所述传流量不是DNS流量,则在检测框430中,检测引擎224判定所述传入流量是否是HTTP流量。

如果所述流量既不是HTTP流量也不是DNS流量(框430的“否”分支),则它对于检测引擎224的某些实施例不感兴趣。因此,控制返回开始框400。

返回至框430,如果所述传流量是HTTP流量,则在决策框432中,检测引擎224判定所述传入流量是否是HTTP请求。

如果所述传入流量不是HTTP请求,则它是HTTP响应,并且因此对于检测引擎224的某些实施例不感兴趣。因此,控制返回开始框400。

返回至框432,如果所述分组是HTTP请求,则在框450中,检测引擎224提取来自所述分组的相关数据。这可以包括,例如,父进程、IP地址以及域名。然后控制穿过连接器B到达图4B。

在图4B中,在框460处,检测引擎224针对来自所述分组的源IP的请求检查其DNS记录。例如,在图4A的框450中,所述源IP可能已经被提取。

在决策框480中,检测引擎224针对HTTP请求被引导至的IP地址的域名,判定是否在先前发送了相关联的主机名请求。

如果没有发送DNS请求,则在框484中,所述HTTP请求及其父进程可以视情况被标记为可疑的。控制然后根据以下说明进行。

返回至框480,如果发送了主机名请求,则在框470中,检测引擎224针对所述DNS请求检索TTL值。例如,在框442中这可能已经被存储。

在决策框472中,检测引擎224判定当前HTTP请求是否在其相关联的DNS请求的所述TTL之内。

如果所述HTTP请求在所述TTL之内,则所述HTTP请求及其父进程不被认为是可疑的,并且控制穿过连接器A回到图4A的开始框400。

返回至框472,如果所述HTTP请求不在其相关联的DNS请求的所述TTL之内——换言之,如果因为所述TTL已经期满而没有新的DNS请求,这是裸HTTP请求——则在框484中,所述分组被标记为可疑的。这表示发送裸HTTP请求的进程的单个实例或者非常小数量的实例可以仅表示,例如,监测定时故障,并且不可以是所述进程应该被标记为恶意软件的可靠指标。

在决策匡490中,检测引擎224根据算法判定是否已经发送一条或多条类似的记录。换言之,父进程是否已经发送一个或多个先前的裸HTTP请求?框490的算法可以是二进制决策(任意两个或多个裸HTTP请求(不管发送它们的时间),传递所述条件),或者可以是更详细的算法。例如,如果父进程先前已经发送了裸HTTP请求,但在其间已经发生DNS请求,则再次发生可以表明定时问题而非恶意软件行为。在其他情况中,可以指定阈值N,其中,如果裸HTTP请求的数量大于N,则所述记录被标记为恶意软件。其他输入所述算法的输入可以是先前的裸HTTP请求的数量,以及裸HTTP请求之间的时间。通过示例的方式,在没有任何干预DNS请求的情况下大量紧靠在一起的裸HTTP请求最可能适合恶意软件代理的配置文件。其他算法也是有可能的。

如果框490的操作算法确定没有(或未充足)发送类似记录,则控制返回穿过连接器A到达图4A并且到达开始框400。

返回至框490,如果根据框490的算法,已经发送一个或多个或者足够的类似记录,则在框492中,所述分组和或其父进程可以被标记为恶意软件。如以上所讨论的,这未必表示绝对确定所述父进程和所述分组是恶意软件。相反,它们可以表示概率的平衡,其中,进程是恶意软件的概率随着裸HTTP请求的每个实例,尤其随着裸HTTP请求的每个连续实例而增加,而所述进程表示专业开发的和/或关键任务的应用程序的概率相应地减小。因此,如在框492中的恶意软件的父进程和分组的标记表示判断调用,并且意识到甚至在面对不完全确定的某个级别时,现实世界需要实施安全标准。

在框496中,完成方法400。

前述内容概述了若干实施例的特征,从而使得本领域的技术人员可以更好地理解本公开的方面。本领域技术人员应该认识到,他们可以容易地将本公开用作设计或修改其他进程以及结构的基础,以便于实施相同的目的和/或实现在此介绍的实施例的相同优点。本领域技术人员还应意识到,所述等同构造没有背离本公开的精神和范围,并且在不背离本公开的精神和范围的情况下,可做出各种改变、替换和替代。

本公开的特定实施例可以容易地包括片上系统(SOC)中央处理单元(CPU)封装体。SOC表示将计算机或者其他电子系统的部件整合到单个芯片中的集成电路(IC)。其可以包含数字、模拟、混合信号、以及射频功能,所有这些功能都可以在单个芯片基底上提供。其他实施例可以包括多芯片模块(MCM),多个芯片位于单个电子封装件内并且被配置成用于通过电子封装件彼此密切交互。在各种其他实施例中,数字信号处理功能可以在专用集成电路(ASIC)、现场可编程门阵列(FPGA)和其他半导体芯片中的一个或多个硅核中实施。

在示例实施方式中,在此概述的处理活动的至少一些部分也可以在软件中实施。在一些实施例中,这些特征中的一个或多个特征可以在所公开的附图的元件外部提供的或者采用任何适当方式合并的硬件中实施,以便实现预期功能。各种部件可以包括可以协调以便实现如在此所概述的操作的软件(或者往复式软件)。在仍其他实施例中,这些元件可以包括促进其操作的任何适当的算法、硬件、软件、部件、模块、接口或者对象。

此外,可以移除或者以其他方式合并与所描述的微处理器相关联的部件中的一些部件。在一般意义上,在附图中所描绘的安排在其表示上可以更合逻辑,而物理架构可以包括这些元件的各种排列、组合和/或混合。必须注意,可以使用无数可能的设计配置来实现在此概述的操作目标。相应地,相关联的基础设施具有大量替代安排、设计选择、设备可能性、硬件配置、软件实施方式、设备选项等。

任何适当配置的处理器部件可以执行与数据相关联的任何类型的指令以便实现在此详细说明的操作。在此公开的任何处理器可以将元件或物品(例如,数据)从一个状态或一种东西转换为另一个状态或另一种东西。在另一个示例中,在此概述的一些活动可以使用固定逻辑或者可编程逻辑(例如,由处理器执行的软件和/或计算机指令)实施,并且在此标识的元件可以是某种类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(FPGA)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))、包括数字逻辑、软件、代码、电子指令、闪速存储器、光盘、CD-ROM、DVD ROM、磁性或者光学卡、适合于存储电子指令的其他类型的机器可读介质的ASIC、或者其任何适当的组合。在操作中,处理器可以将信息存储在任何适当类型的非瞬态存储介质(例如,随机存取存储器(RAM)、只读存储器(ROM)、现场可编程门阵列(FPGA)、可擦除可编程只读存储器(EPROM)、电可擦除可编程ROM(EEPROM)等)、软件、硬件中或者在适当况下并基于特定需要存储在任何其他适当部件、设备、元件或者物体中。进一步地,可以在任何数据库、寄存器、表格、缓存、队列、控制列表或者存储结构(所有这些可以在任何适当的时间帧被引用)中基于特定需要和实施方式提供在处理器中被跟踪、发送、接收或者存储的信息。在此所讨论的存储器项中的任何存储器项应当被理解为包括在宽泛术语‘存储器’内。类似地,在此所描述的可能的处理元件、模块以及机器中的任何一者应当被理解为包括在宽泛术语‘微处理器’或者‘处理器’内。另外,在各种实施例中,在此所描述的处理器、存储器、网卡、总线、存储设备、相关外围设备以及其他硬件元件可以由软件或固件配置来模仿或者虚拟化这些硬件元件的功能的处理器、存储器以及其他相关设备实施。

采用各种形式来具体化实施在此描述的功能中的所有或部分功能的计算机程序逻辑,包括但决不限于源代码形式、计算机可执行的形式、以及各种中间形式(例如,由汇编器、编辑器、链接器或定位器生成的形式)。在示例中,源代码包括以各种编程语言实施的一系列计算机程序指令,比如,目标代码、汇编语言、或高级语言(比如,与各种操作系统或操作环境一起使用的OpenCL、Fortran、C、C++、JAVA或HTML)。源代码可以限定并使用各种数据结构和通信消息。源代码可以采用计算机可执行的形式(例如,经由解释器),或者源代码可以被转换(例如,经由转换器、汇编器、或编译器)成计算机可执行的形式。

在对以上实施例的讨论中,可以容易地替换、替代或以其他方式修改电容器、缓冲器、图形元件、互连板、时钟、DDR、相机传感器、除法器、电感器、电阻器、放大器、开关、数字核、晶体管和/或其他部件,以便满足特定电路需要。此外,应当注意的是,对互补电子设备、硬件、非瞬态软件等的使用提供了同等可行的选项,以便实施本公开的教导。

在一个示例实施例中,可以在相关联的电子设备的板上实施附图的任何数量的电路。所述板可以是能够容纳电子设备的内部电子系统的各个部件并进一步为其他外围设备提供连接器的一般电路板。更具体地,所述板可以提供电连接,系统的其他部件可以通过所述电子连接来进行电通信。可以基于特定配置需要、处理需求、计算机设计等来将任何适当的处理器(包括数字信号处理器、微处理器、支持芯片组等)、存储器元件等耦合至所述板。如外部存储设备、附加传感器、用于音频/视频显示的控制器、以及外围设备等其他部件可以作为插入卡而经由线缆附接至所述板,或者整合到所述板本身中。在另一个示例实施例中,附图的电路可以被实施为独立的模块(例如,具有相关联的部件的设备和被配置成用于执行特定应用程序或功能的电路)或者被实施为到电子设备的专用硬件的插件模块。

注意,使用在此所提供的许多示例,可以关于两个、三个、四个或更多个电气部件来对交互进行描述。然而,这样做只是出于清楚和示例的目的。应理解的是,可以采用任何适当方式来合并所述系统。根据类似设计替代方案,可以在各种可能的配置中组合附图中展示的部件、模块和元件中的任一者,所有所述配置在本说明书的广泛范围内。在某些情况下,通过仅参照有限数量的电气元件,可能更容易描述一组给定流程的功能中的一项或多项功能。应当理解的是,附图的电路及其教导是可容易扩展的,并且可以容纳大量部件以及更复杂/成熟的安排和配置。相应地,所提供的示例不应限制如潜在地应用到无数其他架构上的电路的范围或抑制其宽泛教导。

许多其他的改变、替代、变型、更改和修改对本领域技术人员来说是确定的,并且本公开旨在涵盖如落在所附权利要求书的范围内的所有的改变、替代、变型、更改和修改。为了帮助美国专利及商标局(USPTO)以及另外本申请发布的任何专利的任何读者理解本申请所附权利要求书,申请人希望注意本申请人:(a)并不旨在所附权利要求中的任一项因为在本申请的申请日存在而援引35U.S.C.第112章第(6)段,除非在特定权利要求中确切地使用了字词“用于……的装置”或“用于……的步骤”;并且(b)并不旨在通过本说明书中未在所附权利要求书中反映出的任何陈述以任何方式限制本公开。

示例实施方式

示例1中公开了一种计算装置,所述计算装置包括:网络接口,所述网络接口可操作用于连接至数据网络;以及检测引擎,所述检测引擎包括硬件和/或软件,可操作用于:检查在所述网络接口上所提供的网络分组;识别与所述网络分组相关联的域名服务器(DNS)请求,所述DNS请求具有生存时间;确定所述DNS请求的所述生存时间期满;并且将所述网络分组指定为可疑的。应当注意的是,将所述网络分组指定为恶意例如包括:当可疑分组被明确地认为是恶意分组的子集时,将所述分组指定为可疑的。

示例2中公开了如示例1所述的计算装置,其中,所述检测引擎进一步可操作用于:将所述网络分组的父进程指定为可疑的。

示例3中公开了如示例1所述的计算装置,其中,所述检测引擎进一步可操作用于:确定所述分组属于先前提供了具有期满DNS请求的至少一个其他网络分组的父进程;并且将所述网络分组指定为恶意软件。

示例4中公开了如示例3所述的计算装置,其中,所述检测引擎进一步可操作用于:将所述父进程指定为恶意软件。

示例5中公开了如示例3所述的计算装置,其中,确定所述网络分组属于先前已经提供了具有期满DNS请求的至少一个其他网络分组的父进程包括:确定具有期满DNS请求的网络分组的数量大于阈值,所述阈值大于一。

示例6中公开了如示例3所述的计算装置,其中,所述检测引擎进一步可操作用于:如果具有期满DNS请求的所述至少一个其他网络分组发生在干预DNS请求之前,则不将所述网络分组指定为恶意软件。

示例7中公开了如示例3所述的计算装置,其中,所述检测引擎进一步可操作用于:对所述父进程采取补救动作。

示例8中公开了如示例3所述的计算装置,其中,所述检测引擎进一步可操作用于:确定所述父进程被指定在白名单上;并且不对所述父进程采取补救动作。

示例9中公开了如示例1至8中任一项所述的计算装置,其中,所述检测引擎进一步可操作用于:通知所述网络分组的安全服务器。

示例10中公开了如示例7所述的计算装置,其中,所述检测引擎进一步可操作用于:接收来自所述安全服务器的威胁情报。

示例11中公开了如示例1所述的计算装置,其中,所述检测引擎进一步可操作用于:将传入流量分类为DNS、超文本传输协议(HTTP)以及其他流量之一。

示例12中公开了如示例11所述的计算装置,其中,所述检测引擎进一步可操作用于:忽略被分类为其他流量的流量。

示例13中公开了如示例1所述的计算装置,其中,所述检测引擎进一步可操作用于:检测DNS请求;并且存储所述DNS请求的响应参数。

示例14中公开了一种或多种其上存储有可操作指令的计算机可读介质,所述可执行指令用于提供检测引擎,所述检测引擎可操作用于执行以下操作:检查网络分组;识别与所述网络分组相关联的域名服务器(DNS)请求,所述DNS请求具有生存时间;确定所述DNS请求的所述生存时间期满;以及将所述网络分组指定为可疑的。

示例15中公开了如示例14所述的一种或多种计算机可读介质,其中,所述检测引擎进一步可操作用于:将所述网络分组的父进程指定为可疑的。

示例16中公开了如示例14所述的一种或多种计算机可读介质,其中,所述检测引擎进一步可操作用于:确定所述网络分组属于先前已经提供了具有期满DNS请求的至少一个其他网络分组的父进程;并且将所述网络分组指定为恶意软件。

示例17中公开了如示例16所述的一种或多种计算机可读介质,其中,所述检测引擎进一步可操作用于:将所述父进程指定为恶意软件。

示例18中公开了如示例16所述的一种或多种计算机可读介质,其中,确定所述分组属于先前已经提供了具有期满DNS请求的至少一个其他网络分组的父进程包括:确定具有期满DNS请求的网络分组的数量大于阈值,所述阈值大于一。

示例19中公开了如示例16所述的一种或多种计算机可读介质,其中,所述检测引擎进一步可操作用于:如果具有期满DNS请求的所述至少一个其他网络分组发生在干预DNS请求之前,则不将所述网络分组指定为恶意软件。

示例20中公开了如示例16所述的一种或多种计算机可读介质,其中,所述检测引擎进一步可操作用于:对所述父进程采取补救动作。

示例21中公开了如示例16所述的一种或多种计算机可读介质,其中,所述检测引擎进一步可操作用于:确定所述父进程被指定在白名单上;并且不对所述父进程采取补救动作。

示例22中公开了如示例14至21中任一项所述的一种或多种计算机可读介质,其中,所述检测引擎进一步可操作用于:通知所述网络分组的安全服务器。

示例23中公开了如示例22所述的一种或多种计算机可读介质,其中,所述检测引擎进一步可操作用于:接收来自所述安全服务器的威胁情报。

示例24中公开了一种检测恶意软件代理的方法,所述方法包括:检查在所述网络接口上所提供的网络分组;识别与所述网络分组相关联的域名服务器(DNS)请求,所述DNS请求具有生存时间;确定所述DNS请求的所述生存时间期满;以及将所述网络分组以及所述网络分组的父进程指定为可疑的。

示例25中公开了如示例24所述方法,所述方法进一步包括:确定所述父进程先前已经提供了具有期满DNS请求的至少一个其他网络分组;以及将所述网络分组以及所述父进程指定为恶意软件。

示例26中公开了一种方法,所述方法包括执行在示例14至23中任一项所公开的指令。

示例27中公开了一种装置,所述装置包括用于执行如示例26所述的方法的装置。

示例28中公开了如权利要求27所述的装置,其中,所述装置包括处理器和存储器。

示例29中公开了如权利要求28所述的装置,其中,所述装置进一步包括其上存储有可操作指令的计算机可读介质,所述软件指令用于执行如示例26所述的方法。

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