一种违规APP的相似推荐模型*

2023-01-16 12:25邱秀连彭艳兵
网络安全与数据管理 2022年12期
关键词:图标代码违规

邱秀连,姜 南,陈 前,彭艳兵,程 光

(南京烽火星空通信发展有限公司,江苏 南京 210019)

0 引言

根据中国互联网信息中心发布的第47次《中国互联网发展状况统计报告》显示:截至2020年12月,我国网民规模已达9.89亿,手机网民规模达9.86亿,网民中使用手机上网的比例高达99.7%。移动互联网使用需求的激增带动了移动互联网APP的蓬勃发展。仅Android官方的应用商店Google Play就在2017年中新上架了近一百万个可供下载的应用程序。

APP在不断发展的同时也带来了新的安全隐患,依托APP进行网络诈骗、赌博等违法案件数量不断攀升,其中通过仿冒、重打包等技术手段产出的相似类APP由于其开发成本低、速度快等特点已经成为违法的“重灾区”[1]。阿里首席风险官刘振飞指出95%的热门APP有被仿冒应用的风险,360发布的《2018年双十一购物安全生态报告》显示,一个月时间内虚假仿冒主流购物APP的数量接近4 000个,覆盖设备超过30万个,高仿APP已形成危害用户网络安全的产业链。

1 研究现状

1.1 违规应用的研究现状

Enck等人提出在应用安装时检测应用权限,从而拦截违规应用的安装;Felt等人提出利用API调用分析和权限分析,寻找权限过大(Overprivileged)的应用;Risk Ranker则提出了一个两阶违规应用检测手段,先筛选出具有root行为和可能导致隐私泄露的应用,再找出其中具有危险代码加载行为的应用。

然而,受静态分析方法本身的限制,此类研究在遇到代码混淆时多被影响性能,而动态分析可以很好地规避代码混淆问题[2]。因此,有研究者利用动态分析技术对违规应用进行检测。Taint Droid和Droid Scope均在沙箱中对应用行为进行监视,Taint Droid利用污点分析技术寻找应用的信息泄露行为,Droid Scope则从Android系统的不同层面分析应用的可疑行为。Zhou等人利用应用行为比对与动态加载分析的方式,成功地从5个应用市场的204 040个应用中找出了211个违规应用。

无论是静态分析方法或是动态分析方法,都需要人工对违规行为的模式进行验证,因此分析的效率不高[3]。针对此问题,研究者开始利用机器学习技术检测违规应用[4]。Chen等人从大规模数据集中总结出了违规应用的两类特征,再将其用于分类器模型训练。

1.2 相似应用的研究现状

有研究者基于应用指令序列使用模糊哈希的方法提取出应用的摘要信息,如Droid MOSS和Droid Analytics;Centroid为应用中的每个函数构建了三维控制流图,将三维控制流图聚合后,通过检测不同应用在控制图聚合后的质心位置判断应用间的相似程度;还有算法通过比对抽象语义树检测相似应用,如Hanna等人利用K-gram模型对应用的二进制操作码序列进行比对。

亦有研究使用信息可视化方法检测相似应用[5]:View Droid通过重建和比对应用的视图筛出相似应用,Droid Eagle则利用UI布局相似性检测,Kywe等人比对应用中的文本与图像相似性以寻找相似应用,Soh等人分析应用运行时收集的UI信息以检测相似行为。

2 相似APP分析框架

2.1 分析流程

本文首先对APP截图相似、图标相似、作者签名SHA1相同、同真实域名或服务器IP、APP名称相同和静态框架信息相似这六个维度的相似性分别进行分析;其次根据各组相似APP的维度占比情况采用熵值法计算权重并得出综合得分;最后基于异常APP库推荐出异常APP的相似APP,具体分析流程如图1所示。

图1 相似APP分析框架图

2.2 相似维度分析

2.2.1 APP截图相似

本文根据APP动态运行截图,比较APP的首页截图。基于yolov4深度学习算法将图片向量化[6]。

yolov4深度学习模型框架如图2所示。yolov4深度学习算法主要分为4个阶段[7]:(1)输入阶段,输入图像大小为608×608,该阶段通常包含一个图像预处理阶段,即将输入图像缩放到网络的输入大小,并进行归一化等操作。在网络训练阶段,yolov4使用Mosaic数据增强操作提升了模型的训练速度和网络的精度,利用cmBN及SAT自对抗训练来提升网络的泛化性能[8]。(2)Backbone阶段,在不同图像细粒度上聚合并形成图像特征的卷积神经网络。(3)Neck阶段,这是一系列混合和组合图像特征的网络层,并将图像特征传递到预测层。(4)预测阶段,对图像特征进行预测,生成边界框和并预测类别。

图2 yolov4深度学习模型框架

图片经过yolov4提取特征并向量化后,可以基于欧式距离计算两张图片的相似度,数值越小,两张图片的相似度越高[9]。

2.2.2 图标相似

有一种仿冒APP的行为,会将自己的APP的应用图标制作得和真正APP图标很相似或基本一致,只是分辨率会差一些,从而欺骗使用者[10]。本文利用和截图相似的yolov4算法,将所有应用图标训练为向量,并计算相似度,选择图标相似的APP作为推荐。

2.2.3 作者签名SHA1相同

APP在打包上架前需要生成开发者签名证书信息,该签名信息是开发者的唯一标识,在反编译APP源文件过程中可以对签名证书信息进行解析,获取签名信息使用SHA1加密后获得md5标识,利用该唯一标识可以匹配同开发人员APP,从而发现违规APP开发人员开发的其他APP。

2.2.4 同域名且同服务器IP

在自动化安装APP过程中会产生一些动态数据,即HTTP(S)的请求数据,本文根据这些APP的动态数据,利用模型研判推送出当前APP的真实Host(用户使用当前APP,真正提供与用户交互服务所对应的Host地址,非第三方接口,非SDK链接)。如果两个APP真实Host中的二级域名Domain相同,则认为这两个APP很可能是同一运营维护人员。

2.2.5 APP名称相同

仿冒APP会使用与正版APP相同的名称,从而欺骗用户下载,但仿冒APP和正版APP之间的内容、图标和包名不同。通过已有研究,本文将名称相同但包名不同的APP定义为疑似仿冒APP,但是这样可能会关联到真正的被仿冒APP,因此根据包名去主流应用分发平台网站查询,如果能查询到结果,可证实该APP是真实的APP,如果没有查到结果则很有可能是仿冒APP。

2.2.6 静态框架信息相似

静态信息框架相似主要是由APP源文件解析后获得的Manifest.xml文件进行判断,xml文本具有上下文的语义信息,因此可以使用word2vec算法生成代码词向量,并基于欧式距离推荐相似代码。

word2vec算法是一种基于预测的深度学习模型,用于计算和生成高质量的、连续的dense的单词向量表示,并捕捉上下文和语义相似性[11]。word2vec是一种无监督的模型,可以接收大量的文本语料库,创建可能的单词的词汇表,并为表示该词汇表的向量空间中的每个单词生成dense的单词嵌入。基于word2vec算法进行相似代码推荐主要分为以下三个步骤,具体如图3所示。

图3 XML文本相似分析步骤

(1)文本预处理,进行模型训练前需要先对文本进行预处理:

①删除代码标签,提取代码中所有的文本内容,丢弃标签;

②删除特殊字符,使用正则表达式过滤非字母和中文的其他字符;

③文本切词,将长文本切分为中英文片段,再对每个片段判断中英文,对于纯英文片段利用wordninja包切词,对于含有中文的片段,利用jieba包进行切词;

④过滤经常在APP中出现的白名单词汇,例如更新、同意等。

(2)模型训练并计算相似度,将预处理完后的文本输入word2vec算法中进行训练,输出词向量入库,使用欧式距离衡量词向量之间的相似度,扫描并计算数据库中代码词向量距离,输出相似代码。

(3)验证与优化,对输出进行人工验证/相同IP验证(相似代码如果IP相同,那么大概率是正确的),如果准确率不高,则使用负采样、二次采样和调优重点词对word2vec模型进行优化。

2.3 指标评价算法

分析完成以上6个维度后,需要对这些维度进行综合评价,并计算综合得分从而确定整体相似度。本文使用熵值法对该6个维度计算权重,本文数据计算得出的权重如表1所示。

表1 熵值法权重表

3 相似APP实证研究

(1)数据

本文数据来自积累的异常APP库和互联网下载的APP文件:

①异常APP库:6 211个,去重+删去无效APP后5 287个。

②APP累积库数据:30余万个。

(2)实证结果

对APP累计库中的数据进行验证,各个维度相似的结果如表2所示。

表2 各维度相似APP统计表

(3)异常APP验证情况

本文通过对异常APP的积累,构建了异常APP知识库(含有异常APP共5 287个),通过模型对异常APP的相似APP进行关联,发现了的8 233个异常APP。

以异常APP“淘金吧”和“爱聊”为例,相似关系图如图4所示,黑色代表的是异常类APP,灰色代表的是关联出的相似APP。从图中可以发现,异常APP通过多个相似维度关联出了相似APP,同时不同的异常APP和相似APP有相互连接情况,说明这一批APP可能由同一开发者开发。

图4 异常APP相似关系图

4 结论

本文基于图像深度学习算法yolov4、文本分析算法和指标评价算法构建了一种异常APP相似推荐模型,从截图、名称等6个维度出发分别进行相似性分析,并使用熵值法进行综合评价。最终从30余万个APP中发现了5 197个APP存在相似,关联出55 965个相似APP,并基于异常APP库推荐出8 233个异常APP。

猜你喜欢
图标代码违规
违规借调的多重“算计”
违规动火作业致9死18伤
Android手机上那些好看的第三方图标包
创世代码
创世代码
创世代码
创世代码
违规试放存放 爆炸5死1伤
图标
驾照