魏兵海




摘要:網絡登錄接口安全攻防是最為常見的網絡安全類問題。該文重點探討了登錄接口暴力破解與字典破解攻防、登錄接口中間人攔截抓包攻擊攻防、登錄接口重播攻擊攻防、登錄接口SQL注入攻擊攻防以及登錄接口框架注入攻擊攻防等五種策略模式,對其攻擊原理和多種防御方式進行了細致研討,供相關技術人員參考,以不斷促進網絡登錄安全水平的提高。
關鍵詞:登錄接口;安全攻防;策略模式
中圖分類號:TP393? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)34-0059-03
網絡登錄接口是用戶登錄進入網絡的第一道門戶。在網絡安全攻防對抗中,用戶名/密碼視角的網絡登錄接口攻守通常是一個重要的前沿節點。接口的安全處理尤為重要[1]。但在網絡系統設計開發過程中,往往更多考慮的是頁面顯示、數據庫連接調用等應用功能的邏輯實現,安全設計往往是最容易在有意無意中被忽視甚至被直接無視。
網絡登錄接口安全不應該僅僅只是簡單的用戶名/密碼設置防護,還應該有其他附加模塊的補充防護和強化防護[2]。為強化網絡登錄接口安全,本研究重點探討一些常用的網絡登錄接口安全設計攻防策略和模式,包括:暴力破解與字典破解、中間人攔截抓包攻擊、登錄接口重播攻擊、登錄接口SQL注入攻擊以及框架注入攻擊等攻防策略模式。
1 登錄接口暴力破解與字典破解攻防模式
暴力破解是使用自動軟件程序遍歷試錯,窮盡所有用戶名/密碼排列組合的網絡安全攻擊模式,字典破解則是暴力破解的縮減版,即使用已知可能的字符/數字(如姓名/身份證號碼/出生年月日/吉祥數字8-6等)等構建字典,再使用自動軟件程序遍歷試錯字典內所有字符/數字等排列組合的網絡安全攻擊模式,通過遍歷窮舉獲取密碼等信息。暴力破解與字典破解是登錄接口攻擊常用的兩種攻擊模式[3]。
為了防御這種遍歷窮盡類型的粗放攻擊模式,阻止自動軟件程序的無限試錯次數是一種有效的解決方法。常用的策略模式列舉如下:
登錄次數限制模式:硬性質模式的登錄次數限制即是在登錄錯誤達到限定的次數(如5次/3次/6次等)之后,阻止該用戶其后的登錄嘗試,或者,一段時間之后再恢復該用戶的登錄嘗試權限。但如此設定的防御模式容易引發攻擊者成功的飽和攻擊,即攻擊自動程序遍歷嘗試所有用戶的限定次數攻擊,引發所有用戶的登錄被阻止。此后,改進了這類限定次數失敗后的用戶登錄阻止防御模式,變成為限定次數失敗后的用戶IP地址阻止防御模式,即攻擊者多次登錄失敗,達到限定次數后,對登錄IP地址的再登錄實施阻入,防止同一攻擊者嘗試不同用戶名/密碼的無數次試錯。如此,有效防止了特定IP的自動程序遍歷飽和攻擊。
驗證碼核檢校驗模式:驗證碼是一種完全的公共全自動程序,驗證碼核檢校驗模式能夠有效測試出嘗試登錄者是計算機自動程序還是人類,從而阻止自動程序模式的遍歷試錯。比如網站登錄設計時,在輸入用戶名/密碼之后,還要求輸入驗證碼—滑動滑塊、選點圖片、填寫數字運算結果等,以阻止可能的計算機自動程序遍歷試錯。或者,在用戶名/密碼輸入錯誤一定次數(如5次/3次/6次等)之后,再要求輸入驗證碼,在實現阻止計算機自動程序遍歷試錯意圖的同時,減少用戶登錄使用時的繁難,即用戶一定次數的登錄嘗試仍未成功時,開始繁難的驗證碼核檢校驗,校驗失敗,則阻止之后的登錄嘗試,也可在一定時間之后恢復用戶的登錄嘗試。
身份證校驗模式:在銀行、保險等金融網絡系統,勞保、醫療衛生等民生保障系統中,考慮到姓名和身份證號碼的互驗證對應性以及身份證號碼的非隨意自動生成的特定設計,在用戶名/密碼登錄要求之后,還增加身份證號碼填報要求,從而阻止計算機自動程序模式的遍歷試錯。
手機短信校驗模式:考慮智能手機實名制政策規定,特定手機號碼綁定特定實體使用人。向特定手機號發送一個校驗碼,填寫正確校驗碼方能登錄通行,不失為一種遍歷嘗試試錯攻擊的防御策略。
掃碼登錄模式:替代用戶名/密碼登錄模式,通過使用可信任安全授信的微信掃碼、QQ掃碼方式驗證用戶身份,核實成功后通過登錄,即未取得信任的非授信用戶登錄網絡時,通過微信掃碼、QQ掃碼等可信任安全授信信息轉移驗證方式登錄。掃碼登錄的“一鍵登錄”模式比傳統的用戶名/密碼手工字符鍵入模式操作更簡便,安全性更高,一定程度上解決了傳統的用戶名/密碼登錄模式存在的弱強度風險、撞庫風險和釣魚風險。
上述多種攻擊防御模式,根據實際應用場景需求,可單重模式使用,也可以多重復合模式使用。
2 登錄接口中間人攔截抓包攻防模式
中間人攔截抓包攻擊即是在登錄接口前端向服務器后端傳送“用戶名/密碼”信息包過程中,第三方特定攻擊程序通過嗅探掃描、中途攔截獲取“用戶名/密碼”信息包,開包獲得“用戶名/密碼”信息。
為了防御這種中間人攔截抓包攻擊模式,“https加密傳輸” “時間戳+密碼+md5”是兩種常用的有效解決方法。具體策略模式列舉如下:
https加密傳輸:http是網絡上最開始使用至今也是最為廣泛普遍使用的傳輸協議,采用明文未加密方式傳輸內容信息包,中途被截獲后,內容容易被直接解讀獲取[4]。https則是http的后來進階版本,即HTTP +SSL,SSL為安全套接層協議,采用“加密傳輸+身份認證”方式提升安全強度。在https加密傳輸模式中,即使傳輸內容信息包被中間人中途截獲,其內容因加密而一般難以解讀。在現代銀行、保險、社保、醫療等金融支付以及電子郵箱等保密要求較高的場景中,https加密傳輸模式應用較多。
“時間戳+密碼+md5”防御模式:在普通加密傳輸模式中,即使“用戶名/密碼”信息包被加密,但有時中途被截獲后,攻擊方可以通過一定手段反編譯解密,密碼內容同樣也能被獲取,針對于此,通過時間戳驗證加md5加密手段使用簽名算法阻止反編譯解密[5],達成較https加密傳輸模式更為高安全強度的“用戶名/密碼”信息包傳輸,阻止中間人攔截抓包解密。
3 登錄接口重播攻擊攻防模式
傳輸信息被加密,中途竊聽截獲的信息數據包難以破譯解密。但攻擊者能夠采取將不解密信息數據原包截獲后重新發送到特定地址如原接收端、原發送端或其他地址等方式,完成特定攻擊目的。如截獲加密原包多次重放重播發送到原接收端造成原接收端產生重復支付、重復取款、重復訂購等重復反應動作;截獲發送端用戶名/密碼加密原包,原封不動存儲留用,其后隨時可用原包發送接收端實施冒充登錄;多次甚至不限次發送截獲的加密原包到接收端,類似飽和攻擊,造成接收端處理任務過重癱瘓等等。
為防御重播攻擊,阻斷重播重放發生的鏈環,是有效的解決方式。
加隨機碼模式:在加密信息如密碼后每次拼接一個不同隨機數即鹽值,接收端另外途徑接受儲存隨機數鹽值,與原儲存的加密信息如密碼拼接,作為驗證核驗包,攻擊方截獲拼接包,難以對應上隨機數鹽值包,重播攻擊難以實施。
加時間戳同步時間模式:在發送端和接收端互送的加密信息包上增蓋時間戳,送收雙方通過加密包附載的時間戳進行時間同步來驗證和核驗真假,從而阻斷重播攻擊。
加流水號模式:在發送端和接收端互送的加密信息包上增添流水號,通過核驗流水號報文連續與否、加插與否來審查真假,從而防范重播攻擊。
口令鑒別模式:在傳送/接收加密信息時,使用不同的一次性口令認證實施真假鑒別,從而有效阻止重播攻擊。
4 登錄接口SQL注入攻擊攻防模式
SQL注入攻擊模式是在登錄框或Web表單等中,輸入包含SQL語法特定組合的惡意指令的混合內容,欺騙或繞過服務器檢查,從而引發SQL語句執行即產生攻擊。混插有SQL命令的內容在輸入后,實施各種惡意目的的操作[6]。如:繞過登錄核查潛入內部,更改某些特定動作實現攻擊目的,提權控制實施特定操作,或盜取修改刪除數據庫敏感數據信息達成攻擊目標。
混插入內容的SQL命令是SQL注入攻擊的核心,作為防御手段,重點考慮SQL命令注入和SQL命令動作的阻止。
預編譯語句集模式:預編譯語句集是最常用的簡易有效防御手段。預編譯語句集模式通過預置在語句執行前期將輸入符串作為數據過濾處置,混插進入的SQL命令不被解析從而不被啟動以達到阻止攻擊的目標。
正則表達式過濾模式:通過正則表達式命令過濾混插輸入的SQL參數等,如檢測過濾SQL命令元字符,達到阻止SQL命令完整進入的目的,從而防御SQL注入攻擊。還有很多其他方式的輸入過濾模式,如特定字符串過濾、非法字符過濾等,都是較為有效的SQL注入攻擊防御模式。
5 登錄接口框架注入攻擊攻防模式
“框架”是包含多個“窗口”的對象,在“框架”創新推出以前,一個網站網頁中只會有一個窗口處理對象,“框架”出現和應用之后,一個網站網頁中嵌入一個“框架”,可能會包含多個窗口處理對象,一個框架中的動作如鏈接點擊能夠觸發其他框架中的元素。
由于框架屬性中的導航功能,框架重定向能夠使框架網頁重定向轉向任何其他另外不同的網址,這一網址可能是攻擊者事先設置的釣魚網站或其他惡意功能網站,用戶點擊框架元素不知不覺中進入陷阱網址,輸入用戶名、賬號、密碼、身份證號、銀行賬號、銀行存取款密碼等等敏感隱私信息,被攻擊者獵取。另外一種攻擊方式Frame Hijacking是注入網站網頁,將其重定向到其他不同的網址URL,通過該URL能夠初始化改變網站網頁頂部的導航欄等。
敏感特殊字符過濾模式:攻擊者框架注入的關鍵元素之一是 frame 或 iframe 標記,該標記含有:& 并符號、 \反斜杠符號、()括號、<>(尖括號)、@符號、 %百分比符號、$美元符號等敏感特殊字符,在框架輸入中過濾掉這些敏感特殊字符,能夠有效阻止框架注入攻擊。
綜上,網絡登錄接口安全攻擊方式較多,上面給出了一些對應的防御模式,但,總而言之,本文限于篇幅,不能窮盡所有,還有一些綜合實用的防御模式也比較有效。比如:登錄口強制規定用戶設置高強度用戶名和密碼,即用戶名和密碼必須包含數字、特殊符號、大小寫字母等多種類字符并長度較長,增加攻擊者破解成本和難度,這是常用的防御措施之一。此外,加強Web日志記錄分析查驗頻次,強化異常捕獲,及時發現攻擊痕跡,有針對性地采取防火墻、衛士防護軟件設置阻止屏蔽,也是常用的防御措施之一。登錄IP地址限制、采用一次一密動態密碼、Cookie即時清理、智能生物識別如面部識別、指紋識別等措施防御效果也很明顯。
6 結束語
網絡登錄比如網站登錄、Web表單提交等是最常見的網絡進入初始動作,登錄接口安全與否關乎網絡系統整體安全,登錄接口的安全是相關軟件開發和軟件驗收安全檢測中的重要考量內容。本文針對登錄接口攻防的幾種主要模式的主要策略進行了探討和研究。但隨著網絡技術的飛速進步和快速發展,新架構新工具日新月異,更多模式的登錄攻防手段不斷涌現。在軟件開發、網絡使用以及滲透檢測過程中,充分考慮登錄攻防的多樣性、復雜性和多變性,不斷跟蹤采用最先進的攻擊防御技術和攻擊防御手段,將有利于我們不斷促進網絡登錄安全強度的提高。
參考文獻:
[1] 崔喜萌,陳明.軟件開發開放API接口的安全處理[J].網絡安全技術與應用,2020(4):80-81.
[2] 王亞輝.軟件開發過程中的信息安全管理[J].信息系統工程,2019(9):70.
[3] 趙莉,劉瀟誼.Web安全登錄方案研究[J].電腦編程技巧與維護,2016(1):36-38,52.
[4] 韋立蓉.網站建設中的網頁設計安全問題探討[J].電腦知識與技術,2017,13(29):31-32.
[5] 丁兆錕,林思成.Windows系統下微軟帳戶登錄的繞密方法[J].電子技術,2021,50(4):38-39.
[6] 王云,郭外萍,陳承歡.Web項目中的SQL注入問題研究與防范方法[J].計算機工程與設計,2010,31(5):976-978,1016.
【通聯編輯:代影】