易受攻击的应用程序检测制造技术

技术编号:20023042 阅读:29 留言:0更新日期:2019-01-06 03:07
一种确定软件漏洞的方法和系统。下载库并存储在数据库中。对于每个库,提取特征集并将其存储在数据库的库索引表中。对于每个库,确定它是否构成安全问题并在库索引表中相应地标记。下载应用程序并存储在数据库中。对于每个应用程序,提取特征集并将其存储在数据库的应用程序索引表中。对于每个应用程序,将应用程序的特征集与库索引表中的每个库的特征集进行比较,以识别库索引表中的哪些库与应用程序相关联。对于每个应用程序,在数据库的漏洞参考表中存储应用程序的名称和关联库的名称。

【技术实现步骤摘要】
【国外来华专利技术】易受攻击的应用程序检测
本公开一般涉及安全工具,并且更具体地涉及检测使用软件库的应用程序的漏洞。
技术介绍
紧凑的,特征特定的软件应用程序(通常称为“应用程序”(“apps”))已经在各种计算设备上普遍存在,包括智能电话,平板电脑,电视和其他设备,在此统称为用户设备(UD)。随着不同平台上可用应用程序的数量不断增加,当存储在计算设备上时,它们可能代表重大的安全风险。鉴于某些应用程序平台的开放性,应用程序可能来自各种各样的来源,并且可能无法对漏洞进行严格测试。漏洞的一个潜在来源是软件库,开放源代码等。除了任何给定编程平台(如Java)支持的标准库之外,程序开发人员还可以使用许多其他私有和开放库。使用这些库对于缩短开发时间和增加功能和通用接口的可用性具有吸引力。但是,并非所有库都是安全的。实际上,由于库可能被广泛分发,因此它们可能是黑客和/或恶意软件易于访问的攻击源。邪恶的程序员可能故意分发他们知道如何利用的库。在某些情况下,程序员可能会不小心使用具有已知漏洞的库。当在应用程序中使用这样的库时,库通常静态链接到应用程序。因此,可以将库编译成分发给用户设备的可执行包,从而使潜在的漏洞长久保持于其它UD中。当将这些库编译到可执行软件应用程序中,库的实际代码可能混淆。在这方面,应用程序开发者通常不需要识别他们使用的库。即使编程语言支持人类可读代码中的分发,应用程序也经常被混淆以节省空间和/或防止反向工程,这使得任何集成库难以检测。因此,最终用户下载和使用应用程序可能不知道具有安全性问题的库已包含在他们在其UD上使用的应用程序中。关于这些考虑和其他考虑,本公开已经写好
技术实现思路
根据各种示例性实施例,提供了计算设备,非易失性计算机可读存储介质和方法以确定软件的漏洞。下载库并存储在数据库中。对于每个库,提取特征集并将其存储在数据库的库索引表中。对于每个库,确定它是否构成安全问题并在库索引表中相应地标记。下载应用程序并存储在数据库中。对于每个应用程序,提取特征集并将其存储在数据库的应用程序索引表中。对于每个应用程序,将应用程序索引表的应用程序的特征集与库索引表中的每个库的特征集进行比较,以识别库索引表中与应用程序相关联的库。对于每个应用程序,应用程序的名称和关联库的名称都存储在数据库的漏洞参考表中。根据一个示例性实施例,通过网络从用户设备(UD)接收请求以验证目标应用程序的安全性,其中该请求包括目标应用程序的标识符。在确定目标应用程序未包括在漏洞参考表中时,从UD和/或应用程序商店请求目标应用程序。当收到目标应用程序时,在数据库中存储目标应用程序。提取目标应用程序的特征集并将其存储在数据库的应用程序索引表中。将目标应用程序的特征集与库索引表中每个库的特征集进行比较,以识别与目标应用程序关联的库。在数据库的漏洞参考表中存储目标应用程序的名称和关联库的名称。根据一个示例性实施例,在确定与目标应用程序相关联的库被标记为有安全问题时,向UD通知安全性问题。附图说明附图是说明性实施例。它们没有示出所有实施例。可以另外或替代地使用其他实施例。那些可能明显或不必要的细节可能被省略以节省空间或用于更有效的说明。一些实施例可以用附加的组件或步骤和/或没有所示的所有组件或步骤来实施。当相同的数字出现在不同的图中时,它指的是相同或相似的组件或步骤。图1示出了用于实现软件应用程序漏洞确定系统的示例架构。图2示出了与示例性实施例一致的可用于下载库的系统的框图。图3是示出与示例性实施例一致的下载库的提取阶段的框图。图4是示出与示例性实施例一致的下载应用程序阶段的框图。图5是示出与示例性实施例一致的下载的应用程序的提取阶段的框图。图6是与示例性实施例一致的描述匹配阶段的框图。图7示出了概括的示例性用户设备(UD)的各种组件的框图。图8和9示出了与示例性实施例一致的用于经由远程服务器确定应用程序和/或库的漏洞的示例性过程。图10提供了计算机硬件平台的功能框图图示。具体实施方式在以下详细描述中,通过示例阐述了许多具体细节,以便提供对相关教导的透彻理解。然而,应该显而易见的是,可以在没有这些细节的情况下实践本教导。在其他情况下,已经相对概括地描述了众所周知的方法,过程,组件和/或电路,而没有详细描述,以避免不必要地模糊本教导的各方面。本公开涉及使用软件库检测应用程序的漏洞。下载库并存储在数据库中。对于每个库,提取特征集并将其存储在数据库的库索引表中。对于每个库,确定它是否构成安全问题并在库索引表中相应地标记。应用程序被下载并存储在数据库中。对于每个应用程序,提取特征集并将其存储在数据库的应用程序索引表中。对于每个应用程序,将应用程序索引表的应用程序的特征集与库索引表中的每个库的特征集进行比较,以识别库索引表中与应用程序相关联的库。对于每个应用程序,在数据库的漏洞参考表中存储应用程序的名称和关联库的名称。现在详细参考在附图中示出并在下面讨论的示例。示例架构图1示出了用于实现软件漏洞检测系统的示例架构100。架构100包括允许各种用户设备102(1)至102(n)彼此通信的网络106,以及连接到网络106的任何其他组件,例如一个或多个软件应用商店110,库112,应用程序数据库114,漏洞发现服务器(VFS)116,以及客户关系管理(CRM)服务器118。网络106可以是但不限于局域网(“LAN”),虚拟专用网络(“VPN”),蜂窝网络,因特网或其组合。例如,网络106可以包括通信地耦合到专用网络的移动网络,专用网络有时被称为提供各种辅助服务的内联网,例如与各种应用商店,库和因特网的通信。为了便于当前的讨论,网络106将仅作为示例,而非通过限制的方式描述为可由运营商或服务提供商操作以向其订阅客户和相关移动设备用户提供广泛的移动通信服务和补充服务或特征的移动网络。网络106允许由VFS116的漏洞引擎软件103引导的软件漏洞服务的用户确定存储在UD的存储器中的任何应用程序是否易受恶意活动(例如,流量)的攻击,例如僵尸网络(Botnet),分布式拒绝服务(DDoS),恶意软件,未经许可使用库的应用程序等,在此统称为安全问题。出于后面的讨论的目的,图中出现了几个UD,以表示可以通过网络106接收各种服务的设备的一些示例。今天,UD通常采用便携式手持设备,智能电话,平板电脑,个人数字助手(PDA)和智能手表的形式,虽然它们可能以其他形式实施,包括消费者和商业电子设备。UD(例如,102(1))可以具有存储在其存储器的各种应用程序,并可以用来自不同应用程序商店的额外的应用程序补充这些应用程序,所述应用程序商店由应用程序商店110表示。应用程序商店110经由网络106向UD提供应用程序及其更新。应用程序商店110还可以,以预定的间隔,和/或当开发者引入新的应用程序到应用程序商店110,根据从VFS116的请求向应用程序/库数据库114提供应用程序的摹本。在一些情况下,应用程序向UD(例如,102(1))呈现安全问题,所述安全问题可以被识别和/或通过本文所讨论的系统消除。存储在UD(例如,102(1))中的应用程序可以使用一个或多个库来调用和/或创建,类似于体系结构100的库112。如本文所使用的,库是可能已被应用程序调用或用于开发可存储在UD中的应用程本文档来自技高网
...

【技术保护点】
1.一种计算设备,包括:处理器;耦合到处理器的网络接口,以实现通过网络的通信;耦合到处理器的用于内容和编程的存储设备;存储在存储设备中的漏洞引擎软件,其中由处理器执行的软件配置计算设备以执行以下操作:通过网络从第一一个或多个位置下载库;将库存储在数据库中;为每个库,提取库的特征集,并将库的特征集存储在数据库的库索引表中;为每个库,确定库是否构成安全问题并在库索引表中标记构成安全问题的每个库;通过网络从第二一个或多个位置下载应用程序;将应用程序存储在数据库中;为每个应用程序,提取应用程序的特征集,并将该应用程序的特征集存储在数据库的应用程序索引表中;为每个应用程序,将应用程序的特征集与库索引表中每个库的特征集进行比较,以识别与应用程序相关的库;和为每个应用程序,在数据库的漏洞参考表中存储应用程序的名称以及相关库的名称。

【技术特征摘要】
【国外来华专利技术】2016.06.23 US 15/191,3141.一种计算设备,包括:处理器;耦合到处理器的网络接口,以实现通过网络的通信;耦合到处理器的用于内容和编程的存储设备;存储在存储设备中的漏洞引擎软件,其中由处理器执行的软件配置计算设备以执行以下操作:通过网络从第一一个或多个位置下载库;将库存储在数据库中;为每个库,提取库的特征集,并将库的特征集存储在数据库的库索引表中;为每个库,确定库是否构成安全问题并在库索引表中标记构成安全问题的每个库;通过网络从第二一个或多个位置下载应用程序;将应用程序存储在数据库中;为每个应用程序,提取应用程序的特征集,并将该应用程序的特征集存储在数据库的应用程序索引表中;为每个应用程序,将应用程序的特征集与库索引表中每个库的特征集进行比较,以识别与应用程序相关的库;和为每个应用程序,在数据库的漏洞参考表中存储应用程序的名称以及相关库的名称。2.根据权利要求1所述的计算设备,其中,所述漏洞引擎软件的执行进一步配置所述计算设备以,对每个应用程序,执行操作包括:当确定与应用程序相关的一个或多个库中的至少一个被标记为有安全问题时,将安全问题的通知发送到以下中的至少一个:(i)用户设备(UD),其具有应用程序和所述一个或多个库中的至少一个已被标记为具有安全问题,以及(ii)应用程序的授权代表。3.根据权利要求2所述的计算设备,其中,所述通知被配置为禁用UD上的应用程序。4.根据权利要求1所述的计算设备,其中,漏洞引擎软件的执行进一步配置计算设备执行操作,包括:通过网络从用户设备(UD)接收请求以验证目标应用程序的安全性,其中请求包括目标应用程序的标识符;和当确定目标应用程序未包含在漏洞参考表中:从以下中的至少一个请求目标应用程序:(i)UD和(ii)应用程序商店;当接收到目标应用程序:将目标应用程序存储在数据库中;提取目标应用程序的特征集,并将目标应用程序的特征集存储在数据库的应用程序索引表中;将目标应用程序的特征集与库索引表中每个库的特征集进行比较,以识别与目标应用程序有关的库;和在数据库的漏洞参考表中存储目标应用程序的名称和关联库的名称。5.根据权利要求4所述的计算设备,其中,所述漏洞引擎软件的执行进一步配置所述计算设备以执行操作,包括:当确定与目标应用程序相关联的库被标记为有安全问题时,向UD发送安全问题的通知。6.根据权利要求4所述的计算设备,其中,从应用程序开发者的UD接收验证目标应用程序的安全性的请求,并且目标应用程序是新应用程序。7.根据权利要求4所述的计算设备,其中,所述请求包括所述目标应用程序的摹本。8.根据权利要求4所述的计算设备,其中,目标应用程序的标识符包括目标应用程序的名称及其版本。9.根据权利要求1所述的计算设备,其中,所述漏洞引擎软件的执行进一步配置所述计算设备执行以下操作,包括:当确定一个或多个库中的至少一个被标记为有安全问题时,向库的授权代表发送安全问题的通知。10.根据权利要求1所述的计算设备,其中从每个应用程序提取的特征集包括以下中的至少一个:在应用程序中使用时免于混淆的库的特性;和该应用程序的一个版本。11.根据权利要求1所述的计算设备,其中从每个库提取的特征集包括在应用程序中使用时免于混淆的独特特征。12.一种非易失性计算机可读存储介质,其有形地体现为具有计算机可读指令的计算机可读程序代码,所述计算机可读指令在被执行时使计算机设备执行确定软件漏洞的方法,该方法包括:通过网络从第一一个或多个位置下载库;将库存储在数据库中;为每个库,...

【专利技术属性】
技术研发人员:O特里普SA贝斯特P苏特
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1