現代系統依賴于通過各種網絡公開的部署備好API(應用程序接口)的復雜系統。很多企業借助API來傳輸數據和連接服務,全準提供便利。新思但同時,科技近年來一些嚴重的部署備好數據泄露都源于API遭到攻擊和破環,導致敏感的全準信息被不法分子利用。
那什么是新思API安全,它如何融入到整體的科技安全計劃?
所有應用程序都使用API(比如,對內核的部署備好調用、軟件開發工具包、密碼庫和SOAP協議)。如今,供應商提到的“ API安全”是指這些API的子集 —— 通過網絡公開的那些API。
就本質而言,這些網絡公開的API使信息能夠自由傳遞以及在軟件組件之間進行交互。攻擊者有機會可以通過公共網絡、云和專用網絡的暴露端點來破壞系統的組件。一些知名公司(包括USPS、T-Mobile和Salesforce等)的重大違規事件是源于暴露或使用不安全的API端點。那么問題來了,要如何了解軟件安全計劃是否滿足企業所需的安全控制的要求,以確保使用和創建的API是安全的?首先,你需要定義什么是“API安全”。
究竟什么是“API 安全”?
API安全是對企業創建和使用的(暴露在網絡中)API的保護。當然,這意味著需要使用與API緊密相關的通用安全控制:速率限制以及用戶、服務和請求的身份驗證和授權。這還意味著了解數據來源,以及在查看組成的系統時,在設計或查看討論時準確地尋找到上下文的位置。對于軟件安全領頭企業來說,這意味著應用程序安全計劃可以在適當的時間捕獲活動并將其應用于暴露或使用API的軟件。強大的API安全性不只是購買一些新工具,還源于一種安全文化,它涉及整個軟件安全計劃中的活動。
解決API安全難題
諸如微服務架構等的流行軟件開發趨勢已將與軟件安全計劃(SSI)相關的軟件單元從“應用程序”(或整體式)擴展至API的許多子組件。這些子組件具有自己的生命周期和合同,并必須遵守安全控制措施。軟件安全企業可以從以下方面提升安全性:
設計API
API是被用在前端客戶端(胖客戶端或瀏覽器)和后端系統之間,以及后端組件之間。進一步考慮,單個API端點可能最終會同時處理前端和后端請求。當各個API端點暴露于各種已知和未知的調用方(網關或負載平衡器的上游消耗、組成或包裝)時,很難確定單個API端點必須執行哪些安全控制。應用程序安全主管可以做出的一個決定是,推動使用API,以明確記錄提供商和使用者應承擔的安全責任。
架構師還面臨識別API跨領域問題的麻煩。安全領導者應該注意一些安全活動,例如統一訪問控制,以及那些與業務邏輯接近的活動,例如統一客戶身份認證。
安全控制
關于安全控制,API安全中有多個抽象級別:業務邏輯中的控制(防止濫用);保護業務邏輯的控制(身份驗證和授權);以及最終由架構啟用或定義的架構安全控制(API網關和微細分)。
由架構決策支持的安全控制,對于在API安全的環境中的應用程序開發而言相對較新。除了應用于業務邏輯的安全控制之外,還擴展到諸如速度檢查、身份驗證和授權決策等。我們需要知道如何最好地隔離一組API,并在那里通過網關啟用重要的安全控制。例如,微分段是否能達到要求?服務網格提供的安全控制效果如何?
一些架構決策試圖提供阻塞點,以便安全架構師更深入地了解這些分布式系統。雖然某些架構決策需要集中管理的方法,但有的則啟用端點強制的方法。
當然,我們建議進行威脅建模。應用安全企業必須開始識別各種類型的API(第一方、第三方、客戶或使用者)的風險、每個API端點的關鍵控制、針對采用很多API的架構(如微服務)造成的問題提供可接受的解決方案,以及是否將賣方索賠作為風險管理計劃的一部分。
物料清單
應用安全企業需要了解他們的API足跡;衡量使用流程和工具來覆蓋該足跡的工作;跟蹤、記錄正在進行的安全活動并確定優先級;并為各種類型的安全分析提供了豐富的上下文。當與程序所有者討論API安全時,我們經常會發現現有的清單解決方案無法提供這些內容。安全計劃負責人應該仔細研究是否可以采用現有的物料清單解決方案,或者是否必須采用新的解決方案。
安全測試
如今的安全測試與以往一樣,對于深入了解上游軟件安全實踐的有效性都很重要。API安全測試對手動、自動或者混合測試都提出了新挑戰。其中上下文關聯是一種。如果測試人員沒有輸入或感知威脅模型的能力,則無法找到對SSI不利的高風險問題,得不到及時修復。
靜態分析工具可以有效地識別特定于語言的軟件安全問題,或可以很好理解的注入攻擊,對于那些使用大量API的代碼庫仍然有效,但是前提是這些工具必須對用于公開這些API路由的庫和平臺進行建模。有的企業已經采用靜態分析推動安全控制(例如,使用身份驗證和授權庫),并可用于API安全。
動態分析可以生成API覆蓋范圍,其典型方法包括對客戶端(或工具)、行為以及使用規范進行測試。該解決方案不是構建一個工具,并強迫開發團隊使用一種測試工具,而是去支持各種可能的測試。
現代應用程序和系統依賴于通過各種公共和專用網絡公開的API的復雜系統。我們可以采取一些步驟來了解這些更改如何影響我們的軟件安全計劃的各個要素,并確保在正確的時間和地方,將安全性內置到暴露在或使用API的軟件中。