API 安全手冊(cè):需要做什么來(lái)保護(hù)API?
應(yīng)用程序編程接口是現(xiàn)代應(yīng)用程序架構(gòu)解決方案,可通過(guò)改進(jìn)連接性和啟用可組合架構(gòu)來(lái)支持?jǐn)?shù)字業(yè)務(wù)。它們用于支持跨網(wǎng)絡(luò)、移動(dòng)和其他渠道的現(xiàn)代用戶體驗(yàn)。它們還支持內(nèi)部流程、客戶和合作伙伴的集成和自動(dòng)化。
在過(guò)去十年中,API 部署呈爆炸式增長(zhǎng),但隨著這種流行,惡意行為者也開(kāi)始關(guān)注。許多 API 安全事件已經(jīng)發(fā)生,尤其是數(shù)據(jù)泄露。這些事件提高了人們對(duì) API 漏洞的認(rèn)識(shí),但由于由 API 交互組成的大量 Web 流量,攻擊和違規(guī)行為仍在繼續(xù)發(fā)生。
許多組織保護(hù) API 流量的方式與保護(hù)其遺留應(yīng)用程序的方式相同。但是,通用應(yīng)用程序安全控制不足以保護(hù) API 事務(wù)。安全和風(fēng)險(xiǎn)管理領(lǐng)導(dǎo)者必須與應(yīng)用技術(shù)專(zhuān)家合作,建立并完善他們的 API 安全計(jì)劃,以應(yīng)對(duì)這種日益增長(zhǎng)的威脅形勢(shì)。
可見(jiàn)性:環(huán)境中存在哪些 API?
許多 API 泄露事件都有一個(gè)共同點(diǎn):被泄露的組織直到為時(shí)已晚才知道他們的 API 不安全。API 安全的第一步是發(fā)現(xiàn)組織從第三方交付或使用的 API。
移動(dòng)和 Web 應(yīng)用程序是一個(gè)很好的起點(diǎn)。API 的另一個(gè)常見(jiàn)來(lái)源是應(yīng)用程序集成,它涉及集成產(chǎn)品用來(lái)提供對(duì)應(yīng)用程序或數(shù)據(jù)的訪問(wèn)的 API。一些組織可能還有一個(gè)開(kāi)放的 API 程序,包括開(kāi)發(fā)人員門(mén)戶,并且必須保護(hù)這些公共 API。最后,考慮組織使用的任何第三方 API。
發(fā)現(xiàn)組織的 API 后,下一步是根據(jù)曝光度、業(yè)務(wù)環(huán)境和技術(shù)對(duì)它們進(jìn)行分類(lèi)。然后,確定 API 的潛在漏洞。最常見(jiàn)的 API 漏洞路徑包括:
- 存儲(chǔ)庫(kù)和存儲(chǔ)中的不安全 API 密鑰:API 密鑰或其他密鑰,例如 SSH 密鑰或 SSL/TLS 私鑰,可能會(huì)在基于云的存儲(chǔ)或?qū)婇_(kāi)放的代碼存儲(chǔ)庫(kù)中被發(fā)現(xiàn)。
- 應(yīng)用程序中的硬編碼 API 密鑰: API 密鑰或其他憑據(jù)可能在 Web 和移動(dòng)應(yīng)用程序中進(jìn)行硬編碼,并在物聯(lián)網(wǎng)設(shè)備或移動(dòng)應(yīng)用程序中受到反編譯攻擊。
- API 邏輯缺陷:API 可能存在可被利用的錯(cuò)誤或其他邏輯缺陷。
- 嗅探 API 調(diào)用:可以通過(guò)中間人方法嗅探 API 流量,從而發(fā)現(xiàn) API 密鑰或不安全的 API。
訪問(wèn)控制:誰(shuí)在訪問(wèn) API,有什么訪問(wèn)權(quán)限?
訪問(wèn)控制是 API 安全的重要組成部分。它包含身份驗(yàn)證(驗(yàn)證主體身份的過(guò)程)和授權(quán)(確定主體是否有權(quán)訪問(wèn)特定資源的過(guò)程)。
訪問(wèn)控制功能中的漏洞通常是針對(duì) API 的最常見(jiàn)攻擊點(diǎn),會(huì)導(dǎo)致數(shù)據(jù)泄露、丟失和操縱。Web 應(yīng)用程序歷來(lái)使用基本身份驗(yàn)證(用戶名和密碼)來(lái)允許用戶訪問(wèn)。當(dāng)組織開(kāi)始部署 API 時(shí),通常會(huì)繼承這種機(jī)制。
成熟的組織使用現(xiàn)代 API 訪問(wèn)控制機(jī)制。現(xiàn)代 API 訪問(wèn)控制策略基于對(duì)組織用例的四個(gè)關(guān)鍵維度的評(píng)估:
- 身份功能:API 用例的身份功能是身份驗(yàn)證、授權(quán)和加密。身份結(jié)構(gòu),即需要協(xié)調(diào)在一起以解決身份需求的工具,根據(jù)組織范圍內(nèi)的身份功能而有所不同。
- 應(yīng)用程序:移動(dòng)應(yīng)用程序、內(nèi)部或外部服務(wù)、Web 應(yīng)用程序和設(shè)備都是訪問(wèn)受保護(hù) API 的應(yīng)用程序示例。這些應(yīng)用程序通常由用戶或機(jī)器身份(例如服務(wù)帳戶)操作。不同的應(yīng)用程序在如何驗(yàn)證自己和操作它們的人類(lèi)用戶方面具有不同的功能。
- 調(diào)解器:API 受調(diào)解器(如企業(yè)或內(nèi)部 API 網(wǎng)關(guān))以及更靈活的調(diào)解器(如部署在 API 附近的邊車(chē))的保護(hù)。評(píng)估調(diào)解器的身份能力可確保 API 訪問(wèn)策略包括調(diào)解器中的正確集成和執(zhí)行。它還使組織能夠評(píng)估訪問(wèn)管理工具對(duì)所用中介的支持。
- 開(kāi)發(fā)人員支持:開(kāi)發(fā)人員支持確保開(kāi)發(fā)人員可以發(fā)布和控制他們自己的 API,并控制他們?cè)谒麄兊?API 中需要哪些屬性。同時(shí),控制必須基于委托模型,在該模型中,中央團(tuán)隊(duì)控制總體策略。了解開(kāi)發(fā)人員支持維度可確保該策略包括正確的工具支持,例如開(kāi)發(fā)人員自助服務(wù)界面。
為確保進(jìn)行適當(dāng)?shù)娘L(fēng)險(xiǎn)評(píng)估和分類(lèi),請(qǐng)使用這些維度來(lái)定義組織的 API 訪問(wèn)控制要求。
威脅防護(hù):攻擊者如何利用API?
API 安全程序必須防范三種常見(jiàn)的攻擊模式:拒絕服務(wù)、濫用功能和漏洞利用。API 威脅保護(hù)由運(yùn)行時(shí)或外圍技術(shù)組成,可識(shí)別和防止屬于這三類(lèi)的攻擊。
典型的威脅防護(hù)技術(shù)包括:
- DDoS 保護(hù):能夠處理容量攻擊的解決方案包括內(nèi)容交付網(wǎng)絡(luò)或 CDN、基于云和設(shè)備的 Web 應(yīng)用程序防火墻或 WAF,以及云清洗中心或 CSC 平臺(tái)。對(duì)于應(yīng)用層 DoS 攻擊,具有 DoS 功能的硬件或基于云的 WAF 可能是合適的。一旦攻擊逐漸增加并開(kāi)始淹沒(méi)網(wǎng)絡(luò)鏈接,就需要 CDN 或外部 CSC。
- WAF:一種解決方案,通過(guò)過(guò)濾和監(jiān)控 HTTP 流量以阻止常見(jiàn)的漏洞利用攻擊,為 API 提供有限的保護(hù)。一些 WAF 還提供機(jī)器人緩解和應(yīng)用程序或第 7 層 DDoS 保護(hù)。
- Bot 緩解:一種解決方案,可為多種類(lèi)型的腳本攻擊提供高級(jí)保護(hù)。這些解決方案在這方面比一般的 WAF 更有能力,這使它們成為防止濫用的可能的首選或補(bǔ)充。
- 專(zhuān)門(mén)的 API 保護(hù):通過(guò)結(jié)合參數(shù)和有效負(fù)載的內(nèi)容檢查、流量管理和異常檢測(cè)的流量分析,提供針對(duì) API 攻擊和濫用的保護(hù)的解決方案。
這些技術(shù)共同構(gòu)成了 Web 應(yīng)用程序和 API 保護(hù)或 WAAP 解決方案。除了 WAAP 功能外,組織還經(jīng)常將 API 網(wǎng)關(guān)和管理系統(tǒng)添加到其基礎(chǔ)架構(gòu)中。
隨著 API 威脅態(tài)勢(shì)的增長(zhǎng),應(yīng)用程序安全領(lǐng)導(dǎo)者必須建立并完善他們的 API 安全計(jì)劃,以應(yīng)對(duì)這種日益增長(zhǎng)的威脅態(tài)勢(shì)。這種方法可以幫助組織建立全面的 API 可見(jiàn)性計(jì)劃,設(shè)置機(jī)制來(lái)檢查 API 是否符合組織的身份驗(yàn)證和加密標(biāo)準(zhǔn),并為關(guān)鍵的面向外部的 API 部署專(zhuān)門(mén)的威脅防護(hù)。
編譯自:https://siliconangle.com/