一种基于敏感行为识别的安卓应用安全性分析方法_4

文档序号:9579543阅读:来源:国知局
Χ+卟其中ωτ用于将向量X映射到高维空间中,向量X为应用的特征向 量,(C0)Tx*+b)为通过训练数据集所找到的最优分类面(X*为满足该超平面的特征向量, 由训练结果得出)。f(x)为应用的安全标签预测值,若f(x) <t,则应用为恶意应用,若 f(x)多t,则应用不是恶意应用。(t由多组实验结果对比决定,一般情况下将f(x)的值规 约到[0,1],t的取值为0· 5。)
【主权项】
1. 一种基于安卓应用源代码敏感行为识别的安卓应用安全性分析方法,其特征在于, 先将安卓应用反编译得到Java代码,根据其Java代码找出代码中的敏感行为,即u(User Interface,用户交互界面)组件会触发何种敏感API对哪些敏感信息进行操作,然后将是 否包含某种敏感行为以及是否包含某种允许请求作为决定安卓应用安全性的特征;分析已 知安全性的安卓应用,得到其特征,使用支持向量机算法对数据集进行训练;根据训练结 果,使用未知安全性的安卓应用的特征值,分析该安卓应用的安全性。2. 根据权利要求1所述的安卓应用源代码敏感行为识别的安卓应用安全性分析方法, 其特征是包括以下步骤: 1) 拆分安卓应用安装包APK文件,反编译其中的dex文件、manifest,xml文件及布局 相关的xml文件,并分析反编译dex所得的代码来获取其中的敏感操作及函数调用关系; 2) 通过分析1)中所得到的敏感操作及函数调用关系,得到敏感行为(UIFun,SenAPI, SenData); 3) 从1)中所得的布局相关的xml文件中提取UI函数所对应的文本信息、UIText,用 于替换敏感行为中的UIFun,并对敏感行为中的冗余信息进行处理; 4) 按照1)到3)的步骤分析数据集内的所有应用(该数据集内应用均从互联网上获 取,应用数量约为30000个),得到安卓应用可能包含的所有敏感行为,将是否包含某种敏 感行为作为安卓应用的特征之一,同时分析应用的manifest,xml文件,得到安卓应用可能 包含的所有允许请求,将是否包含某种允许请求作为安卓应用的特征之一; 5) 为已知安全性的安卓应用数据增添安全性标签,将已知安全性的应用数据构成训练 数据集,使用支持向量机算法对其进行训练,并由此分析预测安卓应用的安全性。3. 根据权利要求2所述的安卓应用源代码敏感行为识别的安卓应用安全性分析方法, 其特征是步骤1)中,获取源代码并进行分析,具体为: 将安卓应用解压,得到dex文件和manifest文件,将dex文件反编译得到jar包,由jar包可获取应用的安卓代码,同时使用工具反编译manifest,xml文件以及与布局相关的 xml文件;根据代码构建CFG控制流图以及函数调用关系图,以便后续的程序分析,具体内 容用Datalog语言(Datalog是一种应用在人工智能及程序分析等领域、具有符号处理和逻 辑推理能力的计算机程序设计语言)表示如下: hasSenAPI(F,SenAPI,L):程序L行处存在函数F,F中调用了敏感API(SenAPI);hasSenData(L,SenData):程序L行处对敏感数据SenData进行了操作; directInvoke(F*,P,L):在程序L行处函数F*直接调用了函数P; indirectInvoke(F*,F'):在事件驱动的环境下,函数F'是F*的最终目标; islntent(Ll,X):程序L1行处定义的参数X的类型是Intent; intentInitial(L2,X,Y):程序L2行处进行了参数X的初始化,且初始化的第一个真 实参数为Y; iCCInV〇ke(F*,L,X):在程序L行处函数F*使用了Intent类型的参数X调用了其它 函数; inComponent(P,Y):函数P在组件Y内。4. 根据权利要求1所述的安卓应用源代码敏感行为识别的安卓应用安全性分析方法, 其特征是步骤2)中,根据分析所得的敏感操作和函数调用关系,通过应用以下Datalog语 言表示的推导规则,可获取安卓应用的敏感行为(UIFun,SenAPI,SenData),其中UIFun代 表与UI相关的函数: invoke(F*,F',L) :_directInvoke(F*,F',L):由于F* 在程序L行处直接调用了P,可以推导出F*在程序L行处调用了F'; invoke(F*,F',L):_islntent(Ll,X)&intentlnitial(L2,X,Y)&iccInvoke(F*,L,X)&inComponent(F',Y):此条规则基于安卓应用中的Intent传递机制,F*在程序L行处 使用了Intent类型的参数X来进行组件内的通讯,X的类型在程序L1行处定义为Intent, X在程序L2行进行初始化,初始化的第一个真实参数为Y,同时组件Y中包含函数F',由此 可推导出F*在程序L行处调用了程序F' ; invoke(F*,F',L) :_invoke(F*,F,L)&indirectInvoke(F,F'):由于F* 在程序L行 处调用了F且F不直接调用F',可以推导出F*在程序L行处间接调用了F'; invoke(F*,F,L) :_invoke(F*,F,L)&invoke(F,F',L'):由于F* 在程序L行处调用 了F且F在程序L'行调用了F',可以推导出F*在程序L行处调用了F'; 以上四条规则为函数之间调用关系的分析; hasSenAction(F*,SenAPI,SenData,L) :_hasSenAPI(F*,SenAPI,L)&hasSenData(L,SenData):由于F*在程序L行处存在SenAPI以及在程序L行处存在SenData,可以推导出 在程序L行处F*使用SenAPI对SenData进行了相关操作; hasSenAction(F*,SenAPI,SenData,L) :-hasSenAction(F',SenAPI,SenData,L')&invoke(F*,F',L):由于在程序L'行处F'使用SenAPI对SenData进行了相关操 作以及F*在程序L行处调用P,可以推导出在程序L行处F*使用SenAPI对SenData进 行了相关操作; 以上两条规则为函数是否会触发敏感行为的分析。5. 根据权利要求1所述的安卓应用源代码敏感行为识别的安卓应用安全性分析方法, 其特征在于步骤3)中,根据反编译所得代码和与布局相关的XML文件,可以得到UI组件 上的文本信息UIText,将敏感行为(UIFun,SenAPI,SenData)中的UIFun替换为其组件上 的文本UIText,如若其组件上没有文本,则记为"NULL" ;如若UIFun本身为NULL,则不进 行任何处理;由于原始数据所提供的信息过于琐碎,还需要进行以下处理:去除UITxet所 包含的标点符号,如若UIText所包含的文本字符数大于n,将UIText记为"Long" ;根据 SenAPI所属的操作种类,将SenAPI替换为所属的SenAct,具体包括:SendMessage(发信 息)、Call(打电话)、Internet(上网)、Install(安装应用)、UseDevice(使用诸如摄像头、 GPS等外设);如若SenAct的值不为Internet,则将其对应的SenData设为"DEFAULT";如若 SenAct的值为Internet,根据其对应的SenData所属的数据类型,将其替换为Message(信 息)、AddressBook(通讯录)、UserAccount(用户账户信息)、SensitiveFile(私密文 件)等。6. 根据权利要求1所述的安卓应用源代码敏感行为识别的安卓应用安全性分析方法, 其特征在于步骤4)中,分析数据集中的安卓应用所包含的敏感行为,将安卓应用是否存在 某种敏感行为(UIText,SenAct,SenData)作为特征之一,若存在该种敏感行为,则特征值 设为"1",否则设为分析数据集中的安卓应用所包含的允许请求,将mainifest文件中 是否存在某种permission请求也作为特征之一:若存在该种permission请求,则特征值 设为"1",否则设为因此,可以将安卓应用的特征表示为:敏感行为特征1,敏感行为特 征2,......,permission请求特征1,permission请求特征2,......;为已知安全性的安卓 应用增添安全性标签:若为恶意应用,则安全性标签设为"〇",否则设为" 1" ;最终得到的一 行数据包括如下信息:安卓应用名称,唯一标识码,敏感行为特征1,敏感行为特征2,……, permission请求特征1,permission请求特征2,......,安全性。7.根据权利要求1所述的安卓应用源代码敏感行为识别的安卓应用安全性分析方法, 其特征在于步骤5)中,将所有包含安全性标签的数据集合构成训练数据集,对其进行训 练,将这些数据视为η维空间中的点(其中η为应用所有特征的数量),使用支持向量机算 法,并结合应用的安全性标签,可以得到一个判断应用是否为恶意应用的超平面。在此基础 上,根据未知安全性安卓应用的特征值,将其视为η维空间中的一个点,观察该点与超平面 的相对位置,判断该应用的安全性。
【专利摘要】本发明提供了一种基于安卓应用源代码敏感行为识别的安卓应用安全性分析方法,包括下列步骤:1)源代码的获取与分析;2)敏感行为的获取;3)UI文本的提取;4)敏感行为数据的处理;5)特征值的选取;6)训练数据集的构成;7)安全性的分析。本发明将UI文本和敏感API之间的联系作为机器学习的特征,有效提高了检测安卓平台恶意应用的准确率。
【IPC分类】G06F21/56
【公开号】CN105335655
【申请号】CN201510606818
【发明人】许蕾, 缪小川, 李言辉, 徐宝文
【申请人】南京大学
【公开日】2016年2月17日
【申请日】2015年9月22日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1