一種跨站點(diǎn)偽造請(qǐng)求csrf攻擊識(shí)別方法和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明實(shí)施例涉及通信技術(shù)領(lǐng)域,尤其是涉及一種跨站點(diǎn)偽造請(qǐng)求CSRF攻擊識(shí) 別方法和設(shè)備。
【背景技術(shù)】
[0002] CSRF(Cross-SiteRequestForgery,跨站點(diǎn)偽造請(qǐng)求)攻擊的核心是偽造表單, 通過(guò)偽造表單在受影響的應(yīng)用系統(tǒng)添加任意管理員,例如添加的管理員命名為XI,并給部 分關(guān)鍵的參數(shù)設(shè)置好值,如在添加管理員時(shí)需將新用戶名,用戶密碼,用戶郵箱等關(guān)鍵參數(shù) 設(shè)置好值。以此用戶在訪問(wèn)惡意網(wǎng)站時(shí),惡意網(wǎng)站會(huì)竊取正常用戶的權(quán)限來(lái)將偽造的表單 發(fā)送給系統(tǒng)服務(wù)器中,在系統(tǒng)服務(wù)器執(zhí)行該偽造的表單之后進(jìn)行攻擊。
[0003] CSRF攻擊最常用的就是通過(guò)偽造表單進(jìn)行攻擊,但如果目標(biāo)服務(wù)器部署了入侵防 御設(shè)備,這種攻擊方法可能會(huì)被入侵防御系統(tǒng)識(shí)別,導(dǎo)致攻擊失敗;對(duì)此某些攻擊者可能會(huì) 繼續(xù)采用一些逃逸入侵防御設(shè)備檢測(cè)的方法進(jìn)行攻擊;例如利用偽造src(Source,信息來(lái) 源)代替?zhèn)卧毂韱蔚姆椒▉?lái)進(jìn)行CSRF攻擊,將攻擊所用的偽造表單替換成img的src形式, 這樣當(dāng)正常網(wǎng)站的管理員在以管理員身份登錄了正常網(wǎng)站后,再點(diǎn)擊包含img標(biāo)簽的惡意 網(wǎng)站時(shí),攻擊者構(gòu)造的管理員(例如XI)將被添加,用戶的權(quán)限被竊取,從而后續(xù)可以利用 竊取到的用戶權(quán)限對(duì)該正常網(wǎng)站進(jìn)行CSRF攻擊。
[0004] 而在現(xiàn)有技術(shù)中,所采取的措施都只能識(shí)別基于偽造表單的CSRF攻擊,而無(wú)法識(shí) 別基于偽造src的CSRF攻擊。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實(shí)施例提供了一種跨站點(diǎn)偽造請(qǐng)求CSRF攻擊檢測(cè)方法,包括:
[0006] 檢測(cè)獲取的超文本傳輸協(xié)議HTTP請(qǐng)求的負(fù)載中的信息來(lái)源src是否處于異常狀 態(tài);
[0007] 若src處于異常狀態(tài),判斷在預(yù)定時(shí)間內(nèi)是否接收到源IP與HTTP請(qǐng)求的源IP相 同的異常GET請(qǐng)求;
[0008] 若在預(yù)定時(shí)間內(nèi)接收到源IP與所述HTTP請(qǐng)求的源IP相同的異常GET請(qǐng)求,則確 認(rèn)受到了CSRF攻擊。
[0009] 優(yōu)選的,檢測(cè)獲取的HTTP請(qǐng)求負(fù)載中的src是否處于異常狀態(tài),具體為:
[0010] 檢測(cè)獲取的HTTP請(qǐng)求的負(fù)載中src的長(zhǎng)度是否大于閾值,以及檢測(cè)src中的統(tǒng)一 資源標(biāo)識(shí)符uri后面是否存在問(wèn)號(hào);
[0011] 若src的長(zhǎng)度大于閾值,且uri后面存在問(wèn)號(hào),檢測(cè)問(wèn)號(hào)后面是否存在有不少于兩 個(gè)值為非空的參數(shù);
[0012] 若問(wèn)號(hào)后面是否存在有不少于兩個(gè)值為非空的參數(shù),則確定src處于異常狀態(tài)。
[0013] 優(yōu)選的,判斷在預(yù)定時(shí)間內(nèi)是否接收到源IP與HTTP請(qǐng)求的源IP相同的異常GET 請(qǐng)求,具體為:
[0014] 判斷在預(yù)定時(shí)間內(nèi)是否接收到源IP與HTTP請(qǐng)求的源IP相同的GET請(qǐng)求;
[0015] 若在預(yù)定時(shí)間內(nèi)接收到源IP與HTTP請(qǐng)求的源IP相同的GET請(qǐng)求,則判斷GET請(qǐng) 求中的uri與處于異常狀態(tài)的src中的uri是否一致,以及判斷GET請(qǐng)求中的uri和前一 個(gè)鏈接標(biāo)識(shí)referer是否不相關(guān);
[0016] 若GET請(qǐng)求中的uri與處于異常狀態(tài)的src中的uri-致,且GET請(qǐng)求中的uri 和referer不相關(guān),則確定接收到的GET請(qǐng)求是源IP與HTTP請(qǐng)求的源IP相同的異常GET 請(qǐng)求。
[0017] 優(yōu)選的,判斷GET請(qǐng)求中的uri和referer是否不相關(guān),具體為:
[0018] 提取GET請(qǐng)求中的uri和referer;
[0019] 基于uri和referer中的斜杠將uri和referer劃分為多個(gè)部分;
[0020] 若所述uri中的任意一個(gè)部分均與所述referer中的任一部分不同,則確定GET 請(qǐng)求中的uri和referer不相關(guān)。
[0021] 優(yōu)選的,判斷在預(yù)定時(shí)間內(nèi)是否接收到基于處于異常狀態(tài)的src生成的異常GET 請(qǐng)求,具體為:
[0022] 將HTTP請(qǐng)求中的源IP,處于異常狀態(tài)的src中的統(tǒng)一資源標(biāo)識(shí)符uri和當(dāng)前的時(shí) 間記錄在危險(xiǎn)列表中,危險(xiǎn)列表中存儲(chǔ)的信息基于記錄的時(shí)間定時(shí)老化;
[0023] 基于危險(xiǎn)列表中存儲(chǔ)的信息判斷在預(yù)定時(shí)間內(nèi)是否接收到源IP與HTTP請(qǐng)求的源 IP相同的異常GET請(qǐng)求;
[0024] 若在預(yù)定時(shí)間內(nèi)接收到源IP與所述HTTP請(qǐng)求的源IP相同的異常GET請(qǐng)求,將危 險(xiǎn)列表中記錄的時(shí)間更新為接收異常GET請(qǐng)求的時(shí)間。
[0025] 本發(fā)明實(shí)施例還提供了一種跨站點(diǎn)偽造請(qǐng)求CSRF攻擊檢測(cè)設(shè)備,包括:
[0026] 檢測(cè)模塊,用于檢測(cè)獲取的超文本傳輸協(xié)議HTTP請(qǐng)求中負(fù)載中的信息來(lái)源src是 否處于異常狀態(tài);
[0027] 判斷模塊,用于當(dāng)確定src處于異常狀態(tài)時(shí),判斷在預(yù)定時(shí)間內(nèi)是否接收到源IP 與HTTP請(qǐng)求的源IP相同的異常GET請(qǐng)求;
[0028] 識(shí)別模塊,用于在預(yù)定時(shí)間內(nèi)接收到源IP與所述HTTP請(qǐng)求的源IP相同的異常 GET請(qǐng)求時(shí),確認(rèn)受到了CSRF攻擊。
[0029] 優(yōu)選的,檢測(cè)模塊,具體用于:
[0030] 檢測(cè)獲取的HTTP請(qǐng)求的負(fù)載中src的長(zhǎng)度是否大于閾值,以及檢測(cè)src中的統(tǒng)一 資源標(biāo)識(shí)符uri后面是否存在問(wèn)號(hào);
[0031] 若src的長(zhǎng)度大于閾值,且uri后面存在問(wèn)號(hào),檢測(cè)問(wèn)號(hào)后面是否存在有不少于兩 個(gè)值為非空的參數(shù);
[0032] 若問(wèn)號(hào)后面存在有不少于兩個(gè)值為非空的參數(shù),則確定src處于異常狀態(tài)。
[0033] 優(yōu)選的,判斷模塊,具體用于:
[0034] 判斷在預(yù)定時(shí)間內(nèi)是否接收到源IP與HTTP請(qǐng)求的源IP相同的GET請(qǐng)求;
[0035] 若在預(yù)定時(shí)間內(nèi)接收到源IP與HTTP請(qǐng)求的源IP相同的GET請(qǐng)求,則判斷GET請(qǐng) 求中的uri與處于異常狀態(tài)的src中的uri是否一致,以及判斷GET請(qǐng)求中的uri和前一 個(gè)鏈接標(biāo)識(shí)referer是否不相關(guān);
[0036] 若GET請(qǐng)求中的uri與處于異常狀態(tài)的src中的uri-致,且GET請(qǐng)求中的uri 和referer不相關(guān),則確定接收到的GET請(qǐng)求是源IP與HTTP請(qǐng)求的源IP相同的異常GET請(qǐng)求。
[0037] 優(yōu)選的,判斷模塊判斷GET請(qǐng)求中的uri和referer是否不相關(guān),具體包括:
[0038] 提取GET請(qǐng)求中的uri和referer;
[0039] 基于uri和referer中的斜杠將uri和referer劃分為多個(gè)部分;
[0040] 若所述uri中的任意一個(gè)部分均與所述referer中的任一部分不同,則確定GET 請(qǐng)求中的uri和referer不相關(guān)。
[0041] 優(yōu)選的,判斷模塊,具體用于:
[0042] 將HTTP請(qǐng)求中的源IP,處于異常狀態(tài)的src中的統(tǒng)一資源標(biāo)識(shí)符uri和當(dāng)前的時(shí) 間記錄在危險(xiǎn)列表中,危險(xiǎn)列表中存儲(chǔ)的信息基于記錄的時(shí)間定時(shí)老化;
[0043] 基于危險(xiǎn)列表中存儲(chǔ)的信息判斷在預(yù)定時(shí)間內(nèi)是否接收到源IP與HTTP請(qǐng)求的源 IP相同的異常GET請(qǐng)求;
[0044] 若在預(yù)定時(shí)間內(nèi)接收到源IP與所述HTTP請(qǐng)求的源IP相同的異常GET請(qǐng)求,將危 險(xiǎn)列表中記錄的時(shí)間更新為接收異常GET請(qǐng)求的時(shí)間。
[0045] 與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例公開(kāi)了通過(guò)在檢測(cè)到獲取的HTTP請(qǐng)求的負(fù)載中 的src處于異常狀態(tài)時(shí),判斷在預(yù)定時(shí)間內(nèi)是否接收到源IP與HTTP請(qǐng)求的源IP相同異常 GET來(lái)確認(rèn)是否受到了CSRF攻擊;以此通過(guò)持續(xù)檢測(cè)處于異常狀態(tài)的src和異常GET請(qǐng)求 來(lái)共同確認(rèn)是否受到了基于偽造src的CSRF攻擊,實(shí)現(xiàn)了對(duì)基于偽造src的CSRF攻擊的 識(shí)別。
【附圖說(shuō)明】
[0046] 圖1是本發(fā)明實(shí)施例提出的一種CSRF攻擊檢測(cè)方法的流程示意圖;
[0047] 圖2是CSRF攻擊原理的示意圖;
[0048] 圖3是本發(fā)明實(shí)施例提出的一種CSRF攻擊檢測(cè)設(shè)備的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0049] 針對(duì)現(xiàn)有技術(shù)中存在的上述問(wèn)題,本發(fā)明實(shí)施例提供了一種跨站點(diǎn)偽造請(qǐng)求CSRF 攻擊檢測(cè)方法,如圖1所示,包括以下步驟:
[0050] 步驟101、檢測(cè)獲取的HTTP請(qǐng)求負(fù)載中的src是否處于異常狀態(tài)。
[005