0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CSRF攻擊的基本原理 如何防御CSRF攻擊

jf_uPRfTJDa ? 來源: 移動Labs ? 2024-01-02 10:12 ? 次閱讀

Labs 導(dǎo)讀

在當(dāng)今數(shù)字化時(shí)代,隨著網(wǎng)絡(luò)應(yīng)用的快速發(fā)展,網(wǎng)絡(luò)安全問題變得日益突出,網(wǎng)絡(luò)攻擊手段也日益猖獗。在眾多網(wǎng)絡(luò)安全攻擊手段中,CSRF(跨站請求偽造)攻擊是一種被廣泛認(rèn)為具有潛在危害且常見的攻擊方式之一。與其他攻擊方式相比,CSRF 攻擊不需要獲取用戶的敏感信息(如用戶名和密碼),而是利用了用戶和網(wǎng)站之間的信任關(guān)系,使得攻擊者可以在用戶不知情的情況下執(zhí)行未經(jīng)授權(quán)的操作,從而導(dǎo)致嚴(yán)重的后果。

在本篇文章中,我們將剖析攻擊者是如何利用用戶身份和瀏覽器漏洞來實(shí)施CSRF攻擊行為,通過深入了解這種攻擊方式,探索防御這一攻擊的最佳實(shí)踐,為構(gòu)建更加安全的網(wǎng)絡(luò)環(huán)境做出貢獻(xiàn)。

作者:葛賢亮

單位:中國移動智慧家庭運(yùn)營中心

Part 01了解CSRF攻擊

CSRF(Cross-Site Request Forgery,跨站請求偽造)是一種常見的網(wǎng)絡(luò)安全攻擊方式,它利用了網(wǎng)站對用戶請求的信任機(jī)制。攻擊者通過誘使用戶在訪問惡意網(wǎng)站或點(diǎn)擊惡意鏈接時(shí),發(fā)送偽造的請求到被用戶信任(已登錄)的目標(biāo)網(wǎng)站,從而執(zhí)行未經(jīng)授權(quán)的操作。

CSRF攻擊可能導(dǎo)致如下安全風(fēng)險(xiǎn):

(1)資金損失:攻擊者可以利用CSRF攻擊進(jìn)行非法的資金轉(zhuǎn)移、支付操作,導(dǎo)致用戶的資金受損。

(2)惡意操作:攻擊者可以以受害者的身份執(zhí)行惡意操作,如修改賬戶密碼、刪除重要數(shù)據(jù)等,給用戶帶來不便和損失。

CSRF攻擊的基本原理如圖所示:

a33f75d6-a888-11ee-8b88-92fbcf53809c.png

圖1.1-1 CSRF攻擊原理

(1)用戶的身份驗(yàn)證:當(dāng)用戶A瀏覽并成功登錄受信任網(wǎng)站B時(shí),受信任網(wǎng)站B會為用戶生成一個(gè)會話標(biāo)識用于進(jìn)行后續(xù)操作的身份驗(yàn)證,通常通過Cookie存儲在用戶的瀏覽器中。

(2)用戶訪問惡意網(wǎng)站:攻擊者制作一個(gè)惡意網(wǎng)站C,并誘使用戶A訪問。這可以通過發(fā)送欺騙性的電子郵件、社交媒體信息、惡意廣告等方式實(shí)現(xiàn)。

(3)惡意請求的發(fā)送:當(dāng)用戶訪問惡意網(wǎng)站C時(shí),網(wǎng)站C會加載包含惡意請求的HTML代碼。這些請求通常以圖片、鏈接或表單的形式存在,使瀏覽器在用戶A無感知或未授權(quán)的情況下自動訪問受信任網(wǎng)站B。

(4)用戶瀏覽器自動發(fā)送請求:由于用戶A已經(jīng)在受信任網(wǎng)站B上進(jìn)行了身份驗(yàn)證,他們的瀏覽器會自動攜帶相應(yīng)的身份驗(yàn)證憑證(Cookie)。該行為為瀏覽器默認(rèn)行為。

(5)受信任網(wǎng)站的誤判:用戶A瀏覽器發(fā)送的請求因攜帶著用戶的身份驗(yàn)證憑證,被受信任網(wǎng)站B視為合法請求,并執(zhí)行請求中指定的操作,使得惡意網(wǎng)站C的攻擊生效。

通過以上流程可以看出CSRF攻擊的一些特征:

(1)CSRF攻擊場景很大程度上依賴于瀏覽器的自動行為(瀏覽器在發(fā)送請求時(shí)會自動攜帶相應(yīng)的Cookie);

(2)攻擊者實(shí)施CSRF攻擊并不能竊取到用戶的Cookie;

(3)攻擊者實(shí)施CSEF攻擊并不需要竊取到用戶賬戶控制權(quán)(如竊取用戶名密碼);

(4)由于瀏覽器同源策略的限制,攻擊者也無法竊取到惡意請求返回的結(jié)果。

Part 02如何防御CSRF攻擊

在了解了CSRF攻擊的方式和特征之后,就可以有針對性地采取相應(yīng)的防御措施。

2.1 防御策略一:使用CSRF令牌

一種比較流行的防御方式是使用CSRF令牌(Token)。它通過在用戶會話中生成一個(gè)唯一的令牌,并將其嵌入到用戶的請求中來驗(yàn)證請求的合法性。

以下是使用CSRF令牌進(jìn)行防御的基本步驟:

(1)接口鑒權(quán):服務(wù)端針對敏感請求接口(API)進(jìn)行身份校驗(yàn),不允許匿名訪問;

(2)生成CSRF令牌:在用戶登錄開始時(shí),服務(wù)器為用戶生成一個(gè)唯一的CSRF令牌。這個(gè)令牌通常是一個(gè)隨機(jī)的字符串或JWT。

(3)將令牌嵌入到請求中:在用戶訪問頁面或發(fā)送請求時(shí),將生成的CSRF令牌嵌入到請求中。

(4)驗(yàn)證令牌:當(dāng)用戶提交請求時(shí),服務(wù)器端會驗(yàn)證請求中的CSRF令牌是否有效。如果令牌有效,則說明請求是合法的;如果令牌無效或者缺失,則可能是CSRF攻擊,服務(wù)器拒絕該請求。

使用令牌方式防御CSRF攻擊時(shí),需注意如下幾點(diǎn):

(1)該令牌必須具有隨機(jī)性,使得攻擊者無法偽造令牌;

(2)該令牌不能存儲在Cookie中,服務(wù)端進(jìn)行用戶身份校驗(yàn)時(shí)不能通過Cookie自動獲取該令牌;

(3)用戶在瀏覽器中退出登錄時(shí),需清除本地存儲的令牌;

(4)用戶在登錄成功后需妥善存儲令牌,以免泄漏給第三方;

(5)開發(fā)者在實(shí)現(xiàn)時(shí)需注意令牌的生成和驗(yàn)證邏輯的安全性,并合理管理令牌的生命周期。

2.2 防御策略二:檢查Referer頭部信息

Referer是HTTP協(xié)議中的一個(gè)字段,用于指示請求的來源頁面。當(dāng)瀏覽器發(fā)送HTTP請求時(shí),它會在請求頭中包含Referer字段,值為當(dāng)前頁面的URL。通過檢查Referer請求頭,服務(wù)器可以驗(yàn)證請求的來源是否與預(yù)期一致,從而判斷請求是否合法。

需要注意的是,Referer請求頭并不是絕對可靠的,一些瀏覽器或網(wǎng)絡(luò)代理可能會修改或刪除Referer請求頭。因此,單獨(dú)依賴Referer頭部進(jìn)行防御可能不足以阻止所有的CSRF攻擊,但它仍然可以作為一種附加層面的安全措施,與其他防御措施(如CSRF令牌)結(jié)合使用,以提高系統(tǒng)的整體安全性。

2.3 防御策略三:實(shí)施SameSite屬性限制

SameSite屬性是一種可以應(yīng)用于HTTP Cookie的安全屬性,它用于控制瀏覽器是否允許在跨站點(diǎn)請求中發(fā)送Cookie。通過設(shè)置SameSite屬性,可以限制Cookie只在同一站點(diǎn)的請求中發(fā)送,從而減少CSRF攻擊的風(fēng)險(xiǎn)。

需要注意的是,SameSite屬性并非所有瀏覽器都完全支持,特別是舊版本的瀏覽器。SameSite屬性最早由Google在2016年提出,并在2018年的Chrome瀏覽器版本中首次實(shí)現(xiàn)和推出。因此,在使用SameSite屬性時(shí),需要進(jìn)行適當(dāng)?shù)募嫒菪詸z查,并根據(jù)具體情況選擇合適的Fallback策略。

2.4 防御策略四:使用雙因素身份驗(yàn)證

雙因素身份驗(yàn)證(Two-Factor Authentication,簡稱2FA)是一種增強(qiáng)登錄安全性的身份驗(yàn)證方法。它要求用戶在登錄或進(jìn)行敏感操作時(shí),除了提供密碼(或其他單一因素)外,還要提供第二個(gè)獨(dú)立的驗(yàn)證因素,以確認(rèn)其身份。常見的驗(yàn)證因素包括密碼、手機(jī)驗(yàn)證碼、動態(tài)驗(yàn)證碼、指紋識別、硬件令牌等。

對于部分敏感操作,例如刪除賬戶信息、支付等,可以強(qiáng)制要求用戶進(jìn)行雙因素身份驗(yàn)證。這樣可以增加攻擊者成功實(shí)施CSRF攻擊的難度,因?yàn)榧词构粽吣軌騻卧煺埱螅匀粺o法通過雙因素驗(yàn)證步驟。

需要注意的是,雙因素身份驗(yàn)證并不是絕對安全的,只能作為綜合的安全措施之一,與其他防御策略結(jié)合使用,以提供更強(qiáng)大的安全防護(hù)。

2.5 防御策略五:謹(jǐn)慎使用GET請求

在防御CSRF(Cross-Site Request Forgery)攻擊時(shí),合理使用HTTP請求方法是非常重要的。尤其是針對GET請求,通常而言,GET請求要求具備冪等性,所以某些安全框架的配置中默認(rèn)沒有對GET請求進(jìn)行防護(hù)。

在Spring Security中,可通過CsrfFilter實(shí)現(xiàn)對CSRF攻擊的防護(hù)。CsrfFilter攔截請求,并允許使用GET、HEAD、TRACE 和 OPTIONS等HTTP方法的請求。而針對PUT、POST、DELETE等可能會修改數(shù)據(jù)的其他請求,CsrfFilter則要求其必須包含csrf_token信息。如果請求中不存在或包含不正確的csrf_token值,服務(wù)端將拒絕該請求并返回403狀態(tài)碼。

因此,對于執(zhí)行敏感操作的請求,應(yīng)該使用POST、PUT、DELETE等非冪等方法,而不是GET方法。這樣可以防止攻擊者通過構(gòu)造惡意的圖片或鏈接來觸發(fā)CSRF攻擊。

Part 03總結(jié)

CSRF攻擊是一種長期存在且不斷演變的安全威脅。隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,CSRF攻擊也在不斷演進(jìn),未來的CSRF攻擊可能會更加復(fù)雜、隱蔽和智能化。為了應(yīng)對這些威脅,安全研究人員和開發(fā)者需要密切關(guān)注攻擊的新趨勢和漏洞,并不斷提升防御技術(shù)和意識。同時(shí),用戶也需要保持警惕,采取合適的防護(hù)措施,以確保個(gè)人和組織的網(wǎng)絡(luò)安全。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 互聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    54

    文章

    11037

    瀏覽量

    102442
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8843

    瀏覽量

    84946
  • 網(wǎng)絡(luò)安全
    +關(guān)注

    關(guān)注

    10

    文章

    3085

    瀏覽量

    59464
  • csrf
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    2222

原文標(biāo)題:技術(shù) | 漫談網(wǎng)絡(luò)安防之CSRF

文章出處:【微信號:5G通信,微信公眾號:5G通信】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    最新防攻擊教程

    最新防攻擊教程 別人攻擊的使用方法 傳奇防御攻擊 傳奇攻擊方法超級CC 超級穿墻CC 穿金盾CC 穿墻CC
    發(fā)表于 09-06 20:42

    SCDN的抗CC攻擊和抗DDoS攻擊防護(hù)是什么?

    情報(bào)和安全策略,實(shí)現(xiàn)智能識別大規(guī)模攻擊并自動切換高防IP,實(shí)現(xiàn)對CC和DDoS的防御。而當(dāng)節(jié)點(diǎn)未受攻擊時(shí),用戶的資源請求可正常從SCDN節(jié)點(diǎn)獲取,達(dá)到加速效果。這就是阿里云SCDN提供的一整套加速和安全
    發(fā)表于 01-05 14:45

    面對外部惡意攻擊網(wǎng)站,高防服務(wù)器如何去防御攻擊

    攻擊攻使網(wǎng)站崩潰,服務(wù)器強(qiáng)行關(guān)閉,客戶不能訪問,從而導(dǎo)致利益流失。為了解決上述問題,高防服務(wù)器應(yīng)用而生。然而市場上高防服務(wù)器供應(yīng)商很多家,提供的防御力也多種多樣,那么作為用戶的我們也應(yīng)該了解相對于普通
    發(fā)表于 05-07 17:00

    防御無線傳感器網(wǎng)絡(luò)中蟲洞攻擊是什么?

    ,IAODV協(xié)議增加了源節(jié)點(diǎn)路由跳數(shù)判斷機(jī)制和隨機(jī)選擇路由的蟲洞攻擊防御方案。用NS2仿真平臺實(shí)現(xiàn)蟲洞攻擊模塊的仿真和改進(jìn)協(xié)議的仿真,結(jié)果證明了改進(jìn)協(xié)議的有效性。
    發(fā)表于 04-15 06:24

    公司服務(wù)器遭受CC攻擊防御的應(yīng)急記錄

    記一次公司服務(wù)器遭受CC攻擊防御的應(yīng)急記錄
    發(fā)表于 06-17 16:29

    burpsuite生成POC驗(yàn)證CSRF過程及原理 相關(guān)資料推薦

    CSRF漏洞成因:瀏覽器訪問web服務(wù)器A,登錄狀態(tài)下,再用同一個(gè)瀏覽器訪問了惡意服務(wù)器B,服務(wù)器B返回給瀏覽器的頁面中含有要求訪問服務(wù)器A的惡意代碼,用戶不知情的情況下點(diǎn)擊后,導(dǎo)致服務(wù)器A接收
    發(fā)表于 07-06 06:58

    cc攻擊防御解決方法

    靜態(tài)頁面由于動態(tài)頁面打開速度慢,需要頻繁從數(shù)據(jù)庫中調(diào)用大量數(shù)據(jù),對于cc攻擊者來說,甚至只需要幾臺肉雞就可以把網(wǎng)站資源全部消耗,因此動態(tài)頁面很容易受到cc攻擊。正常情況靜態(tài)頁面只有幾十kb,而動態(tài)
    發(fā)表于 01-22 09:48

    淺談CSRF漏洞

    淺談CSRF漏洞
    發(fā)表于 09-07 11:00 ?15次下載
    淺談<b class='flag-5'>CSRF</b>漏洞

    Web安全之CSRF攻擊

    CSRF(Cross Site Request Forgery),中文是跨站點(diǎn)請求偽造。CSRF攻擊者在用戶已經(jīng)登錄目標(biāo)網(wǎng)站之后,誘使用戶訪問一個(gè)攻擊頁面,利用目標(biāo)網(wǎng)站對用戶的信任,以
    發(fā)表于 11-27 13:31 ?1794次閱讀
    Web安全之<b class='flag-5'>CSRF</b><b class='flag-5'>攻擊</b>

    常見的網(wǎng)絡(luò)攻擊手段都有哪些,我們該如何采取防御措施

    網(wǎng)絡(luò)攻擊中,例如常見的Web攻擊、XSS攻擊、SQL注入、CSRF攻擊以及它們的防御手段,都是針
    發(fā)表于 12-02 14:31 ?8986次閱讀

    深入淺出DDoS攻擊防御——攻擊

    DDoS(Distributed Denial of Service,分布式拒絕服務(wù))攻擊的主要目的是讓指定目標(biāo)無法提供正常服務(wù),甚至從互聯(lián)網(wǎng)上消失,是目前最強(qiáng)大、最難防御攻擊之一。
    的頭像 發(fā)表于 06-20 09:46 ?2250次閱讀

    CSRF是什么 CSRF與XSS攻擊的區(qū)別

    /XSRF。 二.CSRF可以做什么? 你這可以這么理解CSRF攻擊攻擊者盜用了你的身份,以你的名義發(fā)送惡意請求。CSRF能夠做的事情包括
    的頭像 發(fā)表于 08-05 10:09 ?6757次閱讀

    有效防御基于查詢分?jǐn)?shù)的攻擊

    我們指出在真實(shí)場景下,一個(gè)簡單的后處理模塊,就可以形成有效,用戶友好,即插即用的防御。為了專門防御基于查詢分?jǐn)?shù)的攻擊,我們設(shè)計(jì)了對攻擊者的攻擊
    的頭像 發(fā)表于 10-11 14:34 ?997次閱讀

    你知道什么是CSRF攻擊嗎?如何防范?

    跨站點(diǎn)請求偽造 (CSRF) 攻擊允許攻擊者偽造請求并將其作為登錄用戶提交到 Web 應(yīng)用程序,CSRF 利用 HTML 元素通過請求發(fā)送環(huán)境憑據(jù)(如 cookie)這一事實(shí),甚至是跨
    的頭像 發(fā)表于 07-28 11:46 ?974次閱讀

    Web應(yīng)用防火墻的重要性及基本原理

    SQL注入、跨站腳本(XSS)和跨站請求偽造(CSRF)等。 二、WAF的基本原理 WAF主要通過以下幾個(gè)方面來實(shí)
    的頭像 發(fā)表于 10-10 14:47 ?631次閱讀
    Web應(yīng)用防火墻的重要性及<b class='flag-5'>基本原理</b>