掃二維碼與項目經理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯網交流
許多組織更關注于快速的API和應用程序交付,而忽視了API安全保護,這也是近幾年來API攻擊和數據泄露的主要原因。本文將從API常見類型、API攻擊、API安全測試、API安全建設這幾個角度做簡單分享。

|
分類 |
描述 |
安全現狀 |
|
公有型API |
支持任何人從任何地方訪問服務,被暴露在互聯網中 |
網絡限制少,認證和授權可能存在,可能不存在 |
|
開放API |
頻繁出現在金融業(yè)相關的開放銀行倡議中,促進特定行業(yè)的創(chuàng)新和提高服務整合 |
認證和委托授權都是有的 |
|
私有型API |
通常在數據中心或私有云網絡環(huán)境中部署和運行,以運營管理、內部服務支撐為主 |
認證和授權可能存在,但是也有可能認為攻擊暴露面有限,而被忽視 |
|
合作伙伴API |
向特定的外部供應商提供對內部API的有限訪問,以推動數字供應鏈 |
訪問程度控制權位于內部和外部API之間,可能通過API網關管控,但缺少安全方面的考慮 |
說到API攻擊不得不說,開放式Web應用程序安全項目(OWASP)的非營利組織,多年來應用安全十大排名在安全行業(yè)中經常被引用。
在2019年,OWASP發(fā)布了API Security Top 10,描述了十個最常見的API缺陷。
它作為培訓和提高認識的輔助工具非常有用,也可以作為一個輕量級的分類標準,對API中的問題進行分類,下面將從用例和預防展開說明。
攻擊者在 API 調用中將自己資源的ID替換為屬于另一個用戶的資源的 ID。缺乏適當的授權檢查允許攻擊者訪問指定的資源。這種攻擊也稱為IDOR(InsecureDirect Object Reference)。
用例:
預防:
較弱的API身份驗證允許攻擊者冒充其他用戶的身份。
用例:
· 被視為“內部”的未受保護API· 弱密碼、純文本密碼、弱哈希密碼、共享密碼或默認密碼· 缺失驗證碼或沒有賬號鎖定機制,攻擊者可以對同一用戶賬號進行暴力破解· URL中包含令牌憑證和密碼· 接受未簽名或弱簽名的JWT令牌(“alg”:“none”),或未校驗令牌過期時間。
預防:
· 檢查所有可能的方式來對所有API進行身份驗證· 使用標準身份驗證、令牌生成、密碼存儲和多因素身份驗證 (MFA)· 使用短期訪問令牌· 驗證您的應用程序(以便知道誰在與您交談)· 對身份驗證使用更嚴格的速率限制,并實施鎖定策略和弱密碼檢查· 使用OWASP Authentication Cheat Sheet(身份驗證備忘單)https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Authentication_Cheat_Sheet.md。
API可能會暴露比客戶端合法需要之外的更多數據。
用例:
預防:
API無法防止過多的調用和載荷大小。攻擊者會使用拒絕服務 (DoS),造成API無響應或不可用。
用例:
預防:
攻擊者找出“隱藏”的管理API方法并直接調用它們。
用例:
預防:
在API中容易利用批量分配,因為,它們通過設計公開了應用程序隱含的實現方法以及屬。
性名稱?,F代框架鼓勵開發(fā)人員使用來自客戶端的輸入自動綁定到代碼變量和內部對象中的功能。攻擊者可以使用這種方法來更新或覆蓋開發(fā)人員從未打算公開的敏感對象屬性。
用例:
攻擊者可以通過仔細閱讀配套文檔,來推測出對象的屬性、查找到不同的 API 端點、或在請求負載中發(fā)掘額外的屬性,進而對它們進行篡改。
· 與權限相關的屬性:user.isadmin、 user.isvip僅應由管理員設置· 與流程相關的屬性:user.cash僅應在付款驗證后在內部設置· 內部屬性:article.created_time僅應在應用程序內部設置。
預防:
API 服務器的不良配置允許攻擊者利用它們
用例:
預防:
攻擊者通過任何可用的注入方法(如,直接輸入、參數、集成服務等)向API提供惡意數據,并期望這些惡意數據被發(fā)送至解釋器執(zhí)行。
用例:
預防:
攻擊者通過發(fā)現API的非生產版本(例如,臨時的、測試版或更早期的版本),他們沒有如生產環(huán)境API那樣受到良好保護,將通過這些渠道進行發(fā)起攻擊。
用例:
預防:
缺乏適當的日志記錄、監(jiān)控和警報會導致攻擊和攻擊者被忽視。
用例:
預防:
中文詳細

我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯網交流