隨著業(yè)務(wù)的發(fā)展,公司業(yè)務(wù)人員數(shù)量急劇增加,相關(guān)業(yè)務(wù)系統(tǒng)也增加了不少用戶,但是令系統(tǒng)管理人員頭疼的是不少用戶將系統(tǒng)口令設(shè)置得非常簡(jiǎn)單,也許這是為了自己的方便,但這種行為無形中嚴(yán)重?fù)p害了公司的利益,特別是一些重點(diǎn)崗位的業(yè)務(wù)人員,如果將公司核心業(yè)務(wù)系統(tǒng)的口令設(shè)置得過于簡(jiǎn)單,將很可能被一些別有用心的人利用,給企業(yè)帶來極大的損失。
系統(tǒng)管理人員及時(shí)向領(lǐng)導(dǎo)匯報(bào)了這個(gè)情況,領(lǐng)導(dǎo)要求將這些設(shè)置弱口令的用戶找出來,然后通過發(fā)送警示郵件的方式敦促他們修改密碼。但用戶口令都是加密存儲(chǔ),即使在系統(tǒng)后臺(tái)也無法識(shí)別哪些是弱口令用戶;而且用戶數(shù)量大,如果單靠人工去手動(dòng)測(cè)試密碼,工作量是無法想象的。如何按照領(lǐng)導(dǎo)指示去完成工作呢?有沒有高效、簡(jiǎn)單可行的方法去完成弱口令用戶檢測(cè)呢?這也許是很多企業(yè)系統(tǒng)管理人員面臨的窘境。
圖1 自動(dòng)檢測(cè)腳本流程圖
既然人工方式檢測(cè)弱口令用戶不可行,我們能否利用運(yùn)維自動(dòng)化技術(shù)來實(shí)現(xiàn)自動(dòng)檢測(cè)呢?答案是肯定的,因?yàn)樗杏脩暨M(jìn)行口令認(rèn)證的流程基本一致,這也是運(yùn)用自動(dòng)化技術(shù)解決問題的絕佳條件,所以通過編寫腳本程序就能控制整個(gè)用戶口令認(rèn)證的全過程,這樣就能勿需人工干預(yù),實(shí)現(xiàn)自動(dòng)化檢測(cè)弱口令用戶的功能,上述問題即可迎刃而解。
本文以某單位的業(yè)務(wù)系統(tǒng)為例,詳細(xì)介紹實(shí)現(xiàn)自動(dòng)檢測(cè)的全過程。該單位的核心業(yè)務(wù)系統(tǒng)用戶認(rèn)證采用的是Cisco ACS系統(tǒng),利用Radius協(xié)議實(shí)現(xiàn)用戶的認(rèn)證,用戶信息都是加密存儲(chǔ)在Cisco ACS系統(tǒng)內(nèi)置的數(shù)據(jù)庫(kù)中,管理員是無法看到用戶的明文口令的。針對(duì)這個(gè)問題,本文采用VBScript語(yǔ)言編寫自動(dòng)登錄腳本,模擬用戶登錄業(yè)務(wù)系統(tǒng)的認(rèn)證過程,將所有用戶逐個(gè)與我們定義的弱口令進(jìn)行配對(duì)檢測(cè),根據(jù)登錄成功與否來判斷用戶是否為弱口令用戶。整個(gè)檢測(cè)流程如圖1所示。
下面將對(duì)圖1所示流程模塊的實(shí)現(xiàn)進(jìn)行介紹(“//”代表注釋)。
1.創(chuàng)建并初始化相關(guān)對(duì)象和變量。
2.調(diào)用IE,自動(dòng)輸入用戶登錄頁(yè)面的URL。
3.由于ACS系統(tǒng)是采用https協(xié)議,會(huì)彈出警示頁(yè)面,需要點(diǎn)擊“繼續(xù)瀏覽此網(wǎng)站(不推薦)”才能進(jìn)入登錄界面。如果采用的是http協(xié)議,就不需要這一步。
4.依次讀取用戶和對(duì)應(yīng)的弱口令,進(jìn)行實(shí)際的檢測(cè)工作;其中用戶名利用userinfoArray這個(gè)數(shù)組來存儲(chǔ)。
圖2 用戶登錄界面
圖3 用戶登錄成功界面
圖4 用戶登錄失敗界面
//搜索網(wǎng)頁(yè)中是否存在對(duì)應(yīng)的關(guān)鍵字,判斷是否登錄成功;如果存在關(guān)鍵字,表明用戶已經(jīng)成功登錄,那么該用戶就是弱口令用戶;否則就不是弱口令用戶。
如果滿足上述條件,則可以將該用戶標(biāo)記為弱口令用戶,然后將弱口令用戶寫入WeakUser.txt文件;否則繼續(xù)進(jìn)行下個(gè)用戶檢測(cè),直到所有用戶檢測(cè)完畢。
下面將結(jié)合實(shí)際案例進(jìn)行展示。由于Cisco ACS系統(tǒng)有一個(gè)頁(yè)面供用戶修改密碼,而且修改密碼之前必須先使用用戶名和口令登錄,頁(yè)面布局也比較簡(jiǎn)單,比較容易抓取網(wǎng)頁(yè)的數(shù)據(jù),所以我們選擇這個(gè)頁(yè)面來進(jìn)行弱口令用戶檢測(cè)。首先我們需要將業(yè)務(wù)系統(tǒng)的用戶導(dǎo)出到對(duì)應(yīng)的文本文件中,每行一個(gè)用戶;接著定義弱口令,這里可以靈活設(shè)置,如果安全要求較高,可以利用口令生成器按照一定規(guī)則來生成弱口令集,反之,可以手動(dòng)填充弱口令集。由于管理員在創(chuàng)建本業(yè)務(wù)系統(tǒng)用戶時(shí)設(shè)置的默認(rèn)口令統(tǒng)一為56781234,而大多數(shù)弱口令用戶都是沒有修改默認(rèn)口令,所以本文設(shè)置的弱口令就為56781234。完成這些工作后,就可以雙擊運(yùn)行自動(dòng)檢測(cè)程序,我們就可以安心去干其他工作了。程序運(yùn)行后,效果如圖2-5所示。
通過實(shí)際測(cè)試,檢測(cè)一個(gè)用戶大概需要3~5秒的時(shí)間,速度比較令人滿意,即使是數(shù)百個(gè)用戶的規(guī)模,也能在一小時(shí)內(nèi)完成檢測(cè)工作;而且檢測(cè)完成后會(huì)生成一份如圖5所示的弱口令用戶名單,根據(jù)這份名單,我們就可以定位到用戶本人,然后通過郵件或者其他方式提示用戶及時(shí)修改弱口令。
圖5 檢測(cè)后生成的弱口令用戶名單
本文介紹了一套簡(jiǎn)便、輕量級(jí)的弱口令用戶檢測(cè)方案。這套檢測(cè)方案在企業(yè)應(yīng)用后,收到了良好的效果,每季度檢測(cè)一次,讓系統(tǒng)管理人員做到了對(duì)弱口令用戶心中有數(shù),及時(shí)跟蹤并督促,極大地提高了企業(yè)的運(yùn)維管理能力。本文介紹的方案只是針對(duì)某個(gè)應(yīng)用系統(tǒng)用戶的檢測(cè),其實(shí)對(duì)于其他應(yīng)用系統(tǒng),檢測(cè)思路和框架完全一致,只是在某些模塊的具體實(shí)現(xiàn)方面會(huì)略有差異,所以能夠比較容易地移植到其他應(yīng)用系統(tǒng)上。自動(dòng)化是IT運(yùn)維管理未來的趨勢(shì),本方案的實(shí)施是運(yùn)維自動(dòng)化方面的一次有益嘗試,相信對(duì)其他企業(yè)也有很好的借鑒效果。