日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
我們一起聊聊API安全

許多組織更關(guān)注于快速的API和應(yīng)用程序交付,而忽視了API安全保護,這也是近幾年來API攻擊和數(shù)據(jù)泄露的主要原因。本文將從API常見類型、API攻擊、API安全測試、API安全建設(shè)這幾個角度做簡單分享。

常見API類型

分類

描述

安全現(xiàn)狀

公有型API

支持任何人從任何地方訪問服務(wù),被暴露在互聯(lián)網(wǎng)中

網(wǎng)絡(luò)限制少,認證和授權(quán)可能存在,可能不存在

開放API

頻繁出現(xiàn)在金融業(yè)相關(guān)的開放銀行倡議中,促進特定行業(yè)的創(chuàng)新和提高服務(wù)整合

認證和委托授權(quán)都是有的

私有型API

通常在數(shù)據(jù)中心或私有云網(wǎng)絡(luò)環(huán)境中部署和運行,以運營管理、內(nèi)部服務(wù)支撐為主

認證和授權(quán)可能存在,但是也有可能認為攻擊暴露面有限,而被忽視

合作伙伴API

向特定的外部供應(yīng)商提供對內(nèi)部API的有限訪問,以推動數(shù)字供應(yīng)鏈

訪問程度控制權(quán)位于內(nèi)部和外部API之間,可能通過API網(wǎng)關(guān)管控,但缺少安全方面的考慮

API攻擊

說到API攻擊不得不說,開放式Web應(yīng)用程序安全項目(OWASP)的非營利組織,多年來應(yīng)用安全十大排名在安全行業(yè)中經(jīng)常被引用。

在2019年,OWASP發(fā)布了API Security Top 10,描述了十個最常見的API缺陷。

它作為培訓(xùn)和提高認識的輔助工具非常有用,也可以作為一個輕量級的分類標準,對API中的問題進行分類,下面將從用例和預(yù)防展開說明。

1.API1:2019-失效的對象級別授權(quán)

攻擊者在 API 調(diào)用中將自己資源的ID替換為屬于另一個用戶的資源的 ID。缺乏適當?shù)氖跈?quán)檢查允許攻擊者訪問指定的資源。這種攻擊也稱為IDOR(InsecureDirect Object Reference)。

用例:

  • API 調(diào)用參數(shù)訪問的資源 ID /api/id1 /financial_info。
  • 攻擊者將其資源的 ID 替換為猜測的另一個ID /api/id2/financial_info。
  • API 不檢查權(quán)限并允許調(diào)用通過。
  • 如果可以枚舉ID,問題會更加嚴重/api/000-999/financial_info。

預(yù)防:

  • 基于用戶策略和繼承關(guān)系來實現(xiàn)適當?shù)氖跈?quán)機制。
  • 不要依賴客戶端發(fā)送的ID,改用存儲在會話對象中的ID。
  • 檢查每個客戶端訪問數(shù)據(jù)庫的請求授權(quán)。
  • 使用無法猜測的隨機 ID (GUID)。

2.API2:2019-失效的用戶身份驗證

較弱的API身份驗證允許攻擊者冒充其他用戶的身份。

用例:

· 被視為“內(nèi)部”的未受保護API· 弱密碼、純文本密碼、弱哈希密碼、共享密碼或默認密碼· 缺失驗證碼或沒有賬號鎖定機制,攻擊者可以對同一用戶賬號進行暴力破解· URL中包含令牌憑證和密碼· 接受未簽名或弱簽名的JWT令牌(“alg”:“none”),或未校驗令牌過期時間。

預(yù)防:

· 檢查所有可能的方式來對所有API進行身份驗證· 使用標準身份驗證、令牌生成、密碼存儲和多因素身份驗證 (MFA)· 使用短期訪問令牌· 驗證您的應(yīng)用程序(以便知道誰在與您交談)· 對身份驗證使用更嚴格的速率限制,并實施鎖定策略和弱密碼檢查· 使用OWASP Authentication Cheat Sheet(身份驗證備忘單)https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Authentication_Cheat_Sheet.md。

3.API3:2019-過度的數(shù)據(jù)暴露

API可能會暴露比客戶端合法需要之外的更多數(shù)據(jù)。

用例:

  • API返回完整的數(shù)據(jù)對象,因為它們存儲在后端數(shù)據(jù)庫中。
  • 客戶端應(yīng)用程序過濾響應(yīng)并僅顯示用戶真正需要查看的數(shù)據(jù)。
  • 攻擊者直接調(diào)用API并獲取被過濾掉的敏感數(shù)據(jù)(嗅探抓包)。

預(yù)防:

  • 永遠不要依賴客戶端過濾數(shù)據(jù)!· 檢查API的響應(yīng),確認其中僅包含合法數(shù)據(jù)· 仔細定義所有API響應(yīng)的模式· 識別所有敏感數(shù)據(jù)或個人身份信息 (PII),確認其使用的合理性· 執(zhí)行schema-based響應(yīng)驗證機制作為額外的安全措施。這種機制定義并強制檢查所有方法返回的數(shù)據(jù),包括錯誤信息。

4.API4:2019-資源缺乏和速率限制

API無法防止過多的調(diào)用和載荷大小。攻擊者會使用拒絕服務(wù) (DoS),造成API無響應(yīng)或不可用。

用例:

  • 攻擊者通過發(fā)送超出其處理能力的請求來使API過載和阻塞。
  • 請求時某些字段超出API可以處理的范圍。

預(yù)防:

  • 定義適當?shù)乃俾氏拗啤?限制有效載荷大小· 添加對壓縮比的檢查· 定義容器資源的限制(內(nèi)存、CPU、文件描述符和進程)。

5.API5:2019-失效的功能級授權(quán)

攻擊者找出“隱藏”的管理API方法并直接調(diào)用它們。

用例:

  • 一些管理功能作為API公開,如果非特權(quán)用戶知道,他們可以在未經(jīng)授權(quán)的情況下訪問這些功能。
  • 可以是發(fā)掘的URL,或者使用不同的參數(shù)/api/users/my_financial_info —> /api/admin/all_info。

預(yù)防:

  • 默認拒絕所有訪問。
  • 確保所有管理控制器都從管理抽象控制器繼承,抽象控制器根據(jù)用戶的組/角色實施授權(quán)檢查,只允許對屬于相應(yīng)組或角色的用戶進行操作。
  • 正確設(shè)計和測試授權(quán)。

6.API6:2019-批量分配

在API中容易利用批量分配,因為,它們通過設(shè)計公開了應(yīng)用程序隱含的實現(xiàn)方法以及屬。

性名稱?,F(xiàn)代框架鼓勵開發(fā)人員使用來自客戶端的輸入自動綁定到代碼變量和內(nèi)部對象中的功能。攻擊者可以使用這種方法來更新或覆蓋開發(fā)人員從未打算公開的敏感對象屬性。

用例:

攻擊者可以通過仔細閱讀配套文檔,來推測出對象的屬性、查找到不同的 API 端點、或在請求負載中發(fā)掘額外的屬性,進而對它們進行篡改。

· 與權(quán)限相關(guān)的屬性:user.isadmin、 user.isvip僅應(yīng)由管理員設(shè)置· 與流程相關(guān)的屬性:user.cash僅應(yīng)在付款驗證后在內(nèi)部設(shè)置· 內(nèi)部屬性:article.created_time僅應(yīng)在應(yīng)用程序內(nèi)部設(shè)置。

預(yù)防:

  • 不要自動綁定傳入數(shù)據(jù)和內(nèi)部對象。
  • 僅將客戶端可更新的屬性列入白名單。
  • 使用內(nèi)置功能將客戶端不應(yīng)訪問的屬性列入黑名單。
  • 在設(shè)計時精確定義在請求中接受的模式、類型,并在運行時強制執(zhí)行它們。

7.API7:2019-安全配置錯誤

API 服務(wù)器的不良配置允許攻擊者利用它們

用例:

  • 缺少最新的安全補丁,或者系統(tǒng)已經(jīng)過期。
  • 未受保護的文件和目錄。
  • 缺少傳輸層加密,使用過時或配置錯誤的TLS。
  • 暴露存儲或服務(wù)器管理面板。
  • 缺少CORS(跨域資源共享)策略或安全標頭。
  • 帶有堆棧跟蹤的錯誤消息。
  • 啟用了不必要的功能。

預(yù)防:

  • 在所有環(huán)境中持續(xù)評估配置和設(shè)置有效性的自動化過程。 為了防止異常追蹤和其他有價值的信息被傳回攻擊者,如果可以,定義和強制使用統(tǒng)一的API響應(yīng)格式,包括錯誤信息。
  • 禁用不必要的功能。
  • 限制管理訪問。

8.API8:2019-注入

攻擊者通過任何可用的注入方法(如,直接輸入、參數(shù)、集成服務(wù)等)向API提供惡意數(shù)據(jù),并期望這些惡意數(shù)據(jù)被發(fā)送至解釋器執(zhí)行。

用例:

  • 攻擊者發(fā)送惡意輸入以轉(zhuǎn)發(fā)給內(nèi)部解釋器。
  • SQL· NoSQL· LDAP· 操作系統(tǒng)命令· XML外部實體。

預(yù)防:

  • 永遠不要相信你的 API 消費者,即使他們是內(nèi)部的。
  • 嚴格定義所有輸入數(shù)據(jù),例如模式、類型和字符串,并在運行時強制執(zhí)行。
  • 驗證、過濾和清理所有傳入數(shù)據(jù)。
  • 定義、限制和強制執(zhí)行 API 輸出以防止數(shù)據(jù)泄漏。

9.API9:2019-資產(chǎn)管理不當

攻擊者通過發(fā)現(xiàn)API的非生產(chǎn)版本(例如,臨時的、測試版或更早期的版本),他們沒有如生產(chǎn)環(huán)境API那樣受到良好保護,將通過這些渠道進行發(fā)起攻擊。

用例:

  • DevOps、云、容器和 Kubernetes 使多個部署變得容易(例如,開發(fā)、測試、分支機構(gòu)、舊版本等)。
  • 為了保持向后兼容性,迫使舊的API繼續(xù)運行。
  • 舊版本或非生產(chǎn)版本未得到適當維護,但這些端點仍然可以訪問生產(chǎn)數(shù)據(jù)。
  • 一旦通過一個端點進行身份驗證,攻擊者可能會切換到生產(chǎn)端點。

預(yù)防:

  • 保持所有API主機的最新清單和未知API的能力。
  • 限制不應(yīng)對外公開的任何訪問。
  • 限制對生產(chǎn)數(shù)據(jù)的訪問,并隔離生產(chǎn)和非生產(chǎn)數(shù)據(jù)之間的訪問。
  • 實施API網(wǎng)關(guān)和安全檢測產(chǎn)品。
  • 淘汰舊版本的API或舊版本程序安全修復(fù)。
  • 實施嚴格的身份驗證、重定向、CORS 等。

10.API10:2019-日志和監(jiān)視不足

缺乏適當?shù)娜罩居涗洝⒈O(jiān)控和警報會導(dǎo)致攻擊和攻擊者被忽視。

用例:

  • 日志不受完整性保護(沒有生成任何日志、日志級別沒有正確設(shè)置、或日志消息缺失足夠的細節(jié)信息)。
  • 日志未集成到安全信息和事件管理 (SIEM) 系統(tǒng)中。
  • 日志和警報設(shè)計不佳。
  • 公司依賴手動而不是自動化系統(tǒng)。

預(yù)防:

  • 記錄失敗的嘗試、拒絕訪問、輸入驗證失敗或安全策略檢查中的任何失敗。
  • 確保對日志的標準化,以便其他工具也可以使用。
  • 包括足夠的細節(jié)來識別攻擊者。
  • 避免在日志中包含敏感數(shù)據(jù),如果需要這些信息用于調(diào)試目的,請對部分信息進行脫敏處理。
  • 與SIEM以及其他監(jiān)控和警報工具集成。

中文詳細


新聞名稱:我們一起聊聊API安全
網(wǎng)站鏈接:http://m.5511xx.com/article/copcpsg.html