田 杰,宋礼鹏
(中北大学 大数据学院,山西 太原 030051)
用户身份认证作为计算机及网络系统安全的基础和重要保障手段有着广泛的研究和应用.然而,传统的密码[1]等认证方式难以抵挡来自内部的攻击威胁,因此,人们一直试图寻找一种更加高效的身份认证方法来满足系统安全的需求.近年来,生物识别在认证系统中的应用越来越受到重视,生物特征很难被人模仿和破解,安全性极高.针对生物识别技术的研究主要分为两类:一类是基于生理特征的身份识别,如指纹识别[2]、面部识别[3]、虹膜识别[4]等,但这些识别技术需要特定的硬件支持,需付出昂贵的成本开销;另一类是基于用户行为的身份认证,如步态、鼠标行为等.这其中基于鼠标行为的身份认证技术,不依赖额外的硬件设备,可以在许多计算机系统中直接部署,因此在当前安全研究领域中备受青睐.
在基于用户行为的认证领域,已经有一些工作通过鼠标动态分析来建立身份认证模型,如Zheng Nan等人[5]使用细粒度(点到点)的基于角度的鼠标移动度量来进行用户动态认证,Walid S.[6]通过在电子商务网站上的鼠标跟踪进行用户建模,Camara L.等人[7]通过收集游戏中的鼠标数据进行持续的游戏用户身份认证.这些研究都是在一定的环境限制下进行,虽然能够有效提高认证系统的性能,但是环境限制使得这些研究并不具有普遍的适用性[8].
在文献[9-10]中,沈超等人从人机交互层面上对鼠标行为进行了研究,引入了过程鼠标特性,通过ISOMAP、PCA等降维方法降低鼠标行为的可变性,最终的测试性能达到8.74%的误识率(False Acceptance Rate,FAR)和7.69%的拒识率(False Rejection Rate,FRR).Pawel等人[11]首次融合鼠标动力学与眼球移动两种特征进行生物识别,最终的实验准确率为92.9%.而Penny等人[12]利用深度学习方法,将用户的鼠标移动轨迹图像作为输入建立认证模型,平均AUC(ROC曲线下的面积)最高能达到96%.虽然这些方法没有环境和任务的限制,但是其展现出的认证性能距离实际应用还有很大的提升空间.
本文同样是在完全自由的环境下,从人类的生理特性以及不同用户人机交互过程中的独特习性出发对鼠标行为进行研究.人类行为的可变性使得短时间内的鼠标动态数据难以准确刻画用户独特的行为习惯,导致基于鼠标动态的分类认证效果不理想[13].为此本文首次将窗口行为与鼠标动态行为联合进行分析.每个用户的窗口行为因其工作内容以及习惯的不同,存在很大区别[14-16],窗口行为特征的加入使得认证系统的性能有了很大的提升.在特征工程中提出投票制的特征选择算法去除多余的干扰特征,以进一步降低鼠标行为的变异性.
基于鼠标及窗口行为特征的身份认证的预设前提为:由于主客观因素的影响,每个用户有着区别于其他用户的鼠标使用行为模式.用户的鼠标行为特征可以用来刻画用户不同的行为模式,本文根据鼠标的操作方式将特征分为3种类型:鼠标点击特征、鼠标按键特征、鼠标移动特征,表 1 对其进行了简要概括.
表 1 鼠标行为特征概述
采集器详细地记录了用户操作鼠标的各种事件和相应属性.为了方便描述和计算不同的特征分类,定义了一系列的元组来划分数据并进行如下特征分析,以此来验证本文所提取的鼠标行为特征对区别用户的可行性.
定义 1鼠标按键点击MC
MCi=〈click-typei, timestampi|i≤cn〉,
式中:cn为所有的鼠标点击事件个数;click-type表示鼠标的按键点击类型,包括mouse-left/right/middle/down/up;timestamp表示事件触发时的时间戳(毫秒级).
独特的生理特性会使得每个用户按动鼠标按键的力度不同,从而导致其按下抬起鼠标按键的时间间隔存在差异.本文通过MC数组计算得到每个用户的鼠标按键时间间隔,随机挑选其中3个用户的数据绘制概率分布图来验证这种差异性,如图 1 所示.
从图 1 中可以看出,3个用户的按键时间间隔在一定范围内都近似地服从正态分布,但是其分布曲线并不一致.这充分说明每个用户在按键时间间隔特征上表现出了各自独特的行为模式且互相间存在差异,本文正是通过这种差异性来进行用户识别.
图 1 鼠标点击时间间隔分布拟合曲线
定义 2屏幕点击分布SC
SCi=〈action-typei,positioni,timestampi|i≤n〉,
式中:n为所有的鼠标事件个数;action-type表示所有的鼠标行为(移动和点击);position为当前鼠标事件触发时光标的屏幕坐标,形式为(x,y),整个坐标系的原点在屏幕左上角.
本文借鉴热力图的概念,利用所有的position数据绘制了鼠标点击热力图,通过热力图实现用户在图形界面中点击分布的可视化,如图 2 所示.
(a)用户 1
图 2 中的颜色深浅不同,高亮的色块表示用户频繁点击的区域.可以看出两个用户的鼠标点击分布有很大的区别,用户1频繁点击的区域偏下,而用户2则集中在屏幕中央.两图中左下角区域都呈现高亮,该区域是win10操作系统存放快捷方式的任务栏,该区域的功能性使得几乎所有的计算机用户均会频繁点击,但是因个人设置的不同,高亮的色块分布并不一致.以上分析表明,鼠标点击分布特征能够充分地反映用户独特的鼠标行为模式并以此区分用户.
定义 3鼠标移动序列MMS
MMSi=〈SCi,…,SCi+20|i∈(0,10,20,…),
i≤n-7〉,
其中,SC是上文定义的屏幕点击分布元组.
鼠标移动与鼠标点击行为类似,均会因为人类独特的生物特性而存在差异,本文从用户的鼠标移动行为中提取鼠标移速特征来验证这种差异性的存在.鼠标移速的计算比较复杂.鼠标移动是一套连续性动作,如果直接将数据等份切割,在切割点处会断开前后数据间的连接.因此,本文借鉴Hisham A.Kholidy等人[16]切割命令序列的方法,将数据切割成大小为n的重叠块,使得块i的最后n/2条数据也是块i+1的前n/2条数据,确保了鼠标移动的连续性不被破坏.另一方面,用户在移动鼠标的过程中会出现短暂停留,此停留间隔会对鼠标真实移速的计算产生干扰.因此,在计算时间间隔的过程中,剔除超过1 s的时间间隔和相应的数据块,以此减弱对移速计算的干扰.
将单个重叠块定义为1次鼠标移动序列MMS,该序列移动的距离即为从SCi点到SCi+7点的路径长度Di,移动时间为T.
D=‖positioni+7-positioni‖,
(1)
T=timestampi+7-timestampi,
(2)
Speed=D/T.
(3)
累计分布图能够完整描述一个实数随机变量的概率分布情况,本文通过绘制累积分布曲线的方式来观察不同用户的鼠标移速分布,如图 3 所示.从图中能够看出3条累积分布曲线并不重叠,说明3个用户的鼠标移速概率分布存在差异,这样的分布差异使得鼠标移速特征能够用来区别不同用户.
图 3 鼠标移速累积分布曲线
定义 4鼠标点击窗口CW
CWi=〈action-typei,windownamei,timestampi|
i≤n〉,
式中:action-type表示所有的鼠标行为(移动和点击);windowname为当前鼠标事件下光标所在窗口的窗口名.
在Kholidy 等人[14-16]的研究中,通过分析文件行为[14-15]和命令序列[16]建立用户行为模式,进行异常检测.这些研究结果表明:不同职位或者角色的用户,因为其工作内容和工作方式的不同,使得从各种行为中记录到的文本内容存在明显差异,这种差异能够用来区别伪装者和正常用户.因此,本文从用户的点击窗口行为入手,从活动窗口名中提取文本特征,用来刻画用户独特的行为模式.
实验中从每个用户的CW数组中提取出前十的常用关键词合并为词汇表,然后再从其CW数组中截取相同数量的文本内容,统计词汇表中每个单次的词频.在老师和学生这两个角色中随机选择4个用户,绘制图 4 的词汇直方分布图,横轴为词汇表,竖轴为词频.如图所示,老师角色的用户,“word” “文档”等办公词汇的词频非常高;学生角色的用户,其词汇分布比较广泛,且多集中在“编程”词汇(例如“py”,python文件的后缀)和“上网”词汇(例如:“internet”);同时在相同角色内部不同窗口的使用频率也存在差异.
上述结果明确了用户在点击窗口活动中存在不同的行为模式,本文将这种行为模式与用户的鼠标动态相结合,用来提升短时间身份识别系统的认证性能.
通过对用户鼠标活动的观察,发现即使提供样本的参与者努力保持鼠标操作的统一状态,两个相同的操作之间也可能出现差异.鼠标行为的变异性会严重影响身份识别的准确性.
定义 5鼠标行为的可变性
给定一个参与者U和一个数据集S,S中包含了整个参与者U的鼠标行为数据.从数据集S中提取各行为特征得到特征矩阵f,参与者U鼠标行为的可变性则被定义为特征矩阵f中每个特征向量fi的波动或变化.
变异系数(CV)作为统计学中的一个归一化量度,没有量纲,对数据变化的描述较为客观,所以本文使用CV来测量鼠标行为特征空间的可变性.CV的计算是针对单个用户的样本数据进行的,如果CV(fi)等于0,表示对应的特征没有变化,等于1则表示该特征极其不稳定.
(4)
对于给定的每个用户的特征样本,分别计算每个特征分量的变异系数,然后综合所有的用户计算每个特征的平均变异系数,结果见表 2.表中不乏有变异系数低于0.1的特征分量,也有高达0.9的特征分量,但大多数都集中在0.3左右.这表明用户的鼠标行为确实存在着一定的变异性,而这种特性可能对之后的身份认证性能产生影响.然而,直接删除这些高变异性的特征并不可取,因为鼠标行为的变异性分析只是针对单个用户的特征分量进行的,局部的分析并不能代表其在整个特征空间中的分类性能,直接去除这些特征很可能破坏鼠标行为的整体性.
表 2 各特征分量变异系数
将变异性视作一种噪声引入特征空间,那么降低变异性便转化为降噪问题.特征选择作为特征工程中的一个关键部分,可以有效地降低特征空间的噪声和冗余度,从原始的特征中选择最优的特征组合.
实验研究发现,在不同的特征空间维度下,各种特征选择的方法对于分类器性能的提升效果参差不齐,相互交错,很难辨别其好坏.本文将几种方法相融合使其优势互补,提出了投票制特征选择算法.该算法利用投票制思想,使用较为常见的过滤式及封装式方法进行特征选择实验,统计每次的实验结果,如果相应的特征在经过筛选后没有被剔除,则该特征得1票,再按照得票结果将各特征进行排序,特征选择就是依据各个特征的得票情况来筛选特征.
算法框架如算法1所示.输入原始的特征集X,分别使用过滤式和包裹式方法进行特征选择,函数返回f_result和w_result两种列表,列表中均为布尔值,TRUE表示对应位置特征被保留,相反则说明该特征被剔除.将两种列表添加到预先定义的Result中,最终Result是一个n*m的矩阵.统计Result矩阵中每一列TRUE的个数,据此得出每个特征的投票情况.从特征集X中删除得票数最少的前f个特征对应的列,最终返回筛选后的特征子集F.
算法1:
输入: 特征集X={x1,…,xn},标记空间Y={y1,…,yn}, 剔除的特征个数f
输出:特征子集F
1.Result <-{}
2.If Feature selection algorithm∈ Filter:
3. Foriin range(n):
4. model = filter(method,k=i)
5. model.fit(X,Y)
6. f_result = model.get_ support()
7. Result.append(f_result)
8.If Feature selection algorithm∈ Wrapper:
9. Foriin range(n):
10. model=wrapper(estimator, scoring =‘accuracy’,k=i)
11. model.fit(X,Y)
12. w_result = model.get_ support()
13. Result.append(w_result)
14.sta =(Result==True).sum(axis = 0)
15.sta = sta.sort_values()
16.index= sta.index
17.F=X.drop(list(index))
18.ReturnF
支持向量机由Vapnik等人[17]提出,是在统计学基础上发展起来的一种机器学习方法.它在一定程度上克服了维数灾难和过学习等传统困难,并在文本分类、生物信息、语音识别、信息安全等诸多领域有了成功的应用,是目前泛化能力最强的技术之一[18].根据前期的数据分析等工作,用户的鼠标行为数据是非线性可分的,因此本文最终采用了非线性支持向量机学习方法.
令训练数据集T={(x1,y1),(x2,y2),…,(xn,yn)},其中,xi∈Rn,yi∈{1,0},xi为第i个特征向量,yi为xi的类标记.SVM的基本思想就是求解能够正确划分训练数据集并且几何间隔最大的分离超平面.此时可以将分类问题转化为如下的凸二次规划问题
(5)
i=1,2,…,l;ξi≥0,i=1,2,…,l,
式中:ζ为松弛变量;C为惩罚参数.为求解以上最优化问题,引入拉格朗日函数将该问题转化为对偶性问题,则求解原问题的最优解就转换为求解对偶问题的解.拉格朗日函数为
(6)
式中:α=(α1,α2,…,αl)T为Lagrange乘子向量.这样就得到了与原始问题等价的对偶最优化问题
(7)
0≤αi≤C,i=1,2,…,l.
(8)
式中:K(x)为核函数,本文最终采用的核函数为高斯核函数.
本文基于内网用户在主机端的鼠标行为数据进行研究.为了获取真实的用户行为数据,搭建了完全自由的内网环境,调用底层的window系统命令编写采集器,开机自启并隐藏在后台运行,对用户完全透明.该采集器运行时占用的系统内存为5.6 M,记录的数据以csv的格式存储在用户主机上,定期转储.
实验中选用28位用户(包括老师和学生)3个星期的鼠标行为数据做研究,其中详细记录了用户操作鼠标进行的各种点击和移动事件,记录的数据格式如图 5 所示.图中:MessageName表示鼠标的动作类型,Time表示鼠标事件的触发时间,WindowName表示鼠标指针所在的窗口名称,Position为像素坐标,Wheel表示鼠标滚轮状态.平均每个数据集的大小为149 MB.这28位参与者所配备的显示器均为21.5英寸液晶显示器,分辨率为1 920×1 080,使用的鼠标并未经过任何鼠标设置的改动.
图 5 原始数据
第1节对用户的鼠标行为特征进行了详细分析,实验中需通过进一步计算进行特征量化,从每个会话中提取归一化的特征向量.
首先,针对数值类型的属性,如鼠标按键间隔和鼠标移速,从中提取均值、方差等统计学度量来刻画其整个属性值的分布.但在数据过滤之后,鼠标移速的分布还是呈现正偏态,此时显然无法再使用统计学度量.所以,本文借鉴聚类的思想,对给定的鼠标移速speed的集合D={s1,s2,…,sm},针对聚类所得簇划分C={C1,C2,…,Ck}最小化平方误差
(9)
其次,为了量化鼠标点击分布特征,将屏幕切割成9个区域,计算每个区域的点击分布占比.鼠标按键频率较为简单,可以直接从样本中计算得出.
i=1,2,…,9;
鼠标活动窗口名作为文本数据,这类属性的取值之间没有任何顺序、大小等相关性,可以采用二进制向量表示它们的特征值.先从整体数据中提取N个主关键词作为属性,然后再从用户的单个样本中提取t个副关键词,如果这t个副关键词中出现有与主关键词一致的词,则对应属性处的向量值置1,N和t的值视情况而定.
本文将持续身份认证实验视为二分类问题,即当前计算机用户为合法用户,非本机用户为非法用户,使用SVM分类器构建正常用户的行为模式,用于检测非法用户.实验从两种用户中抽取等量的正负样本进行训练.
为了评测分类器性能的好坏,计算了如下指标:(1)误识率(FAR):表示伪装者被错误识别为正常用户的概率;(2)拒识率(FRR):表示正常用户被识别为伪装者的概率;(3)准确率(accuracy):测试结果与真实值相符合的程度,实验中通过十折交叉验证来计算分类器的平均准确率.
4.4.1 基于SVM的身份认证识别
机器学习中的二分类算法众多,本文从中选择几种在安全领域较为常用的进行了对比分析.实验中将70%的原始样本作为训练集,剩余的30%作为测试集,分别采用高斯核支持向量机、逻辑斯谛回归、随机森林、朴素贝叶斯以及XGBoost共5种二分类器进行分类训练.
图 6 画出了5种分类器的ROC曲线.在二维坐标中,ROC曲线越靠近左上角,相应的分类器性能越好,而当多条ROC曲线交叉难以判断优劣时,较为合理的判断依据是ROC曲线下的面积AUC.从图中可以看出SVM与XGBoost的性能明显优于其他分类器.
图 6 各分类器ROC曲线
表 3 记录了各分类器的评价指标,包括平均FAR(误识率)、FRR(拒识率)、每个用户模型训练均时argtime以及平均AUC.
表 3 分类器评价指标
从实验结果来看,除去高斯贝叶斯分类器,最高为9.17%,5.06%的FAR和FRR验证了基于鼠标行为特征进行身份认证的有效性和可行性.在各分类器中,SVM的FAR和FRR最低,模型训练耗时最少,只有0.084 s,各方面指标均显示SVM高斯核分类器有着最好的性能.本文支持向量机算法中的惩罚系数C=10,核系数g=0.007.
4.4.2 双域特征联合认证模型
在相同的数据集以及样本分割方法下,基于不同的特征进行身份认证,以验证本文融合双域特征的身份认证方法的突出性能.首先,按照本文的方法分别提取鼠标动态行为特征以及窗口行为特征,在各单域特征及双域融合特征下进行实验.然后,在目前最具代表性的鼠标身份认证研究中,采用与本文研究较为接近的shen等人[9-10]的研究方法提取相应的鼠标行为特征进行对比实验,并在其鼠标行为特征上加入窗口行为特征进行进一步认证,最终的实验结果如图 7 和表 4 所示.
图 7 不同特征下的认证模型ROC曲线
表 4 各认证模型的性能评价指标
图 7 和表 4 分别显示了5种特征类型下认证模型的ROC曲线以及FAR、FRR和准确率.从图表中可以看出,使用本文认证方法的分类器ROC曲线更靠近左上角,各项性能指标也均优于其他方法.因此,可以确定,当所有的方法在相同的条件下进行评估时,本文的方法性能最优.并且,与现有的其他基于鼠标行为的身份认证系统[9-12]相比,本文基于鼠标及窗口行为特征的身份认证模型表现出了更低的误报率和漏报率,分别为5.38%和3.16%,准确率可以达到94.2%,平均AUC为0.981.
4.4.3 投票制特征选择
为了验证投票制特征选择算法的优越性以及寻找最佳的特征维度,实验中将最终保留的特征维数设置在40~76之间,分别采用投票制、过滤式以及包裹式特征选择算法进行验证实验.特征空间每减少一维,重复实验30次,每次都随机挑选不同的负样本.
图 8 是分类器的精度曲线.当特征维度低于70维时,单个特征选择算法的精度曲线开始缓慢下降,投票制特征选择算法的曲线有了小幅上升.直到特征维度降到50维以下时,投票制算法的精度曲线有较大幅度的下滑,此时3种特征选择算法的分类器精度均有了很大的损失.因此,在不考虑降维到50维以下的情况时,综合分析,本文的投票制特征选择算法在提高分类器效率方面优于其他两种方法.而从图中可以看出,当特征维度约简到66维时,投票制算法精度曲线达到顶峰,因此,本文将最佳的分类维度设置为66维,也就是2.2节算法中的f=66.
图 8 不同特征选择方法下的分类器精度曲线
另一方面,精度曲线中加入了由标准差绘制的误差棒,误差棒越短,表明分类器的稳定性越好.由图 8 可以看出,投票制算法精度曲线上各个节点的误差棒长度均低于其他两条曲线,这说明相较于其他两种算法,采用投票制特征选择算法筛选后的特征空间更加稳定,这对于提升整个身份认证系统的性能来说是至关重要的.
4.4.4 不同样本分割方法下分类性能对比
实验中定义了一种数据块,单个块即用户的一个样本,其中包括了用户在一段时间内的所有鼠标操作数据.一个数据块的大小代表了系统检测出合法用户和伪装者可以用来攻击的时间窗口,数据块太大,或许攻击已经完成,报警滞后,数据太小,检测精度下降.因此,本文研究了不同数据块下分类器(RBF)的验证性能,从中选择最佳的分割方法.
从表 5 中可以看出,基于时间窗口的样本分割方法实验结果并不理想.原因在于用户的鼠标行为并不会随着时间线均匀分布,所以,每个时间窗口内的数据量多少不一,导致有些数据量极少的窗口分类效果很差.实验结果最佳的方法是基于9 000条数据量的分割,FAR与FRR最低,分类精度最高.事实上,数据量的增长与用户的鼠标操作状态息息相关,例如用户频繁地点击鼠标、转动滚轮等行为会伴随着对应事件数的激增,在样本中的占比也会提高.因此,基于数据量分割的样本空间能够准确地刻画用户当前的行为模式.另外,从表中能够发现,样本容量的增大一定程度上会提升系统的认证精度,因此在许多研究中通过扩增样本来提高身份认证模型的性能,但是这样的做法有损系统的实时性.本文进行了一些模拟实验,让用户在正常状态下浏览网页和文件,数据累积到9 000条平均需要2 min,这个时间基本满足实时检测的要求.
表 5 不同样本分割方法下的分类器性能指标
本文首次将用户的鼠标行为与窗口行为相结合进行分析,提出了一种新的持续身份认证方法.该方法在完全自由的内网环境下采集用户行为数据,提取鼠标动力学及窗口文本双域特征,在特征工程中提出了投票制特征选择算法进行特征筛选,以降低用户行为的变异性.实验结果表明,该方法在开放环境下的认证性能优于当前其他基于鼠标行为的身份认证研究,最终的认证系统非常稳定.
本文的身份认证方法可以在透明的状态下持续地监控计算机系统,根据使用鼠标的行为数据来高效地识别正常用户,且无需额外的硬件设备,克服了当前许多认证方法的弊端.
在未来的工作中,将进一步细化用户的鼠标行为,并结合更多其他的用户行为进行多域融合分析.其次,将从攻击入手揭示当前基于鼠标行为的身份验证系统存在的漏洞,促进其更长远的发展.