開放API生態(tài)系統(tǒng)面臨的十個威脅
盡管全球經(jīng)濟形勢趨于嚴峻,但API經(jīng)濟仍在繼續(xù)增長。對于大多數(shù)行業(yè)來說,API促進了幾乎所有應(yīng)用程序或服務(wù)的即時交易,加快了商品和服務(wù)的交易速度。應(yīng)用交付網(wǎng)絡(luò)和業(yè)務(wù)解決方案提供商F5公司最近發(fā)布的一份報告以這種方式描述了API的快速增長:“如果說數(shù)據(jù)是新的石油,那么API將成為新的塑料。”
開放API(或公共API)提供了許多機會和競爭優(yōu)勢。企業(yè)可以利用開放API來重塑其供應(yīng)和交付鏈。企業(yè)可以利用廣泛的開發(fā)人員人才庫和不斷增長的軟件資源庫。此外,企業(yè)可以將其商業(yè)開發(fā)的API作為開放API發(fā)布。通過這樣做,他們可以吸引新客戶、提高品牌忠誠度,并提升他們的市場形象。
然而,開放API也帶來了固有的風(fēng)險和挑戰(zhàn),企業(yè)需要在開始這一旅程之前解決這些問題。
本文將為IT工程師、領(lǐng)導(dǎo)團隊成員和網(wǎng)絡(luò)安全專業(yè)人員提供對開放API生態(tài)系統(tǒng)的10種威脅的快照。
API經(jīng)濟:機遇與威脅
開放API提供了許多機會,其中包括改進企業(yè)與供應(yīng)商、服務(wù)提供商和客戶的聯(lián)系和協(xié)作,最終這有助于改善客戶體驗。通過API端點連接的微服務(wù)使企業(yè)能夠利用適合用途的技術(shù),擺脫了使用繁瑣的單一系統(tǒng)的束縛。從而提高了生產(chǎn)力。所有這些都將顯著地降低應(yīng)用程序開發(fā)、部署和維護的成本。
然而,從本質(zhì)上說,開放API也吸引了網(wǎng)絡(luò)犯罪分子的注意。由于API是交易性的,因此它們也容易受到意外或惡意泄露個人、財務(wù)和其他敏感信息的影響。未受保護的端點或未經(jīng)驗證的客戶端請求可能會將API暴露給DDoS、SQL注入或勒索軟件等潛在威脅。這些都會嚴重影響開放API的開發(fā)人員和消費者。
參與開放API生態(tài)系統(tǒng)需要對此做好周全的準備,而準備工作從威脅識別開始。
開放API(或任何API)的10個威脅
網(wǎng)絡(luò)安全行業(yè)已投入大量資源來識別、分類和分級API攻擊向量。基于這項研究,以下列出了開放API面臨的10種值得注意的威脅。
(1)對象級入侵
API依賴于經(jīng)常處理對象ID的端點。此類對象可以是任何資源,例如文件、數(shù)據(jù)庫表或端口。糟糕的應(yīng)用程序設(shè)計可能會利用隨客戶端請求發(fā)送的對象ID。
為了防止這種情況發(fā)生,API的代碼在每次獲取對象數(shù)據(jù)或?qū)ζ溥M行任何操作時都必須執(zhí)行對象級別的授權(quán)檢查。此類檢查確保發(fā)出請求的用戶或應(yīng)用程序具有執(zhí)行此類功能的最低權(quán)限。具有最佳實踐的傳統(tǒng)實施使用最小權(quán)限原則和基于角色的訪問控制來進行這些檢查。
(2)用戶身份驗證漏洞
惡意行為者利用破壞用戶身份驗證的API來欺騙有效用戶,獲得對系統(tǒng)不同部分的未經(jīng)授權(quán)的訪問,并發(fā)動進一步的攻擊。
使用強大的身份驗證機制保護API端點對于防范這種威脅至關(guān)重要。用戶身份驗證通過要求客戶端提供有效憑據(jù)(如用戶名/密碼組合或API訪問密鑰)來保護API。
(3)無意的數(shù)據(jù)暴露
糟糕的編碼實踐通常會在代碼中暴露對象屬性、數(shù)據(jù)或其他敏感信息。客戶端應(yīng)用程序必須在將結(jié)果返回給用戶之前過濾掉這些信息。但是,此類數(shù)據(jù)(例如其他API的密鑰、憑據(jù)或個人信息)可能會保留在代碼中,并且當API代碼托管在公共存儲庫上時,它們會在無意中對外泄露。
(4)分布式拒絕服務(wù)(DDoS)
如果沒有對請求訪問速率的限制,API端點很容易受到分布式拒絕服務(wù)(DDoS)攻擊。此類攻擊涉及惡意攻擊者從多個來源(通常是受感染的系統(tǒng))向API端點發(fā)起大量請求,使端點不堪重負,并使其脫機。而目前流行的開放API可能是此類攻擊的常見目標。
速率限制將客戶端請求的數(shù)量限制在給定時間內(nèi)的特定最大值。在此期間收到的任何其他客戶請求都將被拒絕。在通常情況下,API網(wǎng)關(guān)會執(zhí)行這一限速任務(wù)。
(5)授權(quán)黑客
復(fù)雜的對象和功能訪問控制策略有時可以具有多個層次結(jié)構(gòu)、組、角色和權(quán)限。這種復(fù)雜的安全機制笨重且難以維護。開發(fā)人員或管理員有時可能會為用戶或應(yīng)用程序分配更高的權(quán)限以規(guī)避問題。這通常會導(dǎo)致黑客通過針對個人帳戶或完全繞過訪問控制中的缺陷來利用更高的權(quán)限。
(6)批量分配的弱點
這種威脅也稱為自動綁定或?qū)ο笞⑷肼┒础,F(xiàn)代應(yīng)用程序框架鼓勵開發(fā)人員使用將客戶端請求輸入值鏈接到代碼變量和其他內(nèi)部對象的自動功能,以簡化和加速開發(fā)。利用此框架帶來的副作用,網(wǎng)絡(luò)攻擊者可以更改或覆蓋開發(fā)人員從未打算公開的關(guān)鍵對象的屬性。
(7)安全錯誤配置缺陷
安全錯誤配置的示例包括不安全的默認設(shè)置、不充分或未跟蹤的配置更改、不安全的存儲、錯誤配置的HTTP標頭、允許的跨域資源共享(CORS)以及包含敏感信息的詳細錯誤消息。而部署和配置支持開放API運行的基礎(chǔ)設(shè)施資源需要特別注意安全性。
(8)代碼注入漏洞
代碼注入涉及惡意玩家利用糟糕的輸入驗證在API請求中嵌入SQL或其他命令。當不能很好地防范此類攻擊的API代碼運行時,這些命令可能會暴露敏感數(shù)據(jù)、執(zhí)行數(shù)據(jù)修改或刪除,或促進進一步的滲透。
(9)資產(chǎn)管理不善
由于API比傳統(tǒng)的Web應(yīng)用程序暴露更多的端點,維護不當?shù)奈臋n、接口描述、版本控制或資產(chǎn)列表可能導(dǎo)致忽略重要的攻擊面,并帶來不安全因素。
(10)記錄和監(jiān)控不足
日志記錄和監(jiān)控不足導(dǎo)致未報告關(guān)鍵安全事件,也未發(fā)送主動警告。此外,缺失或有缺陷的事件響應(yīng)過程允許網(wǎng)絡(luò)攻擊者繼續(xù)其活動而不被注意。許多數(shù)據(jù)違規(guī)事件表明,監(jiān)管不力導(dǎo)致數(shù)據(jù)泄露違規(guī)行為在發(fā)生200多天之后才被發(fā)現(xiàn)。
應(yīng)對開放API威脅
為了應(yīng)對以上討論的威脅和漏洞,有必要在API的設(shè)計和開發(fā)階段采用安全最佳實踐。以下是一些需要考慮的基本安全控制措施:
- 監(jiān)控軟件供應(yīng)鏈和分析軟件組成可以識別易受網(wǎng)絡(luò)攻擊的組件,例如不安全的第三方庫。
- 靜態(tài)應(yīng)用程序安全測試(SAST)審查應(yīng)用程序代碼,并可以識別漏洞。
- 動態(tài)應(yīng)用程序安全測試(DAST)在應(yīng)用程序代碼運行時模擬對它的攻擊,從而發(fā)現(xiàn)可能的弱點。
- 安全事件和事件管理(SIEM)解決方案可以掃描應(yīng)用程序日志以發(fā)現(xiàn)可能的違規(guī)、可疑活動、趨勢或異常。
- 安全編排、自動化和響應(yīng)(SOAR)解決方案通過在檢測到安全異常或威脅時執(zhí)行運行手冊中的補救步驟,并進一步發(fā)展。
- 強大的身份驗證機制允許驗證API用戶。同樣,強大的授權(quán)機制使用戶能夠只執(zhí)行允許執(zhí)行的特定操作。
- 使用對稱密鑰加密數(shù)據(jù),并使用SSL/TLS證書保護API端點,確保數(shù)據(jù)在靜態(tài)時和傳輸中受到保護。
- 經(jīng)過測試的強大災(zāi)難恢復(fù)計劃可確保API得到修復(fù)并快速恢復(fù)在線,即使API已被破壞。
此外,API網(wǎng)關(guān)還可以通過向其托管的API提供服務(wù)發(fā)現(xiàn)、路由、負載均衡、高可用性和可觀察性服務(wù),極大地增強API的安全性和穩(wěn)定性。它允許企業(yè)使用SSL/TLS輕松保護所有通信通道,實施速率限制以防止DDoS攻擊,并限制客戶端請求有效負載和API響應(yīng)大小。API網(wǎng)關(guān)還可以與Web應(yīng)用程序防火墻(WAF)一起使用,以提供額外的安全層。
結(jié)論
正如人們所見,企業(yè)可以通過使用開放API構(gòu)建強大的應(yīng)用程序來參與API經(jīng)濟。但是,開放API并非沒有威脅。以上簡要介紹了10種安全威脅以及應(yīng)對措施。API網(wǎng)關(guān)可以促進其中的一些措施,并提供高級管理功能。