一种系统检测方法及装置与流程

文档序号:23821187发布日期:2021-02-03 16:49阅读:66来源:国知局
一种系统检测方法及装置与流程

[0001]
本说明书一个或多个实施例涉及信息安全技术领域,尤其涉及一种系统检测方法及装置。


背景技术:

[0002]
随着计算机、通信、软件技术的飞速发展,各种终端已经得到了普遍应用,终端上安装的应用软件多种多样,然而,有些恶意软件会在用户无感的情况下非法安装,或者从终端非法访问、获取用户数据,甚至利用系统漏洞攻击终端,导致系统异常。为保证终端的数据安全性,在系统运行状态下,需要对系统进行检测,以便及时发现异常,避免对系统造成安全威胁。


技术实现要素:

[0003]
有鉴于此,本说明书一个或多个实施例的目的在于提出一种系统检测方法及装置,能够对系统进行检测。
[0004]
基于上述目的,本说明书一个或多个实施例提供了一种系统检测方法,包括:
[0005]
获取系统的当前运行数据;
[0006]
根据所述当前运行数据,构造当前运行行为向量;
[0007]
根据所述当前运行行为向量,利用预先构建的正常行为向量模型进行检测,得到检测结果;
[0008]
输出所述检测结果。
[0009]
可选的,所述当前运行数据包括系统性能运行参数、处于运行状态的应用的运行参数和网络运行参数;
[0010]
所述根据所述当前运行数据,构造当前运行行为向量,包括:
[0011]
对所述当前运行数据进行数字化处理,得到适于运算处理的运行数据;
[0012]
对于所述运行数据,将在系统运行中存在关联的参数进行合并处理,合并后形成所述当前运行行为向量。
[0013]
可选的,所述系统性能运行参数包括cpu总占用状态、内存总占用状态、总耗电量状态,所述处于运行状态的应用的运行参数包括应用类型、权限的开启状态、cpu占用状态、内存占用状态、耗电量状态,所述网络运行参数包括网络模块开启及连接状态;
[0014]
对所述当前运行数据进行数字化处理,得到适于运算处理的运行数据,包括:
[0015]
按照预先划分的占用等级,将所述cpu总占用状态、所述cpu占用状态赋予对应的等级数值;
[0016]
按照内存占用增加、减少和不变的情况,将所述内存总占用状态、所述内存占用状态赋予对应的状态数值;
[0017]
按照耗电量增幅小、增幅一般和增幅大的情况,将所述总耗电量状态、所述耗电量状态赋予对应的状态数值;
[0018]
按照预设的应用类型,将所述应用类型赋予对应的类型编号;
[0019]
按照权限开启、关闭的情况,将所述权限的开启状态赋予对应的状态数值;
[0020]
按照网络模块开启、关闭及连接、未连接的情况,将网络模块开启及连接状态赋予对应的状态数值。
[0021]
可选的,所述权限的类型包括至少一种,所述网络模块的数量为至少一个;
[0022]
对于所述运行数据,将在系统运行中存在关联的参数进行合并处理,合并后形成所述当前行为向量,包括:
[0023]
将所述cpu总占用状态、内存总占用状态和总耗电量状态合并处理为一个参数;
[0024]
将应用所对应的cpu占用状态、内存占用状态和耗电量状态合并处理为一个参数;
[0025]
将各类型的权限的开启状态合并处理为一个参数;
[0026]
将各网络模块的网络模块开启及连接状态合并处理为一个参数。
[0027]
可选的,所述正常行为向量模型的构建方法包括:
[0028]
预先获取至少一组所述当前运行数据;
[0029]
根据至少一组所述当前运行数据,构造至少一组正常运行行为向量样本;
[0030]
对至少一组正常运行行为向量样本进行聚类分析处理,得到预定分类数量的正常行为特征向量及各正常行为特征向量所对应的聚类半径。
[0031]
可选的,所述根据至少一组所述当前运行数据,构造至少一组正常运行行为向量样本,包括:
[0032]
对至少一组所述当前运行数据进行无效数据过滤,得到过滤后的至少一组有效运行数据;
[0033]
对至少一组有效运行数据进行数字化处理,得到至少一组适于运算处理的运行数据;
[0034]
对于至少一组适于运算处理的运行数据,将在系统运行中存在关联的参数进行合并处理,合并后形成至少一组正常运行行为向量样本。
[0035]
可选的,预先获取至少一组所述当前运行数据为:在采样周期内,每隔预定时间间隔采集所述当前运行数据;
[0036]
对至少一组所述当前运行数据进行无效数据过滤,得到过滤后的至少一组有效运行数据,包括:判断至少一个采样周期内采集的至少一组当前运行数据是否达到预定数量,若否,确定各采样周期内采集的当前运行数据为无效数据;重置采样周期,于重置的采样周期内采集所述当前运行数据,直至各采样周期内采集的当前运行数据达到所述预定数量,将达到预定数量的当前运行数据作为所述有效运行数据。
[0037]
可选的,根据所述当前运行行为向量,利用预先构建的正常行为向量模型进行检测,得到检测结果,包括:
[0038]
计算所述当前运行行为向量与各正常行为特征向量之间的距离;
[0039]
确定与所述当前运行行为向量距离最小的正常行为特征向量;
[0040]
判断所述当前运行行为向量是否位于所述距离最小的正常行为特征向量所对应的聚类半径范围内;若是,则所述当前运行行为向量属于所述距离最小的正常行为特征向量所对应的的正常行为;若否,则所述当前运行行为向量属于异常行为。
[0041]
可选的,所述当前运行行为向量中包括至少一个合并处理后的参数,所述合并处
理后的参数为二进制字符串;
[0042]
计算所述当前运行行为向量与各正常行为特征向量之间的距离包括:对于所述当前运行行为向量中合并处理后的参数与各正常行为特征向量中对应的合并处理后的参数,两参数的差值为对应位不同的个数。
[0043]
本说明书还提供一种系统检测装置,包括:
[0044]
获取模块,用于获取系统的当前运行数据;
[0045]
构造模块,用于根据所述当前运行数据,构造当前运行行为向量;
[0046]
检测模块,用于根据所述当前运行行为向量,利用预先构建的正常行为向量模型进行检测,得到检测结果。
[0047]
输出模块,用于输出所述检测结果。
[0048]
从上面所述可以看出,本说明书一个或多个实施例提供的系统检测方法及装置,通过获取系统的当前运行数据,根据当前运行数据,构造当前运行行为向量,根据当前运行行为向量,利用预先构建的正常行为向量模型进行检测,得到检测结果,输出检测结果。本说明书能够对系统进行实时检测,及时发现异常,整体性能较好。
附图说明
[0049]
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0050]
图1为本说明书一个或多个实施例的方法流程示意图;
[0051]
图2为本说明书一个或多个实施例的装置结构示意图;
[0052]
图3为本说明书一个或多个实施例的电子设备结构示意图。
具体实施方式
[0053]
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
[0054]
需要说明的是,除非另外定义,本说明书一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本说明书一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
[0055]
一些应用场景中,用于检测系统异常的方法主要有基于异常模型、基于误用模型、基于云端模型以及基于知识的时间序列模型的检测方法。基于异常模型的检测方法核心是刻画正常操作的行为特征,并设定偏移量阈值,通过将系统当前行为数据与正常操作的行为特征进行对比分析,计算偏移量是否在偏移量阈值之内而判断系统是否异常,这种方法
需要经常调整参考模型以适应不同的异常行为模型以使模型正确反映正常行为;基于误用模型的检测方法是基于不断丰富的已知攻击行为模式的知识库,对系统当前状态进行判断,从而区分出正常或是异常状态,这种方法的检测结果受限于知识库的更新,无法适于系统实时使用情况;基于云端模型的异常检测方法是于客户端采集系统当前数据,将系统当前数据发送至服务端,由服务端对系统当前数据进行异常检测分析,然后将检测结果返回给客户端,这种方法耗时耗流量,影响系统整体运行效能;基于知识的时间序列模型的异常检测方法是通过对硬件及用户活动状态进行监控,对比正常活动和异常活动的时间趋势,从而判定是否存在异常,这种方法适用于具有持续攻击的场景,较为局限。而且,上述检测方法均未考虑系统运行中各项参数对于系统运行造成的影响。
[0056]
为解决上述问题,本说明书实施例提供一种系统检测方法及装置,综合系统运行过程中的各项参数,建立正常行为向量模型,利用正常行为向量模型对系统当前行为数据进行检测,能够对系统进行实时检测,及时发现异常,整体性能较好。
[0057]
如图1所示,本说明书一个或多个实施例提供一种系统检测方法,包括:
[0058]
s101:获取系统的当前运行数据;
[0059]
本实施例中,在系统运行过程中,实时获取当前运行数据。其中,当前运行数据包括系统性能运行参数、处于运行状态的应用的运行参数、网络运行参数。
[0060]
一些方式中,系统性能运行参数为系统当前运行的各项性能参数,包括但不限于cpu总占用状态、内存总占用状态、总耗电量状态、安装应用数、进程数、前台进程数、服务进程数、后台进程数、空进程数等参数;处于运行状态的应用的运行参数为系统当前运行的各应用的各项参数,包括但不限于应用名称、应用类型、应用标识、进程id、cpu占用状态、内存占用状态、耗电量状态、权限类型及开启状态、流量使用状态、进程数、前台进程数、服务进程数、后台进程数、空进程数等参数;网络运行参数为系统当前运行的网络参数,包括但不限于网络模块开启及连接状态等参数,其中,根据系统所配置的网络模块,确定各种网络模块的当前连接状态,例如,对于车载系统,所配置的网络模块包括但不限于wifi模块、蓝牙模块、移动网络模块等网络模块,网络模块的开启及连接状态可以是wifi模块开启且处于未连接状态,蓝牙模块未开启状态、移动网络模块开启且处于连接状态等情况。
[0061]
s102:根据当前运行数据,构造当前运行行为向量;
[0062]
本实施例中,根据实时获取的当前运行数据,对当前运行数据进行预处理,基于预处理后的当前运行数据,构造包括系统运行中各项参数的当前运行行为向量。
[0063]
s103:根据当前运行行为向量,利用预先构建的正常行为向量模型进行检测,得到检测结果;
[0064]
本实施例中,预先构建出用于检测系统状态的正常行为向量模型,根据实时获取并处理得到的当前运行行为向量和正常行为向量模型,对系统的当前运行状态进行检测,判断是否存在异常,得到系统异常或正常的检测结果。
[0065]
s104:输出检测结果。
[0066]
本实施例提供的系统检测方法,通过获取系统的当前运行数据,根据当前运行数据,构造当前运行行为向量,根据当前运行行为向量,利用预先构建的正常行为向量模型进行检测,得到检测结果,并输出检测结果。本实施例的系统检测方法,能够实时检测系统状态,及时发现异常,提高系统预警能力,且系统整体性能良好。
[0067]
一些实施例中,根据当前运行数据,构造当前运行行为向量,包括:
[0068]
对当前运行数据进行数字化处理,得到适于运算处理的运行数据;
[0069]
对于运行数据,将在系统运行中存在关联的参数进行合并处理,合并后形成当前运行行为向量。
[0070]
本实施例中,对获取的当前运行数据进行预处理,以构造出当前运行向量。对当前运行数据进行预处理包括:对当前运行数据进行数字化处理,得到后续能够进行运算处理的运行数据,之后,将运行数据中存在关联的至少一组参数合并为至少一个参数,合并处理后得到当前运行行为向量。经过预处理后的当前运行行为向量,数据精简,适于后续处理,能够提高数据处理效率。
[0071]
一些实施例中,系统性能运行参数、处于运行状态的应用的运行参数和网络运行参数中的各项参数,有些为可定量描述的参数,有些为可定性描述的参数,需要将各种参数统一进行数字化处理,以便于后续进行运算处理。
[0072]
对当前运行数据进行数字化处理,得到适于运算处理的运行数据,包括:
[0073]
按照预先划分的占用等级,将cpu总占用状态、cpu占用状态赋予对应的等级数值;
[0074]
按照内存占用增加、减少和不变的情况,将内存总占用状态、内存占用状态赋予对应的状态数值;
[0075]
按照耗电量增幅小、增幅一般和增幅大的情况,将总耗电量状态、耗电量状态赋予对应的状态数值;
[0076]
按照预设的应用类型,将应用类型赋予对应的类型编号;
[0077]
按照权限开启、关闭的情况,将权限的开启状态赋予对应的状态数值;
[0078]
按照网络模块开启、关闭及连接、未连接的情况,将网络模块开启及连接状态赋予对应的状态数值。
[0079]
本实施例中,由于采集获取的各项参数的数据格式不统一,为便于后续进行统一运算处理,需要将各项参数按照预定规则进行统一的数字化处理。
[0080]
例如,对于系统性能运行参数,其包括cpu总占用状态、内存总占用状态、总耗电量状态、进程数、前台进程数、服务进程数、后台进程数、空进程数等;其中,进程数、前台进程数、服务进程数、后台进程数和空进程数均为适于运算处理的具体数值,无需进行数字化处理。对于应用的流量使用状态,发送的数据流量和接收的数据流量均为具体数值,无需进行数字化处理。
[0081]
对于cpu总占用状态,由于原始采集的cpu总占用率存在小数点而影响运算效率和准确度,因而预先划分占用等级,将cpu总占用状态赋予对应的等级数值。一些方式中,将cpu总占用率大于50%划分为高损耗等级,对应的等级数值为3,二进制字符串表示为“111”,将cpu总占用率大于25%小于等于50%划分为一般损耗等级,对应的等级数值为2,二进制字符串表示为“011”,将cpu总占用率大于5%小于等于25%划分为低损耗等级,对应的等级数值为1,二进制字符串表示为“001”,将cpu总占用率小于等于5%划分为无损耗等级,对应的等级数值为0,二进制字符串表示为“000”。应用的cpu占用状态按照同样的处理方式进行赋值。
[0082]
对于内存总占用状态,按照与上次采集的内存总占用量相比内存占用增加、减少和不变(变化范围在预定变化范围之内)三种情况,将内存总占用状态划分为增加状态、减
少状态和不变状态,其中,不变状态对应的状态数值为0,二进制字符串表示为“00”,增加状态对应的状态数值为1,二进制字符串表示为“01”,减少状态对应的状态数值为2,二进制字符串表示为“11”。应用的内存占用状态按照同样的处理方式进行赋值。
[0083]
对于总耗电量状态,按照与上次采集的耗电量相比的增加量,将增幅小于预设低幅值划分为增幅小状态,对应的状态数值为0,二进制字符串表示为“00”,将增幅在预设低幅值与高幅值之间划分为增幅一般状态,对应的状态数值为1,二进制字符串表示为“01”,将增幅大于预设高幅值划分为增幅大状态,对应的状态数值为2,二进制字符串表示为“11”。应用的耗电量状态按照同样的处理方式进行赋值。
[0084]
对于应用的应用类型,可划分为系统应用和非系统应用,其中,系统应用对应的类型编号为1,非系统应用的类型编号为0。
[0085]
对于应用的权限类型及开启状态,可根据各项权限的开启或关闭状态赋予对应的状态数值。例如,相机权限的开启状态对应的状态数值为1,关闭状态对应的状态数值为0,通讯录权限的开启状态对应的状态数值为1,关闭状态对应的状态数值为0,地理位置权限的开启状态对应的状态数值为1,关闭状态对应的状态数值为0等。权限的数量、类型及开启状态可根据具体应用的配置进行设置,本实施例不做具体限定。
[0086]
对于网络模块开启及连接状态,按照网络模块开启、关闭及连接、未连接的情况,划分为未开启状态、开启未连接状态和开启且连接状态;其中,未开启状态对应的状态数值为0,二进制字符串表示为“00”,开启未连接状态对应的状态数值为1,二进制字符串表示为“01”,开启且连接状态对应的状态数值为2,二进制字符串表示为“11”。
[0087]
一些实施例中,应用的权限的类型包括至少一种,网络模块的数量为至少一个;可选的,应用的权限的类型包括但不限于相机权限、地理位置权限、通讯录权限等等,系统中配置的网络模块包括但不限于蓝牙模块、移动网络模块、wifi模块等。
[0088]
对于运行数据,将在系统运行中存在关联的参数进行合并处理,合并后形成当前运行行为向量,包括:
[0089]
将cpu总占用状态、内存总占用状态和总耗电量状态合并处理为一个参数;
[0090]
将应用所对应的cpu占用状态、内存占用状态和耗电量状态合并处理为一个参数;
[0091]
将各类型的权限的开启状态合并处理为一个参数;
[0092]
将各网络模块的网络模块开启及连接状态合并处理为一个参数。
[0093]
本实施例中,为精简数据,提高数据处理效率,将存在关联关系的参数进行合并处理。例如,对于系统性能运行参数,系统实际运行状态下,cpu总占用状态、内存总占用状态和总耗电量状态存在关联,不会出现cpu总占用状态处于高损耗状态但内存总占用状态为不变状态、cpu总占用状态处于无损耗状态但内存总占用状态为增加状态、cpu总占用状态处于无损耗状态但内存总占用状态为减少状态等与实际情况不符的情况,因而,可将cpu总占用状态、内存总占用状态和总耗电量状态合并为一个参数。例如,cpu总占用状态表示为“001”,内存总占用状态表示为“01”,总耗电量状态表示为“00”,三项参数合并后表示为“0010100”。同理,可按照相同的处理方式,将应用的cpu占用状态、内存占用状态和耗电量状态合并处理为一个参数。
[0094]
对于各类型的权限,可将各类型的权限的开启状态合并处理为一个参数。例如,相机权限的开启状态为0,通讯录的开启状态为1,地理位置权限的开启状态为1,则合并处理
后的各权限的开启状态表示为“011”。
[0095]
对于各网络模块的网络模块开启及连接状态,可将各网络模块的网络模块开启及连接状态合并处理为一个参数。例如,蓝牙模块的状态表示为“00”,wifi模块的状态表示为“01”,移动网络模块的状态表示为“11”,合并处理后的各网络模块的网络模块开启及连接状态表示为“000111”。
[0096]
于一具体实施例中,获取的当前行为数据为:
[0097]
1)系统性能运行参数:cpu总占用率为50%,内存总占用量为1000mb,总耗电量为50%,安装的应用数为160,进程数为500,前台进程数为100,可见进程数为100,服务进程数为100,后台进程数为100,空进程数为100;
[0098]
2)wifi模块处于连接状态,蓝牙模块处于开启未连接状态,移动网络模块未开启;
[0099]
3)处于运行状态的应用a,应用标识为10100,应用名称为com.autonavi.minimap,应用类型为非系统应用,cpu占用率为20%,内存占用量为180mb,耗电量为1.91,进程id为19671,20405,21177,申请的权限数量为16,接收的数据流量为180mb,发送的数据流量为50mb;前台进程数为0,可见进程数为1,服务进程数为2,后台进程数为0,空进程数为0;
[0100]
对获取的当前行为数据进行数字化处理,得到:
[0101]
cpu总占用状态为“011”,内存总占用状态为“01”,总耗电量状态为“01”;wifi模块的开启状态为“11”,蓝牙模块的开启状态为“01”,移动网络模块的开启状态为“00”;应用a的应用类型为0,cpu占用状态为“001”,内存占用状态为“01”,耗电量状态为“01”,16种权限的开启状态分别为0,1,0,0,1,1,0,0,1,1,0,0,0,1,1,0。
[0102]
将cpu总占用状态、内存总占用状态和总耗电量状态合并处理为“0110101”(cpu&memory&battery),将wifi模块、蓝牙模块和移动网络模块的开启及连接状态合并处理为“110100”(wifi&bluetooth&cellularnetwork),将应用a的cpu占用状态、内存占用状态和耗电量状态合并处理为“0010101”(应用a的cpu&memory&battery),将16种权限的开启状态合并处理为“0100110011000110”;
[0103]
经过预处理后,得到当前运行行为向量为:
[0104]
{“0110101”(对应cpu&memory&battery),“110100”(对应wifi&bluetooth&cellularnetwork),160(对应安装的应用数),500(对应进程数),100(对应前台进程数),100(对应可见进程数),100(对应服务进程数),100(对应后台进程数),100(对应空进程数),0(对应应用a的应用类型),“0010101”(对应应用a的cpu&memory&battery),“0100110011000110”(对应应用a的16种权限的开启状态,每一位表示一种权限的开启状态),180(对应应用a的接收的数据流量),50(对应应用a的发送的数据流量),1(对应应用a的前台进程数),0(对应应用a的可见进程数),2(对应应用a的服务进程数),0(对应应用a的后台进程数),0(对应应用a的空进程数)}。这样,经过预处理后得到的当前运行行为向量,既可以利用系统运行的各项参数表示系统运行状态,又可精简数据,提高后续运算处理效率。
[0105]
一些实施例中,正常行为向量模型的构建方法包括:
[0106]
预先获取至少一组当前运行数据;
[0107]
根据至少一组当前运行数据,构造至少一组正常运行行为向量样本;
[0108]
对至少一组正常运行行为向量样本进行聚类分析处理,得到预定分类数量的正常
行为特征向量及各正常行为特征向量所对应的聚类半径。
[0109]
本实施例中,为检测系统当前运行状态,预先构造正常行为向量模型,根据实时获取的当前运行数据,以正常行为向量模型为准,判断系统运行是否正常。构造正常行为向量模型的方法是:预先获取多组当前运行数据,根据各组当前运行数据,构造多组正常运行行为向量样本,然后对正常运行行为向量样本进行聚类分析处理,得到分类后的至少一种正常行为特征向量以及各正常行为特征向量所对应的聚类半径。后续,在对获取的当前运行数据进行预处理后得到当前运行行为向量后,计算当前运行行为向量与各正常行为特征向量之间的距离,通过计算得到的各个距离,判断当前运行行为向量是否属于其中一种正常行为特征向量,进而得到系统当前运行状态是否为正常。
[0110]
一些实施例中,根据至少一组当前运行数据,构造至少一组正常运行行为向量样本,包括:
[0111]
对至少一组当前运行数据进行无效数据过滤,得到过滤后的至少一组有效运行数据;
[0112]
对至少一组有效运行数据进行数字化处理,得到至少一组适于运算处理的运行数据;
[0113]
对于至少一组适于运算处理的运行数据,将在系统运行中存在关联的参数进行合并处理,合并后形成至少一组正常运行行为向量样本。
[0114]
本实施例中,为构造系统正常运行状态下的正常运行行为向量样本,首先对获取的当前运行数据进行无效数据过滤,保留有效运行数据,然后对有效运行数据进行数字化处理,得到适于运算处理的运行数据,之后,为精简数据量,提高数据处理效率,将具有关联的参数进行合并处理,得到正常运行行为向量样本。
[0115]
一些实施例中,预先获取至少一组当前运行数据为:在至少一个采样周期内,每隔预定时间间隔采集当前运行数据;则,
[0116]
对至少一组当前运行数据进行无效数据过滤,得到过滤后的至少一组有效运行数据,包括:判断各采样周期内采集的当前运行数据是否达到预定数量,若否,确定各采样周期内采集的当前运行数据为无效数据;重置采样周期,于重置的采样周期内采集当前运行数据,直至各采样周期内采集的当前运行数据达到预定数量,将达到预定数量的当前运行数据作为有效运行数据。
[0117]
本实施例中,为构建正常行为向量模型,需采集有效的当前运行数据,以保证得到的正常行为向量模型能够体现系统正常运行状态。对于当前运行数据的无效数据过滤方法是,对于在不同采样周期内采集获取的当前运行数据,判断数据量是否达到了预设数量,若未达到,则各采样周期内采集的当前运行数据全部为无效数据,需要重置采样周期,重新采集获取当前运行数据,直至各采样周期内所获取的当前运行数据的数据量达到预设数量,则各采样周期内的当前运行数据为有效运行数据,可对有效运行数据继续进行后续处理。一些方式中,不同采样周期的时长可以相同或者不同,不同采样周期之间的时间间隔可以相同或者不同,同一个采样周期内采集当前运行数据的时间间隔可以相同或者不同。
[0118]
本实施例中,考虑到不同的系统在运行过程中受到的影响因素不同,在当前运行数据的采集过程中可能会因不利因素影响而造成运行中断,无法获取到预定数量的当前运行数据,此种情况下,认为系统运行异常,所采集获取的当前运行数据作为无效数据,不进
行后续处理。例如,车载系统在运行过程中,会受到使用空间有限、外界震荡大、散热难、电磁干扰等环境因素的影响,以及系统版本、车载应用品质、驱动性能等性能因素的影响,出现系统中断运行的情况,此种情况下,在采样周期内获取的当前运行数据并不完整,无法准确表征系统正常运行状态,为构建能够体现系统正常运行状态的正常行为向量模型,需将无效数据去掉,仅保留系统正常运行状态下的当前运行数据,以构建准确的正常行为向量模型。
[0119]
一些实施例中,根据当前运行行为向量,利用预先构建的正常行为向量模型进行检测,得到检测结果,包括:
[0120]
计算当前运行行为向量与各正常行为特征向量之间的距离;
[0121]
确定与当前运行行为向量距离最小的正常行为特征向量;
[0122]
判断当前运行行为向量是否位于距离最小的正常行为特征向量所对应的聚类半径范围内;若是,则当前运行行为向量属于距离最小的正常行为特征向量所对应的的正常行为;若否,则当前运行行为向量属于异常行为。
[0123]
本实施例中,通过计算当前运行行为向量与每个正常行为特征向量之间的距离,确定出与当前运行行为向量距离最小的正常行为特征向量,之后,判断当前运行行为向量是否在距离最小的正常行为特征向量的聚类半径范围之内,若是,则将当前运行行为向量归类为该正常行为特征向量所对应的正常行为,系统当前运行正常,若否,则当前运行行为向量不属于任意一种正常行为,系统当前运行异常,可进一步进行预警提醒。这样,在系统运行过程中,可利用实时获取的当前运行数据,以正常行为向量模型为准检测系统运行是否正常。
[0124]
一些实施方式中,在得到检测结果之后,输出检测结果。例如,检测结果为正常行为,可显示输出当前系统的基本运行参数和检测结果;或者,检测结果为异常行为,可显示输出与距离最小的正常行为特征向量之间的正常行为,与该正常行为之间存在差异的参数等,从而实现预警作用。
[0125]
举例来说,正常情况下,当某应用点击按钮后应跳转到下一界面,检测结果为正常行为;异常情况下,利用应用存在的漏洞,将正常应用替换为含有恶意代码的版本,点击按钮后,在用户无感知的情况下,后台开始下载软件、访问某一链接增加其浏览次数或向远程服务器回传通讯录等隐私信息,当前行为数据中的流量使用状态明显增加,当前运行行为向量未归类于任意一个正常行为特征向量,在用户界面,重点向用户警示流量消耗异常现象,并展示正常流量消耗与异常流量消耗数值对比。
[0126]
一些实施例中,当前运行行为向量中包括至少一个合并处理后的参数,合并处理后的参数为二进制字符串;
[0127]
计算当前运行行为向量与各正常行为特征向量之间的距离包括:对于当前运行行为向量中合并处理后的参数与各正常行为特征向量中对应的合并处理后的参数,两参数的差值为对应位不同的个数。
[0128]
本实施例中,由于当前运行行为向量与正常行为特征向量中存在经过合并处理的二进制字符串形式的参数,对于合并处理的参数,将两参数对应位不同的个数作为两参数的差值。例如,当前运行行为向量中的参数cpu&memory&battery为“0110101”,正常行为特征向量中的参数cpu&memory&battery为“0010101”,则两个参数的对应位不同的个数为1,
二者的差值为1。
[0129]
对于向量中未做合并处理的参数,可通过计算欧式距离确定当前运行行为向量与正常行为特征向量之间的距离。
[0130]
一些实施方式中,基于至少一组正常运行行为向量样本,预设聚类数量k,进行k-means聚类分析处理,得到k种正常行为特征向量及各正常行为特征向量所对应的聚类半径。具体的:
[0131]
选取聚类数量k作为初始中心的个数,确定密度峰值点为初始中心点,从至少一组正常运行行为向量样本中选取k个样本作为初始状态下k个簇的特征。其中,密度峰值点定义为若待聚类点集中于某个点,相对于其周围点更靠近中心位置的点,且该点与比它密度更大的点的距离相对较远。
[0132]
计算密度峰值点的方法是,确定所选取出的正常运行行为向量样本中每个点(点即正常运行行为向量)的点密度ρ
i
,以及每个点到更高密度点的最短距离γ
i
,其中,
[0133]
点i的点密度ρ
i
的计算公式为:
[0134][0135]
其中,
[0136][0137][0138]
其中,n为正常运行行为向量样本的数量,d
<i,j>
为点i与点j之间的距离的平均值。
[0139]
点i到更高密度点的最短距离γ
i
的计算公式为:
[0140][0141]
γ
i
一般为点i到其他点的最远距离,只有当点i的点密度ρ
i
最大时,γ
i
为点i到其他点的最远距离。
[0142]
根据点密度ρ
i
和最短距离γ
i
,计算密度距离参数:
[0143]
ζ
i
=ρ
i
·
γ
i
ꢀꢀꢀ
(5)
[0144]
根据式(5),点密度越大,与更高密度点的距离越远,密度距离参数越大,成为密度峰值点的可能性越大,所选取出的密度峰值点可作为初始中心点,用于表征各簇的特征。
[0145]
确定k个簇的初始中心点之后,将至少一组正常运行行为向量样本中的剩余样本加入训练过程中,计算每个点与初始中心点之间的距离,根据计算结果,将点加入距离最小的初始中心点所属的簇中。其中,计算两点之间的距离的公式为:
[0146][0147]
当至少一组正常运行行为向量样本中的每个点均加入到所属的簇中之后,计算每个簇中的各正常运行行为向量的加和平均值,将计算结果作为簇的更新后的中心点,计算更新后的中心点与初始中心点之间的距离,重复上述中心点更新过程,当更新后的中心点与前次中心点的距离小于预设值或者迭代次数达到预设次数值时,停止聚类中心的迭代,簇划分结束,得到k个簇及k个簇的中心点,对于每个簇,确定中心点与距离中心点最远的点之间的距离,作为该簇的半径,最终,得到k个簇及k个簇的簇半径,即得到分类后的k类正常行为。
[0148]
一些方式中,聚类数量k、迭代次数等参数的选取可结合系统正常行为分类,结合参数选取经验进行选取,并通过多次测试确定出效果最好的参数。例如,聚类数量k可以依次选取多个取值进行聚类分析计算,分别得到对应的分类模型,然后通过利用手肘法确定出最合适的k值。
[0149]
本说明书的系统检测方法,可通过实时获取系统的当前运行数据,利用预先构建的正常行为向量模型进行检测,得到系统正常或异常的检测结果,能够实时检测系统状态,及时发现异常,提高系统预警能力,而且,可定期或根据需要基于系统的当前运行数据,更新调整正常行为向量模型,使得正常行为向量模型适于系统实际运行情况,还可以根据异常行为的检测结果发现可能存在的新型攻击方式,数据精简,处理效率高,系统整体性能良好。
[0150]
需要说明的是,本说明书一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本说明书一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
[0151]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0152]
如图2所示,本说明书还提供一种系统检测装置,包括:
[0153]
获取模块,用于获取系统的当前运行数据;
[0154]
构造模块,用于根据当前运行数据,构造当前运行行为向量;
[0155]
检测模块,用于根据当前运行行为向量,利用预先构建的正常行为向量模型进行检测,得到检测结果。
[0156]
输出模块,用于输出检测结果。
[0157]
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
[0158]
上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施
例的有益效果,在此不再赘述。
[0159]
图3示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
[0160]
处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
[0161]
存储器1020可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
[0162]
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
[0163]
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
[0164]
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
[0165]
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
[0166]
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0167]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本说明书一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
[0168]
另外,为简化说明和讨论,并且为了不会使本说明书一个或多个实施例难以理解,
在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本说明书一个或多个实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本说明书一个或多个实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本说明书一个或多个实施例。因此,这些描述应被认为是说明性的而不是限制性的。
[0169]
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
[0170]
本说明书一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1