基于机器学习建模的口令脆弱性检测*

2020-12-23 00:28罗鹏宇胥小波刘明春
通信技术 2020年12期
关键词:脆弱性口令字符

罗鹏宇,胥小波,2,罗 怡,刘明春

(1.中国电子科技网络信息安全有限公司,四川 成都 610041;2.中国电子科技集团公司第三十研究所,四川 成都 610041)

0 引言

伴随着互联网技术的飞速发展,便捷网络应用的普及,人们的生活工作方式得到明显的改善,传统的资产越来越网络化、数字化,小到菜市场买菜,大到按揭贷款,基于口令的身份认证成为保护用户信息安全的基本手段。由于口令认证的简洁与遍历,所以广泛应用于人们的日常生活,虽然目前已有大量的身份认证技术,如人脸识别[1]、指纹识别[2]、语音识别、行为识别等,但基于身份认证的实用性、便利性和隐私性考虑,大多网络应用设备仍然把口令认证作为身份认证的唯一识别技术。

口令脆弱性检测是指对口令认证进行安全检查、风险评估和安全量化的评估技术。M 国国防部在口令管理指南中提出基于信息熵[3]的评价指标来对口令脆弱性进行检测,通过信息熵来评价口令的混淆程度,信息熵越高,字符间的混淆程度越高,一般人为的脆弱的口令信息熵低于系统随机生成的口令,可以简易地分辨出系统中的脆弱口令,但无法解决口令混淆或口令重用的问题。为了解决口令混淆的问题,吴宇等提出的基于概率语言模型的口令强度评价方法[4],通过构造马尔可夫链概率模型进行口令评价,可以一定程度上避免口令混淆的影响,从概率结构上检测出用户的相似或重用口令,但是这种方法在模型的执行效率上有待进一步优化。Zxcvbn[5]等人提出的基于流行口令字典和键盘序列的口令评价方法,通过构建一个大规模的流行口令字典,使用爆破轮询的方式查询其中的口令来进行匹配对比,并使用键盘上的字符序列进行关联对比,可以有效识别出像“qwer1234”这类简易键盘字符组合的口令,但对口令变种等问题缺乏识别能力。Aggarwal[6]等人提出的基于概率上下文无关法进行口令评价,通过计算口令上下文概率匹配值,设置阈值来衡量口令的强弱性,可以有效识别口令变种和口令相似的问题,但需要人工经验设置阈值,缺乏必要的可解释性。刘功申[7]等提出的一种大规模口令数据挖掘评价方法,通过构造口令集的统计特征和规则特征进行拟合评分,可以避免传统检验方式缺乏迭代性、过时性的问题,但此方法丢失了口令间的上下文联系等信息。Wang[8]等人提出了口令强度评价算法,建立Trie 树来学习历史口令集,并扩展生成新的口令数据集,通过概率上下文无关法来检测口令的脆弱性概率,可以达到较好的准确度和评价指标,但此方法的后期维护和迭代极其繁琐,缺乏安全维护性。罗华荣[9]提出的基于机器学习技术的口令脆弱性评估,通过基于自然语言处理TF-IDF 技术提取特征,使用逻辑回归算法构建多分类模型,所提方案具有较高的准确度,对一些口令进行实际评测后,模型输出结果比较符合实际情况,但模型过于依赖历史数据的好坏与全面性,缺乏人为经验特征,对未知数据缺乏横向扩展检测能力。

口令认证和用户的生活息息相关,不同生活习性的个体往往会产生不一样的口令认证,且随着时间的推移,口令认证只增不减。现有的基于口令字典和规则检验算法的技术无法有效解决日益增加的口令问题,且对口令混淆、口令变种等问题缺乏横向检测能力,针对这些问题,本文提出基于机器学习建模的集成检测方法,能够从大量口令集合中学习区分安全系数强和安全系数弱的口令组合,通过机器学习的集成学习方式,从海量口令数据中生成系数评分,检测并发现口令脆弱性低,容易被爆破和盗用的口令认证。

1 信息加工及特征工程

特征工程是指从原始数据中提取出具有安全问题的属性值,以简洁明了的信息从另一维度区分出安全问题,将提取后的进行高纬加工的特征属性值传递给机器学习算法模型,方便模型做出正确的抉择。特征工程是机器学习的重要环节,特征提取的好坏直接影响到算法的最终检测结果。本文分别从概率语言和文本分类两个角度构建特征工程,从口令样本中全方位提取出有价值、有意义的信息。

1.1 概率语言特征

通过观察口令强弱性之间的区别,从字符间的概率关系和字符间的前后逻辑顺序设计了下类特征。

1.1.1 常用信息特征

(1)字符种类:将字符分为小写字母、大写字母、数字、符号共四种类型,统计单一口令集包含的字符类型总数。

(2)字符长度:计算口令的有效字符长度。

(3)信息熵:计算口令的信息熵,信息熵计算公式:

式中,x表示随机变量,与之相对应的是所有可能输出的集合,定义为符号集,随机变量的输出用x 表示。p(x)表示输出概率函数。变量的不确定性越大,熵越大,信息量也越大。

1.1.2 Ngram 词频特征

把脆弱性较弱的口令和脆弱性较强的口令出现的n-gram 按照出现频率进行排序,弱口令的n-gram在频率排序里的位置比较靠前,而强口令的n-gram基本上频率都很低;一个由m个词组成的口令字符,希望算得概率P(w1,w2,…,wm),根据链式规则,可得:

利用马尔可夫链的假设,即当前这个词仅仅跟前面几个有限的词有关,这样便可以大幅缩减上述算式的长度,即

可以分别算得一元ngram 模型、二元ngram 模型和三元ngram 模型:

通过统计计算所有口令字符得出三类ngram 模型,分别计算每类ngram 模型的平均值和标准差来作为不同的特征属性值,以达到口令强弱性的区分效果。字符单元越多,对应的频率总数越低,有效的多元字符组合能更好地反映出口令强弱性之间的关联。

1.1.3 Hmm 转移概率特征

如果将口令中出现的字符视为状态,按照弱口令数据训练二阶隐马尔可夫链,即计算从Ai到Ai+1的概率,这个转移概率对于脆弱性强的口令所得到的转移概率有所区别。对于HMM 模型,假设Q是所有可能的隐藏状态的集合,V是所有可能的观测状态的集合,即

式中,N是可能的隐藏状态数,M是所有的可能的观察状态数。对于一个长度为T的序列,I对应状态序列,O对应观察序列,即

任意一个隐藏状态it∈Q,任意一个观察状态ot∈V。根据观察独立性假设,任意时刻的观察状态仅仅依赖于当前时刻的隐藏状态。在时刻t的隐藏状态是it=qn,而对应的观察状态为ot=vm,则该时刻观察状态vm在隐藏状态qn下生成的概率为bj(k),满足:

这样,bj(k)可以组成观测状态生成的概率矩阵B:

此外,在时刻t=1 的隐藏状态概率分布为П:

转移概率HMM 模型,由隐藏状态初始概率分布П,状态转移概率矩阵A和观测状态概率矩阵B决定。П,A决定状态序列,B决定观测序列,一个HMM 模型可以由一个三元组λ表示如下:

转移概率对口令脆弱性的强弱有很好的区分度,泛化来说脆弱性较弱的口令的转移概率普遍较高;反之,脆弱性较强的口令的转移概率普遍较低。通过统计口令集中所有口令的上下文频数,计算口令集中字符的上下文转移概率,在对单个口令集的每个字符进行上下文转移概率计算后,汇总累乘得到单个口令的转移概率,并将此作为转移概率特征。

1.2 文本特征

通过观察口令集,将口令集当做一个简易的文本集合,单个口令看作单个短文本,使用TF-IDF提取文本特征。

TF-IDF 是一种对关键信息的计量统计分析方法,用于评估一个文本中单个词对整个文本或语料集的重要程度。单个词的重要程度和它在单个文本中出现的次数成正比,和它在整个文本集中出现的次数成反比。此方法能有效避免常用字符对口令脆弱性的影响,提高了特殊字符对口令脆弱性的关联。TD-IDF 计算方法如下所示:

式中,TF指的是单个字符在单个口令符中出现的总次数,IDF为逆向口令集频率,整个口令集中包含该字符的口令越少,IDF值越大,说明该字符具有很强的区分能力。IDF等于以e 为底的对数,N为口令集中的口令数,n为包含此字符的口令数。TFIDF的值越大,表示这个字符对整个口令集的重要性越大。

2 算法模型

基于机器学习的口令脆弱性检测的算法思路是采用集成学习的方式进行算法建模,在原始数据分析的基础上,对特征进行提取,分别通过概率语言信息和文本分类提取出包含口令脆弱性的特征,将提取后的特征进行特征分析、特征筛选等操作,再进行随机森林算法和逻辑回归算法的训练、调优,最后将训练好的两个算法模型进行集成融合,整个过程可以视为模型建立。

2.1 随机森林模型

在模型建模过程中,如图1 所示基于决策树构建随机森林分类模型。通过随机采样和特征分裂的方式建立决策模型。随机采样使用了行列采样的方式,行为有放回的重复采样,列为无放回的采样方式。采样过程不断重复树大小的次数,抽样后形成两部分数据,一部分为训练,一部分为评估。选择最佳的特征进行分裂时选择信息增益进行选择。基于随机森林模型进行K 折交叉训练,最终确定模型参数并将生成的模型进行下一步模型预测。模型由默认的10 棵树组成,训练数据和测试数据按照60%比40%划分。

选择最佳的特征进行分裂时选择“信息增益”指标来辅助决策,“信息增益”计算如下:

式中,D为口令训练数据集,A为口令特征划分属性,m为口令集D的分类数目,pi为类别为i的概率,j是基于属性特征A的v个不同的取值。

图1 随机森林算法流程

2.2 逻辑回归模型

逻辑回归模型的建模思路如图2 所示,将口令强度的评估看作是一种二分类问题,对于TF-idf 特征处理后的高维度特征,逻辑回归模型能准确得到概率模型的预测结果。

对于给定的数据样本集合:

决策边界g(x)=wTx+b能很好地反映出条件概率p(y=1|x)对x特定组合的发生概率,得出逻辑回归模型表达式:

逻辑回归模型的数学形式确定后,使用极大似然估计法在口令集中找到一组参数,使得模型在这组参数下的概率值最大,由于y的取值为0 和1,设p(y=1|x)=p(x),p(y=0|x)=1-p(x),则似然函数为:

使用梯度下降法来优化损失函数,目标是找到一个较优方向,使得参数朝这个方向移动之后的损失函数值能够减小。通过对w 求一阶偏导找出下降方向:

式中,k为迭代次数,每次参数更新后,比较||J(wk+1)-J(wk)||小于阈值或者达到最大迭代次数来停止迭代,将求得的参数代入表达式即可得到逻辑回归分类模型。

图2 逻辑回归算法流程

2.3 融合告警

将概率语言特征传递给随机森林算法,通过随机森林算法的训练效率高、引入随机性较多、对数据适应能力强等特性,训练出泛化能力强、横向检测能力高的基于概率语言特征的随机森林模型;将文本特征传递给逻辑回归算法,通过逻辑回归算法的内存资源占用小、可解释性强、分类计算量小等特征,训练出具有上下文联系、安全维护性强的基于文本特征的逻辑回归模型。采用集成学习融合告警的方式完成整个弱口令的检测,如图3 所示通过将两个2 元分类模型整合集成为一个3 元分类模型,避免了单一逻辑回归模型做3元分类时准确率不高、很难处理数据不平衡等问题,也避免了单一随机森林模型做3 元分类时计算复杂、对噪声数据过拟合等问题。融合告警分类模型可以很好地识别口令混淆、口令变种等现象,既融合了概率语言模型泛化能力强的特性,也保留了文本语言模型在口令集中的上下文关联性。当检测未知口令集时,通过人为的概率语言特征和文本前后文关联特征进行特征识别,分别将不同的特征传入随机森林算法和逻辑回归算法,集成学习融合告警来预判未知口令集。

图3 融合告警流程

3 性能测试与分析

训练数据集来源于网上开源、互联网流量采集、安全公司共享等,共计260 万训练数据集,通过数据集本身的标注和安全专家打标评判,训练数据集中包含120 万弱口令数据。将口令集划分为2 档,即弱、强,对标注后的口令进行混淆,按照8 ∶2的分割比例进行训练和验证,并采集线上流量的数据用作模型测试。根据业务需求将口令预测值划分为3 档,即弱、中、强,当随机森林算法和逻辑回归算法都判定待评估口令为弱时,融合告警模型判定为弱;当两个算法只有一个判定为弱时,融合告警模型判定为中;当两个算法都判定为强时,融合告警模型判定为强。随机森林模型、逻辑回归模型、融合告警模型的F1 和roc_auc 评价值如表1 所示。

实验结果表明,仅使用随机森林算法或逻辑回归算法做3 元分类时的效果并不理想,两个模型做2 元分类时较3 元分类具有较高的准确率,当满足业务多元分类的需求时,基于随机森林2 元分类算法和逻辑回归2 元分类算法的融合告警模型具有更高的评价指标。

表1 不同分类指标的F1、roc_auc 评价值

表2 不同评估方法的准确率比较

综上所述,基于机器学习建模的口令脆弱性检测方法如表2所示在检测性能上具有较高的准确率,且有如下特点:具有时序稳定性,对口令混淆变种等具有横向检测能力,易于部署安装,方便后期维护,可解释性强,适应业务与产品的结合,能够更好地找出弱口令,协助安全人员分析,让算法在网络安全运用中落地。

4 结语

本文通过研究基于随机森算法和逻辑回归算法的融合告警模型,实现了口令脆弱性智能检测功能。在口令脆弱性评估检测中引入机器学习算法,基于概率语言特征和文本语言特征建模,大幅提高了口令脆弱性检测能力。该方法能客观地提取口令文本集所包含的信息,加工成特征用于机器算法建立分类模型,具有较低的误报率。现有的检测方式丢失了口令集中的上下文信息,对口令混淆、口令变种等问题的检测性能较差。本文提出的基于机器学习建模的口令脆弱性检测方法在包含口令上下文信息的同时具有很好的横向检测能力,能够较好地完成口令脆弱性评估,更好地解决口令时序检测和口令变种问题,利于算法与安全业务的融合。

猜你喜欢
脆弱性口令字符
工控系统脆弱性分析研究
论高级用字阶段汉字系统选择字符的几个原则
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
高矮胖瘦
基于PSR模型的上海地区河网脆弱性探讨
口 令
基于DWT域的脆弱性音频水印算法研究
好玩的“反口令”游戏