API 無處不在,幾乎為一切提供支持。由于大量 SaaS 和其他基于 Web 的服務占據了現代軟件領域,隨著應用程序變得更加分散,API 的使用和流量持續增長。API 為開發人員提供了顯著的優勢,使他們能夠利用現有功能、加速應用程序開發并釋放新的可能性。然而,隨著應用程序和 API 產品組合變得越來越復雜,保持對所有現有 API 的全面了解已成為一項重大挑戰。在龐大的微服務和互連系統環境中,API 很快就會變得模糊或被遺忘。
這種缺乏可見性的情況會產生潛在的問題。如果隱藏或未??記錄的 API 包含漏洞,它可能會導致多余的開發工作、阻礙有效的代碼重用并帶來安全風險。這時,API 發現可以提供幫助。API 發現是開發人員和安全團隊識別、分類和評估 API 的關鍵過程。利用 API 發現的好處包括更好的 API 治理、支持有關 API 使用的明智決策以及幫助主動緩解安全威脅。
在本博客中,我們將探討 API 發現的基礎知識,包括其含義、識別已記錄和隱藏 API 的技術以及發現對于安全性和效率的重要性。最后,我們將簡要介紹簡化該過程的工具,包括 StackHawk 的 API 發現功能。讓我們開始吧!
從最基本的意義上講,API 發現是識別、記錄和理解特定環境中的 API 的過程。發現的 API 可能是內部開發的 API、第三方提供商提供的 API,最重要的是,可能是隱藏或未記錄的 API。
可以將 API 發現視為創建所有 API 的最新清單,或者更廣泛地說,創建系統內的數字“連接點”。API 發現過程涉及發現以下詳細信息:
關于 API 發現為何如此重要,有很多理由可以證明它對開發人員和組織有幫助。其中一些好處包括:
此外,擁有完整的 API 清單可讓組織了解哪些 API 正在使用,哪些 API 未使用。如果某個 API 未被使用且未維護,則可能會帶來重大安全風險,如果未在發現過程中發現該 API,則該風險可能不為人所知。無論大小,如果您正在使用和構建 API,API 發現應成為您的工具包的一部分。
發現 API 涉及許多潛在過程,我們將在下一節中討論這些過程。但是,首先考慮一些使 API 可發現的因素很重要。讓我們來看看一些使 API 可發現的最佳實踐和關鍵方面。
精心編寫的文檔是 API 可發現性的基石。它應該提供 API 用途、使用方法、支持的不同方法、接受的參數、預期響應、潛在錯誤代碼,甚至是說明性示例的全面概述。將此文檔視為 API 的用戶友好指南。這一點還包括遵循眾所周知的文檔實踐,例如為您的 API 創建 OpenAPI 規范 (OAS)。
如果您想讓 API 易于發現,通過開發者門戶公開它是個好主意。開發者門戶就像是 API 的中央市場。它列出了可用的 API,提供了強大的搜索功能,并且通常包含以交互方式試用 API 的功能,例如 Swagger UI。這使開發人員能夠快速找到所需的 API 并輕松試用它。
端點和參數的一致命名約定可顯著提高可發現性。命名和參數應該是可預測的,并讓開發人員輕松了解 API 的結構。除了一致性之外,使用有意義的名稱還可以幫助開發人員在閱讀完整文檔之前預測 API 的功能。
采用廣泛采用的標準(例如 REST 或 GraphQL)可讓您的 API 對開發人員來說更具可預測性。這些標準列出了常見的模式和期望,縮短了開發人員集成和使用您的 API 的學習曲線,并提高了可發現性。
這些觀點更多地反映了 API 發現的手動方法。在這些情況下,遵循上述指南可讓內部或外部開發人員快速查看可用的 API,并使他們能夠有效地使用這些 API。但是如何發現隱藏的 API?這就是自動化可以派上用場的地方。接下來,讓我們比較一下自動和手動 API 發現。
如上所述,有兩種主要方法可以實現 API 發現。兩者都有特定的用例和方法。讓我們看看手動和自動 API 發現工具和技術之間的區別。
使用 API 的開發人員可能熟悉手動方法。其中許多方法需要技術背景,并專注于在使用 API 之前發現它們或找出代碼庫中當前正在使用的 API。以下是開發人員可以手動發現可用或正在使用的 API 的幾種方法。
這些手動技術在特定場景下很有用,但也有局限性。它們可能非常耗費人力和時間,而且很容易遺漏不會在代碼或網絡流量中留下明顯痕跡的隱藏 API。
需要使用專門的 API 發現工具來實現 API 發現的自動化方法。這些工具可能包括內置于 API 管理平臺、API 安全平臺和其他支持可發現性的工具。這些工具用于掃描系統、分析網絡模式,甚至探測端點以主動發現 API。它們提供了一種全面、可擴展且有效的方法來識別已記錄和隱藏的 API。
可用于利用自動 API 發現的大多數工具都位于 API 管理和安全平臺內。
自動化 API 發現工具通常為組織提供顯著優勢,使其能夠全面、及時地了解 API 清單,并改善 API 安全狀況。接下來,讓我們進一步探索 API 發現對現代組織的重要性。
API 發現在管理、保護和最大程度發揮 API 基礎架構的潛力方面發揮著至關重要的作用。從開發人員到企業業務和合規方面的人員,API 發現都提供了廣泛的好處。下面是 API 發現可以產生影響的一些關鍵領域的細分。
將 API 發現納入 API 開發生命周期和安全實踐對于構建強大且安全的應用程序至關重要。從安全角度來看,不使用 API 發現工具的最大缺點之一是隱藏的 API 可能會暴露您不知道的漏洞。接下來,讓我們看看隱藏 API 有哪些不同類型以及它們可能產生的影響。
隱藏 API 是存在于系統內但未編目或包含在官方文檔中的 API。此類 API 可能會成為重大的安全和管理問題,因為它們可能會在安全測試和修補中漏網。以下是一些需要注意的常見隱藏 API 類型:
這些是無意中暴露的 API,通常由開發人員在測試期間或出于臨時目的而創建。影子 API 可能不遵循既定的安全標準或文檔實踐,從而導致攻擊者利用潛在漏洞。
這些是過時或棄用的 API,旨在停用但仍在系統中處于活動狀態。不良的版本控制實踐和停用流程跟蹤導致這些 API 仍留在可用 API 中,如果沒有正確修補或刪除,則會帶來潛在的安全風險。
這些 API 是故意創建和隱藏的,通常帶有惡意。作為通過 API 進入系統的后門,惡意 API 可能被設計用于繞過安全控制或未經授權竊取數據。
API 發現工具可以幫助發現隱藏的 API 并修復其中存在的任何安全漏洞。這些 API 的安全風險可能非常普遍,并會給您的安全工作留下巨大漏洞。考慮到這一點,讓我們在下一節中進一步探討這些特定的安全風險。
如上所述,隱藏 API 帶來了重大的 API 安全挑戰,因為它們通常存在于標準安全監控和治理實踐之外。如果某些 API 完全脫離了保護范圍,即使是最好的安全實踐也將無效。如果在您的投資組合中存在隱藏 API,它們將帶來以下一些主要風險:
考慮到這些因素,很容易理解為什么主動發現隱藏的 API 至關重要。通過跟蹤組織 API 組合中的每個 API,您可以增強減輕這些風險和保持強大安全態勢的能力。
文章來源:What is API Discovery?Everything You Need to Know