一种安卓应用流氓行为的识别方法及系统技术方案

技术编号:26066166 阅读:16 留言:0更新日期:2020-10-28 16:39
本发明专利技术公开了一种安卓应用流氓行为的识别方法及系统,动态运行和遍历待识别的安卓应用,获取安卓应用运行时的界面状态转换图后,通过对安卓应用中流氓广告的特点进行分析,通过对携带有广告的界面上各广告中的文字进行识别,判断界面上的广告是否为包含诱导点击内容的广告;与此同时,基于界面状态转换图,结合启发式规则,实现了包含覆盖可点击组件的广告的识别以及应用退出时的广告的识别,从而能够精确的识别安卓应用中的流氓广告;另外,本发明专利技术训练基于随机森林的界面分类器区分安卓应用界面中的弹框界面和非弹框界面,根据识别到的弹框界面,基于启发式规则,能够精确的识别安卓应用中的流氓弹框。

【技术实现步骤摘要】
一种安卓应用流氓行为的识别方法及系统
本专利技术属于安卓应用安全
,更具体地,涉及一种安卓应用流氓行为的识别方法及系统。
技术介绍
安卓系统是一个开源的用于移动设备的操作系统,安卓应用是运行在安卓操作系统上的应用,用户可以选择在第三方市场下载和安装安卓应用,安卓应用第三方市场需要提高自己的应用质量来提升用户满意度,然而,当前安卓应用市场中的应用依然广泛存在流氓行为。根据通信行业标准YD/T2439-2012《移动互联网恶意程序描述格式》,对于执行后对系统没有直接损害,也不对用户个人信息、资费造成侵害的其它恶意行为统称为流氓行为。流氓广告和流氓弹框是两种常见的流氓行为;其中,流氓广告有三种,包括诱导点击广告,覆盖可点击组件广告和应用退出时广告;而流氓弹框是指强制用户升级且点击安卓设备上回退按键无法退出的弹框。这些安卓应用中的流氓行为在影响用户使用体验的同时,也存在着潜在的安全隐患,故研究一种面向安卓应用流氓行为的识别方法及系统存在重要的意义。现有的安卓应用行为识别的方法主要有静态分析方法和动态分析方法。其中,静态方法分析速度快,但是目前应用越来越多采用反射机制和混淆技术等,导致静态分析无法进行。动态分析是采用动态运行应用,收集运行过程中的一些信息用于识别特定行为。目前的动态安卓应用行为识别方法主要在应用运行的过程中采集应用运行过程中的CPU和内存使用情况、网络流量、函数调用、意图以及数据流信息等,然后根据行为特征匹配的方式或提取特征采用机器学习等方法进行特定行为的识别。这些行为识别方法能够有效地识别具有泄露信息、窃取用户资费等行为的恶意应用。因为这些行为具有较为明显的资源消耗异常、函数调用模式以及明确的数据流特征。然而,流氓行为执行后对系统没有直接损害,也不对用户个人信息、资费造成侵害,危险后果主要表现为间接地对用户手机造成影响,使用户不能方便地使用手机。因而,大多数流氓行为并不具备一些特定的函数调用模式和数据流方面的特征,更适合从界面视图的角度进行分析和识别,上述方法均不适用。另外,针对安卓应用流氓行为中的流氓广告的识别,识别并获取安卓应用中展示给用户的广告是十分关键的一个步骤。目前针对安卓应用中广告的获取,主要采用流量分析技术,从流量中识别接收到的广告,然而这种方法收集的广告不能保证是展示给用户的广告,因为应用接收到的广告不一定会呈现给用户。另一种安卓应用中的广告获取方法不直接收集广告,而是根据界面发出的请求中是否含有获取和接收广告的相关函数名,并结合界面组件特征识别广告界面,然而这种方法仅仅能够识别包含广告的界面,不能将界面中的非全屏广告提取出来,即只能够检测到应用界面中包含广告,但是不能检测到广告所在的位置,也不能把广告从应用界面上截取出来进行分析,因而不适用于针对诱导用户点击广告的识别。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种安卓应用流氓行为的识别方法及系统,其目的在于解决由于安卓应用流氓行为不具备一些特定的函数调用模式和数据流方面的特征,而导致的现有技术不能精确识别影响用户体验的流氓行为的技术问题。为实现上述目的,第一方面,本专利技术提供了一种安卓应用流氓广告的识别方法,包括以下步骤:S11、动态运行和遍历待识别的安卓应用,获取安卓应用运行时的界面状态转换图;其中,界面状态转换图包括:安卓应用运行过程中的界面、触发界面状态转换的操作事件和界面组件树信息;S12、从界面状态转换图中选取一个未识别的界面作为当前界面;S13、采用预训练好的广告目标检测模型检测当前界面中的广告及其所在的位置,若未检测到,则当前界面不存在流氓广告,转至步骤S15;否则,基于广告所在的位置,从当前界面中提取出各广告后,转至步骤S14;S14、判断当前界面中的广告是否为包含诱导点击内容的广告、包含覆盖可点击组件的广告以及应用退出时的广告中的至少一种类型的广告,若是,则判定该安卓应用存在流氓广告,识别结束;否则,该界面不存在流氓广告,转至步骤S15;S15、判断是否已完成对界面状态转换图中的所有界面的流氓广告识别,若是,转至步骤S16,否则,转至步骤S12;S16、若安卓应用运行过程中的所有界面均不存在流氓广告,则该安卓应用不存在流氓广告;否则,该安卓应用存在流氓广告;其中,广告目标检测模型为RetinaNet网络。进一步优选地,上述RetinaNet网络的主干网络为Xception网络。进一步优选地,上述步骤S1中,采用深度优先遍历策略动态运行安卓应用,遍历过程中不执行包含“更新”或“升级”含义文本的组件对应的操作事件,并记录界面状态转换图。进一步优选地,在判断当前界面上的广告是否为包含诱导点击内容的广告时,采用图像文字识别API识别当前界面各广告中的文字,得到广告语,并输入到预训练好的广告语分类模型中,判断广告语是正常广告语还是包含诱导点击内容的广告语;若各广告语中至少有一个是包含诱导点击内容的广告语,则判定当前界面上的广告为包含诱导用户点击内容的流氓广告;否则,当前界面上的广告不为包含诱导用户点击内容的流氓广告;其中,广告语分类模型为基于词向量的文本分类模型,用于将广告语分类为正常广告语和包含诱导点击内容的广告语。进一步优选地,判断当前界面上的广告是否为包含覆盖可点击组件的广告的方法,包括以下步骤:S1411、根据当前界面组件树信息提取当前界面的组件特征后,将其输入预训练好的弹框界面分类器中,判断当前界面是否为弹框界面;若是,则转至步骤S1412;否则,当前界面上的广告不为包含覆盖可点击组件的广告,操作结束;S1412、若当前界面上至少存在一个占据该界面面积比例大于预设比例的广告,则转至步骤S1413,否则,当前界面上的广告不为包含覆盖可点击组件的广告,操作结束;S1413、若界面状态转换图中存在当前界面的下一个界面,且下一个界面的ID与当前界面的ID不同,则转至步骤S1414;否则,当前界面上的广告不为包含覆盖可点击组件的广告,操作结束;S1414、按照步骤S1411所述的方法判断下一个界面是否为弹框界面,若是弹框界面,则转至步骤S1415;否则,当前界面上的广告不为包含覆盖可点击组件的广告,操作结束;S1415、根据下一个界面组件树信息,若下一个界面中至少包含一个可点击组件,则当前界面上的广告为包含覆盖可点击组件的广告;否则,当前界面上的广告不为包含覆盖可点击组件的广告。进一步优选地,判断当前界面上的广告是否为应用退出时的广告的方法,包括以下步骤:S1421、尝试在界面状态转换图中获取当前界面之前的第一个界面,若存在这样一个界面,且当前界面之前的第一个界面中存在包含“退出”含义文本的组件,则转至步骤S1422,否则,当前界面上的广告不为应用退出时的广告,操作结束;S1422、尝试在界面状态转换图中获取当前界面之前的第二个界面,若存在这样一个界面,且当前界面之前的第二个界面的ID与当前界面的ID不同,则当前界面上的广告为应用退出时的广告,本文档来自技高网
...

【技术保护点】
1.一种安卓应用流氓广告的识别方法,其特征在于,包括以下步骤:/nS11、动态运行和遍历待识别的安卓应用,获取安卓应用运行时的界面状态转换图;其中,界面状态转换图包括:安卓应用运行过程中的界面、触发界面状态转换的操作事件和界面组件树信息;/nS12、从界面状态转换图中选取一个未识别的界面作为当前界面;/nS13、采用预训练好的广告目标检测模型检测当前界面中的广告及其所在的位置,若未检测到,则当前界面不存在流氓广告,转至步骤S15;否则,基于广告所在的位置,从当前界面中提取出各广告后,转至步骤S14;/nS14、判断当前界面中的广告是否为包含诱导点击内容的广告、包含覆盖可点击组件的广告以及应用退出时的广告中的至少一种类型的广告,若是,则判定该安卓应用存在流氓广告,识别结束;否则,该界面不存在流氓广告,转至步骤S15;/nS15、判断是否已完成对界面状态转换图中的所有界面的流氓广告识别,若是,转至步骤S16,否则,转至步骤S12;/nS16、若安卓应用运行过程中的所有界面均不存在流氓广告,则该安卓应用不存在流氓广告;否则,该安卓应用存在流氓广告;/n其中,广告目标检测模型为RetinaNet网络。/n...

【技术特征摘要】
1.一种安卓应用流氓广告的识别方法,其特征在于,包括以下步骤:
S11、动态运行和遍历待识别的安卓应用,获取安卓应用运行时的界面状态转换图;其中,界面状态转换图包括:安卓应用运行过程中的界面、触发界面状态转换的操作事件和界面组件树信息;
S12、从界面状态转换图中选取一个未识别的界面作为当前界面;
S13、采用预训练好的广告目标检测模型检测当前界面中的广告及其所在的位置,若未检测到,则当前界面不存在流氓广告,转至步骤S15;否则,基于广告所在的位置,从当前界面中提取出各广告后,转至步骤S14;
S14、判断当前界面中的广告是否为包含诱导点击内容的广告、包含覆盖可点击组件的广告以及应用退出时的广告中的至少一种类型的广告,若是,则判定该安卓应用存在流氓广告,识别结束;否则,该界面不存在流氓广告,转至步骤S15;
S15、判断是否已完成对界面状态转换图中的所有界面的流氓广告识别,若是,转至步骤S16,否则,转至步骤S12;
S16、若安卓应用运行过程中的所有界面均不存在流氓广告,则该安卓应用不存在流氓广告;否则,该安卓应用存在流氓广告;
其中,广告目标检测模型为RetinaNet网络。


2.根据权利要求1所述的安卓应用流氓广告的识别方法,其特征在于,所述RetinaNet网络的主干网络为Xception网络。


3.根据权利要求1所述的安卓应用流氓广告的识别方法,其特征在于,所述步骤S1中,采用深度优先遍历策略动态运行安卓应用,遍历过程中不执行包含“更新”或“升级”含义文本的组件对应的操作事件,并记录界面状态转换图。


4.根据权利要求1所述的安卓应用流氓广告的识别方法,其特征在于,在判断当前界面上的广告是否为包含诱导点击内容的广告时,采用图像文字识别API识别当前界面各广告中的文字,得到广告语,并输入到预训练好的广告语分类模型中,判断广告语是正常广告语还是包含诱导点击内容的广告语;若各广告语中至少有一个是包含诱导点击内容的广告语,则判定当前界面上的广告为包含诱导用户点击内容的流氓广告;否则,当前界面上的广告不为包含诱导用户点击内容的流氓广告;
其中,广告语分类模型为基于词向量的文本分类模型,用于将广告语分类为正常广告语和包含诱导点击内容的广告语。


5.根据权利要求1所述的安卓应用流氓广告的识别方法,其特征在于,判断当前界面上的广告是否为包含覆盖可点击组件的广告的方法,包括以下步骤:
S1411、根据当前界面组件树信息提取当前界面的组件特征后,将其输入预训练好的弹框界面分类器中,判断当前界面是否为弹框界面;若是,则转至步骤S1412;否则,当前界面上的广告不为包含覆盖可点击组件的广告,操作结束;
S1412、若当前界面上至少存在一个占据该界面面积比例大于预设比例的广告,则转至步骤S1413,否则,当前界面上的广告不为包含覆盖可点击组件的广告,操作结束;
S1413、若界面状态转换图中存在当前界面的下一个界面,且下一个界面的ID与当前界面的ID不同,则转至步骤S1414;否则,当前界面上的广告不为包含覆盖可点击组件的广告,操作结束;
S1414、按照步骤S1411所述的方法判断下一个界面是否为弹框界面,若是弹框界面,则转至步骤S1415;否则,当前界面上的广告不为包含覆盖可点击组件的广告,操作结束;
S1415、根据下一个界面组件树信息,若下一个界面中至少包含一个可点击组件,则当前界面上的广告为包含覆盖可点击组件的广告;否则,当前界面上的广告不为包含覆盖可点击组件的广告。


6.根据权利要求1所述的安卓应用流氓广告的识别方法,其特征在于,判断当前界面上的广告是否为应用退出时的广告的方法,包括以下步骤:
S1421、尝试在界面状态转换图中获取当前界面之前的第一个界面,若存在这样一个界面,且当前界面之前的第一个界面中存在包含“退出”含义文本的组件,则转至步骤S1422,否则,当前界面上的广告不为应用退出时的广告,操作结束;
S1422、尝试在界面状态转换图中获取当前界面之前的第二个界面,若存在这样一个界面,且当前界面之前的第二个界面的ID与当前界面的ID不同,则当前界面上的广告为应用退出时的广告,否则,当前界面上的广告不为应用退出时的广告。


7.一种安卓应用流氓弹...

【专利技术属性】
技术研发人员:李瑞轩张双敏辜希武李玉华汤俊伟
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1