识别应用程序是否是恶意程序的制作方法_3

文档序号:8367483阅读:来源:国知局
序105 进行运行时分析。例如,安全应用程序120可以启动运行时分析模块135来确定第一应用 程序105在执行过程中所提供的Π 布局是否疑似第二应用程序130的Π 布局。如果运行 时分析模块135指出第一应用程序105的用户界面的布局疑似第二应用程序130的用户界 面的布局,则如前文所述的那样,安全应用程序120可以生成一个警报,指示第一应用程序 105是恶意的。
[0039] 此外,在第一应用程序105被安装到处理系统110以及被处理系统110执行时,由 静态分析模块125提供的输出数据可以被运行分析模块135处理,以进行对第一应用程序 105的运行时扫描。例如,在运行时,可以由运行分析模块135监视第二应用程序130和第 一应用程序105之间的过程间通信。这样的过程间通信可以根据由静态分析模块125进行 的对第一应用程序150的静态分析的相关输出数据而确定。
[0040] 当第一应用程序105提供一个具有静态分析时静态分析模块125不知道的配置 的运行时Π 布局、并且第一应用程序105试图或者请求回应第二应用程序130处理一个 URI的邀请时,可以在第二应用程序130内装入该目标URI,并记录其Π 布局属性(layout properties)。此外,还可以加载第一应用程序105,因此可以扫描它的UI布局属性。基于 第一应用程序105和第二应用程序130的的UI布局属性,能够确定第一应用程序105是否 是恶意的。例如,如果第一应用程序105的当前Π 布局疑似第二应用程序130的Π 布局 (例如,第二应用程序130的当前UI布局属性与第一应用程序105的UI布局属性之间的非 常相似),则可以确定第一应用程序105可能是不安全的。因此,可以由安全应用程序120 生成一个警报,表示第一应用程序105是恶意的。此外,安全应用程序120还可以阻止第一 应用程序105存储或传送从处理系统110收到的用户输入中收到的信息。然而,如果第一 应用程序105的当前Π 布局不疑似第二应用程序130的Π 布局,处理系统可以将第一应 用程序105的当前Π 布局登记为从"钓鱼"的角度来看是无害的,虽然不必完全证明该应 用程序就是安全的。
[0041] 这里,关于第一应用程序105所支持的其它Π 布局的额外信息(如果能得到的 话)是相关的。如果第一应用程序105提供已知数目的在运行时可能的UI布局,则在运行 时,第一应用程序105可以扫描第一应用程序105的UI布局,以便在这种UI布局被第一应 用程序105实施时,实时地比较这种Π 布局与第二应用程序130的Π 布局。例如,运行时 分析模块135可以确定第一应用程序105提供的当前Π 布局不疑似第二应用程序130提 供的UI布局。然而,第一应用程序105可以例如响应于检测到一个过程间通信而提供下一 个Π 布局,响应于这样的过程间通信,运行时分析模块135可以比较第一应用程序105的 该下一个Π 布局与第二应用程序130提供的Π 布局。如果这些Π 布局之间是疑似的,安 全应用程序120可以产生一个警报。
[0042] 处理系统可以在将第一应用程序105和第二应用程序130的Π 布局进行比较时, 跟踪与第二应用程序130的Π 布局相比、第一应用程序105的不同Π 布局的总数。如果 没有第一应用程序105的Π 布局疑似(例如非常类似于)第二应用程序130的Π 布局, 在被扫描的第一应用程序105的UI布局的个数等于第一应用程序105的UI布局的已知总 数105时,可以认定第一应用程序105是安全的。否则,当前会话(session)可以恢复正常, 但是一般来说不认定第一应用程序105是安全的,这是因为,可能还有第一应用程序105的 其它UI布局尚未与Web浏览器比较。
[0043] 此外,无论是静态分析模块125和/或运行时分析模块135都可以被配置得能确 定第一应用程序105是否被配置得试图或请求访问至少一个包含私人信息的过程间通信。 当第一应用程序105被配置得试图或请求访问至少一个包含私人信息的过程间通信,安全 应用程序120可以确定第一应用程序105是恶意的,并产生相应的警报。
[0044] 第一应用程序105的Π 布局与第二应用程序130的Π 布局的比较,可以以任何 适当的方式进行,包括使用自定义(custom)代码/工具和/或使用现有技术中已知的工 具。例如,在处理系统110使用Android?操作系统的情况下,Android?的Robotium测试 框架,可以被用来比较第一和第二应用程序105、130的的Π 布局属性。Android是谷歌公 司的商标。
[0045] 过程间通信可包括一例如在an droid?操作系统中一意图对象(intent objects) 的传递。这里所使用的术语"意图对象"指这样一种被动(passive)数据结构,其包含 (holding) -个要执行的操作的抽象描述,或一个已经发生并正在被宣布的事件的描述。意 图对象提供一种在某操作系统环境中执行的不同应用程序之间通信的手段。一方面,意图 对象可以是隐式的(implicit)意图对象。隐式的意图对象是不指定某个应当作用于该意 图对象的目标组件的名字的意图对象。另一方面,意图对象可以是显式的(explicit)意图 对象。显式的意图对象是具体指定某个应当作用于该意图对象的目标组件的名字的意图对 象。在iOSl喿作系统中,过程间通信可以包括通过应用程序调用其他应用程序的URI协议 而交换的消息。这样的消息可以包含消息内容。i〇S是思科公司在美国和其他国家的商标 或注册商标。
[0046] 本文中所使用的术语"疑似",指的是至少两个完全相同的Π 布局之间的相似程 度,或者用户只看一眼尚不能识别这些Π 布局的差异性的相似程度。例如,当第一应用程 序105的UI布局疑似第二应用程序130界面布局时,用户可能不能意识到第一应用程序的 UI布局105并不直接对应于(directly correspond to)第二应用程序130的UI布局一即 使用户以前可能查看过第二应用程序130Π 布局。换句话说,第一应用程序105的Π 布局 可能混淆地类似于第二应用程序130的Π 布局。
[0047] 本文中所使用的术语"实时"(real time),指的是用户或系统感觉对某过程或要 作出的决定的充分直接的处理响应(processing responsiveness)程度,或使处理器能够 跟上外部过程的处理响应程度。
[0048] 图2是根据说明书中公开的一个实施例、图1的处理系统110的示例性实现。处 理系统110被配置用于识别恶意应用程序。处理系统110可以是、计算机、移动计算机、笔 记本电脑、平板电脑、智能手机、个人数字助理、游戏设备、器具,或被配置得能执行应用程 序任何其他处理系统。
[0049] 处理系统110可以包括至少一个处理器205,通过系统总线215或其它合适的电路 耦合到存储器元件210。因此,处理系统110可在存储器元件210内存储程序代码。处理 器205可以执行通过系统总线215从存储器单元210获取的程序代码。应该理解,处理系 统110可以以包括处理器和存储器、能够执行本说明书中描述的功能和/或操作的任何形 式的系统实现。
[0050] 存储器元件210可以包括一个或多个物理存储设备,例如本地存储器220和一个 或多个大容量存储设备225。本地存储器220是程序代码的实际执行过程中普遍使用的RAM 或其他非持久性存储装置。大容量储存装置225可以实现为硬盘驱动器(HDD)、固态硬盘 (SSD)或其他持久性数据存储装置。处理系统110还可以包括一个或多个高速缓存存储器 (未予示出),其提供至少一些程序代码的临时存储,以减少在执行过程中必须从检索存储 装置225检索程序代码的次数。
[0051] 输入/输出(I/O)设备,诸如有键盘230、显示器和/或触摸屏235和/或指向装 置240。I/O设备可以直接地或通过中间的I/O控制器耦合到处理系统110。例如,显示器 /触摸屏235可以通过图形处理单元耦合到处理系统IlO(GPU),后者可以是处理器205的 一个组件或是一个独立的装置。一个或多个网络适配器245也可以通过中间的私有或公共 网络耦合到到其他系统、计算机系统、远程打印机和/或远程存储设备。调制解调器、电缆 调制解调器、以太网卡都是可用于处理系统110的不同类型的网络适配器245的例子。
[0052] 如图2所示,存储元件210可以存储处理系统110的组件,即安全应用程序120、第 二应用程序130和第一应用程序105。安全应用程序120和第二应用程序130是以可执行 程序代码的形式实现的,可以由处理系统11〇(例如通过处理器205)执行,因此,可以认为 是处理系统110的一部分。第一应用程序105可以由处理系统110进行处理,但是,在安装 之前,不必认为是处理系统110的一部分。例如,第一应用程序105可以暂时存储在存储器 元件210中
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1