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

文档序号:9274863阅读:来源:国知局
处的所有一 个界面的界面信息并提取应用程序在处于每个界面时的行为事件信息,可具体包括:当应 用程序在运行过程中建立一个界面时,调用界面信息获取函数提取界面的界面信息;在建 立界面后,进一步提取应用程序处于界面时的API调用信息和/或HTTP请求信息。
[0086] 更近一步地,对于界面信息的提取,可针对HTML5应用中的三种不同界面,对 Android系统源码进行修改,分别在新建三种界面的函数中增加用于获取界面信息的函 数,即界面信息获取函数。当HTML5应用在运行过程中建立新的界面时,调用界面信息获 取函数,提取相应的界面信息,并将提取的界面信息写入行为日志。其中,界面信息可包括 activity界面的name(名称),HTML界面的URL(UniformResourceLocator,通用资源定 位符),jQuery界面的ID(Identity,身份标识码)。
[0087] 对于行为事件信息的提取,可在Android系统源码WebKit引擎(一个开源浏览器 引擎)部分的行为事件函数(指能够提取到关键行为信息的Android系统函数)中增加行 为事件信息提取函数。当行为事件发生时,就会调用行为事件信息提取函数,提取PhoneGap API调用和HTTP请求等行为事件的名称等信息,并写入行为日志。
[0088] 由上可知,为了便于根据提取的界面信息和行为事件信息建立行为模型,可将界 面信息和行为事件信息输出至行为日志,从而根据行为日志建立行为模型。
[0089] 在本发明的一个实施例中,行为日志可采用XML格式。其中,根元素为〈log〉元 素,用于记录整个行为事件;<l〇g>元素的子元素为若干〈interface〉元素,用于记录应用 单个界面的界面信息,〈interface〉元素的子元素为一个〈name〉元素和若干〈action〉元 素;〈name〉元素用于记录界面信息的具体内容,如activity界面的name,HTML界面的URL, jQuery界面的ID等;〈action〉元素用于记录行为事件信息,即API调用信息(调用的API 的名称)和/或HTTP请求信息(发出的HTTP请求)。
[0090] 在本发明的实施例中,可根据以上格式将提取的界面信息和行为事件信息写入行 为日志。其中,可采用任意字符串作为〈action〉元素值域和〈name〉元素值域。
[0091] 以下为一个行为日志的示例:
[0092]
[0093]
[0094]该行为日志可体现如下信息:
[0095] 1、<name>file: //android/asset/www/index.html〈/name> 表不应用程序当前 的应用界面为HTML界面,且该HTML界面的URL为"file: //android/asset/www/index.
[0096] 2、〈action>API_call@contacts@search〈/action> 表不应用程序的当前行为事件 为API调用,且调用的API名为"contactssearch",即查找联系人API。
[0097] 应当理解,本实施例中行为日志采用了XML格式,仅为示例性的,以方便进行后续 处理,但本发明不限于此,实际应用中对行为日志具体格式没有任何要求,也可以采用其它 格式,只要包含同样的信息即可。
[0098] S303,根据所有界面的界面信息和每个界面对应的行为事件信息建立应用程序的 行为模型。
[0099] 在本发明的一个实施例中,可根据界面信息和行为事件信息的对应关系生成多个 二元组,并根据多个二元组建立应用程序的行为模型,其中,二元组的第一个元素为界面信 息,第二个元素为与界面信息对应的行为事件信息集合。
[0100] 其中,应用程序的行为模型M可用以下序列表示:
[0101]{〈State_0>,<State_l>... <State_i>...},
[0102] 序列中每个元素为一个二元组,其中,序列中第i个元素<State_i>即为饵,T), (Si,凡)eM,i为非负整数,行为模型M为提取到的界面信息和行为事件中所有具有对应关 系的界面信息和行为事件信息组成的二元组的集合。其中,Si为应用状态,即界面信息,其 取值为三种界面的标识的字符串,即activity界面的name、HTML界面的URL和jQuery界 面的ID; ?;_ = {tl0,tlUt:j,…,tini},为应用状态匕下动作状态集合,即行为事件信息集合,其 中^为S i下第j个动作状态,其取值为应用程序所调用的API的名称或发出的HTTP请求 字符串,~为S,下动作状态总数,其取值为非负整数,j的取值为大于等于0小于等于n^勺 非负整数。
[0103] 在本发明的一个实施例中,可根据行为日志按照上述行为模型的定义建立应用程 序的模型。具体地,可提取行为日志中各个〈interface〉元素的子元素〈name〉元素的值作 为应用状态"S/',并将其作为一个二维数组中每一行的首个元素;然后提取行为日志中各 个〈interface〉元素的〈action〉子元素的值作为应用状态"S/'下的动作状态并将 其写入上述二维数组中首列中值为该动作状态所属的应用状态"S/'的行中;最后,将记录 各应用状态及其所包含的动作状态的数组聚合,形成记录整个应用程序的所有应用状态和 动作状态的二维数组,即完成了应用程序的行为模型的建立。
[0104] 在本发明的一个实施例中个,如果应用程序为首次运行,则可将应用程序的行为 模型作为应用程序的原始行为模型,并进行存储。如果应用程序不为首次运行,则可将应用 程序的行为模型作为应用程序的待测模型。
[0105] 如果应用程序为首次运行,则可确保HTML5应用未被修改、未遭受任何攻击。在此 前提下,通过上述过程遍历应用程序的所有界面,并触发各界面下的所有行为事件,并生成 的行为模型,是该应用程序的完整的应用行为模型,可将该行为模型作为应用程序的原始 行为模型,并存入原始行为模型库,以作为后续测试的参照。
[0106] 在应用程序的再次运行时,可根据再次运行过程中提取到得所有界面的界面信息 及相应的行为事件信息建立该应用程序的行为模型,并作为该应用程序的待测模型,并将 待测行为模型与预先建立的应用程序的原始行为模型进行比对,并根据比对结果对应用程 序进行异常行为检测。从而能够有效地提取检测应用程序的异常行为。
[0107] 本发明实施例的HTML5移动应用程序的行为模型建立方法,通过提取应用程序运 行过程的行为事件及其所处的界面信息,即应用程序的运行环境,以据此建立包含以上两 个元素的二维模型。与相关技术相比,可有效提取HTML5移动应用程序运行过程中的全部 行为事件信息,以及行为事件发生时所处的程序上下文环境信息(即界面信息),从而能够 据此为应用程序建立准确、完整的原始行为模型或待测模型,使后续的程序检测更加全面 和有效。
[0108] 图4为根据本发明一个实施例的针对HTML5移动应用程序的异常行为检测系统架 构示意图。系统包括:提取模块10、建立模块20和检测模块30。
[0109] 其中,该系统输入为HTML5移动应用程序,且该系统为HTML5移动应用程序提供运 行环境(WebView) 〇
[0110] 具体地,提取模块10可监控HTML5移动应用程序的运行环境,并通过PhoneGap插 件、HTML/CSS、JavaScript等实时提取应用程序的行为事件(以Android系统为例,如调用 PhoneGapAPI或发出HTTP请求等)和行为事件发生时的程序上下文环境(即行为发生时 所在界面的信息)。
[0111] 建立模块20可根据提取模块10提取的行为事件和相应的界面信息建立该应用程 序的行为模型。如果该应用程序为首次运行,则该行为模型作为原始行为模型存储至原始 行为模型库。如果不是首次运行,则作为该应用程序的待测行为模型。
[0112] 检测模块30可将待测HTML5移动应用程序的待测行为模型与原始行为模型进行 比对,并根据比对结果对待测应用程序进行异常行为检测。
[0113] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括 一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部 分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺 序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明 的实施例所属技术领域的技术人员所理解。
[0114] 在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是 用于实现逻辑功
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1