首页> 中国专利> HTML5移动应用程序的异常行为检测方法和行为模型建立方法

HTML5移动应用程序的异常行为检测方法和行为模型建立方法

摘要

本发明提出一种HTML5移动应用程序的异常行为检测方法,包括以下步骤:运行应用程序;提取应用程序在运行过程中的所处的至少一个界面的界面信息,并提取应用程序在处于每个界面时的行为事件信息;根据至少一个界面的界面信息和每个界面对应的行为事件信息建立应用程序的行为模型;将应用程序的行为模型和预先建立的应用程序的原始行为模型进行比对,并根据比对结果判断应用程序是否包含异常行为。本发明实施例的异常行为检测方法,能够为应用程序建立准确、完整的行为模型,有效地提取检测应用程序的异常行为。此外,本发明还提出一种HTML5移动应用程序的行为模型建立方法。

著录项

  • 公开/公告号CN104992117A

    专利类型发明专利

  • 公开/公告日2015-10-21

    原文格式PDF

  • 申请/专利权人 北京航空航天大学;

    申请/专利号CN201510333162.1

  • 申请日2015-06-16

  • 分类号G06F21/56(20130101);

  • 代理机构北京清亦华知识产权代理事务所(普通合伙);

  • 代理人张大威

  • 地址 100191 北京市海淀区学院路37号

  • 入库时间 2023-12-18 11:23:54

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-04-13

    授权

    授权

  • 2015-11-18

    实质审查的生效 IPC(主分类):G06F21/56 申请日:20150616

    实质审查的生效

  • 2015-10-21

    公开

    公开

说明书

技术领域

本发明涉及网络技术及信息安全技术领域,特别涉及一种HTML5移动应用程序的异常 行为检测方法和行为模型建立方法。

背景技术

Android安卓系统的开放性使其成为目前主流的移动平台,但也令其成为恶意应用的主 要攻击目标。据相关报告显示,Android平台上的恶意应用数量占整体移动恶意应用数量急 剧上升。恶意应用一旦被安装执行,可轻易获取用户的众多隐私数据,如地理位置信息、通 讯录、日程表、短信、邮件等,同时亦可在用户不知情的情况下在后台订阅增值业务,消耗 用户流量和话费。如今,伴随电子交易、互联网金融以及移动支付的快速发展,甚至出现了 盗取用户银行卡信息、盗刷信用卡等金融犯罪行为。这些出现在Android平台的恶意应用对 用户隐私、财产甚至人身安全构成了极大威胁。

由于HTML5(Hypertext Markup Language5,第五代超文本标记语言)技术的引入,移 动平台面临更加严峻的安全形势。HTML5应用运行在系统所提供的浏览器环境中(如 WebView,网页识图),它包含不同来源的代码,如应用自身或者第三方的Java代码(一种 程序设计语言),HTML5或JavaScript(一种脚本语言)代码。这些代码在Android系统中 拥有与应用本身相同的权限。这种现象,尤其是令第三方引入的代码拥有应用的权限会带来 极大的安全隐患。由于HTML5应用本质上仍是Web应用程序,因此PC(Personal Computer, 个人计算机)端的传统Web攻击模式,如跨站点脚本攻击(Cross-Site Scripting,XSS)等 同样可以出现在移动端。一旦恶意脚本注入目标应用,该脚本将获得应用的所有权限,对用 户造成的损失难以估量。

目前对应用程序的安全性进行检测,通常分为两种方法:一种是静态分析,对应用程序 进行反汇编,获取程序源码或编译中间过程的字节码等,在此基础上对应用程序安全性进行 分析。如:通过分析反编译得到的字节码获取应用程序的API(Application Programming  Interface,应用程序编程接口)调用依赖关系以检测恶意行为;但是,由于编译器的处理方 式存在差异,编译过程可能隐藏部分恶意行为,单从代码角度进行静态分析无法对应用程序 安全性进行全面评估。另一种检测方法是动态分析,在程序运行过程中,动态的获取程序运 行日志,分析其安全性。如:记录应用运行过程中的系统调用序列建立应用行为模式,进行 基于模式匹配的恶意行为检测。但是,基于行为模式的检测需要事先获取恶意行为模式才能 够进行后续的匹配检测流程,无法对新出现的恶意行为进行有效检测。

因此,有待提出一种全面、有效、准确的应用程序行为检测方法。

发明内容

本发明旨在至少解决现有技术中存在的技术问题之一。

为此,本发明的第一个目的在于提出一种HTML5移动应用程序的异常行为检测方法, 能够为应用程序建立准确、完整的行为模型,有效地提取检测应用程序的异常行为。

本发明的第二个目的在于提出一种HTML5移动应用程序的行为模型的建立方法。

为达上述目的,根据本发明第一方面实施例提出了一种HTML5移动应用程序的异常行 为检测方法,包括以下步骤:运行应用程序;提取所述应用程序在运行过程中的所处的至少 一个界面的界面信息,并提取所述应用程序在处于每个界面时的行为事件信息;根据所述至 少一个界面的界面信息和每个界面对应的行为事件信息建立所述应用程序的待测行为模型; 将所述应用程序的待测行为模型和预先建立的所述应用程序的原始行为模型进行比对,并根 据比对结果判断所述应用程序是否包含异常行为。

本发明实施例的HTML5移动应用程序的异常行为检测方法,通过提取应用程序运行过 程的行为事件及其所处的界面信息,即应用程序的运行环境,以据此生成行为模型,并通过 将该行为模型与原始行为模型进行比对来判断应用程序是否包含异常行为,与相关技术相 比,可有效提取HTML5移动应用程序运行过程中的全部行为事件信息,以及行为事件发生 时所处的程序上下文环境信息(即界面信息),从而能够据此为HTML5移动应用程序建立 准确、完整的行为模型,从而,能够有效地提取检测应用程序的异常行为,尤其针对零日攻 击、变形攻击和代码注入攻击具有良好的检测效果。

本发明第二方面实施例提出了一种HTML5移动应用程序的行为模型建立方法,包括以 下步骤:运行应用程序;提取所述应用程序在运行过程中的所处的所有界面的界面信息,并 提取所述应用程序在处于每个界面时的行为事件信息;根据所述所有界面的界面信息和每个 界面对应的行为事件信息建立所述应用程序的行为模型。

本发明实施例的HTML5移动应用程序的行为模型建立方法,通过提取应用程序运行过 程的行为事件及其所处的界面信息,即应用程序的运行环境,以据此建立包含以上两个元素 的二维模型。与相关技术相比,可有效提取HTML5移动应用程序运行过程中的全部行为事 件信息,以及行为事件发生时所处的程序上下文环境信息(即界面信息),从而能够据此为 应用程序建立准确、完整的原始行为模型和待测模型,使后续的程序检测更加全面和有效。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明 显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和 容易理解,其中:

图1为根据本发明一个实施例的应用程序的异常行为检测方法的流程图;

图2为根据本发明一个具体实施例的应用程序的异常行为检测方法的流程图;

图3为根据本发明一个实施例的应用程序的行为模型建立方法的流程图;

图4为根据本发明一个实施例的针对HTML5移动应用程序的异常行为检测系统架构示 意图。

具体实施方式

下面参考附图描述根据本发明实施例的应用程序的异常行为检测方法、装置、应用程序 的行为模型建立方法及装置,其中自始至终相同或类似的标号表示相同或类似的元件或具有 相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明, 而不能理解为对本发明的限制。

目前,针对应用程序行为的检测方法均未对应用程序运行环境进行记录和检测。应用程 序的行为事件发生时所处的程序上下文环境是程序行为事件建模过程中必不可少的关键信 息,并且为判断程序行为是否存在异常提供重要参考。所以,在为应用程序,尤其是基于 HTML5技术的移动应用程序(以下简称HTML5应用)所建立的行为模型中包含行为发生 时所处的程序执行环境信息是很有必要的,该信息可为动态分析和异常行为检测提供准确、 完整的应用程序行为记录。

为此,本发明的实施例提出了一种HTML5移动应用程序的异常行为检测方法和行为模 型建立方法。

图1为根据本发明一个实施例的HTML5移动应用程序的异常行为检测方法的流程图。

如图1所示,根据本发明实施例的HTML5移动应用程序的异常行为检测方法,包括以 下步骤:S1,运行应用程序;S2,提取应用程序在运行过程中的所处的至少一个界面的界面 信息,并提取应用程序在处于每个界面时的行为事件信息;S3,根据至少一个界面的界面信 息和每个界面对应的行为事件信息建立应用程序的行为模型;S4,将应用程序的行为模型和 预先建立的应用程序的原始行为模型进行比对,并根据比对结果判断应用程序是否包含异常 行为。

在本发明的实施例中,应用程序为HTML5移动应用程序。

在本发明的一个实施例中,应用程序的原始行为模型是在应用程序首次运行时,根据在 应用程序运行过程中提取的界面信息和对应的行为事件信息建立的。应用程序首次运行可确 保应用程序是未被修改、未遭受攻击的状态,在此前提下得到的行为模型中不包含异常行为, 因此可用于后续异常行为检测。

因此,在本发明的一个实施例中,还可包括建立原始行为模型的步骤。

具体地,建立应用程序的原始行为模型可包括以下步骤:在应用程序首次运行时,提取 应用程序在首次运行过程中的所处的所有界面的界面信息,并提取应用程序在处于每个界面 时的行为事件信息;根据首次运行过程中所有界面的界面信息和每个界面对应的行为事件信 息建立应用程序的原始行为模型。

图2为根据本发明一个具体实施例的应用程序的异常行为检测方法的流程图,如图2所 示,包括以下步骤:

S201,运行应用程序。

其中,在本发明的一个实施例中,应用程序可以是基于HTML5技术的移动应用程序, 即通过HTML5编写的用于移动终端的应用程序。从而通过本发明的实施例可对HTML5移 动应用程序的异常行为进行有效全面的检测。在本发明的实施例中以HTML5移动应用程序 为例进行说明。

S202,提取应用程序在运行过程中的所处的至少一个界面的界面信息,并提取应用程序 在处于每个界面时的行为事件信息。

HTML5应用中主要有以下三种不同层次的界面:activity界面、HTML界面和jQuery 界面:

1、Activity界面:对于原生的Android Java应用,应用的每个界面对应一个activity。但 是在HTML5应用中,应用程序的逻辑使用HTML、JavaScript、CSS(Cascading Style Sheet, 级联样式表)等网络编程语言描述,运行在WebView内置浏览器环境中。所以,HTML5应 用的每个activity可生成一个WebView,在一个WebView中可加载多个HTML文件,呈现 多个HTML界面。

2、HTML界面:如上,HTML5应用使用写入HTML文件中的网络编程语言来表述界 面的样式和应用的功能,因此一般只需要一个activity及其所生成的一个WebView,在这个 WebView中加载多个HTML文件以呈现不同的界面。

3、jQuery界面:为了减少切换界面时用户等待加载HTML文件的时间,jQuery开发了 一种新的界面切换方式,即只需要一个HTML文件,其中包含多个jQuery界面。在应用启 动时完整加载该HTML文件,用户切换界面时(此时是jQuery界面),无需加载新的HTML 文件,只需直接切换至该HTML文件中的另一个jQuery界面部分即可。

在HTML5应用中,最常见的界面是HTML界面和jQuery界面。虽然HTML5应用一 般只需要一个activity即可实现所有功能,但是理论上仍可以含有多个activity,例如,在加 入广告activity或某个功能模块activity等情况,会有相应的多个activity。因此,在HTMl5 应用中也存在由新的activity所生成的新的界面。

对于HTML5移动应用程序来说,有三种不同界面,对Android系统源码进行修改,分 别在新建三种界面的函数中增加获取界面信息的功能。当HTML5应用建立新的界面时,调 用事件提取模块中的函数,向行为日志中写入相应的界面信息(activity界面的name,HTML 界面的URL,jQuery界面的ID)。

HTML5应用的行为事件分为两种:网络行为与本地行为。其中,网络行为指HTML5 应用与远程服务器的交互,通过应用向服务器发送HTTP请求实现。本地行为是指HTML5 应用通过以PhoneGap(一款开源的开发框架)为代表的移动应用开发框架所提供的接口, 调用相应的API实现对本地系统资源的访问,如查找联系人、获取地理位置信息、调用摄像 头等。因此,行为事件信息可包括API应用程序编程接口调用信息和HTTP请求信息。

其中,界面信息也可叫做行为事件发生时的程序上下文环境。

在步骤S202所执行的过程,也就是在应用程序运行过程中,监控应用程序的运行环境 (WebView),并实时提取应用程序的行为事件(如调用PhoneGap API或发出HTTP请求等) 和行为事件发生时的程序上下文环境(即行为发生时所在界面的信息)。

具体地,在本发明的一个实施例中,提取应用程序在运行过程中的所处的至少一个界面 的界面信息并提取应用程序在处于每个界面时的行为事件信息,可具体包括:当应用程序在 运行过程中建立一个界面时,调用界面信息获取函数提取界面的界面信息;在建立界面后, 进一步提取应用程序处于界面时的API调用信息和/或HTTP请求信息。

更近一步地,对于界面信息的提取,可针对HTML5应用中的三种不同界面,对Android 系统源码进行修改,分别在新建三种界面的函数中增加用于获取界面信息的函数,即界面信 息获取函数。当HTML5应用在运行过程中建立新的界面时,调用界面信息获取函数,提取 相应的界面信息,并将提取的界面信息写入行为日志。其中,界面信息可包括activity界面 的name(名称),HTML界面的URL(Uniform Resource Locator,通用资源定位符),jQuery 界面的ID(Identity,身份标识码)。

对于行为事件信息的提取,可在Android系统源码WebKit引擎(一个开源浏览器引擎) 部分的行为事件函数(指能够提取到关键行为信息的Android系统函数)中增加行为事件信 息提取函数。当行为事件发生时,就会调用行为事件信息提取函数,提取PhoneGap API调 用和HTTP请求等行为事件的名称等信息,并写入行为日志。

由上可知,为了便于根据提取的界面信息和行为事件信息建立行为模型,可将界面信息 和行为事件信息输出至行为日志,从而根据行为日志建立行为模型。因此,本发明的实施例 还可包括步骤S203。

S203,将提取的界面信息和行为事件信息写入行为日志。

在本发明的一个实施例中,行为日志可采用XML格式。其中,根元素为<log>元素,用 于记录整个行为事件;<log>元素的子元素为若干<interface>元素,用于记录应用单个界面的 界面信息,<interface>元素的子元素为一个<name>元素和若干<action>元素;<name>元素用 于记录界面信息的具体内容,如activity界面的name,HTML界面的URL,jQuery界面的 ID等;<action>元素用于记录行为事件信息,即API调用信息(调用的API的名称)和/或 HTTP请求信息(发出的HTTP请求)。

在本发明的实施例中,可根据以上格式将提取的界面信息和行为事件信息写入行为日 志。其中,可采用任意字符串作为<action>元素值域和<name>元素值域。

以下为一个行为日志的示例:

该行为日志可体现如下信息:

1、<name>file://android/asset/www/index.html</name>表示应用程序当前的应用界面为 HTML界面,且该HTML界面的URL为“file://android/asset/www/index.html”。

2、<action>API_call@contacts@search</action>表示应用程序的当前行为事件为API调 用,且调用的API名为“contacts search”,即查找联系人API。

应当理解,本实施例中行为日志采用了XML格式,仅为示例性的,以方便进行后续处 理,但本发明不限于此,实际应用中对行为日志具体格式没有任何要求,也可以采用其它格 式,只要包含同样的信息即可。

S204,根据至少一个界面的界面信息和每个界面对应的行为事件信息建立应用程序的行 为模型。

在本发明的一个实施例中,可根据界面信息和行为事件信息的对应关系生成多个二元 组,并根据多个二元组建立应用程序的行为模型,其中,待测二元组的第一个元素为界面信 息,第二个元素为与界面信息对应的行为事件信息集合。

其中,应用程序的行为模型M可用以下序列表示:

{<State_0>,<State_1>…<State_i>…},

序列中每个元素为一个二元组,其中,序列中第i个元素<State_i>即为(Si,Ti),(Si,Ti) ∈M,i为非负整数,行为模型M为提取到的界面信息和行为事件中所有具有对应关系的界 面信息和行为事件信息组成的二元组的集合。其中,Si为应用状态,即界面信息,其取值为 三种界面的标识的字符串,即activity界面的name、HTML界面的URL和jQuery界面的ID; 为应用状态Si下动作状态集合,即行为事件信息集合,其中tij为Si下第j个动作状态,其取值为应用程序所调用的API的名称或发出的HTTP请求字符串,ni为Si下动作状态总数,其取值为非负整数,j的取值为大于等于0小于等于ni的非负整数。

在本发明的一个实施例中,可根据行为日志按照上述行为模型的定义建立应用程序的模 型。具体地,可提取行为日志中各个<interface>元素的子元素<name>元素的值作为应用状态 “Si”,并将其作为一个二维数组中每一行的首个元素;然后提取行为日志中各个<interface> 元素的<action>子元素的值作为应用状态“Si”下的动作状态“tij”,并将其写入上述二维数 组中首列中值为该动作状态所属的应用状态“Si”的行中;最后,将记录各应用状态及其所 包含的动作状态的数组聚合,形成记录整个应用程序的所有应用状态和动作状态的二维数 组,即完成了应用程序的行为模型的建立。

S205,如果应用程序为首次运行,则将应用程序的行为模型作为应用程序的原始行为模 型,并进行存储。

如果应用程序为首次运行,则可确保HTML5应用未被修改、未遭受任何攻击。在此前 提下,通过上述过程遍历应用程序的所有界面,并触发各界面下的所有行为事件,并生成的 行为模型,是该应用程序的完整的应用行为模型,可将该行为模型作为应用程序的原始行为 模型,并存入原始行为模型库,以作为后续测试的参照。

在此,可将应用程序的原始行为模型中包括多个二元组称为多个原始二元组。

S206,如果应用程序不为首次运行,则将应用程序的行为模型作为应用程序的待测模型, 并与预先建立的应用程序的原始行为模型进行比对,并根据比对结果判断应用程序是否包含 异常行为。

在本发明的一个实施例中,可根据多个待测二元组中所包含的全部界面信息生成第一界 面信息集合(即待测界面信息集合),并根据多个原始二元组中所包含的全部界面信息生成 第二界面信息集合(即原始界面信息集合);判断第一界面信息集合与第二界面信息集合是 否一致;如果第一界面信息集合与第二界面信息集合不一致,则判断应用程序存在异常行为。 如果第一界面信息集合与第二界面信息集合一致,则以界面信息为索引,根据多个待测二元 组中每个界面信息对应行为事件信息生成第一行为事件信息集合(即待测为事件信息集合), 并根据多个原始二元组中每个界面信息对应的第二行为事件信息集合(即原始为事件信息集 合);判断第一行为事件信息集合与第二行为事件信息集合是否一致;如果不一致,则判断 应用程序存在异常行为。

具体地,可用S’={S0’,S1’,…,Si’…}表示第一界面信息集合,即待测应用程序的行为模 型中所用应用状态(界面信息)集合,用S={S0,S1,…,Si,…}表示原始行为模型中所有应用 状态(界面信息)集合,用表示第一行为事件信息集合,即待测应 用程序的行为模型中应用状态Si’下所有动作状态(行为事件信息)集合,用表示第二行为事件信息集合,即在原始行为模型中应用状态Si下所有动作状态(行 为事件信息)集合。

那么,也就是说,若出现如下两种情况中的任意一种则认为应用程序存在异常行为:

1、若S≠S’,即相比应用程序初次运行的应用状态来说,在测试时该应用程序中出现 新的应用状态,则表明该应用程序遭到攻击或被修改;

2、若S=S’,则表明该应用程序的行为模型中所有应用状态与原始行为模型中相同,则 进一步遍历应用程序的所有应用状态,对于任一应用状态Si下所有动作状态集合Ti和Ti', 如果有Ti≠Ti',即相比应用程序初次运行时,该应用程序在同一应用状态下存在新的动作状 态,则表明该应用程序遭到攻击或被修改。

进一步地,可对检测出的新出现的应用状态和/或新的动作状态进行记录,即,记录应 用程序所包含的异常行为事件信息以及异常行为事件发生时所在的界面信息,并生成应用安 全分析报告,以便应用安全分析人员分析待测应用。

本发明实施例的HTML5移动应用程序的异常行为检测方法,通过提取HTML5移动应 用程序运行过程的行为事件及其所处的界面信息,即应用程序的运行环境,以据此生成行为 模型,并通过将该行为模型与原始行为模型进行比对来判断应用程序是否包含异常行为,与 相关技术相比,可有效提取HTML5移动应用程序运行过程中的全部行为事件信息,以及行 为事件发生时所处的程序上下文环境信息(即界面信息),从而能够据此为HTML5移动应 用程序建立准确、完整的行为模型,从而,能够有效地提取检测应用程序的异常行为,尤其 针对零日攻击、变形攻击和代码注入攻击具有良好的检测效果。

为了实现上述实施例,本发明还提出一种HTML5移动应用程序的行为模型建立方法。

图3为根据本发明一个实施例的HTML5移动应用程序的行为模型建立方法的流程图。 如图3所示,本发明实施例的HTML5移动应用程序的行为模型建立方法包括以下步骤。

S301,运行应用程序。

其中,在本发明的一个实施例中,应用程序可以是基于HTML5技术的移动应用程序, 即通过HTML5编写的用于移动终端的应用程序。从而通过本发明的实施例可对HTML5移 动应用程序的异常行为进行有效全面的检测。在本发明的实施例中以HTML5移动应用程序 为例进行说明。

S302,提取应用程序在运行过程中的所处的所有界面的界面信息,并提取应用程序在处 于每个界面时的行为事件信息。

HTML5应用中主要有以下三种不同层次的界面:activity界面、HTML界面和jQuery 界面:

1、Activity界面:对于原生的Android Java应用,应用的每个界面对应一个activity。但 是在HTML5应用中,应用程序的逻辑使用HTML、JavaScript、CSS(Cascading Style Sheet, 级联样式表)等网络编程语言描述,运行在WebView内置浏览器环境中。所以,HTML5应 用的每个activity可生成一个WebView,在一个WebView中可加载多个HTML文件,呈现 多个HTML界面。

2、HTML界面:如上,HTML5应用使用写入HTML文件中的网络编程语言来表述界 面的样式和应用的功能,因此一般只需要一个activity及其所生成的一个WebView,在这个 WebView中加载多个HTML文件以呈现不同的界面。

3、jQuery界面:为了减少切换界面时用户等待加载HTML文件的时间,jQuery开发了 一种新的界面切换方式,即只需要一个HTML文件,其中包含多个jQuery界面。在应用启 动时完整加载该HTML文件,用户切换界面时(此时是jQuery界面),无需加载新的HTML 文件,只需直接切换至该HTML文件中的另一个jQuery界面部分即可。

在HTML5应用中,最常见的界面是HTML界面和jQuery界面。虽然HTML5应用一 般只需要一个activity即可实现所有功能,但是理论上仍可以含有多个activity,例如,在加 入广告activity或某个功能模块activity等情况,会有相应的多个activity。因此,在HTMl5 应用中也存在由新的activity所生成的新的界面。

对于HTML5移动应用程序来说,有三种不同界面,对Android系统源码进行修改,分 别在新建三种界面的函数中增加获取界面信息的功能。当HTML5应用建立新的界面时,调 用事件提取模块中的函数,向行为日志中写入相应的界面信息(activity界面的name,HTML 界面的URL,jQuery界面的ID)。

HTML5应用的行为事件分为两种:网络行为与本地行为。其中,网络行为指HTML5 应用与远程服务器的交互,通过应用向服务器发送HTTP请求实现。本地行为指HTML5应 用通过以PhoneGap(一款开源的开发框架)为代表的移动应用开发框架所提供的接口,调 用相应的API实现对本地系统资源的访问,如查找联系人、获取地理位置信息、调用摄像头 等。因此,行为事件信息可包括API应用程序编程接口调用信息和HTTP请求信息。

其中,界面信息也可叫做行为事件发生时的程序上下文环境。

在步骤S102所执行的过程,也就是在应用程序运行过程中,监控应用程序的运行环境 (WebView),并实时提取应用程序的行为事件(如调用PhoneGap API或发出HTTP请求等) 和行为事件发生时的程序上下文环境(即行为发生时所在界面的信息)。

具体地,在本发明的一个实施例中,提取应用程序在运行过程中的所处的所有一个界面 的界面信息并提取应用程序在处于每个界面时的行为事件信息,可具体包括:当应用程序在 运行过程中建立一个界面时,调用界面信息获取函数提取界面的界面信息;在建立界面后, 进一步提取应用程序处于界面时的API调用信息和/或HTTP请求信息。

更近一步地,对于界面信息的提取,可针对HTML5应用中的三种不同界面,对Android 系统源码进行修改,分别在新建三种界面的函数中增加用于获取界面信息的函数,即界面信 息获取函数。当HTML5应用在运行过程中建立新的界面时,调用界面信息获取函数,提取 相应的界面信息,并将提取的界面信息写入行为日志。其中,界面信息可包括activity界面 的name(名称),HTML界面的URL(Uniform Resource Locator,通用资源定位符),jQuery 界面的ID(Identity,身份标识码)。

对于行为事件信息的提取,可在Android系统源码WebKit引擎(一个开源浏览器引擎) 部分的行为事件函数(指能够提取到关键行为信息的Android系统函数)中增加行为事件信 息提取函数。当行为事件发生时,就会调用行为事件信息提取函数,提取PhoneGap API调 用和HTTP请求等行为事件的名称等信息,并写入行为日志。

由上可知,为了便于根据提取的界面信息和行为事件信息建立行为模型,可将界面信息 和行为事件信息输出至行为日志,从而根据行为日志建立行为模型。

在本发明的一个实施例中,行为日志可采用XML格式。其中,根元素为<log>元素,用 于记录整个行为事件;<log>元素的子元素为若干<interface>元素,用于记录应用单个界面的 界面信息,<interface>元素的子元素为一个<name>元素和若干<action>元素;<name>元素用 于记录界面信息的具体内容,如activity界面的name,HTML界面的URL,jQuery界面的 ID等;<action>元素用于记录行为事件信息,即API调用信息(调用的API的名称)和/或 HTTP请求信息(发出的HTTP请求)。

在本发明的实施例中,可根据以上格式将提取的界面信息和行为事件信息写入行为日 志。其中,可采用任意字符串作为<action>元素值域和<name>元素值域。

以下为一个行为日志的示例:

该行为日志可体现如下信息:

1、<name>file://android/asset/www/index.html</name>表示应用程序当前的应用界面为 HTML界面,且该HTML界面的URL为“file://android/asset/www/index.html”。

2、<action>API_call@contacts@search</action>表示应用程序的当前行为事件为API调 用,且调用的API名为“contacts search”,即查找联系人API。

应当理解,本实施例中行为日志采用了XML格式,仅为示例性的,以方便进行后续处 理,但本发明不限于此,实际应用中对行为日志具体格式没有任何要求,也可以采用其它格 式,只要包含同样的信息即可。

S303,根据所有界面的界面信息和每个界面对应的行为事件信息建立应用程序的行为模 型。

在本发明的一个实施例中,可根据界面信息和行为事件信息的对应关系生成多个二元 组,并根据多个二元组建立应用程序的行为模型,其中,二元组的第一个元素为界面信息, 第二个元素为与界面信息对应的行为事件信息集合。

其中,应用程序的行为模型M可用以下序列表示:

{<State_0>,<State_1>…<State_i>…},

序列中每个元素为一个二元组,其中,序列中第i个元素<State_i>即为(Si,Ti),(Si,Ti) ∈M,i为非负整数,行为模型M为提取到的界面信息和行为事件中所有具有对应关系的界 面信息和行为事件信息组成的二元组的集合。其中,Si为应用状态,即界面信息,其取值为 三种界面的标识的字符串,即activity界面的name、HTML界面的URL和jQuery界面的ID; 为应用状态Si下动作状态集合,即行为事件信息集合,其中tij为Si下第j个动作状态,其取值为应用程序所调用的API的名称或发出的HTTP请求字符串,ni为Si下动作状态总数,其取值为非负整数,j的取值为大于等于0小于等于ni的非负整数。

在本发明的一个实施例中,可根据行为日志按照上述行为模型的定义建立应用程序的模 型。具体地,可提取行为日志中各个<interface>元素的子元素<name>元素的值作为应用状态 “Si”,并将其作为一个二维数组中每一行的首个元素;然后提取行为日志中各个<interface> 元素的<action>子元素的值作为应用状态“Si”下的动作状态“tij”,并将其写入上述二维数 组中首列中值为该动作状态所属的应用状态“Si”的行中;最后,将记录各应用状态及其 所包含的动作状态的数组聚合,形成记录整个应用程序的所有应用状态和动作状态的二维数 组,即完成了应用程序的行为模型的建立。

在本发明的一个实施例中个,如果应用程序为首次运行,则可将应用程序的行为模型作 为应用程序的原始行为模型,并进行存储。如果应用程序不为首次运行,则可将应用程序的 行为模型作为应用程序的待测模型。

如果应用程序为首次运行,则可确保HTML5应用未被修改、未遭受任何攻击。在此前 提下,通过上述过程遍历应用程序的所有界面,并触发各界面下的所有行为事件,并生成的 行为模型,是该应用程序的完整的应用行为模型,可将该行为模型作为应用程序的原始行为 模型,并存入原始行为模型库,以作为后续测试的参照。

在应用程序的再次运行时,可根据再次运行过程中提取到得所有界面的界面信息及相应 的行为事件信息建立该应用程序的行为模型,并作为该应用程序的待测模型,并将待测行为 模型与预先建立的应用程序的原始行为模型进行比对,并根据比对结果对应用程序进行异常 行为检测。从而能够有效地提取检测应用程序的异常行为。

本发明实施例的HTML5移动应用程序的行为模型建立方法,通过提取应用程序运行过 程的行为事件及其所处的界面信息,即应用程序的运行环境,以据此建立包含以上两个元素 的二维模型。与相关技术相比,可有效提取HTML5移动应用程序运行过程中的全部行为事 件信息,以及行为事件发生时所处的程序上下文环境信息(即界面信息),从而能够据此为 应用程序建立准确、完整的原始行为模型或待测模型,使后续的程序检测更加全面和有效。

图4为根据本发明一个实施例的针对HTML5移动应用程序的异常行为检测系统架构示 意图。系统包括:提取模块10、建立模块20和检测模块30。

其中,该系统输入为HTML5移动应用程序,且该系统为HTML5移动应用程序提供运 行环境(WebView)。

具体地,提取模块10可监控HTML5移动应用程序的运行环境,并通过PhoneGap插件、 HTML/CSS、JavaScript等实时提取应用程序的行为事件(以Android系统为例,如调用 PhoneGap API或发出HTTP请求等)和行为事件发生时的程序上下文环境(即行为发生时 所在界面的信息)。

建立模块20可根据提取模块10提取的行为事件和相应的界面信息建立该应用程序的行 为模型。如果该应用程序为首次运行,则该行为模型作为原始行为模型存储至原始行为模型 库。如果不是首次运行,则作为该应用程序的待测行为模型。

检测模块30可将待测HTML5移动应用程序的待测行为模型与原始行为模型进行比对, 并根据比对结果对待测应用程序进行异常行为检测。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或 更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且 本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根 据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所 属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实 现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执 行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、 装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。 就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以 供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机 可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电 子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM), 可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储 器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的 介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其 他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施 方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件 来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术 中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻 辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程 门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可 以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该 程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个 单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以 采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功 能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介 质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、 或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含 于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的 是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或 多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本 发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的 范围由权利要求及其等同限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号