识别移动环境的木马化应用程序的制作方法

文档序号:6532864阅读:215来源:国知局
识别移动环境的木马化应用程序的制作方法
【专利摘要】识别出移动环境的木马化apps。从一个或多个外部来源获得特定移动环境的多个apps。从所述apps提取代码和数字签名者并存储。对于所述所获得apps中每个给定的特定app,将所述特定app的所述代码与其他所获得apps的所述代码进行比较,以确定所述特定app是否1)包含与所述其他apps中的一者共同的至少预定阈值量的代码,以及2)包含其中不含有的附加代码。如果是这样的话,将所述特定app的所述数字签名者与所述其他app的所述数字签名者进行比较。如果还是这样的情况:所述特定app的所述数字签名者与所述其他app的所述数字签名者不同,则将所述特定app识别为被木马化。
【专利说明】识别移动环境的木马化应用程序

【技术领域】
[0001] 本发明总体涉及计算机安全,并且更具体地讲,涉及识别移动环境的木马化应用 程序。

【背景技术】
[0002] 诸如智能手机和平板电脑的移动计算设备每天得到越来越广泛的使用。安卓是用 于此类移动设备的一种基于Linux的开源操作系统,它正获得日益普及的市场份额。大量 开发者编写在安卓设备上运行的应用程序("apps")。通过谷歌公司(Google)运行的在 线安卓市场,这些apps中的许多可供购买或供免费使用。安卓apps也可从其他网上商店 和另外的第三方站点下载。由于安卓环境的开放性质,任何人都可以创建和分发安卓apps。
[0003] 由于其开放性,安卓平台易受到称为木马化(trojanization)的攻击。为了实现 该攻击,恶意方以从在线商店或其他来源下载的合法app开始。攻击者除去app的数字签 名,添加另外的(恶意的)代码到app上,用匿名数字证书为app重签名,并通过现有信道 之一将当前恶意app再分发给无防备用户。这被称为使app木马化。实际上,攻击者正利 用安卓开发和分发环境的开放性将恶意代码隐藏在现有合法app中。试图下载并运行合法 app的用户会被诱使下载木马化的版本。当木马化app在用户的安卓设备上运行时,攻击者 添加的新代码可执行恶意功能,例如窃取联系信息、记录数据输入、发送欺诈性通信,等等。
[0004] 有必要解决该问题。


【发明内容】

[0005] 木马化app管理系统识别移动环境中的木马化apps,例如木马化的安卓apps。特 定的移动环境下的大多数应用程序是从一个或多个app商店和/或其他第三方来源获得 的。从所获得的app提取代码、数字签名者和一些实施例中的日期(如,发布日期)并有效 地存储。例如,该数据可存储在代表apps的数据结构数组中,使得存在与每一个所获得的 apps相关的数组的单独元素。在不同实施例中,从每个app提取代码可采取不同形式,例如 从app的所有类中的所有方法中提取原始字节码,提取app中存在的类的名称以及每个类 的定义方法的名称,提取app的每个类中的每个方法的散列,提取描述app的可能执行路径 的流程图,等等。
[0006] 对于所获得apps中每个给定的特定app,将特定的所获得app的代码与多个其他 所获得apps的代码进行比较,以确定特定的所获得app是否1)包含与其他所获得apps中 的一者通用的至少预定阈值量的代码,以及2)包含其中不含有的另外代码。在一个实施例 中,该过程包括将特定的所获得app的代码与每一个其他所获得的apps中的代码进行比 较。在另一个实施例中,该过程经优化,使得特定的所获得app的代码仅与其他所获得apps 的子集的代码进行比较。在该情况下,该子集仅由与特定的所获得app的至少一些代码有 共同之处的那些所获得的apps组成。
[0007] 对如下情况作出响应,而将特定app的数字签名者与其他app的数字签名者进行 比较:确定1)特定的所获得app包含与所获得apps中的另一个app通用的至少预定阈值量 的代码,以及2)特定的所获得app包含在其他所获得app中不含有的另外代码。在一个实 施例中,也将特定app的日期与其他app的日期进行比较。响应于如下情况,而将特定app 识别为木马化app :确定1)特定app包含与其他app通用的至少预定阈值量的代码,2)特 定app包含其他app中不含有的另外代码,3)特定app的数字签名者与其他app的数字签 名者不同,以及(可选)4)特定app的日期晚于其他app的日期。
[0008] 作为对识别木马化app的响应,可执行另外的步骤,例如标记木马化app以供人类 分析者人工检查,对木马化app进行排队以用于自动化的恶意代码分析,将木马化app相关 的信息传输至集中式安全组件,将木马化app列入黑名单,等等。
[0009] 本
【发明内容】
和以下【具体实施方式】中所述的特征和优点并不包括全部,并且特别 地,相关领域的普通技术人员在考虑其附图、说明书和权利要求书后,许多另外的特征和优 点将显而易见。此外,应该指出的是,说明书中所用的语言主要被选择用于可读性和指导目 的,而不是被选择用来限定或限制本发明的主题,必需借助权利要求书确定此发明主题。

【专利附图】

【附图说明】
[0010]图1为根据一些实施例的示例性网络体系结构的框图,其中可实现木马化app管 理系统。
[0011] 图2为根据一些实施例的适用于实现木马化app管理系统的计算机系统的框图。
[0012] 图3为根据一些实施例的木马化app管理系统的操作的框图。
[0013] 图4为根据一些实施例的木马化app管理系统的操作的流程图。
[0014] 这些图仅出于举例说明的目的来示出各种实施例。本领域技术人员根据下列讨论 将易于认识到,在不脱离本文所述原理的情况下,可采用本文所述的结构和方法的替代实 施例。

【具体实施方式】
[0015] 图1为框图,示出了示例性网络体系结构100,其中可实现木马化app管理系统 101。所示网络体系结构100包括多个客户端103A、103B和103N,以及多个服务器105A和 105N。在图1中,木马化app管理系统101被示出为驻留在服务器105A上。应当理解这仅 是例子,并且在各种实施例中该系统101的各种功能可在服务器105、客户端103上被实例 化,或可在多个客户端103和/或服务器105之间分发。
[0016] 客户端103和服务器105可使用计算机系统210(例如图2所示和下文所述的计 算机系统)实现。客户端103和服务器105通信地耦合到网络107,例如经由以下结合图2 所述的网络接口 248或调制解调器247进行。客户端103能够使用例如网页浏览器或其他 客户端软件(未示出)访问服务器105上的应用程序和/或数据。
[0017] 虽然图1示出了三个客户端和两个服务器作为例子,实际上可部署更多(或更少) 客户端103和/或服务器105。在一个实施例中,网络107为互联网的形式。可在其他实施 例中使用其他网络107或基于网络的环境。
[0018] 图2为适用于实现木马化app管理系统101的计算机系统210的框图。客户端 103和服务器105可以此类计算机系统210的形式实现。如图所示,计算机系统210的一 个组件是总线212。总线212通信地耦合计算机系统210的其他组件,例如至少一个处理 器214 ;系统存储器217 (如,随机存取存储器(RAM)、只读存储器(ROM)、闪存);输入/输出 (I/O)控制器218 ;音频输出接口 222,其通信地耦合到外部音频设备,例如扬声器系统220 ; 显示适配器226,其通信地耦合到外部视频输出设备,例如显示屏224 ; -个或多个接口,例 如串行端口 230、通用串行总线(USB)插座230、并行端口(未示出)等等;键盘控制器233, 其通信地耦合到键盘232 ;存储接口 234,其通信地耦合到至少一个硬盘244 (或其他形式的 磁介质);软盘驱动器237,其被配置为接收软盘238 ;主机总线适配器(HBA)接口卡235A, 其被配置为与光纤通道(FC)网络290连接;HBA接口卡235B,其被配置为连接到SCSI总线 239 ;光盘驱动器240,其被配置为接收光盘242 ;鼠标246 (或其他指针设备),其例如经由 USB插座228耦合到总线212 ;调制解调器247,其例如经由串行端口 230耦合到总线212 ; 以及网络接口 248,其例如直接耦合到总线212。
[0019] 其他组件(未示出)可以类似方式连接(如,文档扫描仪、数字相机、打印机等 等)。相反地,图2中所示的所有组件不需要都存在。可以使用与图2中所示方法不同的方 法来互连这些组件。
[0020] 总线212允许处理器214与系统内存217之间的数据通信,如上所指出的,所述系 统内存既包括RAM,也包括ROM和/或闪存。RAM通常是将操作系统和应用程序加载到其中 的主存储器。除其他代码外,ROM和/或闪存还可包含控制某些基本硬件操作的基本输入 输出系统(BIOS)。应用程序可存储在本地计算机可读介质(如,硬盘244、光盘242)上并 加载到系统内存217中并且被处理器214执行。应用程序也可以从远程位置(即,位于远 程的计算机系统210)加载到系统内存217中,例如经由网络接口 248或调制解调器247进 行。在图2中,木马化app管理系统101被示出为驻留在系统内存217中。木马化app管 理系统101的工作方式将在下文结合图3更详细解释。
[0021] 存储接口 234耦合到一个或多个硬盘244 (和/或其他标准存储介质)。硬盘244 可以是计算机系统210的一部分,或者可以是物理上独立的,可以通过其他接口系统进行 访问。
[0022] 网络接口 248和/或调制解调器247可直接或间接通信地耦合到网络107,例如互 联网。此类耦合可以是有线的或无线的。
[0023] 图3示出了根据一些实施例的木马化app管理系统101的操作。如上文所述,木 马化app管理系统101的功能可驻留在客户端103、服务器105上,或者可在多个计算机系 统210之间分发,包括在基于云的计算环境内,其中木马化app管理系统101的功能作为网 络107上的服务提供。应当理解,虽然木马化app管理系统101在图3中被示出为单个实 体,但所示木马化 app管理系统101代表功能集合,其可根据需要被实例化为单个或多个模 块(木马化app管理系统101的特定多个模块的实例化在图3中示出)。应当理解,木马化 app管理系统101的模块可在任何计算机系统210的系统内存217 (如,RAM、R0M、闪存)内 被实例化(例如被实例化为目标代码或可执行映像),使得当计算机系统210的处理器214 处理模块时,计算机系统210执行相关功能。如本文所用,术语"计算机系统"、"计算机"、 "客户端"、"客户端计算机"、"服务器"、"服务器计算机"和"计算设备"意指被配置和/或被 编程为执行所述功能的一个或多个计算机。另外,实现木马化app管理系统101的功能的 程序代码可存储在计算机可读的存储介质上。任何形式的有形计算机可读的存储介质可用 于该语境,例如磁或光存储介质。如本文所用,术语"计算机可读的存储介质"并不意味着 电信号与底层物理介质分离。
[0024] 如图3所示,木马化app管理系统101通过获得给定移动设备环境可用的apps301 并用与其他apps相关的特定特征识别这些apps来检测木马化apps303,如下文详细描述。 在一个实施例中,移动设备环境是安卓环境,并且木马化app管理系统101从一个或多个 app商店和/或其他第三方来源305获得安卓apps301。应当理解,木马化app管理系统 101并不限于在安卓环境内操作,并且在其他实施例中可获得和处理其他移动设备环境的 apps301〇
[0025] 木马化app管理系统101的app获取模块313获得给定移动设备环境的多个 apps301,例如安卓apps301,其为安卓应用程序包("APK")文件的形式(用于分发和安装 安卓apps301的文件格式)。app获取模块313从一个或多个外部来源305获得apps301, 所述一个或多个外部来源例如是提供apps301下载的app商店或其他第三方网站。在一个 实施例中,当木马化app管理系统101激活时,app获取模块313从一个或多个外部来源305 获取所有可供下载的apps301。在一个实施例中,app获取模块313在用户设备(如,智能 手机、平板电脑)上运行并识别和获得新的和/或未知的apps301。基于用户设备的app获 取模块313将所获得apps301提交到中央位置的木马化app管理系统101 (在例如服务器 105上运行)。这使木马化app管理系统101能够发现从许多不同用户设备(未示出)提 交的新apps301,而不必爬行互联网。
[0026] 木马化app管理系统101的提取模块307从每个所获得app301提取要分析的代码 309。在该语境中,提取代码309可包括提取代码309相关的数据,例如方法或类的名称;计 算类和/或方法的散列;以及使用这些散列,或提取实际的可执行代码309自身。如本文所 用,代码309的分析以及所提取的代码309在不同实施例中可采取不同形式。在一个实施 例中,提取模块307提取app301所用的每个方法的完全限定名称(即,方法的完整原型,例 如 "float classa :methoda(int bar,float []ack) ")。在另一个实施例中,提取模块 307 提取app301中的类的名称。在其他实施例中,提取模块307使用标识符而非名称(例如散 列)来识别方法(或类)。在另一个实施例中,提取模块提取整块的机器/字节码并将其归 一化。将所提取的字节码归一化可涉及例如将可能在不同可执行文件中有差异的索引归一 化,同时仍然保留全部机器代码(dalvik/java字节码)语义。在又一个实施例中,提取模 块307创建app301中代码309的可能执行路径的流程图。
[0027] 提取模块307还提取每个app301的签名者311的身份。安卓apps301 (和许多其 他移动环境的apps301)由分发方(如,开发者)签名。例如,安卓系统要求所有apps301 用证书进行数字签名,该证书的私有密钥由app301的开发者持有。安卓系统不会安装或运 行未正确签名的app301。然而,用于为安卓app301签名的证书不必由认证机构签名。实际 上,通常情况是,安卓apps301用由分发方自签名的证书签名。
[0028] 在一个实施例中,提取模块307还获得发布(或首次发现、获得、下载等等)每个 app301(如,每个APK文件)的日期315。日期信息可例如从app301的标头中的时间戳获 得。在另一个实施例中,未提取或进一步处理日期315。
[0029] 如下文更详细解释,比较不同apps301的代码309和签名者311 (和一些实施例中 的日期315)相关的数据,以识别木马化apps303。为了便于该比较,木马化app管理系统 101的所提取数据存储模块317例如以数组323的形式(或另一种格式,例如数据库、表、列 表等等)存储所提取数据(代码309、签名者311和可选地日期315),其中每个条目包含特 定app301的所提取数据。在一个实施例中,所述提取数据存储模块317将提取的数据存储 在类对象的数组323中,所述类包括成员1)方法,2)签名者和3)日期(可选)。例如,在app 类被称为APKInfo的一个实施例中,来自app301的所有方法的完全限定名称的集合存储在 APKInfo.methods 中。(方法名称的集合可包括例如{void classa:methoda(int a),int classa :methodb(double b), void classb :methodc(void), void classb :methodd(char g)}。)app301的签名者311存储在APKInfo. signer中,并且发布(或发现等等)的日期 315 存储在 APKInfo. date 中。
[0030] 应当理解所提取数据的存储的特定实现涉及可变设计参数。例如,代表与app301 有关的信息的类(或其他数据结构)的格式,以及用于存储其实例的数组323(或其他数据 结构)的格式在各实施例之间可以有差别。另外,如上文所指出的,从每个app301提取的 特定数据在各实施例之间也可以有差别。例如,在一些实施例中,提取代码309而非方法名 称,例如类别名称、流程图等等。
[0031] 一旦从所获得apps301提取数据并存储,就可通过将其所提取数据与其他所获得 apps301的所提取数据进行比较(或在一些优化实施例中与其他的子集进行比较,如下文 所解释),确定所获得apps301中的特定app是否为木马化app303。更具体地讲,木马化app 管理系统101的比较模块319将从所获得apps301中的特定app提取的代码309相关的数 据(如,方法名称、散列、原始字节码等等)与每个其他所获得apps301的代码309相关的 数据进行比较。在一个实施例中,通过执行这些比较,比较模块319确定进行木马化分析的 所获得apps301中的特定app是否具有与其他中任何一者相同的代码309,以及一些另外 的代码309。例如,在所提取的代码309相关的数据为方法名称的形式的实施例中,比较模 块319确定apps301中的特定app是否具有与apps301中的另一个app相同的所有方法, 以及一个或多个另外的方法。在提取类别名称而非方法名称的实施例中,确定特定app301 是否具有与另一个app301相同的类,以及一个或多个另外的类。为使现有app301木马化 而添加的代码309不必以新的、单独的类或方法的形式,也可附加或插入到在原始的合法 app301中发现的已有方法中去。为了检测以这种方式木马化的apps301,比较模块319可 确定特定app301是否包含与另一个app301相同的类别和方法,但特定app301的一个或多 个方法中存在一些附加的代码309。该场景也是木马化的指示。由于木马化app303是通过 将恶意代码添加到现有的合法app301而创建的,具有与另一个app301相同的代码309以 及一些附加代码309的app301如果是由不同作者/签名者生成,则被认为是可疑的。
[0032] 在一些实施例中,与其他apps301进行比较的特定app301不必与另一个被标记为 可疑的apps301的所有代码309都相同,而是具有至少预定阈值的公共代码309。预定阈值 可以是给定百分比的形式,包括实质多数(如,85%、90%、95%等等)、方法或类的临界子 集、功能的临界核心(如由例如流程图等所确定)等等。被标记为可疑的app301中的附加 代码309可包括一个或多个附加的方法或类、一个或多个修改的方法或类、预定阈值的附 加或修改的功能等等。由于许多apps301通常使用可用的第三方库(如,广告库、用户界面 库、通信库等等)实现基本功能,因此,在一些实施例中在确定特定app301与另一个app301 是否具有共同的预定阈值的代码309时,此类库被排除在考虑之外。
[0033] 如果进行木马化分析的特定app301的代码309相关的数据与apps301中的另一 个app的代码309相关的数据的比较指示特定app301是可疑的,则比较模块319还比较两 个apps301的签名者311,并且在一些实施例中,还比较日期315。由于木马化app303是通 过修改合法app301、除去其签名并对其重签名而创建的,可预期木马化app303具有与其所 基于的合法app301不同的签名者311。另外,由于木马化app303是基于底层的、预先存在 的合法app301,木马化app303通常具有更晚的日期315。因此,若基于代码309比较而认为 app301可疑,则进行这些另外的比较中的一者或两者。若这指示所考虑的这两个apps301 具有不同签名者311(并且另外在一个实施例中,可疑app301具有比另一个app301更晚 的日期315),则木马化app管理系统101的木马化app识别模块321识别被分析为木马化 app303的特定app301。因此,具有与另一个app301相同的代码309 (或至少临界质量的通 用代码309)以及一些附加的代码309并具有不同的签名者311 (并且在一个实施例中还具 有更晚的发布日期315)的app301被判定为木马化app303。通过以这种方式比较每个特定 的所获得app301与其他所获得apps301,识别出木马化apps303。
[0034] 若识别出木马化app303,则可根据需要采取各种步骤作出响应。例如,被判非法 的app303可进行标记以供人类分析者人工检查,进行排队以用于自动恶意代码分析,报告 至集中式安全服务器(未示出),列入黑名单,等等。换句话讲,木马化app管理系统101可 充当过滤器,其自动识别具有表现出木马化的某些特征的apps301。被木马化app管理系统 101判定非法的apps301可随后根据需要进行处理,例如对它们进行进一步审查和分析,和 /或采取保护用户不受其影响的步骤。
[0035] 为了说明木马化app管理系统101的操作,现在更详细描述若干特定例子。应当 理解,这些例子中所述的实现细节仅是说明性的,并且可在其他实施例中作出不同的设计 选择。在一个特定实施例中,按如下方式识别木马化安卓apps303。
[0036] 从各种已知App商店网站305下载安卓apps301 (为APK文件)。类APKInstance 用于代表所下载APK文件中的一个特定APK文件,并且具有成员l)APKInstance. methods、 2) APKInstance. signer 和 3) APKInstance. date,其中方法(methods)是 APK 文件中所有方 法的名称的集合,签名者(signer)是APK文件的数字签名者311,并且日期(date)是APK 文件的发布日期315。若η为集合中APK文件的数量,则分配具有η个APKInstance对象的 数组 323APKInfo [η]。
[0037] 对于η个APK文件中的每个文件count = 1. . η,提取下列信息并存储在 APKInf〇[count]中:1)将来自ΑΡΚ文件的所有方法的完全限定名称的集合存储在 APKInfo [count] .methods 中;2)将 APK 文件的数字签名者 311 存储在 APKInfo [count], signer中;以及3)将每个APK文件的发布日期315存储在APKInfo [count] · date中。
[0038] 然后检查集合中的每个APK文件,以便通过按如下方式将其与其他APK文件比 较,来确定其是否已被木马化。若i等于正检查的APK文件并且count等于APKInfol. . . η 中所代表的η个APK文件中的每个,对于计数1. . . η,若计数不等于i,则将APKInfo [i]与 APKInfo [count]进行比较。若 APKInfo [i]· methods 包含 APKInfo [count]· methods 中的每 个完全限定的方法,并且APKInfo [i] · methods包含APKInfo [count] · methods中未包含的 至少一个附加的方法,并且APKInfo[i]· signer指示与APKInfo[count]· signer不同的数 字签名者 311,并且(可选)APKInfo [i]· date 晚于 APKInfo [count]· date,则 APKInfo [i] 被判定为APKInfo[count]的木马化版本。
[0039] 可修改上述实施例以在类别层级而非方法层级上操作。在实施例的基于类的版本 中,查看正检查的APK文件是否包含其他APK文件的每个类(而非方法),以及至少一个附 加的类。不论是检查方法还是类,这些实施例都可识别新APK文件,所述新APK文件包含来 自原始APK文件的代码309的超集(S卩,具有所有相同代码309以及一些附加的代码309), 并且由与原始APK文件不同的签名者311签名。
[0040] 上述实施例(不论在代码分析方面是基于方法还是基于类)具有复杂度ο (N2),其 中N为要分析的APK文件的数量。可以通过减少需要与给定APK文件进行比较的APK文件 集合的方式进行优化,降低时间复杂度(如,降低至〇(N))。这可以例如通过如下方式进行: 仅将APK文件与具有共同代码309 (如,方法)的其他APK文件进行比较,而非与集合中的 每个其他APK文件进行比较。
[0041] 例如,在一个优化实施例中,数组APKInfo[l. . η]按照每个元素 APKInfo[count]. methods中的方法的数量从最少方法到最多进行排序(或按照类的数量、或按照如流程图 中所指示的代码309的量等等)。创建映射(如,散列映射),其将在集合中的任何APK文 件中的每个方法映射到方法所在的每个APK文件的数组323的索引。通过使用上述预构建 的映射数据结构,表1中的伪代码所实现的算法可用于有效地识别木马化APK。应当理解, 表1中的伪代码示出了一个可能实施例的特定例子,其经优化以降低时间复杂度。
[0042] 表 1
[0043]

【权利要求】
1. 一种用于识别移动环境的木马化apps的计算机实现方法,所述方法包括如下步骤: 通过计算机从至少一个外部来源获得特定移动环境的多个apps ; 将所述所获得apps中的第一特定app的代码相关的数据和数字签名者与所述多个的 至少一个其他所获得app的代码相关的数据和数字签名者进行比较; 确定所述所获得apps中的所述第一特定app包含:1)所述所获得apps的第二特定app 中所含的至少预定阈值量的代码,2)所述所获得apps的所述第二特定app中不存在的附加 代码,以及3)与所述所获得apps的所述第二特定app不同的签名者;以及 响应于所述确定,而将所述所获得apps中的所述第一特定app识别为木马化app。
2. 根据权利要求1所述的方法,还包括: 将多个apps间共同的库排除在以下情况之外:1)将所述所获得apps中的第一特定 app的代码相关的数据与至少一个其他所获得app的代码相关的数据进行比较,以及2)确 定所述所获得apps的所述第一特定app包含:所述所获得apps的第二特定app中所含的 至少预定阈值量的代码,以及所述所获得apps的所述第二特定app中不存在的附加代码。
3. 根据权利要求1所述的方法,还包括: 对于每个特定的所获得app,从所述特定的所获得app提取代码相关的数据。
4. 根据权利要求3所述的方法,其中从所述特定的所获得app提取代码相关的数据还 包括: 提取所述特定的所获得app使用的每个方法的完全限定名称。
5. 根据权利要求3所述的方法,其中从所述特定的所获得app提取代码相关的数据还 包括: 提取所述特定的所获得app使用的每个类的完全限定名称。
6. 根据权利要求3所述的方法,其中从所述特定的所获得app提取代码相关的数据还 包括: 创建描述所述特定的所获得app的可能执行路径的流程图。
7. 根据权利要求3所述的方法,其中从所述特定的所获得app提取代码相关的数据还 包括: 从所述app的所有类别中的所有方法提取原始字节码;以及 将所述所提取原始字节码归一化。
8. 根据权利要求7所述的方法,其中从所述特定的所获得app提取代码相关的数据还 包括: 创建所述归一化的所提取原始字节码的散列。
9. 根据权利要求1所述的方法,还包括: 对于每个特定的所获得app,从所述特定的所获得app提取数字签名者的身份。
10. 根据权利要求1所述的方法,还包括: 对于每个特定的所获得app,从由如下组成的日期的组获得所述特定的所获得app相 关的日期:发布所述特定app的日期、发现所述特定app的日期、下载所述特定app的日期、 和获得所述特定app的日期、以及所述特定app包含在其标头中的日期。
11. 根据权利要求1所述的方法,还包括: 将所述所获得apps中的所述第一特定app的代码相关的数据与所述多个的所述其他 所获得apps中每一者的代码相关的数据进行比较,以确定所述所获得apps的所述第一特 定app是否1)包含与所述其他所获得apps中的一者通用的至少预定阈值量的代码,以及 2)包含所述其他所获得apps中的所述一者中不含有的附加代码。
12. 根据权利要求1所述的方法,还包括: 将所述所获得apps中的所述第一特定app的代码相关的数据与所述多个的所述其他 所获得apps的子集中的代码相关的数据进行比较,以确定所述所获得apps的所述第一特 定app是否1)包含与所述其他所获得apps中的一者共同的至少预定阈值量的代码,以及 2)包含所述其他所获得apps中的所述一者中不含有的附加代码。 其中所述多个的所述其他所获得apps的所述子集仅由具有与所述所获得apps中的所 述第一特定app通用的至少一些代码的那些所获得apps组成。
13. 根据权利要求1所述的方法,还包括: 将所述所获得apps中的所述第一特定app的代码相关的数据与所述多个的其他所获 得apps的代码相关的数据进行比较; 对如下情况作出响应,而将所述所获得apps中的所述第一特定app的所述数字签名者 与所述所获得apps中的所述第二特定app的所述数字签名者进行比较:确定1)所述所获 得apps中的所述第一特定app包含与所述所获得apps中的第二特定app共同的至少预定 阈值量的代码,以及2)所述所获得apps中的所述第一特定app包含所述所获得apps中的 所述第二特定app中不含有的附加代码。
14. 根据权利要求13所述的方法,还包括: 对如下情况作出响应,而将所述所获得apps中的所述第一特定app的所述日期与所述 所获得apps中的所述第二特定app的所述日期进行比较:确定1)所述所获得apps中的所 述第一特定app包含与所述所获得apps中的第二特定app共同的至少预定阈值量的代码, 以及2)所述所获得apps中的所述第一特定app包含所述所获得apps中的所述第二特定 app中不含有的附加代码;以及 仅响应于如下情况,而将所述所获得apps中的所述第一特定app识别为木马化app : 确定1)所述所获得apps中的所述第一特定app包含与所述所获得apps中的所述第二特 定app共同的至少预定阈值量的代码,2)所述所获得apps中的所述第一特定app包含所述 所获得apps中的所述第二特定app中不含有的附加代码,3)所述所获得apps中的所述第 一特定app的所述数字签名者与所述所获得apps中的所述第二特定app的所述数字签名 者不同,以及4)所述所获得apps中的所述第一特定app的所述日期晚于所述所获得apps 中的所述第二特定app的所述日期。
15. 根据权利要求1所述的方法,还包括: 对将所述所获得apps中的所述第一特定app识别为木马化app作出响应,执行由如下 组成的步骤的组中的至少一个另外的步骤: 标记所述木马化app以供人类分析者人工检查; 对所述木马化app进行排队以用于自动恶意代码分析; 将所述木马化app相关的信息传输至集中式安全组件;以及 将所述木马化app列入黑名单。
【文档编号】G06F21/56GK104067283SQ201380006506
【公开日】2014年9月24日 申请日期:2013年1月25日 优先权日:2012年1月25日
【发明者】C·纳彻伯格 申请人:赛门铁克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1