偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

我們一起聊聊 API 安全

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

API(Application Programming Interface)應(yīng)用程序接口,可以應(yīng)用于所有計(jì)算機(jī)平臺(tái)和操作系統(tǒng),以不同的格式連接數(shù)據(jù)調(diào)用數(shù)據(jù)。比如,用戶可以跟蹤電商平臺(tái)購(gòu)買的貨物位置,就是電商平臺(tái)與物流公司之間使用了API位置實(shí)時(shí)調(diào)用產(chǎn)生的效果。

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

常見API類型

分類

描述

安全現(xiàn)狀

公有型API

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

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

開放API

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

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

私有型API

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

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

合作伙伴API

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

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

API攻擊

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

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

它作為培訓(xùn)和提高認(rèn)識(shí)的輔助工具非常有用,也可以作為一個(gè)輕量級(jí)的分類標(biāo)準(zhǔn),對(duì)API中的問(wèn)題進(jìn)行分類,下面將從用例和預(yù)防展開說(shuō)明。

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

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

用例:

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

預(yù)防:

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

2.API2:2019-失效的用戶身份驗(yàn)證

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

用例:

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

預(yù)防:

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

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

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

用例:

  • API返回完整的數(shù)據(jù)對(duì)象,因?yàn)樗鼈兇鎯?chǔ)在后端數(shù)據(jù)庫(kù)中。
  • 客戶端應(yīng)用程序過(guò)濾響應(yīng)并僅顯示用戶真正需要查看的數(shù)據(jù)
  • 攻擊者直接調(diào)用API并獲取被過(guò)濾掉的敏感數(shù)據(jù)(嗅探抓包)。

預(yù)防:

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

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

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

用例:

  • 攻擊者通過(guò)發(fā)送超出其處理能力的請(qǐng)求來(lái)使API過(guò)載和阻塞
  • 請(qǐng)求時(shí)某些字段超出API可以處理的范圍。

預(yù)防:

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

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

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

用例:

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

預(yù)防:

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

6.API6:2019-批量分配

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

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

用例:

攻擊者可以通過(guò)仔細(xì)閱讀配套文檔,來(lái)推測(cè)出對(duì)象的屬性、查找到不同的 API 端點(diǎn)、或在請(qǐng)求負(fù)載中發(fā)掘額外的屬性,進(jìn)而對(duì)它們進(jìn)行篡改。

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

預(yù)防:

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

7.API7:2019-安全配置錯(cuò)誤

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

用例:

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

預(yù)防:

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

8.API8:2019-注入

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

用例:

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

預(yù)防:

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

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

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

用例:

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

預(yù)防:

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

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

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

用例:

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

預(yù)防:

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

中文詳細(xì)參考鏈接:

http://www.owasp.org.cn/OWASP-CHINA/owasp-project/OWASPAPITop102019.pdf

API安全測(cè)試

在左移的API安全實(shí)踐中,一個(gè)重點(diǎn)是確保構(gòu)建管道的安全,需要企業(yè)將安全工具嵌入持續(xù)集成/持續(xù)交付(CD/CD)中,以及基于git的開發(fā)人員工作流程中。以下列出了兩類安全測(cè)試工具。

1.靜態(tài)應(yīng)用安全測(cè)試(StaticApplication Security Testing,SAST)

用于分析原始代碼的潛在弱點(diǎn)和漏洞,通常在代碼被提交到版本控制或構(gòu)建階段時(shí)運(yùn)行。

GitHub code scanning、Coverity Scan Static Analysis、reshift、Xanitizer、HCL AppScan CodeSweep

2.動(dòng)態(tài)應(yīng)用安全測(cè)試(DynamicApplication Security Testing,DAST)

用來(lái)分析運(yùn)行中的應(yīng)用,以發(fā)現(xiàn)可利用的漏洞,通常在生產(chǎn)交付前啟動(dòng),或在生產(chǎn)中持續(xù)使用。

開源軟件:OWASP ZAP、StackHawk、Arachni、sec-helpers、OWASPPurpleteam。

缺點(diǎn):當(dāng)然以上工具也有其弱點(diǎn),比如SAST工具誤報(bào)率會(huì)較高,涉及人工復(fù)核成本。DAST工具運(yùn)行時(shí)間會(huì)較長(zhǎng),需提前預(yù)留時(shí)間,以免耽誤發(fā)布。

需要承認(rèn)的是掃描器工具并不能用來(lái)檢測(cè)所有類型的問(wèn)題,比如一些濫用的業(yè)務(wù)邏輯缺陷。

來(lái)源參考:

https://owasp.org/www-community/Free_for_Open_Source_Application_Security_Tools

API安全測(cè)試實(shí)踐

1.API安全測(cè)試的小技巧

  • https://github.com/inonshk/31-days-of-API-Security-Tips
  • https://cloud.tencent.com/developer/article/1805577

(以上鏈接的中文翻譯)

2.開發(fā)安全的API所需要核對(duì)的清單

  • https://github.com/shieldfy/API-Security-Checklist/blob/master/README-zh.md

API安全建設(shè)思考

架構(gòu)設(shè)計(jì)對(duì)于有效的保護(hù)API安全至關(guān)重要,架構(gòu)中需要具備捕獲和分析所有API流量的產(chǎn)品。

需要有豐富的數(shù)據(jù)引擎、基于API Security Top10威脅、算法識(shí)別等技術(shù)來(lái)檢測(cè)暴露的分析,并進(jìn)行有效的攔截,以及提供加固補(bǔ)救措施。

流程和人員設(shè)計(jì)同樣重要,在發(fā)現(xiàn)、測(cè)試和保護(hù)API時(shí),補(bǔ)救措施以及各內(nèi)部角色和第三方組織的協(xié)同。

1.安全產(chǎn)品與環(huán)境無(wú)關(guān)

需要支持現(xiàn)代云架構(gòu)和傳統(tǒng)的基礎(chǔ)設(shè)施架構(gòu)。

2.API資產(chǎn)和攻擊檢測(cè)能力

由于API發(fā)開、API集成和第三方API依賴,使得API清單不斷發(fā)展,必須有不斷識(shí)別API端點(diǎn)和參數(shù)(不僅是IP和主機(jī)名,還需要功能、路徑、信息主體),未知影子API,過(guò)期或者廢棄的僵尸API。特別是敏感數(shù)據(jù)發(fā)現(xiàn)能力,比如個(gè)人身份信息,因?yàn)檫@塊會(huì)涉及監(jiān)管合規(guī)問(wèn)題。持續(xù)檢測(cè)數(shù)據(jù)權(quán)限、口令認(rèn)證等缺陷,并能及時(shí)感知API的攻擊存在。

3.集成能力

能夠與負(fù)載均衡、API網(wǎng)關(guān)、WAF、漏洞管理平臺(tái)(VM)、DevOps套件、ITSM等平臺(tái)集成。

4.API代碼分析

在生產(chǎn)交付前掃描可能存在的缺陷,以減少攻擊者發(fā)現(xiàn)可利用條件的可能。

5.人員能力

API安全專業(yè)知識(shí)可能分散在開發(fā)、基礎(chǔ)設(shè)施、運(yùn)營(yíng)、安全或者API產(chǎn)品團(tuán)隊(duì)中,需要去梳理,以便在發(fā)現(xiàn)、測(cè)試、保護(hù)和事件響應(yīng)方面進(jìn)行合作。

責(zé)任編輯:武曉燕 來(lái)源: 新鈦云服
相關(guān)推薦

2024-11-27 08:47:12

2022-02-14 07:03:31

網(wǎng)站安全MFA

2024-10-15 08:08:13

2023-11-10 08:04:43

Java 17Java 11JDK

2025-03-17 11:21:08

APISwagger界面

2022-05-05 12:57:40

架構(gòu)

2021-08-27 07:06:10

IOJava抽象

2024-02-20 21:34:16

循環(huán)GolangGo

2023-08-04 08:20:56

DockerfileDocker工具

2023-09-10 21:42:31

2023-06-30 08:18:51

敏捷開發(fā)模式

2023-08-10 08:28:46

網(wǎng)絡(luò)編程通信

2025-04-08 00:16:07

2022-06-02 12:01:15

無(wú)線局域網(wǎng)安全

2024-02-26 00:00:00

Go性能工具

2022-11-12 12:33:38

CSS預(yù)處理器Sass

2023-04-26 07:30:00

promptUI非結(jié)構(gòu)化

2023-12-28 09:55:08

隊(duì)列數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)

2022-07-29 08:17:46

Java對(duì)象內(nèi)存

2022-10-28 07:27:17

Netty異步Future
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)