弱口令問題引發安全的思考
背景
分析某病毒樣本時候,發現病毒樣本實現對主機進行弱口令爆破功能,通過弱口令爆破從而達到獲取主機某些權限和登錄主機,并進行做對威脅影響主機安全的事情,例如盜取敏感數據(手機號碼、郵箱、身份證號),利用主機進行挖礦,從而給企業帶來安全風險和經濟損失風險。
賬號口令安全問題就顯得非常重要,因此下面就對賬號口令的弱口令進行做梳理。
(下圖是樣本中弱口令爆破嘗試)

弱口令定義

弱口令爆破方案
1.爆破工具和安裝介紹
爆破環境和工具:kali linux、彩虹表、rcracki_mt。
彩虹表下載地址
https://freerainbowtables.com/
彩虹表(Rainbow Table):它是一種主流的用于密碼破解,它事先把所有可能的密碼計算出哈希,并保存在索引文件中,在需要破解時只需根據哈希對索引文件進行查詢即可獲得對應明文密碼,在避免大量的重復計算的同時,也大大提高了密碼的破解速度。
rcracki_mt下載安裝
kali linux環境下安裝rcracki_mt工具,還是很人性化,輸入rcracki_mt命令, 沒識別到該命令,會進行是否安裝提醒,只要選中安裝就自動完成。

2.使用rcracki_mt工具結合彩虹表進行對弱口令破解
在kali linux環境下,通過pwgen工具(kali linux自帶)進行生成長度為7的10個密碼,并將密碼用md5值進行哈希,最后展示在控制臺窗口和寫入當前目錄下md5.txt文檔。

通過rcracki_mt結合彩虹表進行做破解,執行rcracki_mt -t 10 -l md5.txt 命令后,從下圖獲取到的結果,清晰看到破解的實際密碼信息。

弱口令的應對策略
1.前端檢測規則強度的開啟
在前端注冊賬號時,強制設定賬號密碼需要以8+2規則強度(長度為10個的8個數字加2個字母組合)或者8+3規則強度(長度為11的8個數字和3個字母組合),如果不符合規則不允許注冊。
2.開啟弱口令提醒功能
在使用或登陸時、開啟弱口令提醒如賬號密碼是簡單數字、簡單字母、生日信息、姓名簡寫+簡單數字,提醒用戶重新設置提高強度的賬號密碼。
3.強制跳轉到修改賬號密碼頁面并啟動賬號身份信息認證。
檢測到使用弱口令的賬號,強制讓用戶跳轉到修改賬號密碼的頁面,強制讓用戶進行做密碼的修改,并對該用戶進行做身份信息認證(例如:手機號碼,身份證號碼、郵箱等)。
弱口令小結
作為開發者應避免直接使用MD5、SHA1、CRC等常規相對不安全算法,建議可以使用強度比較高的加密算法例如PBKDF2(通過多次hash對密碼進行加密)。
作為用戶應使用足夠復雜的密碼,例如長度大于等于10位以上,并且在密碼里面用大小寫、數字、特殊字符進行組合。
賬號安全梳理總結
如果對于賬號安全僅僅處理弱口令問題,那么這是遠遠不夠的。賬號安全離不開身份驗證這個重要的環節,賬號安全的身份驗證也是等保2.0標準中明確要求的。賬號安全需要選擇安全通訊協議進行做保障和支撐。同時還需要進行賬號安全風控體系的構建。
賬號身份驗證組成:多因素驗證、圖形驗證碼驗證、條件驗證邏輯、短信驗證、錯誤信息反饋、賬號封禁策略。
HTTP和HTTPS差異性
1、HTTPS(超文本傳輸安全協議)是HTTP(超文本傳輸協議)協議的安全版本。HTTP協議傳輸的是未加密的明文數據,這種是不安全的。HTTPS使用了SSL/TLS協議,數據傳輸過程中對數據加密處理,這種是相對安全的。
2、HTTP和HTTPS使用連接方式不同,默認端口也不一樣,HTTP使用的是80,HTTPS使用的是443。
TLS協議的主要目標是在兩個通信應用之間提供私密性和數據完整性。這個協議由兩層組成:TLS記錄協議和TLS握手協議。最低層是基于一些可靠傳輸協議(如TCP)的TLS記錄協議。
通訊相對安全建議:采用HTTPS進行通訊,采用TLS1.2版本協議(因為低于TLS1.2版本協議更容易被黑客攻破)。