基于Intent通信行为语义图的安卓应用间隐信道检测方法转让专利

申请号 : CN201910832577.1

文献号 : CN110691357B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘伟伟陆明刘员都刘光杰吉小鹏

申请人 : 南京理工大学

摘要 :

本发明公开了一种基于Intent通信行为语义图的安卓应用间隐信道检测方法,包括以下内容:从目标安卓平台中筛选可疑的候选应用集合;通过监控Intent相关函数获取Intent通信事件建立候选应用‑Intent函数调用权重图;对发送广播消息调用行为和接受广播消息调用行为进行关系匹配,建立发送应用‑接收应用关联图;将发送应用‑接收应用关联图分解为多个Intent通信对,提取Intent通信对的行为语义描述向量,并提取通信对中两个应用的敏感权限标志向量,将两个向量合并构成合谋应用特征向量,对该向量进行有监督学习实现应用间隐信道的检测。本发明利用通信特征来描述一对安卓应用程序的合谋窃密行为,具有良好的适用性,适合于运行环境差异较大且训练样本不足情形下的安卓合谋窃密应用检测。

权利要求 :

1.一种基于Intent通信行为语义图的安卓应用间隐信道检测方法,其特征在于,包括以下步骤:步骤1、筛选可疑的候选应用:根据敏感信息读写权限、网络通信权限和是否存在历史Intent通信从目标安卓平台中筛选可疑的候选应用集合;

步骤2、建立候选应用‑Intent函数调用权重图:通过监控Intent相关函数获取Intent通信事件建立候选应用‑Intent函数调用权重图;

步骤3、建立发送应用‑接收应用关联图:对发送广播消息调用行为和接受广播消息调用行为进行关系匹配,建立发送应用‑接收应用关联图;

步骤4、进行应用间隐信道检测:将发送应用‑接收应用关联图分解为多个Intent通信对,提取Intent通信对的行为语义特征即行为语义描述向量,并提取Intent通信对中两个应用的敏感权限标志向量,将所述两个向量合并构成合谋应用特征向量,对该向量进行有监督学习实现应用间隐信道的检测即合谋窃密应用的判定。

2.根据权利要求1所述的基于Intent通信行为语义图的安卓应用间隐信道检测方法,其特征在于,步骤1所述根据敏感信息读写权限、网络通信权限和是否存在历史Intent通信从目标安卓平台中筛选可疑的候选应用集合,具体为:步骤1‑1、解析目标安卓平台中各应用的敏感信息读写权限,包括对短信、联系人、位置、录音及其他隐私信息的访问,若某个应用申请的权限列表中有此类隐私信息访问权限,则将该应用添加至可疑的候选应用集合A;

步骤1‑2、解析目标系统中各应用的网络通信权限,若某个应用存在互联网连接权限,则将该应用添加至可疑的候选应用集合A;

步骤1‑3、通过原生安卓库中的日志库文件对目标安卓平台各应用在历史观测时间内调用与广播通信相关的函数情况进行统计,若某个应用调用了与广播通信相关的函数,将该应用添加至可疑的候选应用集合A。

3.根据权利要求1所述的基于Intent通信行为语义图的安卓应用间隐信道检测方法,其特征在于,步骤2所述通过监控Intent相关函数获取Intent通信事件建立候选应用‑Intent函数调用权重图,具体为:步骤2‑1、在Java API框架层对所有调用Broadcastreceiver类中Intent()和IntentFilter()的应用进行监控,利用本地安卓库android.util.Log进行日志跟踪;所述日志相关文件包括ContextImpl.java、BroadcastReceiver.java、IntentFilter.java、Intent.java中的18个函数,分别标记函数索引为A至R;

步骤2‑2、基于采集的日志信息,对Intent通信行为语义进行提取;设定观测时隙T,建立候选应用‑Intent函数调用权重图GA,F(VA,VF,EA,F),其中,VA为应用节点集合,每个应用节点对应于可疑的候选应用集合A中的一个可疑应用,VF为函数节点集合,每个函数节点对应于日志函数;若在观测时隙T内应用a未调用Intent相关函数b,则这两个节点之间无边连接;反之有边连接,且在设定的观测时隙T内应用a调用Intent相关函数b的次数为对应的应用节点和函数节点之间的边权重EA,F。

4.根据权利要求3所述的基于Intent通信行为语义图的安卓应用间隐信道检测方法,其特征在于,步骤2‑1所述对所有调用Broadcastreceiver类中Intent()和IntentFilter()的应用进行监控具体采用开源工具AOSP进行监控。

5.根据权利要求3所述的基于Intent通信行为语义图的安卓应用间隐信道检测方法,其特征在于,步骤3所述分别对发送广播消息调用行为和接受广播消息调用行为进行关系匹配,建立发送应用‑接收应用关联图,具体为:依据步骤2‑1、步骤2‑2的过程建立发送应用‑接收应用关联图GA,A(VA,EA,A);其中,VA为应用节点集合,EA,A为应用节点间的路径集合;具体过程为:针对每个发送广播消息调用f1,记录本次发送广播消息行为事件的属性集合,包括发送广播消息的时间t1以及限定接收对象的信息receiverPermission;

针对每个接收广播消息调用f2,记录本次接收广播消息行为事件的属性集合,包括接收广播消息的时间t2以及限定接收消息的信息IntentFilter;

针对每个发送广播消息调用f1以及接收广播消息调用f2,若t1

6.根据权利要求5所述的基于Intent通信行为语义图的安卓应用间隐信道检测方法,其特征在于,步骤4所述将发送应用‑接收应用关联图分解为多个Intent通信对,提取Intent通信对的行为语义特征即行为语义描述向量,具体为:步骤4‑1、将发送应用‑接收应用关联图GA,A中存在Intent通信的两个应用节点称为Intent通信对,记为{vA,i,vA,j},vA,i和vA,j分别为图GA,A中的第i个和第j个应用节点;

步骤4‑2、对于每个有边连接的节点对{vA,i,vA,j},提取该对应用节点的通信行为语义特征,包括:假设eA,A(i,j)≥eA,A(j,i);

(1)双向广播通信频次比F1:

F1=eA,A(i,j)/eA,A(j,i)

式中,eA,A(*,·)表示应用节点*到应用节点·的有向边权重;若eA,A(j,i)=0,F1为一个固定上限值;

(2)广播通信频次均值比F2:

F2=eA,A(i,j)/eAVG

式中,eAVG为图GA,A中所有边的权重和与非零边数量和的比值,即:

式中,ne≠0为图GA,A中所有权重非零的边的数量;

(3)敏感权限索引合集Ui,j、差集Di,j和Dj,i;

(4)应用的修正函数调用频次向量:

节点vA,i、vA,j的修正函数调用频次向量分别为si={si,1,...,si,M}、sj={sj,1,...,sj,M},其中,

式中,eA,F(*,·)表示应用节点*到函数节点·的有向边权重,M和N分别为图GA,F中函数节点、应用节点的个数。

说明书 :

基于Intent通信行为语义图的安卓应用间隐信道检测方法

技术领域

[0001] 本发明属于移动平台信息安全领域,特别是一种基于Intent通信行为语义图的安卓应用间隐信道检测方法。

背景技术

[0002] 当前安卓平台各类安全防护工具的窃密检测机制主要针对单个应用,尤其是针对同时具备敏感信息读取和网络连接权限的应用,更是各类安全防护工具重点盯防的目标。为了实现更强的隐蔽性,部分窃密行为开始使用多个软件合谋的方式来实现合谋窃密,将信息获取和网络传输职能分解到多个应用中使得现有的针对单个应用的窃密检测机制失效,相应的代价是此类应用的植入难度随合谋应用数量的增加而大幅提高,通常需要在其中一个应用中增加配合应用的下载广告。合谋窃密应用实施的手段复杂多样,然而其显著特征是相互之间存在隐蔽信道,该隐信道通过读写可共同访问的资源或Intent机制来实现。而目前安卓平台的安全防护工具的窃密检测机制大都针对单个应用。

发明内容

[0003] 本发明的目的在于提供一种针对安卓平台的可检测合谋恶意应用间隐信道的方法,且具有良好适用性,适合于运行环境差异较大且训练样本不足情形下的安卓合谋窃密应用检测。
[0004] 实现本发明目的的技术解决方案为:一种基于Intent通信行为语义图的安卓应用间隐信道检测方法,包括以下步骤:
[0005] 步骤1、筛选可疑的候选应用:根据敏感信息读写权限、网络通信权限和是否存在历史Intent通信从目标安卓平台中筛选可疑的候选应用集合;
[0006] 步骤2、建立候选应用‑Intent函数调用权重图:通过监控Intent相关函数获取Intent通信事件建立候选应用‑Intent函数调用权重图;
[0007] 步骤3、建立发送应用‑接收应用关联图:对发送广播消息调用行为和接受广播消息调用行为进行关系匹配,建立发送应用‑接收应用关联图;
[0008] 步骤4、进行应用间隐信道检测:将发送应用‑接收应用关联图分解为多个Intent通信对,提取Intent通信对的行为语义特征即行为语义描述向量,并提取Intent通信对中两个应用的敏感权限标志向量,将所述两个向量合并构成合谋应用特征向量,对该向量进行有监督学习实现应用间隐信道的检测即合谋窃密应用的判定。
[0009] 本发明与现有技术相比,其显著优点为:1)通过将可疑应用进行配对分解来提取Intent通信特征,特征提取的对象为Intent通信对,解决了基于机器学习的检测方法所面临的样本异构性困难;2)通信对特征提取方法相较于用平台全局应用通信特征可以大幅增加机器学习用的训练样本,且所提取的通信对特征维度较小,在实际应用中具有较强的可实施性,适用于小样本条件下的检测;3)可以监督混杂在正常组件通信中且基本不受安卓自身安全机制的隐信道,与其他安卓隐信道机制相比有着显著的可实施性和效率优势。
[0010] 下面结合附图对本发明作进一步详细描述。

附图说明

[0011] 图1为本发明基于Intent通信行为语义图的安卓应用间隐信道检测方法的流程图。
[0012] 图2为本发明候选应用‑Intent函数调用权重图构建流程示意图。
[0013] 图3为本发明发送应用‑接收应用关联图构建流程示意图。

具体实施方式

[0014] 结合图1,本发明基于Intent通信行为语义图的安卓应用间隐信道检测方法,包括以下步骤:
[0015] 步骤1、筛选可疑的候选应用:根据敏感信息读写权限、网络通信权限和是否存在历史Intent通信从目标安卓平台中筛选可疑的候选应用集合;
[0016] 步骤2、建立候选应用‑Intent函数调用权重图:通过监控Intent相关函数获取Intent通信事件建立候选应用‑Intent函数调用权重图;
[0017] 步骤3、建立发送应用‑接收应用关联图:对发送广播消息调用行为和接受广播消息调用行为进行关系匹配,建立发送应用‑接收应用关联图;
[0018] 步骤4、进行应用间隐信道检测:将发送应用‑接收应用关联图分解为多个Intent通信对,提取Intent通信对的行为语义特征即行为语义描述向量,并提取Intent通信对中两个应用的敏感权限标志向量,将所述两个向量合并构成合谋应用特征向量,对该向量进行有监督学习实现应用间隐信道的检测即合谋窃密应用的判定。
[0019] 进一步地,在其中一个实施例中,步骤1中根据敏感信息读写权限、网络通信权限和是否存在历史Intent通信从目标安卓平台中筛选可疑的候选应用集合,具体为:
[0020] 步骤1‑1、解析目标安卓平台中各应用的敏感信息读写权限,包括对短信、联系人、位置、录音及其他隐私信息的访问,若某个应用申请的权限列表中有此类隐私信息访问权限,则将该应用添加至可疑的候选应用集合A;安卓系统利用权限机制来限制应用程序的功能,将操作和系统资源分别与权限绑定在一起,应用程序必须申请权限才能执行相应的操作或资源访问。安卓的权限机制除了对系统资源、用户隐私信息、系统调用接口进行保护外,也可以用于保障系统组件的安全。使用apktool反编译获得其配置文件。应用程序所有申请的权限都需要在安卓Manifest.xml文件中时限通过Permission标签声明,一个Permission代表一组访问相关的系统资源的权限的集合,要求访问某些资源可以反映一个应用程序的行为特点。通过匹配Manifest文件,可以提取出Permission向量。安卓系统总共规定了151种权限,构建Permission向量,其是值为0或1表示的151维的二进制特征向量。其中每一位都代表着一个对应的权限信息,表明该程序是否申明了对应的权限,对于申请了如下表1中权限的应用,将其添加至候选应用集合A。
[0021] 表1权限信息表
[0022]权限 描述
RECEIVE_BOOT_COMPLETED 允许应用当手机开机时获得开机广播
SYSTEM_ALERT_WINDOW 允许应用创建窗口覆盖在其他应用之上
SEND_SMS 允许应用发送短信
RECEIVE_SMS 允许应用接收短信
READ_SMS 允许应用读取短信
READ_CONTACTS 允许应用读取通讯录
WRITE_SETTINGS 允许应用读写系统设置
INSTALL_PACKAGES 允许应用安装程序
CHANGE_NETWORK_STATE 允许应用改变网络连接状态
[0023] 步骤1‑2、解析目标系统中各应用的网络通信权限,若某个应用存在互联网连接权限(权限中包含INTERNET权限的应用程序),则将该应用添加至可疑的候选应用集合A;
[0024] 步骤1‑3、通过原生安卓库中的日志库文件对目标安卓平台各应用在历史观测时间内调用与广播通信相关的函数情况进行统计,包括对Intent()以及IntentFilter()函数的调用,若某个应用调用了与广播通信相关的函数,将该应用添加至可疑的候选应用集合A。
[0025] 进一步地,在其中一个实施例中,步骤2中通过监控Intent相关函数获取Intent通信事件建立候选应用‑Intent函数调用权重图,具体为:
[0026] 步骤2‑1、在Java API框架层对所有调用Broadcastreceiver类中Intent()和IntentFilter()的应用进行监控,利用本地安卓库android.util.Log进行日志跟踪;日志相关文件包括如下表2所示的ContextImpl.java、BroadcastReceiver.java、IntentFilter.java、Intent.java中的18个函数,分别标记函数索引为A至R;
[0027] 表2日志相关文件
[0028]
[0029]
[0030] 步骤2‑2、基于采集的日志信息,对Intent通信行为语义进行提取;设定观测时隙T,建立候选应用‑Intent函数调用权重图GA,F(VA,VF,EA,F),其中,VA为应用节点集合,每个应用节点对应于可疑的候选应用集合A中的一个可疑应用,VF为函数节点集合,每个函数节点对应于日志函数,共计有18个函数节点;若在观测时隙T内应用a未调用Intent相关函数b,则这两个节点之间无边连接,称为不相邻的;反之有边连接,将向量[T P]赋予应用a对应节点与Intent相关函数b之间的边,T=[T1,...,TN],P=[P1,...,PN],其中Ti为观测时隙T内应用a对Intent相关函数b的第i次调用,Pi为本次调用的函数参数向量;且在设定的观测时隙T内应用a调用Intent相关函数b的次数为对应的应用节点和函数节点之间的边权重EA,F。
[0031] 进一步地,在其中一个实施例中,上述步骤2‑1中对所有调用Broadcastreceiver类中Intent()和IntentFilter()的应用进行监控具体采用开源工具AOSP进行监控。
[0032] 进一步地,在其中一个实施例中,步骤3对发送广播消息调用行为和接受广播消息调用行为进行关系匹配,建立发送应用‑接收应用关联图,具体为:
[0033] 依据步骤2‑1、步骤2‑2的过程建立发送应用‑接收应用关联图GA,A(VA,EA,A);其中,VA为应用节点集合,EA,A为应用节点间的路径集合;具体过程为:
[0034] 针对每个发送广播消息调用f1,记录本次发送广播消息行为事件的属性集合,包括发送广播消息的时间t1以及限定接收对象的信息receiverPermission;
[0035] 针对每个接收广播消息调用f2,记录本次接收广播消息行为事件的属性集合,包括接收广播消息的时间t2以及限定接收消息的信息IntentFilter;
[0036] 针对每个发送广播消息调用f1以及接收广播消息调用f2,若t1
[0037] 进一步地,在其中一个实施例中,步骤4中将发送应用‑接收应用关联图分解为多个Intent通信对,提取Intent通信对的行为语义特征即行为语义描述向量,具体为:
[0038] 步骤4‑1、将发送应用‑接收应用关联图GA,A中存在Intent通信的两个应用节点称为Intent通信对,记为{vA,i,vA,j},vA,i和vA,j分别为图GA,A中的第i个和第j个应用节点;
[0039] 步骤4‑2、对于每个有边连接的节点对{vA,i,vA,j},提取该对应用节点的通信行为语义特征,包括:
[0040] 假设eA,A(i,j)≥eA,A(j,i);
[0041] (1)双向广播通信频次比F1:
[0042] F1=eA,A(i,j)/eA,A(j,i)
[0043] 式中,eA,A(*,·)表示应用节点*到应用节点·的有向边权重;若eA,A(j,i)=0,F1为一个固定上限值;
[0044] (2)广播通信频次均值比F2:
[0045] F2=eA,A(i,j)/eAVG
[0046] 式中,eAVG为图GA,A中所有边的权重和与非零边数量和的比值,即:
[0047]
[0048] 式中,ne≠0为图GA,A中所有权重非零的边的数量;
[0049] (3)敏感权限索引合集Ui,j、差集Di,j和Dj,i;
[0050] (4)应用的修正函数调用频次向量:
[0051] 节点vA,i、vA,j的修正函数调用频次向量分别为si={si,1,...,si,M}、sj={sj,1,...,sj,M},其中,
[0052]
[0053] 式中,eA,F(*,·)表示应用节点*到函数节点·的有向边权重,M和N分别为图GA,F中函数节点、应用节点的个数。
[0054] 将以上四类行为语义特征组合成向量作为每个Intent通信对的行为语义描述。利用该Intent通信对行为语义模型可以利用少量且运行环境有差异的合谋窃密样本实现合谋行为语义的抽取,从而对未知合谋窃密行为进行检测。基于正常操作系统以及植入合谋窃密软件的操作系统所提取的上述行为语义特征,将这些特征输入支持向量机等有监督学习工具来构建可对操作系统是否存在合谋窃密行为进行判定的模型。
[0055] 本发明利用权限特征和通信特征描述一对安卓应用程序的合谋窃密行为,而不针对平台全局特征进行处理,具有良好的适用性,适合于运行环境差异较大且训练样本不足情形下的安卓合谋窃密应用检测。