魏兵海




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