身份安全管控的另一環即是 API 安全管控機制,
透過保護應用程式介面(API) 免於濫用或遭到未授權的存取。
API 安全通常座落於網站安全 (Web Security)領域,
但隨著微服務化(Microservices)與容器化的現代應用逐漸成為主流,
API 呼叫、認證、授權管控的議題也逐漸納入在身份安全管控範疇中。
由於 API 係提供 IT 資源和第三方軟體開發之間,
或是 IT 系統資源與個人存取之間,作為存取端點提供資料和資訊。
而也由於通常 API 存取端點是向網際網路世界開放的,
因此也使得 API 成為各種惡意或濫用的的風險目標。
早期的 API 因為主要專注應用單一系統或內部環境的連線,
因此,安全性(或缺乏安全性)通常不太令人擔憂,
因為通常來自內部環境的連線都會預設採取信任與接受。
但隨著雲端原生微服務逐漸成為現代軟體開發架構後,
促使 API 的應用場景不斷擴展出更多元的技術組成,
像定義 API 框架與協議的 REST 以及 SOAP,
即作為應用程式呼叫整合、指定資料格式並規定呼叫類型的標準規範。
構成當前 Web API 的複雜網路的整合應用。
如果沒有適當對 API 呼叫提供適當保護,
則可能 API 端點可能會遭受未經授權存取敏感資料,
或是意外或惡意的中斷服務操作等等,例如:
以上都是常見 API 安全領域常見的資安風險粒子。
實作嚴格的 API 安全協定,可以保護 API 端點顯示的資料、
應用程式和服務,同時也保護其對合法使用者的可用性。
不過,API 安全性不僅僅是保護存取端點,
還需考慮整個 API 與網路互動的之間,例如資料傳輸、使用者請求和應用程式間的通訊等。
因此用來支持、保護 API 存取過程的主流技術,大致會有:
身份驗證和授權協議(Auth/Authorization)
透過驗證使用者、系統或流程身份過程,確保請求者是他們所聲稱的身份。
例如採用 OAuth 2.0、API Key 或 JWT 規範等。
傳輸過程加密保護(Encryption)
透過採用傳輸層安全性 (TLS)、SSL 連線和 TLS 加密協定等加密技術,
可以確保 API 流量不會遭到未經授權的使用者攔截或變更。
輸入驗證(Input Validation)
確保輸入在處理之前滿足特定條件(長度、類型、格式、範圍等),
保護 API 免受惡意資料(例如 SQL 注入攻擊和跨網站腳本編寫)的影響。
速率限制(Usage limitation)
透過限制使用者或 IP 位址在特定時間範圍內可以進行的呼叫次數,
藉此保護 API 資源免受暴力破解和 DoS 攻擊。
稽核紀錄
保留全面、最新的審核日誌並經常查看它們,
使組織能夠追蹤資料存取和使用情況並記錄每個 API 請求。
以上都是常見對 API 存取活動實施的安全管控機制。