WAF開發(fā)之Cookie安全防護(hù)

2021-03-13    分類: 網(wǎng)站建設(shè)

一、前言

Cookie安全防護(hù)功能主要實現(xiàn)以下兩個目標(biāo)

1、防止XSS攻擊盜取用戶Cookie

2、防止基于Cookie的SQL注入\命令注入\其他亂七八糟的攻擊

優(yōu)點

1、安全(有破解思路麻煩告知)

2、通用

3、配置簡單

缺點

1、基于IP地址進(jìn)行識別,在相同外網(wǎng)IP的情況下,可XSS盜取Cookie成功,既不防熟人XSS攻擊

2、在登陸后如果IP地址變動,需重新登陸

二、實現(xiàn)

實現(xiàn)思路是通過AES加密Set-Cookie中的鍵值來確保Cookie的安全,具體如下圖:

Set-Cookie加密流程

首先獲取AES的初始密鑰Key,接著判斷是否開啟客戶端IP綁定,是的話AES的密鑰為Key+ClientIP,不是則為Key,之后通過AES對Set-Cookie的鍵值進(jìn)行加密,加密過程中忽略expires,max-age,domain等保留鍵,之后重寫整個Set-Cookie 

Cookie解密流程

首先獲取AES的初始密鑰Key,接著判斷是否開啟客戶端IP綁定,是的話AES的密鑰為Key+ClientIP,不是則為Key,之后通過AES對Cookie的鍵值進(jìn)行解密,解密過程中判斷是否開啟安全模式,是的話將丟棄無法解密的鍵值,不是則保留鍵值,之后重寫整個Cookie

開啟配置

如上圖,一共四個選項:

第一個為是否開啟Cookie安全防護(hù),默認(rèn)為關(guān)閉;

第二個為是否開啟客戶端IP綁定,默認(rèn)為開啟;

開啟客戶端IP綁定后,當(dāng)攻擊者通過XSS漏洞盜取用戶Cookie后,因IP不同導(dǎo)致AES密鑰不同,無法成功解密進(jìn)而無法登陸系統(tǒng)。關(guān)閉客戶端IP綁定將無法防止XSS攻擊盜取用戶 Cookie。

第三個為安全模式選擇;

默認(rèn)為兼容模式,兼容模式下,如果參數(shù)解密失敗,將保留,即解密失敗的鍵值將維持原樣傳遞到后端服務(wù)器,例如XSS攻擊獲取的session加密串將直接傳遞到后端,但因服務(wù)器檢測不到session鍵值而無法登陸。安全模式將丟棄所有無法解密的鍵值。選擇兼容模式無法防止基于Cookie的SQL注入等攻擊。

第四個為密鑰,值默認(rèn)為false,開啟后需點擊按鈕生成隨機(jī)16位密鑰。

實現(xiàn)效果

三、總結(jié)

Cookie安全防護(hù)功能的核心在于,數(shù)據(jù)的加密解密都在WAF上進(jìn)行,密鑰無需存儲在前端,在沒有密鑰的情況下,可以認(rèn)為密文是無法破解的。在開啟客戶端IP綁定后,可以在全站層面有效防止XSS攻擊盜取用戶Cookie的情況,攻擊者就算拿到用戶session的密文也因WAF無法解密而失效。而開啟安全模式后,攻擊者輸入的基于Cookie的SQL注入\命令注入等因WAF無法解密而被丟棄,從而保護(hù)后端服務(wù)器安全??偟膩碚f,該功能可以做為一種低成本的全站XSS攻擊緩解方案。

對于WAF而言,該功能的意義在于,后續(xù)的防護(hù)規(guī)則開發(fā),可以忽略Cookie方面的規(guī)則防護(hù)。同時如果基于性能和風(fēng)險考慮,也可以相應(yīng)的減少XSS攻擊甚至不要XSS攻擊的防護(hù)規(guī)則,從而減少規(guī)則集的維護(hù)難度和WAF處理性能。XSS的問題可以通過前端框架處理以及配合其他諸如前端參數(shù)加密,機(jī)器學(xué)習(xí)等方法來解決。

對于現(xiàn)有的網(wǎng)站來說,可以通過重寫網(wǎng)站架構(gòu)中Cookie相關(guān)的代碼來實現(xiàn)同樣的功能,實現(xiàn)起來也不復(fù)雜。 

*本文作者:chenjc,轉(zhuǎn)載請注明來自FreeBuf.COM

當(dāng)前文章:WAF開發(fā)之Cookie安全防護(hù)
網(wǎng)站地址:http://www.bm7419.com/news/105130.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器面包屑導(dǎo)航網(wǎng)站維護(hù)、電子商務(wù)、域名注冊品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)