《OWASP Top 10--失效的身份認證和會話管理》
說明:本文章僅限於對失效身份認證和會話管理的學習和了解
1、定義
身份認證:身份認證最常用於系統登入,形式一般為使用者名稱和密碼登入方式,在安全性要求較高的情況下,還有驗證碼、客戶端證書、Ukey等
會話管理:HTTP利用會話機制來實現身份認證,HTTP身份認證的結果往往是獲得一個令牌並放在cookie中,之後的身份識別只需讀授權令牌,而無需再次進行登入認證
2、原理
開發者通常會建立自定義的認證和會話管理方案。但與身份認證和回話管理相關的應用程式功能往往得不到正確的實現,要正確實現這些方案卻很難,結果在退出、密碼管理、超時、密碼找回、帳戶更新等方面存在漏洞,這就導致了攻擊者攻擊者破壞密碼、金鑰、會話令牌或攻擊其他的漏洞去冒充其他使用者的身份(暫時或永久的)
3、危害
可能導致部分甚至全部賬戶遭受攻擊,攻擊者一旦成功,攻擊者能執行受害使用者的任何操作。因此管理員賬戶、特權賬戶是常見的攻擊目標
4、檢測失效的身份認證和會話管理
4.1、使用者身份驗證憑證沒有使用雜湊或加密保護
4.2、認證憑證可猜測,或者能夠通過薄弱的的帳戶管理功能(例如賬戶建立、密碼修改、密碼恢復, 弱會話ID)重寫
4.3、會話ID暴露在URL裡 (例如URL重寫)
4.4、會話ID容易受到會話固定(session fixation)的攻擊
4.5、會話ID沒有超時限制,或者使用者會話或身份驗證令牌特別是單點登入令牌在使用者登出時沒有失效
4.6、成功註冊後,會話ID沒有輪轉
4.7、密碼、會話ID和其他認證憑據使用未加密連線傳輸
5、防範
5.1、分割槽公共區域和受限區域:站點的公共區域允許任何人使用者進行匿名訪問,受限區域只能接受特定使用者的訪問
5.2、對cookie內容進行加密
5.3、可以設定鎖定賬戶策略
5.4、設定密碼和會話的有效期,並使用強密碼(密碼必須是數字和字母的組合)
5.5、賬號密碼以密文形式傳輸