使用者身份驗證損壞
什麼是使用者身份驗證損壞?
API身份驗證的實現不當允許攻擊者預測其他使用者的身份。更一般地說,使用者身份驗證損壞發生在API擁有身份驗證系統但無法正常工作,或者已實現的身份驗證系統在某些情況下失敗,從而允許攻擊者將自己偽裝成已認證使用者。
上述系統中存在的弱點將分為兩組,即憑據管理不善和會話管理不善。
A. 憑據管理不善
可以收集受害者的憑據以訪問系統。攻擊者竊取敏感資訊的方法有很多,例如:
弱密碼 - 如果受害者建立了像“12345”或“pass123”這樣的弱密碼。攻擊者可以使用彩虹表和字典等各種密碼破解技術進行暴力破解並訪問系統。
弱加密 - 使用弱解密/加密演算法(如base64)和弱加密演算法(如SHA1和MD5)會使憑據變得脆弱。因此,必須使用強大的雜湊演算法儲存它們,這使得密碼破解更具挑戰性。
B. 會話管理不善
應用程式會在您登入時分配一個會話ID給您,並存儲您所有的互動資訊。應用程式正是透過此會話ID與您進行互動並響應您的所有請求。如果攻擊者竊取了您的會話ID,則他們可以透過冒充您的身份來登入。這被稱為會話劫持。
以下是可能導致身份驗證損壞的情況列表。
弱使用者名稱和密碼。
會話固定攻擊。
URL重定向。
使用者身份詳細資訊在使用雜湊演算法儲存時未受到保護。
使用者身份詳細資訊透過未加密的連線傳輸。
身份驗證損壞示例
示例#1 - 憑據填充
假設您經營一家線上雜貨店來銷售雜貨。為了發展您的業務,您實現了一個CRM系統,該系統收集並存儲關鍵客戶資料,例如姓名、電話號碼、使用者名稱和密碼。
駭客設法利用CRM系統竊取所有資料。然後,他們使用相同的憑據(使用者名稱和密碼)登入客戶中央銀行的資料庫。
在這種情況下,駭客試圖成功登入中央銀行的資料庫,希望消費者必須同時在兩個地方使用相同的憑據。這種型別的使用者身份驗證損壞攻擊被稱為憑據填充。
示例#2 - 應用程式會話超時設定不正確。
假設您去網咖並在那裡用電腦登入您的Gmail帳戶。傳送郵件後,您只需關閉瀏覽器標籤頁並回家。
一段時間後,駭客開啟您的Gmail帳戶並訪問您的敏感資訊。發生這種情況是因為在關閉瀏覽器時您的憑據(使用者名稱和密碼)沒有得到充分失效,因為會話已結束。
因此,如果應用程式會話超時未正確實現,駭客可以執行身份驗證損壞攻擊。
技術影響
身份驗證是許多API的主要功能,這些問題可以直接影響從意外提交API金鑰的開發人員到允許操縱按次付費API的機制,或者像OAuth這樣的機制配置錯誤,允許攻擊者冒充其他使用者。