羅鵬宇,胥小波,2,羅 怡,劉明春
(1.中國電子科技網(wǎng)絡(luò)信息安全有限公司,四川 成都 610041;2.中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041)
伴隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,便捷網(wǎng)絡(luò)應(yīng)用的普及,人們的生活工作方式得到明顯的改善,傳統(tǒng)的資產(chǎn)越來越網(wǎng)絡(luò)化、數(shù)字化,小到菜市場(chǎng)買菜,大到按揭貸款,基于口令的身份認(rèn)證成為保護(hù)用戶信息安全的基本手段。由于口令認(rèn)證的簡潔與遍歷,所以廣泛應(yīng)用于人們的日常生活,雖然目前已有大量的身份認(rèn)證技術(shù),如人臉識(shí)別[1]、指紋識(shí)別[2]、語音識(shí)別、行為識(shí)別等,但基于身份認(rèn)證的實(shí)用性、便利性和隱私性考慮,大多網(wǎng)絡(luò)應(yīng)用設(shè)備仍然把口令認(rèn)證作為身份認(rèn)證的唯一識(shí)別技術(shù)。
口令脆弱性檢測(cè)是指對(duì)口令認(rèn)證進(jìn)行安全檢查、風(fēng)險(xiǎn)評(píng)估和安全量化的評(píng)估技術(shù)。M 國國防部在口令管理指南中提出基于信息熵[3]的評(píng)價(jià)指標(biāo)來對(duì)口令脆弱性進(jìn)行檢測(cè),通過信息熵來評(píng)價(jià)口令的混淆程度,信息熵越高,字符間的混淆程度越高,一般人為的脆弱的口令信息熵低于系統(tǒng)隨機(jī)生成的口令,可以簡易地分辨出系統(tǒng)中的脆弱口令,但無法解決口令混淆或口令重用的問題。為了解決口令混淆的問題,吳宇等提出的基于概率語言模型的口令強(qiáng)度評(píng)價(jià)方法[4],通過構(gòu)造馬爾可夫鏈概率模型進(jìn)行口令評(píng)價(jià),可以一定程度上避免口令混淆的影響,從概率結(jié)構(gòu)上檢測(cè)出用戶的相似或重用口令,但是這種方法在模型的執(zhí)行效率上有待進(jìn)一步優(yōu)化。Zxcvbn[5]等人提出的基于流行口令字典和鍵盤序列的口令評(píng)價(jià)方法,通過構(gòu)建一個(gè)大規(guī)模的流行口令字典,使用爆破輪詢的方式查詢其中的口令來進(jìn)行匹配對(duì)比,并使用鍵盤上的字符序列進(jìn)行關(guān)聯(lián)對(duì)比,可以有效識(shí)別出像“qwer1234”這類簡易鍵盤字符組合的口令,但對(duì)口令變種等問題缺乏識(shí)別能力。Aggarwal[6]等人提出的基于概率上下文無關(guān)法進(jìn)行口令評(píng)價(jià),通過計(jì)算口令上下文概率匹配值,設(shè)置閾值來衡量口令的強(qiáng)弱性,可以有效識(shí)別口令變種和口令相似的問題,但需要人工經(jīng)驗(yàn)設(shè)置閾值,缺乏必要的可解釋性。劉功申[7]等提出的一種大規(guī)??诹顢?shù)據(jù)挖掘評(píng)價(jià)方法,通過構(gòu)造口令集的統(tǒng)計(jì)特征和規(guī)則特征進(jìn)行擬合評(píng)分,可以避免傳統(tǒng)檢驗(yàn)方式缺乏迭代性、過時(shí)性的問題,但此方法丟失了口令間的上下文聯(lián)系等信息。Wang[8]等人提出了口令強(qiáng)度評(píng)價(jià)算法,建立Trie 樹來學(xué)習(xí)歷史口令集,并擴(kuò)展生成新的口令數(shù)據(jù)集,通過概率上下文無關(guān)法來檢測(cè)口令的脆弱性概率,可以達(dá)到較好的準(zhǔn)確度和評(píng)價(jià)指標(biāo),但此方法的后期維護(hù)和迭代極其繁瑣,缺乏安全維護(hù)性。羅華榮[9]提出的基于機(jī)器學(xué)習(xí)技術(shù)的口令脆弱性評(píng)估,通過基于自然語言處理TF-IDF 技術(shù)提取特征,使用邏輯回歸算法構(gòu)建多分類模型,所提方案具有較高的準(zhǔn)確度,對(duì)一些口令進(jìn)行實(shí)際評(píng)測(cè)后,模型輸出結(jié)果比較符合實(shí)際情況,但模型過于依賴歷史數(shù)據(jù)的好壞與全面性,缺乏人為經(jīng)驗(yàn)特征,對(duì)未知數(shù)據(jù)缺乏橫向擴(kuò)展檢測(cè)能力。
口令認(rèn)證和用戶的生活息息相關(guān),不同生活習(xí)性的個(gè)體往往會(huì)產(chǎn)生不一樣的口令認(rèn)證,且隨著時(shí)間的推移,口令認(rèn)證只增不減。現(xiàn)有的基于口令字典和規(guī)則檢驗(yàn)算法的技術(shù)無法有效解決日益增加的口令問題,且對(duì)口令混淆、口令變種等問題缺乏橫向檢測(cè)能力,針對(duì)這些問題,本文提出基于機(jī)器學(xué)習(xí)建模的集成檢測(cè)方法,能夠從大量口令集合中學(xué)習(xí)區(qū)分安全系數(shù)強(qiáng)和安全系數(shù)弱的口令組合,通過機(jī)器學(xué)習(xí)的集成學(xué)習(xí)方式,從海量口令數(shù)據(jù)中生成系數(shù)評(píng)分,檢測(cè)并發(fā)現(xiàn)口令脆弱性低,容易被爆破和盜用的口令認(rèn)證。
特征工程是指從原始數(shù)據(jù)中提取出具有安全問題的屬性值,以簡潔明了的信息從另一維度區(qū)分出安全問題,將提取后的進(jìn)行高緯加工的特征屬性值傳遞給機(jī)器學(xué)習(xí)算法模型,方便模型做出正確的抉擇。特征工程是機(jī)器學(xué)習(xí)的重要環(huán)節(jié),特征提取的好壞直接影響到算法的最終檢測(cè)結(jié)果。本文分別從概率語言和文本分類兩個(gè)角度構(gòu)建特征工程,從口令樣本中全方位提取出有價(jià)值、有意義的信息。
通過觀察口令強(qiáng)弱性之間的區(qū)別,從字符間的概率關(guān)系和字符間的前后邏輯順序設(shè)計(jì)了下類特征。
1.1.1 常用信息特征
(1)字符種類:將字符分為小寫字母、大寫字母、數(shù)字、符號(hào)共四種類型,統(tǒng)計(jì)單一口令集包含的字符類型總數(shù)。
(2)字符長度:計(jì)算口令的有效字符長度。
(3)信息熵:計(jì)算口令的信息熵,信息熵計(jì)算公式:
式中,x表示隨機(jī)變量,與之相對(duì)應(yīng)的是所有可能輸出的集合,定義為符號(hào)集,隨機(jī)變量的輸出用x 表示。p(x)表示輸出概率函數(shù)。變量的不確定性越大,熵越大,信息量也越大。
1.1.2 Ngram 詞頻特征
把脆弱性較弱的口令和脆弱性較強(qiáng)的口令出現(xiàn)的n-gram 按照出現(xiàn)頻率進(jìn)行排序,弱口令的n-gram在頻率排序里的位置比較靠前,而強(qiáng)口令的n-gram基本上頻率都很低;一個(gè)由m個(gè)詞組成的口令字符,希望算得概率P(w1,w2,…,wm),根據(jù)鏈?zhǔn)揭?guī)則,可得:
利用馬爾可夫鏈的假設(shè),即當(dāng)前這個(gè)詞僅僅跟前面幾個(gè)有限的詞有關(guān),這樣便可以大幅縮減上述算式的長度,即
可以分別算得一元ngram 模型、二元ngram 模型和三元ngram 模型:
通過統(tǒng)計(jì)計(jì)算所有口令字符得出三類ngram 模型,分別計(jì)算每類ngram 模型的平均值和標(biāo)準(zhǔn)差來作為不同的特征屬性值,以達(dá)到口令強(qiáng)弱性的區(qū)分效果。字符單元越多,對(duì)應(yīng)的頻率總數(shù)越低,有效的多元字符組合能更好地反映出口令強(qiáng)弱性之間的關(guān)聯(lián)。
1.1.3 Hmm 轉(zhuǎn)移概率特征
如果將口令中出現(xiàn)的字符視為狀態(tài),按照弱口令數(shù)據(jù)訓(xùn)練二階隱馬爾可夫鏈,即計(jì)算從Ai到Ai+1的概率,這個(gè)轉(zhuǎn)移概率對(duì)于脆弱性強(qiáng)的口令所得到的轉(zhuǎn)移概率有所區(qū)別。對(duì)于HMM 模型,假設(shè)Q是所有可能的隱藏狀態(tài)的集合,V是所有可能的觀測(cè)狀態(tài)的集合,即
式中,N是可能的隱藏狀態(tài)數(shù),M是所有的可能的觀察狀態(tài)數(shù)。對(duì)于一個(gè)長度為T的序列,I對(duì)應(yīng)狀態(tài)序列,O對(duì)應(yīng)觀察序列,即
任意一個(gè)隱藏狀態(tài)it∈Q,任意一個(gè)觀察狀態(tài)ot∈V。根據(jù)觀察獨(dú)立性假設(shè),任意時(shí)刻的觀察狀態(tài)僅僅依賴于當(dāng)前時(shí)刻的隱藏狀態(tài)。在時(shí)刻t的隱藏狀態(tài)是it=qn,而對(duì)應(yīng)的觀察狀態(tài)為ot=vm,則該時(shí)刻觀察狀態(tài)vm在隱藏狀態(tài)qn下生成的概率為bj(k),滿足:
這樣,bj(k)可以組成觀測(cè)狀態(tài)生成的概率矩陣B:
此外,在時(shí)刻t=1 的隱藏狀態(tài)概率分布為П:
轉(zhuǎn)移概率HMM 模型,由隱藏狀態(tài)初始概率分布П,狀態(tài)轉(zhuǎn)移概率矩陣A和觀測(cè)狀態(tài)概率矩陣B決定。П,A決定狀態(tài)序列,B決定觀測(cè)序列,一個(gè)HMM 模型可以由一個(gè)三元組λ表示如下:
轉(zhuǎn)移概率對(duì)口令脆弱性的強(qiáng)弱有很好的區(qū)分度,泛化來說脆弱性較弱的口令的轉(zhuǎn)移概率普遍較高;反之,脆弱性較強(qiáng)的口令的轉(zhuǎn)移概率普遍較低。通過統(tǒng)計(jì)口令集中所有口令的上下文頻數(shù),計(jì)算口令集中字符的上下文轉(zhuǎn)移概率,在對(duì)單個(gè)口令集的每個(gè)字符進(jìn)行上下文轉(zhuǎn)移概率計(jì)算后,匯總累乘得到單個(gè)口令的轉(zhuǎn)移概率,并將此作為轉(zhuǎn)移概率特征。
通過觀察口令集,將口令集當(dāng)做一個(gè)簡易的文本集合,單個(gè)口令看作單個(gè)短文本,使用TF-IDF提取文本特征。
TF-IDF 是一種對(duì)關(guān)鍵信息的計(jì)量統(tǒng)計(jì)分析方法,用于評(píng)估一個(gè)文本中單個(gè)詞對(duì)整個(gè)文本或語料集的重要程度。單個(gè)詞的重要程度和它在單個(gè)文本中出現(xiàn)的次數(shù)成正比,和它在整個(gè)文本集中出現(xiàn)的次數(shù)成反比。此方法能有效避免常用字符對(duì)口令脆弱性的影響,提高了特殊字符對(duì)口令脆弱性的關(guān)聯(lián)。TD-IDF 計(jì)算方法如下所示:
式中,TF指的是單個(gè)字符在單個(gè)口令符中出現(xiàn)的總次數(shù),IDF為逆向口令集頻率,整個(gè)口令集中包含該字符的口令越少,IDF值越大,說明該字符具有很強(qiáng)的區(qū)分能力。IDF等于以e 為底的對(duì)數(shù),N為口令集中的口令數(shù),n為包含此字符的口令數(shù)。TFIDF的值越大,表示這個(gè)字符對(duì)整個(gè)口令集的重要性越大。
基于機(jī)器學(xué)習(xí)的口令脆弱性檢測(cè)的算法思路是采用集成學(xué)習(xí)的方式進(jìn)行算法建模,在原始數(shù)據(jù)分析的基礎(chǔ)上,對(duì)特征進(jìn)行提取,分別通過概率語言信息和文本分類提取出包含口令脆弱性的特征,將提取后的特征進(jìn)行特征分析、特征篩選等操作,再進(jìn)行隨機(jī)森林算法和邏輯回歸算法的訓(xùn)練、調(diào)優(yōu),最后將訓(xùn)練好的兩個(gè)算法模型進(jìn)行集成融合,整個(gè)過程可以視為模型建立。
在模型建模過程中,如圖1 所示基于決策樹構(gòu)建隨機(jī)森林分類模型。通過隨機(jī)采樣和特征分裂的方式建立決策模型。隨機(jī)采樣使用了行列采樣的方式,行為有放回的重復(fù)采樣,列為無放回的采樣方式。采樣過程不斷重復(fù)樹大小的次數(shù),抽樣后形成兩部分?jǐn)?shù)據(jù),一部分為訓(xùn)練,一部分為評(píng)估。選擇最佳的特征進(jìn)行分裂時(shí)選擇信息增益進(jìn)行選擇?;陔S機(jī)森林模型進(jìn)行K 折交叉訓(xùn)練,最終確定模型參數(shù)并將生成的模型進(jìn)行下一步模型預(yù)測(cè)。模型由默認(rèn)的10 棵樹組成,訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)按照60%比40%劃分。
選擇最佳的特征進(jìn)行分裂時(shí)選擇“信息增益”指標(biāo)來輔助決策,“信息增益”計(jì)算如下:
式中,D為口令訓(xùn)練數(shù)據(jù)集,A為口令特征劃分屬性,m為口令集D的分類數(shù)目,pi為類別為i的概率,j是基于屬性特征A的v個(gè)不同的取值。
圖1 隨機(jī)森林算法流程
邏輯回歸模型的建模思路如圖2 所示,將口令強(qiáng)度的評(píng)估看作是一種二分類問題,對(duì)于TF-idf 特征處理后的高維度特征,邏輯回歸模型能準(zhǔn)確得到概率模型的預(yù)測(cè)結(jié)果。
對(duì)于給定的數(shù)據(jù)樣本集合:
決策邊界g(x)=wTx+b能很好地反映出條件概率p(y=1|x)對(duì)x特定組合的發(fā)生概率,得出邏輯回歸模型表達(dá)式:
邏輯回歸模型的數(shù)學(xué)形式確定后,使用極大似然估計(jì)法在口令集中找到一組參數(shù),使得模型在這組參數(shù)下的概率值最大,由于y的取值為0 和1,設(shè)p(y=1|x)=p(x),p(y=0|x)=1-p(x),則似然函數(shù)為:
使用梯度下降法來優(yōu)化損失函數(shù),目標(biāo)是找到一個(gè)較優(yōu)方向,使得參數(shù)朝這個(gè)方向移動(dòng)之后的損失函數(shù)值能夠減小。通過對(duì)w 求一階偏導(dǎo)找出下降方向:
式中,k為迭代次數(shù),每次參數(shù)更新后,比較||J(wk+1)-J(wk)||小于閾值或者達(dá)到最大迭代次數(shù)來停止迭代,將求得的參數(shù)代入表達(dá)式即可得到邏輯回歸分類模型。
圖2 邏輯回歸算法流程
將概率語言特征傳遞給隨機(jī)森林算法,通過隨機(jī)森林算法的訓(xùn)練效率高、引入隨機(jī)性較多、對(duì)數(shù)據(jù)適應(yīng)能力強(qiáng)等特性,訓(xùn)練出泛化能力強(qiáng)、橫向檢測(cè)能力高的基于概率語言特征的隨機(jī)森林模型;將文本特征傳遞給邏輯回歸算法,通過邏輯回歸算法的內(nèi)存資源占用小、可解釋性強(qiáng)、分類計(jì)算量小等特征,訓(xùn)練出具有上下文聯(lián)系、安全維護(hù)性強(qiáng)的基于文本特征的邏輯回歸模型。采用集成學(xué)習(xí)融合告警的方式完成整個(gè)弱口令的檢測(cè),如圖3 所示通過將兩個(gè)2 元分類模型整合集成為一個(gè)3 元分類模型,避免了單一邏輯回歸模型做3元分類時(shí)準(zhǔn)確率不高、很難處理數(shù)據(jù)不平衡等問題,也避免了單一隨機(jī)森林模型做3 元分類時(shí)計(jì)算復(fù)雜、對(duì)噪聲數(shù)據(jù)過擬合等問題。融合告警分類模型可以很好地識(shí)別口令混淆、口令變種等現(xiàn)象,既融合了概率語言模型泛化能力強(qiáng)的特性,也保留了文本語言模型在口令集中的上下文關(guān)聯(lián)性。當(dāng)檢測(cè)未知口令集時(shí),通過人為的概率語言特征和文本前后文關(guān)聯(lián)特征進(jìn)行特征識(shí)別,分別將不同的特征傳入隨機(jī)森林算法和邏輯回歸算法,集成學(xué)習(xí)融合告警來預(yù)判未知口令集。
圖3 融合告警流程
訓(xùn)練數(shù)據(jù)集來源于網(wǎng)上開源、互聯(lián)網(wǎng)流量采集、安全公司共享等,共計(jì)260 萬訓(xùn)練數(shù)據(jù)集,通過數(shù)據(jù)集本身的標(biāo)注和安全專家打標(biāo)評(píng)判,訓(xùn)練數(shù)據(jù)集中包含120 萬弱口令數(shù)據(jù)。將口令集劃分為2 檔,即弱、強(qiáng),對(duì)標(biāo)注后的口令進(jìn)行混淆,按照8 ∶2的分割比例進(jìn)行訓(xùn)練和驗(yàn)證,并采集線上流量的數(shù)據(jù)用作模型測(cè)試。根據(jù)業(yè)務(wù)需求將口令預(yù)測(cè)值劃分為3 檔,即弱、中、強(qiáng),當(dāng)隨機(jī)森林算法和邏輯回歸算法都判定待評(píng)估口令為弱時(shí),融合告警模型判定為弱;當(dāng)兩個(gè)算法只有一個(gè)判定為弱時(shí),融合告警模型判定為中;當(dāng)兩個(gè)算法都判定為強(qiáng)時(shí),融合告警模型判定為強(qiáng)。隨機(jī)森林模型、邏輯回歸模型、融合告警模型的F1 和roc_auc 評(píng)價(jià)值如表1 所示。
實(shí)驗(yàn)結(jié)果表明,僅使用隨機(jī)森林算法或邏輯回歸算法做3 元分類時(shí)的效果并不理想,兩個(gè)模型做2 元分類時(shí)較3 元分類具有較高的準(zhǔn)確率,當(dāng)滿足業(yè)務(wù)多元分類的需求時(shí),基于隨機(jī)森林2 元分類算法和邏輯回歸2 元分類算法的融合告警模型具有更高的評(píng)價(jià)指標(biāo)。
表1 不同分類指標(biāo)的F1、roc_auc 評(píng)價(jià)值
表2 不同評(píng)估方法的準(zhǔn)確率比較
綜上所述,基于機(jī)器學(xué)習(xí)建模的口令脆弱性檢測(cè)方法如表2所示在檢測(cè)性能上具有較高的準(zhǔn)確率,且有如下特點(diǎn):具有時(shí)序穩(wěn)定性,對(duì)口令混淆變種等具有橫向檢測(cè)能力,易于部署安裝,方便后期維護(hù),可解釋性強(qiáng),適應(yīng)業(yè)務(wù)與產(chǎn)品的結(jié)合,能夠更好地找出弱口令,協(xié)助安全人員分析,讓算法在網(wǎng)絡(luò)安全運(yùn)用中落地。
本文通過研究基于隨機(jī)森算法和邏輯回歸算法的融合告警模型,實(shí)現(xiàn)了口令脆弱性智能檢測(cè)功能。在口令脆弱性評(píng)估檢測(cè)中引入機(jī)器學(xué)習(xí)算法,基于概率語言特征和文本語言特征建模,大幅提高了口令脆弱性檢測(cè)能力。該方法能客觀地提取口令文本集所包含的信息,加工成特征用于機(jī)器算法建立分類模型,具有較低的誤報(bào)率?,F(xiàn)有的檢測(cè)方式丟失了口令集中的上下文信息,對(duì)口令混淆、口令變種等問題的檢測(cè)性能較差。本文提出的基于機(jī)器學(xué)習(xí)建模的口令脆弱性檢測(cè)方法在包含口令上下文信息的同時(shí)具有很好的橫向檢測(cè)能力,能夠較好地完成口令脆弱性評(píng)估,更好地解決口令時(shí)序檢測(cè)和口令變種問題,利于算法與安全業(yè)務(wù)的融合。