一种基于K-means聚类的Android平台入侵检测方法

文档序号:9618726阅读:563来源:国知局
一种基于K-means聚类的Android平台入侵检测方法
【技术领域】
[0001] 本发明涉及网络信息安全领域,特别是一种基于K-means聚类的Android平台入 侵检测方法。
【背景技术】
[0002] 随着移动互联网和电子技术的发展,大量基于Android平台的应用和服务也被开 发出来提供给用户使用。智能手机凭借其日益强大的功能、快速的多核处理器和便携的特 点,给人们的生活带来了很大的便利。然而,当智能手机不仅仅提供简单的通话和短信功 能,也要面对各种应用服务时,就不可避免地面临越来越多的安全问题。虽然Android平 台提供的Linux内核安全机制、应用程序权限控制、沙箱机制等安全机制,有效地保护了 Android平台安全,但是由于现有的安全机制具有局限性,而恶意软件不断变种、升级,新的 攻击方法和攻击手段层出不穷,Android平台仍然面临巨大的安全威胁。
[0003] 目前市场上常见的病毒查杀软件已经可以对平台内部数据交换的数据线/存储 卡,数据传输的蓝牙/红外线以及外部网络进行连接的彩信/email/MMS等进行实施的安全 隐患监控。众多的杀毒软件中,大部分都是依靠网络病毒库和远程服务器联网进行云查杀, 没有从手机自身的主动防护能力方面进行考虑和设计,缺乏对未知病毒威胁的判断能力。
[0004] 异常检测的方法已有很多,根据异常可能引起不同特征的变化,提出了不同的检 测方法,如从数据流中提取服务请求,根据服务请求的三个属性:请求类型、请求长度和负 载分布计算异常得分;利用网络流量异常会引起数据包头部特征的分布发生显著变化,弓丨 入特征熵作为异常检测的数据源。这些方法虽然采用了多个特征以提高检测率,但是没有 融合多个特征进行综合评判,仅采用简单的选举法或简单的特征组合公式,而没有任何理 论依据。本发明为了能够融合各维特征的检测信息,降低误报率,将各维特征排列成检测向 量,采用由K-means聚类算法产生的检测模型对各维特征进行综合判断。
[0005] 因此,为了应对Android系统的安全漏洞,提高对恶意软件的防御能力,需要研究 新的Android平台入侵检测方法,该方法应该能够监控Android系统及应用程序的正常运 行,发现网络流量异常时,能够提供报警、卸载恶意软件等反馈,并且能够根据攻击的方式 和手段的变化,进行自适应处理,提高检测能力。

【发明内容】

[0006] 有鉴于此,本发明的目的是提出一种基于K-means聚类的Android平台入侵检测 方法,能够精确的检测出网络流量异常的入侵行为,提高了 Android平台的自主防御能力。
[0007] 本发明采用以下方案实现:一种基于K-means聚类的Android平台入侵检测方法, 具体包括以下步骤:
[0008] 步骤SI :Android流量获取:实时抓取Android手机端数据包,实时计算当前流量 信息值,进而获取到瞬时流量值,构建流量包,建立K-means算法所需的检测向量;
[0009] 步骤S2 :采用自适应流量阈值算法:根据步骤S1获取的流量值观测值的历史数据 建立数学模型、更新数学模型以及确定容许边界,通过所述容许边界来区分网络正常行为 和网络异常行为;
[0010] 步骤S3 :进行数据抓包信息分析:采集Android手机端的数据包信息,对网络数据 包的IP、端口、协议以及TCP标志位这四个维度进行预处理并构造检测向量;
[0011] 步骤S4 :进行基于改进的κ-means算法的流量异常识别:采用基于密度选取初始 聚类中心的改进K-means算法建立流量监控的检测模型对检测向量进行分类,计算出各数 据对象所在区域的数据密度,依据计算出的数据密度将数据集中的数据对象分至k个不同 的密度区域,并从各个密度区域内选出其代表的一个对象作为该密度区域的中心,这k个 密度区域的中心就是初始聚类中心;
[0012] 步骤S5 :进行异常报警:对每个聚类的簇所属的数据进行挖掘,监控到异常信息 后进行自动推送,实现网络流量的实时监控和异常报警处理。
[0013] 进一步地,所述步骤S2具体包括以下步骤:
[0014] 步骤S21 :数据模型的建立:采用平滑数据模型:
[0015] Zt= 0. 25y t !+0. 5yt+0. 25yt+1;
[0016] 对上述数据模型建立的曲线作进一步的平滑处理,再经过中值滤波、求导、阈值处 理、合成信号以及调整信号总体幅度后,获得一条与时间t相关的光滑拟合曲线p (t),表示 观测值的正常行为;
[0017] 步骤S22 :数据模型的更新:p(t)只能表示一天时间内的正常行为,但由于网络的 动态变化特性,网络的正常行为也会因为网络环境的不同而不断变化,因此需要根据最近 的观测值不断刷新网络正常行为的模型,将当天和前一天的网络行为进行融合,得到如下 的关系式:
[0018] p(t) = a [d(t)-p(t-l)]+p(t-l);
[0019] 其中,p(t)表示在t时刻的网络利用率预测值,即正常行为的模型,d(t)表示t 时刻的网络利用率观测值,α是加权常数,可以用于调整数据模型适应局部行为的快慢程 度;
[0020] 步骤S23 :确定容许范围:首先是统计一段时间内,每天同一时刻观测值的标准 差,然后将正常行为模型加上该标准差得到正常行为的上边界,将正常行为模型减去该标 准差得到正常行为的下边界;根据所加的标准差的个数不同,可以得到不同范围的边界。
[0021] 进一步地,所述步骤S3具体包括以下步骤:
[0022] 步骤S31 :定义检测向量为
[0023] Dt=< H ipHportHtcpHsyn> ;
[0024] Hip= D sip/Ddip;
[0025] Hport= D spt/Ddpt;
[0026] Htcp= P tcp/Pip;
[0027] Hsyn - P syn/Psyn+ack;
[0028] 其中,DS1P、Ddip分别为单位时间内不同的源IP地址数目、目的IP地址数目;D spt、 Ddpt分别为单位时间内不同的源端口号数目、目的端口号数目;Ptcp、Pip分别表示在单位时间 内TCP报文和IP报文的统计数;PSYN、PSYN+ACK分别为单位时间内SYN和SYN+ACK的报文数;
[0029] 步骤S32 :发生超出自适应阈值流量时,将抓取的最近的数据包,构建检测向量进 行基于K-means的流量异常识别。
[0030] 进一步地,所述步骤S4具体包括以下步骤:
[0031] 步骤S41 :在经典K-means算法的基础上,采用t-邻域密度的方法来选择初始聚 类中心;用t-邻域密度方法选择k个初始聚类中心;
[0032] 步骤S42 :为样本集X中的每一个数据对象,找到与它距离最小的聚类中心,并将 这个对象划分入该聚类中心所属的簇中;
[0033] 步骤S43 :等到样本集X中所有对象都各自划分入一个簇之后,对新得到的每个簇 重新计算其新的聚类中心;一个簇的聚类中心计算公式如下:
[0035] 其中,Mj表示第j个簇,Z j表示第j个簇的聚类中心,N j表示第j个簇中的对象个 数,y表示属于第j个簇的对象。
[0036] 进一步地,所述步骤S41具体包括以下步骤:
[0037] 步骤S411 :计算搜索半径t,采用公式:
[0038] t = Dmax/ (m*K);
[0039] 其中,D_为数据样本集中对象间距离的最大值,m为一个调整的参数值,需通过实 验进行调整,K为所要选择的初始聚类中心个数;
[0040] 步骤S412 :计算样本集中任意两个对象&与X j的距离d lj:
[0042] 其中,p表示数据对象的维数或属性数,X1P表示第i个数据对象的第p个维值或 属性值;
[0043] 步骤S413 :计算父;的t-邻域密度a i;
[0044] 步骤S414 :根据每个对象的ai值大小,对对象按降序进行排序,得到新的样本集 X',其中,当i < j时,必有ai'彡a' j;
[0045] 步骤 S415 :令 i = 1 ;
[0046] 步骤S416 :在X'中,找出第一个a'辛0的对象,将其作为第i个初始聚类中心, 其中i彡k ;
[0047] 步骤S417 :在X'中,找出第i个初始聚类中心及其t-邻域中的所有对象,并将它 们的a'值置为0;
[0048] 步骤 S418 :另 i = i+Ι ;
[0049] 步骤S419 :若i>k,则跳至步骤S42 ;否则,则跳回步骤S416。
[0050] 与现有技术相比,本发明有以下有益效果:
[0051] 1、采用改进K-means聚类算法产生的检测模型对各维特征进行综合判断,能降低 误报率,利用滑动窗口机制计算各维特征的局部均值偏差,保证在实时动态变化的网络流 量中检测的准确性。
[0052] 2、网络流量在不同时间内可能呈现出的流量突变情况,改进的自适应流量阈值算 法,能够实时监测网络流量。
【附图说明】
[0053] 图1为本发明的方法流程图。
[0054] 图2为发明的自适应流量阈值算法的流程图。
[0055] 图3为本发明改进的K-means算法流程图
【具体实施方式】
[0056] 下面结合附图及实施例对本发明做进一步说明。
[0057] 如图1所示,本实施例提供了一种基于K-means聚类的Android平台入侵检测方 法,具体包括以下步骤:
[0058] 步骤SI :Android流量获取:实时抓取Android手机端数据包,实时计算当前流量 信息值,进而获取到瞬时流量值,构建流量包,建立K-means算法所需的检测向量;
[0059] 步骤S2 :采用自适应流量阈值算法:根据步骤S1获取的流量值观测值的历史数据 建立数学模型、更新数学模型以及确定容许边界,通过所述容许边界来区分网络正常行为 和网络异常行为;
[0060] 步骤S3 :进行数据抓包信息分析:采集Android手机端的数据包信息,对网络数据 包的IP、端口、协议以及TCP标志位这四个维度进行预处理并构造检测向量;
[0061] 步骤S4 :进行基于改进的K-means算法的流量异常识别:采用基于密度选取初始 聚类中心的改进K-means算法建立流量监控的检测模型对检测向量进行分类,计算出各数 据对象所在区域的数据密度,依据计算出的数据密度将数据集中的数据对象分至k个不同 的密度区域,并从各个密度区域内选出其代表的一个对象作为该密度区域的中心,这k个 密度区域的中心就是初始聚类中心;
[0062] 步骤S5 :进行异常报警:对每个聚类的簇所属的数据进行挖掘,监控到异常信息 后进行自动推送,实现网络流量的实时监控和异常报警处理。
[0063] 在本实施例中,所述步骤S2具体包括以下步骤:
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1