CN201380050539.1
2013.09.20
CN104685510A
2015.06.03
授权
有权
授权|||实质审查的生效IPC(主分类):G06F 21/56申请日:20130920|||公开
G06F21/56
国际商业机器公司
O·特立普; R·绍兹曼; R·海; D·卡尔曼
美国纽约
13/631,077 2012.09.28 US
中国国际贸易促进委员会专利商标事务所11038
吴信刚
确定第一应用程序是恶意程序。第一应用程序可能被提供以在处理系统上安装。可以通过由处理器执行的静态分析扫描第一应用程序,以确定第一应用程序的用户界面布局疑似处理系统上安装的第二应用程的用户界面布局。如果第一应用程序的用户界面布局疑似处理系统上安装的第二应用程的用户界面布局,则可以生成表明第一应用程序是恶意程序的警报。
权利要求书1. 一种用于识别第一应用程序是否是恶意程序的方法,该方法包括: 检测第一应用程序正在被提供用于在处理系统上安装; 通过由处理器执行的静态分析扫描第一应用程序,以确定第一应用程序的用户界面布 局是否疑似处理系统上安装的第二应用程序的用户界面布局; 当第一应用程序的用户界面布局疑似处理系统上安装的第二应用程序的用户界面布局 时,产生指示第一应用程序是恶意程序的警报。 2. 按照权利要求的方法,进一步包括: 响应于静态分析不能确定第一应用程序的用户界面布局是否疑似第二应用的用户界面 布局: 在第一应用程序被处理系统执行期间,执行对第一应用程序的运行时分析,运行时分 析包括确定第一应用程序的用户界面布局是否疑似第二应用的用户界面布局; 响应于运行时分析指示第一应用程序的用户界面布局疑似第二应用的用户界面布局, 产生指示第一应用程序是恶意程序的警报。 3. 按照权利要求2的方法,还包括: 响应于运行时分析指示第一应用程序的用户界面布局疑似第二应用的用户界面布局, 阻止第一应用程序存储或传送从处理系统收到的用户输入中收到的信息。 4. 按照权利要求2或3的方法,其中,所述执行对第一应用程序的运行时分析还包 括: 确定第一应用程序在运行时试图、或请求访问至少一个含有私人信息的过程间通信; 和 当第一应用程序在运行时试图、或请求访问至少一个含有私人信息的过程间通信,确 定第一应用程序是恶意程序。 5. 按照权利要求2至4的任何之一的方法,其中,所述执行对第一应用程序的运行 时分析以确定第一应用程序的用户界面布局疑似第二应用程序的用户界面布局包括: 在第一应用程序运行时,确定第一应用程序的当前用户界面布局是否疑似第二应用程 序的用户界面布局; 当第一应用程序的当前用户界面布局不疑似第二应用程序的用户界面布局时: 在第一应用程序运行时,确定第一应用程序的下一个用户界面布局是否疑似第二应用 程序的用户界面布局。 6. 按照上述任何权利要求的任何之一的方法,其中: 所述通过由处理器执行的静态分析扫描第一应用程序以确定第一应用程序的用户界面 布局是否疑似处理系统上安装的第二应用程序的用户界面布局包括: 确定第一应用程序可能的用户布局的总数; 该方法进一步包括: 响应于静态分析不能确定第一应用程序的用户界面布局是否疑似第二应用的用户界面 布局,当第一应用程序被执行时,对第一应用程序进行运行时分析,以识别第一应用程序 实现的每个用户界面布局,并确定第一应用程序实现的每个用户界面布局是否疑似第二应 用程序的用户界面布局;和 响应于运行时分析表明由运行时分析检测的第一应用程序的用户界面布局的总数等于 由静态分析确定的可能的用户界面布局的总数,并且第一应用程序的每个用户界面布局并 不疑似处理系统上安装的第二应用程序的用户界面布局,确定第一应用程序是安全的。 7. 按照前述权利要求的任何之一的方法,其中,所述通过处理器执行的静态分析扫 描第一应用程序进一步包括: 确定第一应用程序被配置得试图、或请求访问至少一个含有私人信息的过程间通信; 和 当第一应用程序被配置得试图、或请求访问至少一个含有私人信息的过程间通信时, 确定第一应用程序是恶意的。 8. 按照前述权利要求的任何之一的方法,该方法包括: 检测到第一应用程序被提供用于在处理系统上安装; 通过处理器执行的静态分析扫描第一应用程序,以确定第一应用程序是否是恶意的; 响应于静态分析不能确定第一应用程序是否是恶意的: 在第一应用程序被处理系统执行期间,执行对第一应用程序的运行时分析,以确定第 一应用程序是否是恶意的;和 响应于运行时分析指示第一应用程序是恶意的,产生指示第一应用程序是恶意程序的 警报。 9. 按照权利要求8的方法,其中,所述执行对第一应用程序的运行时分析还包括: 确定第一应用程序在运行时试图、或请求访问至少一个含有私人信息的过程间通信; 和 当第一应用程序在运行时试图、或请求访问至少一个含有私人信息的过程间通信时, 确定第一应用程序是恶意的。 当第一应用程序在运行时尝试,或请求,访问至少一个过程间通信,包含私人信息, 确定第一应用程序是恶意的。 10. 按照权利要求8的方法,其中,所述执行对第一应用程序的运行时分析还包括: 在第一应用程序运行时,确定第一应用程序的当前用户界面布局是否疑似第二应用程 序的用户界面布局;和 当第一应用程序的当前用户界面的布局疑似第二应用程序的用户界面布局时,确定第 一应用程序是恶意的。 11. 用于识别第一应用程序是否是恶意程序的处理系统,包含: 处理器,被配置用于启动包含以下的可执行的操作: 检测第一应用程序正在被提供用于在处理系统上安装; 通过由处理器执行的静态分析扫描第一应用程序,以确定第一应用程序的用户界面布 局是否疑似处理系统上安装的第二应用程序的用户界面布局; 当第一应用程序的用户界面布局疑似处理系统上安装的第二应用程序的用户界面布局 时,产生指示第一应用程序是恶意程序的警报。 12. 按照权利要求11的处理系统,其中,处理器进一步被配置用于启动包含以下的 可执行的操作: 响应于静态分析不能确定第一应用程序的用户界面布局是否疑似第二应用的用户界面 布局: 在第一应用程序被处理系统执行期间,执行对第一应用程序的运行时分析,运行时分 析包括确定第一应用程序的用户界面布局是否疑似第二应用的用户界面布局; 响应于运行时分析指示第一应用程序的用户界面布局疑似第二应用的用户界面布局, 产生指示第一应用程序是恶意程序的警报。 13. 按照权利要求12的处理系统,其中,处理器进一步被配置用于启动包含以下的 可执行的操作: 响应于运行时分析指示第一应用程序的用户界面布局疑似第二应用的用户界面布局, 阻止第一应用程序存储或传送从处理系统收到的用户输入中收到的信息。 14. 按照权利要求12或13的处理系统,其中,所述执行对第一应用程序的运行时分 析还包括: 确定第一应用程序在运行时试图、或请求访问至少一个含有私人信息的过程间通信; 和 当第一应用程序在运行时试图、或请求访问至少一个含有私人信息的过程间通信,确 定第一应用程序是恶意程序。 15. 按照权利要求12至14的任何之一的处理系统,其中,所述执行对第一应用程序 的运行时分析以确定第一应用程序的用户界面布局疑似第二应用程序的用户界面布局包 括: 在第一应用程序运行时,确定第一应用程序的当前用户界面布局是否疑似第二应用程 序的用户界面布局; 当第一应用程序的当前用户界面布局不疑似第二应用程序的用户界面布局时: 在第一应用程序运行时,确定第一应用程序的下一个用户界面布局是否疑似第二应用 程序的用户界面布局。 16. 按照权利要求11至15的任何之一的处理系统,其中: 所述通过由处理器执行的静态分析扫描第一应用程序以确定第一应用程序的用户界面 布局是否疑似处理系统上安装的第二应用程序的用户界面布局包括: 确定第一应用程序可能的用户布局的总数; 处理器进一步被配置用于启动包含以下的可执行的操作: 响应于静态分析不能确定第一应用程序的用户界面布局是否疑似第二应用的用户界面 布局,当第一应用程序被执行时,对第一应用程序进行运行时分析,以识别第一应用程序 实现的每个用户界面布局,并确定第一应用程序实现的每个用户界面布局是否疑似第二应 用程序的用户界面布局;和 响应于运行时分析表明由运行时分析检测的第一应用程序的用户界面布局的总数等于 由静态分析确定的可能的用户界面布局的总数,并且第一应用程序的每个用户界面布局并 不疑似处理系统上安装的第二应用程序的用户界面布局,确定第一应用程序是安全的。 17. 按照权利要求11至16的任何之一的方法,其中,所述通过处理器执行的静态分 析扫描第一应用程序进一步包括: 确定第一应用程序被配置得试图、或请求访问至少一个含有私人信息的过程间通信; 和 当第一应用程序被配置得试图、或请求访问至少一个含有私人信息的过程间通信时, 确定第一应用程序是恶意的。 18. 用于识别第一应用程序是否是恶意程序的计算机程序产品,包含: 处理电路可读的、且存储由处理电路执行的、用于实施按照权利要求1至10的任何之 一的方法的指令的计算机可读存储介质。 19. 计算机可读存储介质上储存的、可加载到数字计算的内存中的计算机程序,包含 软件代码部分,用于当所述计算机程序在计算机上运行时,执行按照权利要求1至10的任 何之一的方法。
说明书识别应用程序是否是恶意程序 技术领域 本发明涉及识别应用程序是否属于恶意程序。 背景技术 网络钓鱼攻击通常由伪装成电子通信中的可信实体的恶意方实施。启动网络钓鱼攻击 一个典型方式,是在用户的处理系统中安装恶意应用程序。恶意应用程序,可以通过即时 消息、电子邮件传送到处理系统,或通过用户访问的恶意网站或受感染的网站传送到处理 系统。例如,某通信可能被发送给用户,这种通信可能声称是来自流行的社交网站、拍卖 网站、金融机构、在线支付处理器、信息技术管理员,等等。这样的通信会提供一个指向 恶意的统一资源定位器(URL)的超链接,向用户指引该URL,用户则可能相信选择该URL 是安全的。 在被请求加载URL时,Web浏览器可能允许让恶意应用程序安装在处理URL访问请求 的web浏览器外部的用户的处理系统(例如移动设备)上。这可以通过触发一个该URL所 标识的隐式意图(implicit Intent)而完成。这就使恶意应用程序能对用与浏览器的图形 界面(GUI)基本相同的图形界面发出的URL请求作出响应。真正的浏览器和恶意应用程 序之间的过渡平滑,无辜的用户因此很可能察觉不到这种过渡。例如,恶意程序可以伪装 成用户的银行网站。用户于是可能向恶意应用程序输入帐户的详细资料,诸如用户名和密 码,恶意应用程序可以保留这些信息。然后,恶意用户就可以用这些的详细信息来访问用 户的帐户。 因此,现有技术需要解决上述问题。 发明内容 说明书中公开的一个或多个实施例涉及对恶意应用程序的识别。 一方面,本发明提供一种用于识别第一应用程序是否是恶意程序的方法,该方法包 括:检测第一应用程序正在被提供用于在处理系统上安装;通过由处理器执行的静态分析 扫描第一应用程序,以确定第一应用程序的用户界面布局是否疑似处理系统上安装的第二 应用程序的用户界面布局;当第一应用程序的用户界面布局疑似处理系统上安装的第二应 用程序的用户界面布局时,产生指示第一应用程序是恶意程序的警报。 另一方面,本发明提供一种用于识别第一应用程序是否是恶意程序的系统,包含: 处理器,被配置用于启动包含以下的可执行的操作:检测第一应用程序正在被提供用于在 处理系统上安装;通过由处理器执行的静态分析扫描第一应用程序,以确定第一应用程序 的用户界面布局是否疑似处理系统上安装的第二应用程序的用户界面布局;当第一应用程 序的用户界面布局疑似处理系统上安装的第二应用程序的用户界面布局时,产生指示第一 应用程序是恶意程序的警报。 另一方面,本发明提供一种用于识别第一应用程序是否是恶意程序的计算机程序产 品,包含:处理电路可读的、且存储由处理电路执行的、用于实施本发明方法步骤的指令 的计算机可读存储介质。 另一方面,本发明提供一种计算机可读存储介质上储存的、可加载到数字计算的内存 中的计算机程序,包含软件代码部分,用于当所述计算机程序在计算机上运行时,执行本 发明方法的步骤 一个实施例可以包括一种识别第一应用程序是否是恶意程序的方法。该方法可以包括 检测第一应用程序正在被提供用于在处理系统上安装。该方法也可以包括通过由处理器执 行的静态分析扫描第一应用程序,以确定第一应用程序的用户界面布局是否疑似处理系统 上安装的第二应用程序的用户界面布局。该方法还可以包括当第一应用程序的用户界面布 局疑似处理系统上安装的第二应用程序的用户界面布局时,产生指示第一应用程序是恶意 程序的警报。 另一个实施例可以包括一种识别第一应用程序是否是恶意程序的方法。该方法可以包 括检测第一应用程序正在被提供用于在处理系统上安装。该方法也可以包括通过由处理器 执行的静态分析扫描第一应用程序,以确定第一应用程序的用户界面布局是否疑似处理系 统上安装的第二应用程序的用户界面布局。该方法还可以包括响应于静态分析不能确定第 一应用程序的用户界面布局是否疑似第二应用的用户界面布局,在第一应用程序被处理系 统执行期间,执行对第一应用程序的运行时分析,运行时分析包括确定第一应用程序的用 户界面布局是否疑似第二应用的用户界面布局,并且响应于运行时分析指示第一应用程序 的用户界面布局疑似第二应用的用户界面布局,产生指示第一应用程序是恶意程序的警 报。 另一个实施例可以包括一种包含被配置用于启动可执行的操作的处理器的处理系统。 可执行的操作可以包括检测第一应用程序正在被提供用于在处理系统上安装。可执行的操 作也可以包括通过由处理器执行的静态分析扫描第一应用程序,以确定第一应用程序的用 户界面布局是否疑似处理系统上安装的第二应用程序的用户界面布局。可执行的操作还可 以包括当第一应用程序的用户界面布局疑似处理系统上安装的第二应用程序的用户界面布 局时,产生指示第一应用程序是恶意程序的警报。 另一个实施例可包括用于识别第一应用程序是否是恶意程序的计算机程序产品。该计 算机程序产品包含存储了程序代码的计算机可读存储介质,程序代码被执行时,配置一个 处理器来执行可执行的操作。可执行的操作可以包括检测第一应用程序正在被提供用于在 处理系统上安装。可执行的操作也可以包括通过由处理器执行的静态分析扫描第一应用程 序,以确定第一应用程序的用户界面布局是否疑似处理系统上安装的第二应用程序的用户 界面布局。可执行的操作还可以包括当第一应用程序的用户界面布局疑似处理系统上安装 的第二应用程序的用户界面布局时,产生指示第一应用程序是恶意程序的警报 附图说明 现在将仅仅通过举例,参照下面的附图中例示的优选实施例,说明本发明。附图中: 图1是表示按照本发明一个优选实施例、在其中验证一个应用程序的处理系统的框 图; 图2是表示按照本发明一个优选实施例、验证一个应用程序的处理系统的框图; 图3是表示按照本发明一个优选实施例、识别一个第一应用是否是恶意应用程序的方 法的一个流程图; 图4是表示按照本发明一个优选实施例、识别一个第一应用程序是否是恶意应用程序 的方法的另一个流程图。 具体实施方式 所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程 序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、 完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施 方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明 的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计 算机可读介质上具有—例如储存—计算机可读的程序代码。 可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读 信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于—— 电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算 机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、 便携式计算机盘、硬盘驱动器(HDD)、固态驱动器(SSD)、随机存取存储器(RAM)、只读 存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储 器(CD-ROM)、数字多功能光盘(DVD)、光存储器件、磁存储器件、或者上述的任意合适 的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程 序可以被指令执行系统、装置或者器件使用或者与其结合使用。 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中 承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限 于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算 机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输 用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于— —无线、有线、光缆、RF等等,或者上述的任意合适的组合。 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序 代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++ 等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代 码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包 执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上 执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网 (LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特 网服务提供商来通过因特网连接)。Java和所有基于Java的商标和标志都是Oracle公 司和/或其子公司的商标或注册商标。 下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/ 或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方 框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、 专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机 程序指令在通过计算机或其它可编程数据处理装置的处理器、或其它设备执行时,产生了 实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。 也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它 可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指 令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制 造品(article of manufacture)。 计算机程序指令也可以被加载到计算机、其它可编程数据处理装置或其他设备,以使 一系列的操作步骤在计算机、其他可编程装置或其他设备上执行,以产生计算机实现的过 程,使得在计算机或其他可编程装置执行的指令提供实现在流程图和/或框图的方框中规 定的功能/行为的指令。 为了说明的简明和清晰,附图中所示的元素不一定是按比例绘制的。例如,为了清 晰,一些元素的尺寸可能相对于其他元素被夸大。此外,在认为适当的地方,附图中重复 地使用附图标记,以指示对应的、类似的之类的特征。 本说明书中描述的方案,涉及验证一个应用程序,以确定该应用程序是否是恶意应用 程序。当一个应用程序被安装到一个处理系统(例如,移动设备)上时,可以对应用程序 进行静态分析,以确定应用程序是否是一个被配置为恶意钓取用户的私密信息—如用户标 识符(ID)、密码等—的钓鱼应用程序(phishing application)。钓鱼应用程序可能试图 通过注册访问一个或多个敏感的(例如含有用户的私密信息)过程间通信(inter- process communications),例如涉及统一资源标识符(URI)(例如统一资源定位器 (URL))的过程间通信,而钓取用户的私密信息。钓鱼应用程序也可能试图模拟Web浏 览器,以便获取私人信息,向恶意实体(malicious entity)提供这种信息。 如果静态分析确定该应用程序是一个钓鱼的应用,静态分析能生成一个警报,以及/ 或者禁用(disable)该应用程序的操作。如果静态分析不能确定该应用程序是否是钓鱼应 用程序,可以提供进一步的运行时分析(runtime analysis)以进行这种确定。如果运行时 分析确定该应用程序是一个钓鱼应用程序,运行时分析能生成一个警报,以及/或者禁用 该应用程序的操作。 图1是表示按照本说明书中公开的一个实施例、在其中验证一个第一应用程序105的 处理系统100的框图。第一应用程序105可以是从从应用程序源115提供给处理系统110 的,用于在处理系统110上安装。在一种方案(arrangement)中,应用程序源115可以是 提供给处理系统110的一种—例如提供给在处理系统110上执行的一个电子通信客户端的 —电子通信(electronic communication)(例如,即时消息或电子邮件(e-mail))。应 用程序源115可以向处理系统110提供第一应用程序105。例如,在打开电子通信时,电 子通信可能试图启动在处理系统110上安装第一应用程序105,或者向用户呈现一个控件 (control),通过该控件,应用程序源115诱导用户选择启动在处理系统110上安装第一 应用程序105。当用户选择该控件时,能启动在处理系统110上安装第一应用程序105的 企图。在另一种安排中,应用程序源115可能是一个恶意的或受感染的网站,以例如诱导 用户进行选择的超链接的形式,显示在电子通信中,如果用户访问该网站或者从该网站下 载内容,就启动第一应用程序105的安装。另外,恶意用户试图用第一应用程序感染处理 系统110的方式可能有许多,在这个方面,本发明各方案不受局限。 当第一应用程序105被提供给处理系统110用于安装时,无论在第一应用程序105的 安装前、安装过程中或是安装后,可以由处理系统110执行一个安全应用程序(security application)120来启动一个静态分析模块125去进行对第一应用程序105的静态分析, 以便确定第一应用是否是恶意的。例如,安全应用程序120能够确定第一应用程序105是 否包含恶意代码,诸如恶意软件root kit之类,并且能阻止第一应用程序105的安装, 或者阻止根盒的安装,或者—在第一应用程序105和/或root kit已经安装在处理系统 110上的情况下—删除安装的第一应用程序105和/或root kit。第一应用程序105可能 不包含静态分析模块125可识别的root kit或诸如此类的恶意代码,不过仍然可能是恶 意程序。 静态分析模块125可以扫描第一应用程序105,以确定第一应用程序105是否包含一 个用户界面(UI)。如果是这样的话,静态分析模块125可以扫描第一应用程序的UI的 布局(layout),以确定第一应用程序105是否疑似安装在处理系统上的一个第二应用程序 130——如Web浏览器——的UI的布局。例如,静态分析模块125可以扫描第一应用程序 105的声明(declaration)、声明文件(manifest file)或可扩展标记语言(XML)文档, 以确定第一应用程序105的UI布局配置,并扫描第二应用程序130的声明、声明文件或 可扩展标记语言文档,以确定第二应用程序130的UI布局配置,然后比较这些扫描的结 果。如果第一应用程序105的UI布局疑似第二应用程序130的UI布局,这可能表明,第 一应用程序105为了钓取用户的私密数据而在试图仿效第二应用程序130。 如果静态分析模块125确定第一应用程序的UI布局疑似第二应用程序130界面布局 (例如,这种特性之间非常相似),安全应用程序120可以将第一应用程序105登记为可 能是不安全的程序。此外,安全应用程序120可以阻止第一应用程序105和/或生成警 报,表示第一应用程序105是一个恶意应用程序(或可能是不安全的)。警报可以例如通 过弹出信息或文字气球的形式被呈现给用户,以及/或者被传送到处理系统110。 在某些情况下,静态分析模块125可能无法完全验证第一应用程序105。换句话说, 静态分析可能不能确定第一应用程序105的UI布局就是疑似第二应用程序130的UI布 局。这可能是由于以下情形,即,第一应用程序105的有些UI组件或全部UI组件,是根 据只能在运行时获得的和/或存储在后台数据存储器(例如数据库)中的数据值而动态建 立的。第一应用程序105可能有运行时UI布局(runtime UI layout),其布局配置在第 一应用程序105被安装时是未知的。在这种情况下,静态分析模块125可以提供额外的输 出数据。例如,静态分析模块125可以确定第一应用程序105的可能的UI运行时布局的 数目——如果这样的信息是可获得的,并作为额外的输出数据加以指明。如果第一应用程 序105可能有额外的UI运行时布局,但是这种额外的UI运行时布局的总数是未知的,则 附加的输出数据可以指明这一点。 静态分析模块125也可以根据对第一应用程序105的扫描,确定由第一应用程序105 监控或订阅的(subscribed to)过程间通信。静态分析模块125可以提供进一步的、表示 这样的过程间通信的输出数据。 静态分析模块125提供的输出数据,可以被安全应用程序120检索并暂时或永久地存 储到机器可读的存储器。这样的输出数据可以提供给安全应用程序120的运行时分析模块 135或处理系统110的其他部件。 如果静态分析模块125不能完全验证第一应用程序105,安全应用程序120可以允许 处理系统110安装和/或执行第一应用程序105。在这方面,第一应用程序105可以在安 装到处理系统110之前或之后,被静态分析模块12扫描后。事实上,一方面,如果静态 分析模块125确定第一应用程序105是恶意的,安全应用程序120可以阻止第一应用程序 被安装到处理系统110,不过,本发明的各方案在这方面没有限制。 尽管如此,安全应用程序120能在第一应用程序105执行时对第一应用程序105进行 运行时分析。例如,安全应用程序120可以启动运行时分析模块135来确定第一应用程序 105在执行过程中所提供的UI布局是否疑似第二应用程序130的UI布局。如果运行时分 析模块135指出第一应用程序105的用户界面的布局疑似第二应用程序130的用户界面的 布局,则如前文所述的那样,安全应用程序120可以生成一个警报,指示第一应用程序 105是恶意的。 此外,在第一应用程序105被安装到处理系统110以及被处理系统110执行时,由静 态分析模块125提供的输出数据可以被运行分析模块135处理,以进行对第一应用程序 105的运行时扫描。例如,在运行时,可以由运行分析模块135监视第二应用程序130和 第一应用程序105之间的过程间通信。这样的过程间通信可以根据由静态分析模块125进 行的对第一应用程序150的静态分析的相关输出数据而确定。 当第一应用程序105提供一个具有静态分析时静态分析模块125不知道的配置的运行 时UI布局、并且第一应用程序105试图或者请求回应第二应用程序130处理一个URI的 邀请时,可以在第二应用程序130内装入该目标URI,并记录其UI布局属性(layout properties)。此外,还可以加载第一应用程序105,因此可以扫描它的UI布局属性。基 于第一应用程序105和第二应用程序130的的UI布局属性,能够确定第一应用程序105 是否是恶意的。例如,如果第一应用程序105的当前UI布局疑似第二应用程序130的UI 布局(例如,第二应用程序130的当前UI布局属性与第一应用程序105的UI布局属性之 间的非常相似),则可以确定第一应用程序105可能是不安全的。因此,可以由安全应用 程序120生成一个警报,表示第一应用程序105是恶意的。此外,安全应用程序120还可 以阻止第一应用程序105存储或传送从处理系统110收到的用户输入中收到的信息。然 而,如果第一应用程序105的当前UI布局不疑似第二应用程序130的UI布局,处理系统 可以将第一应用程序105的当前UI布局登记为从“钓鱼”的角度来看是无害的,虽然不 必完全证明该应用程序就是安全的。 这里,关于第一应用程序105所支持的其它UI布局的额外信息(如果能得到的话) 是相关的。如果第一应用程序105提供已知数目的在运行时可能的UI布局,则在运行 时,第一应用程序105可以扫描第一应用程序105的UI布局,以便在这种UI布局被第一 应用程序105实施时,实时地比较这种UI布局与第二应用程序130的UI布局。例如,运 行时分析模块135可以确定第一应用程序105提供的当前UI布局不疑似第二应用程序 130提供的UI布局。然而,第一应用程序105可以例如响应于检测到一个过程间通信而 提供下一个UI布局,响应于这样的过程间通信,运行时分析模块135可以比较第一应用 程序105的该下一个UI布局与第二应用程序130提供的UI布局。如果这些UI布局之间 是疑似的,安全应用程序120可以产生一个警报。 处理系统可以在将第一应用程序105和第二应用程序130的UI布局进行比较时,跟 踪与第二应用程序130的UI布局相比、第一应用程序105的不同UI布局的总数。如果没 有第一应用程序105的UI布局疑似(例如非常类似于)第二应用程序130的UI布局,在 被扫描的第一应用程序105的UI布局的个数等于第一应用程序105的UI布局的已知总数 105时,可以认定第一应用程序105是安全的。否则,当前会话(session)可以恢复正 常,但是一般来说不认定第一应用程序105是安全的,这是因为,可能还有第一应用程序 105的其它UI布局尚未与Web浏览器比较。 此外,无论是静态分析模块125和/或运行时分析模块135都可以被配置得能确定第 一应用程序105是否被配置得试图或请求访问至少一个包含私人信息的过程间通信。当第 一应用程序105被配置得试图或请求访问至少一个包含私人信息的过程间通信,安全应用 程序120可以确定第一应用程序105是恶意的,并产生相应的警报。 第一应用程序105的UI布局与第二应用程序130的UI布局的比较,可以以任何适当 的方式进行,包括使用自定义(custom)代码/工具和/或使用现有技术中已知的工具。例 如,在处理系统110使用AndroidTM操作系统的情况下,AndroidTM的Robotium测试框架, 可以被用来比较第一和第二应用程序105、130的的UI布局属性。Android是谷歌公司的 商标。 过程间通信可包括—例如在androidTM操作系统中—意图对象(intent objects)的传 递。这里所使用的术语“意图对象”指这样一种被动(passive)数据结构,其包含 (holding)一个要执行的操作的抽象描述,或一个已经发生并正在被宣布的事件的描述。 意图对象提供一种在某操作系统环境中执行的不同应用程序之间通信的手段。一方面,意 图对象可以是隐式的(implicit)意图对象。隐式的意图对象是不指定某个应当作用于该意 图对象的目标组件的名字的意图对象。另一方面,意图对象可以是显式的(explicit)意图 对象。显式的意图对象是具体指定某个应当作用于该意图对象的目标组件的名字的意图对 象。在操作系统中,过程间通信可以包括通过应用程序调用其他应用程序的URI协议 而交换的消息。这样的消息可以包含消息内容。iOS是思科公司在美国和其他国家的商标 或注册商标。 本文中所使用的术语“疑似”,指的是至少两个完全相同的UI布局之间的相似程 度,或者用户只看一眼尚不能识别这些UI布局的差异性的相似程度。例如,当第一应用 程序105的UI布局疑似第二应用程序130界面布局时,用户可能不能意识到第一应用程 序的UI布局105并不直接对应于(directly correspond to)第二应用程序130的UI布局 —即使用户以前可能查看过第二应用程序130UI布局。换句话说,第一应用程序105的 UI布局可能混淆地类似于第二应用程序130的UI布局。 本文中所使用的术语“实时”(real time),指的是用户或系统感觉对某过程或要 作出的决定的充分直接的处理响应(processing responsiveness)程度,或使处理器能够 跟上外部过程的处理响应程度。 图2是根据说明书中公开的一个实施例、图1的处理系统110的示例性实现。处理系 统110被配置用于识别恶意应用程序。处理系统110可以是、计算机、移动计算机、笔记 本电脑、平板电脑、智能手机、个人数字助理、游戏设备、器具,或被配置得能执行应用 程序任何其他处理系统。 处理系统110可以包括至少一个处理器205,通过系统总线215或其它合适的电路耦 合到存储器元件210。因此,处理系统110可在存储器元件210内存储程序代码。处理器 205可以执行通过系统总线215从存储器单元210获取的程序代码。应该理解,处理系统 110可以以包括处理器和存储器、能够执行本说明书中描述的功能和/或操作的任何形式 的系统实现。 存储器元件210可以包括一个或多个物理存储设备,例如本地存储器220和一个或多 个大容量存储设备225。本地存储器220是程序代码的实际执行过程中普遍使用的RAM或 其他非持久性存储装置。大容量储存装置225可以实现为硬盘驱动器(HDD)、固态硬盘 (SSD)或其他持久性数据存储装置。处理系统110还可以包括一个或多个高速缓存存储 器(未予示出),其提供至少一些程序代码的临时存储,以减少在执行过程中必须从检索 存储装置225检索程序代码的次数。 输入/输出(I/O)设备,诸如有键盘230、显示器和/或触摸屏235和/或指向装置 240。I/O设备可以直接地或通过中间的I/O控制器耦合到处理系统110。例如,显示器/ 触摸屏235可以通过图形处理单元耦合到处理系统110(GPU),后者可以是处理器205 的一个组件或是一个独立的装置。一个或多个网络适配器245也可以通过中间的私有或公 共网络耦合到到其他系统、计算机系统、远程打印机和/或远程存储设备。调制解调器、 电缆调制解调器、以太网卡都是可用于处理系统110的不同类型的网络适配器245的例 子。 如图2所示,存储元件210可以存储处理系统110的组件,即安全应用程序120、第 二应用程序130和第一应用程序105。安全应用程序120和第二应用程序130是以可执行 程序代码的形式实现的,可以由处理系统110(例如通过处理器205)执行,因此,可以 认为是处理系统110的一部分。第一应用程序105可以由处理系统110进行处理,但是, 在安装之前,不必认为是处理系统110的一部分。例如,第一应用程序105可以暂时存储 在存储器元件210中,同时由处理器205进行处理,但是不需要安装在处理系统110的操 作系统中—尽管如上所述,这是可以的。 安全应用程序120可以由处理系统110(例如通过处理器205)执行,以实现本文描 述的由安全应用程序120执行的操作和功能,包括静态分析模块125和运行时分析模块 135。此外,第二应用程序130可以是一个Web浏览器,虽然这并非必要。 图3是按照本说明书内公开的另一个实施例的、确定第一应用程序是否是恶意程序的 方法300的流程图。在步骤302,检测到被提供用于在处理系统上安装的第一应用程序。 第一应用程序可以从用户访问的网站(web site)接收,在电子通信中接收,或从电子通信 中—通过URL(例如URL)—指示的网站接收。 在步骤304,通过处理器执行的静态分析,可以扫描第一应用程序,以确定第一应用 程序的UI布局是否疑似安装在处理系统上的第二应用程序的UI布局。在第一应用程序被 安装到处理系统之前、之时或之后,或在第一应用程序没有被安装到处理系统的情况下, 均可以进行静态分析。 在判定框306,可以确定第一应用程序的UI布局是否疑似安装在处理系统上的第二应 用程序的UI布局。如果是,则在步骤308可以生成一个警告,指出第一应用程序是恶意 程序。 如果第一应用程序的UI布局不疑似第二应用程序的UI布局,则在步骤310,可以在 处理系统执行第一应用程序期间,对第一应用程序进行运行时分析。运行时分析可以包括 确定第一应用程序的UI布局是否疑似第二应用程序的UI布局。在步骤312,响应于运行 时分析指示第一应用程序的UI布局疑似第二应用程序的UI布局,可以生成一个警告,指 出第一应用程序是恶意程序。在步骤314,可以阻止第一应用程序存储或传送从处理系统 收到的用户输入中收到的信息。 在一个方案中,执行运行时分析可以包括确定是否第一应用程序在运行时试图、或请 求访问至少一个含有私人信息的过程间通信。如果第一应用程序在运行时试图、或请求访 问至少一个含有私人信息的过程间通信,则可以确定,第一应用程序是恶意的。 执行运行时分析还可以包括,确定在第一应用程序运行时,第一应用程序当前的UI 布局是否疑似第二应用程序的UI布局。如果在第一应用程序运行时,第一应用程序当前 的UI布局不疑似第二应用程序的UI布局,则可以确定第一应用程序的下一个UI布局是 否疑似第二应用程序的UI布局。 例如,通过由处理器执行的静态分析扫描第一应用程序、以确定第一应用程序的UI 布局是否疑似安装在处理系统上的第二应用程序的UI布局可以包括:确定第一应用程序 的可能的UI布局的总数。在这样的方案中,方法300可以进一步包括,响应于静态分析 不能确定第一应用程序的UI布局是否疑似第二应用程序的UI布局,在第一应用程序被执 行时,执行第一应用程序运行时分析,以识别由第一应用程序实现的每个UI布局,并确 定是否由第一应用程序实现的每个UI布局是否疑似第二应用程序的UI布局。方法300还 可包括,响应于运行时分析表明由运行时分析检测到的第一应用程序的UI布局的总数等 于由静态分析确定的可能的UI布局的总数,而第一应用程序的每个UI布局都不疑似安装 在处理系统上的第二应用程序的UI布局,则确定第一应用程序是安全的 图4是表示按照说明书中公开的另一个实施例的确定第一应用程序是否属于恶意程序 的方法400的另一个流程图。在步骤402,检测到被提供用于在处理系统上安装的第一应 用程序。第一应用程序可以从用户访问的网站接收,在电子通信中接收,或从电子通信中 —通过URL—指示的网站接收。 在步骤404中,通过处理器执行的静态分析,可以扫描第一应用程序,以确定第一应 用程序是否是恶意程序。在决策框406,可以判断静态分析是否不能确定第一应用程序是 否是恶意的。如果是,在步骤408,在处理系统执行第一应用程序期间,可以对第一应用 程序进行运行时分析,以确定第一应用程序是否是恶意程序。在步骤410,响应于运行时 分析指示第一应用程序是恶意程序,可以生成一个指出第一应用程序是恶意程序的警报。 回到决策框406,如果该判断确定静态分析并非不能确定第一应用程序是否是恶意的,则 在步骤412,可以根据静态分析指出第一应用程序是个恶意程序。 在一个方案中,执行运行时分析可以包括确定是否第一应用程序在运行时试图、或请 求访问至少一个含有私人信息的过程间通信。如果第一应用程序在运行时试图、或请求访 问至少一个含有私人信息的过程间通信,则可以确定,第一应用程序是恶意的。在另一种 方案中,执行运行时分析可以包括确定,在第一应用程序运行时,第一应用程序当前的 UI布局是否疑似第二应用程序的UI布局。如果第一应用程序当前的UI布局疑似第二应 用程序的UI布局,则能确定,第一应用程序是恶意的。 说明书中用同样的附图标记来指示同样的对象。附图中的流程图和框图显示了根据本 发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。 在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述 模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也 应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注 的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反 的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、 以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件 的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。 本文中所使用的术语仅用于描述具体实施例,而非限定本发明。本文中所用的 “一”、“一个”、“该”、“所述”等单数形式的表述,旨在包括复数形式,上下文 中另有明确指示的除外。还要明白,说明书中所用的“包括”、“包含”、“含有”等词 语,说明的是存在指明的特征、整数、步骤、操作、元素和/或组件,但不排除存在一个 或多个其它的特征、整数、步骤、操作、元素、组件和/或其组合。 说明书中所说的“一个实施例”、“实施例”或类似的语言,意味着与该实施例相关 地描述的某个特定特征、结构,或特点,包含于说明书中公开的至少一个实施例中。因 此,说明书中出现的短语“一个实施例”、“实施例”或类似的语言,一般都指相同的实 施例,但也不一定。 说明书中所用的用语“多”、“多个”,被定义为两个或两个以上。用语“另一个” 则被定义为至少一个第二个或更多的。术语“耦合”被定义为直接地、没有任何居间元素 地连接,或者间接地、具有一个或多个居间元素地连接,另有说明的除外。两个元素也可 以是机械地偶合,电气地偶合,或者通过通信信道、通路、网络或系统可通信地耦合。用 语“和/或”指的是并包括一个或多个相关列举项目的任何一个或所有可能的组合。还要 明白,尽管序数词“第一”、“第二”等可用于描述各种元素,这些元素不应受到这些序 数词的限定,因为这些序数词只用于区分一个元素与另一个元素,除非上下文中另有规定 或上下文另有相反指示。 用语“如果”可以解释为“当…时”或“响应于确定…”或“响应于检测到…”,具 体可依上下文而定。同样,用于“如果确定”或者“如果检测到[规定的条件或事件]”可 以解释为“当确定…时”或“响应于确定…”或“当在检测到[规定的条件或事件]时”或 “响应于检测到[规定的条件或事件]”,具体可依上下文而定。 附后的权利要求的所有手段或步骤加上功能要素的相应的结构、材料、操作以及等价 物,旨在包括与具体限定的其它权利要求中的要素组合地执行功能的任何结构、材料或操 作。对说明书中公开的实施例的描述,是示例性的和说明性的,而不是穷尽性的,也不是 对发明的形式的限定。在不背离本发明各实施例的范围和精神的情况下,许多修改和变通 对于所属技术领域的技术人员来说都是显而易见的。被选用并描述的实施例旨在以最好的 方式解释本发明的原理和实际应用,使本领域其他普通技术人员能够理解,经过各种修 改,各实施例的发明方案适合于预期的特定用途。
《识别应用程序是否是恶意程序.pdf》由会员分享,可在线阅读,更多相关《识别应用程序是否是恶意程序.pdf(19页珍藏版)》请在专利查询网上搜索。
确定第一应用程序是恶意程序。第一应用程序可能被提供以在处理系统上安装。可以通过由处理器执行的静态分析扫描第一应用程序,以确定第一应用程序的用户界面布局疑似处理系统上安装的第二应用程的用户界面布局。如果第一应用程序的用户界面布局疑似处理系统上安装的第二应用程的用户界面布局,则可以生成表明第一应用程序是恶意程序的警报。。
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有经营许可证编号:粤ICP备2021068784号-1