iT邦幫忙

1

抑制“重播HTTP cookie”攻擊的最佳解決方案

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20210218/20132160zkwPCe0RpH.png
-Cookie中的ASP.NET會話ID(來源:https://blog.httpwatch.com/2009/02/

在此問題中,由於系統管理員已禁用了受感染的用戶帳戶,因此Web服務器應驗證每個請求(進行完全調解:conduct complete mediation)並拒絕被劫持會話中的請求。

會話,會話ID和訪問令牌(Session, Session ID, and Access Token)
在Web上下文中,在用戶已向Web服務器認證後建立用戶會話。然後,將會話ID和/或相關信息(通常稱為訪問令牌(或簡稱為令牌))通過HTTP響應中的標頭,cookie,內容或重定向URL傳輸到瀏覽器。

不記名令牌(Bearer Token)
網絡服務器根據訪問令牌授權,該訪問令牌代表已認證的用戶。承載令牌(“承載”)是訪問令牌的一種特殊形式。擁有承載令牌的任何一方都可以使用它來獲取對關聯資源的訪問權,而無需重新進行身份驗證。

會話劫持(Session Hijacking)
會話劫持是指攻擊者通過跨站點腳本(cross-site scripting:XSS),流量嗅探(traffic sniffing)或任何其他方式捕獲用戶的訪問令牌的情況,從而攻擊者可以模擬用戶並在系統上行使其特權。
. 驗證用戶輸入可以有效地防止XSS,但是它不能減輕會話劫持的危害。在此問題中,這表明會話已被劫持,攻擊者一直在下訂單。
. 爭奪相同資源的HTTP請求可能導致爭用情況,從而導致死鎖,從而影響可用性和時序問題(TOC / TOU)。因此,解決HTTP請求之間的競爭狀況可能無法幫助阻止虛假訂單。
. TOU / TOC是一個時序問題,其中在驗證之前或未經驗證(檢查時間)就授予了對資源的訪問(使用時間);正確的順序應該是TOC / TOU。“確保使用時間(TOU)早於檢查時間(TOC)”是一個實現錯誤;正確的方法應該是“確保使用時間(TOU)在檢查時間(TOC)之後。” 但是,即使程序邏輯的時間順序正確,也會因競爭條件而崩潰。

完全調解(Complete Mediation)
Saltzer和Schroeder在他們的論文“信息保護的基本原理”中介紹了完全中介的原理。

完全中介:必須檢查對每個對象的每次訪問的權限。當系統地應用該原理時,它是保護系統的主要基礎。它強制執行系統範圍的訪問控制視圖,該視圖除了正常操作外還包括初始化,恢復,關閉和維護。這意味著必須設計一種萬無一失的方法來標識每個請求的來源。它還要求對通過記住授權檢查結果而獲得性能的建議進行懷疑地檢查。如果發生權限更改,則必須系統地更新這些記憶的結果。

如果會話被劫持,則完全調解可以減少不利影響。例如,發行短期和有限範圍的令牌並檢查訪問令牌的到期時間,範圍和真實性可以防止攻擊或使被劫持的令牌更早失效。
在此問題中,由於系統管理員已禁用了受感染的用戶帳戶,因此Web服務器應驗證每個請求並拒絕來自被劫持會話的請求。

RFC 6750
以下是RFC 6750中安全建議的摘要:
. 保障承載令牌
. 驗證TLS證書鏈
. 一律使用TLS(https)
. 不要將承載令牌存儲在cookie中
. 發行短期持有人令牌
. 發行範圍化的承載令牌
. 不要在頁面URL中傳遞承載令牌

參考
. 訪問令牌
. 比賽條件和僵局
. 比賽條件和關鍵部分
. Cookie與令牌:權威指南
. RFC 6750,OAuth 2.0授權框架:承載令牌使用
. HTTP認證
. 計算機系統中的信息保護
. 完全調解
. 檢查時間到使用時間
. 通過HTTPS查詢字符串的安全性如何?

資料來源: Wentz Wu QOTD-20210123


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言