五原則四實踐,REST API安全性請謹記
云原生和微服務架構等技術的流行讓API受到越來越大的重視。那么當應用程序開始上云,各項需求都可以通過云服務滿足的情況下,應用程序,尤其基于云端API的應用程序的安全問題該如何解決?
延伸閱讀,點擊鏈接了解 Akamai API Security
表現層狀態轉移(REST,Representational State Transfer)這種軟件架構風格最早可追溯到計算機科學家Roy Fielding于2000年發布的一篇博士論文。在此后多年里,REST API(有時也稱為RESTful API)逐漸發展成為一種非常流行的API架構模型,多用于Web和移動應用,以及企業對企業應用和企業內部系統。
雖然很多實現也用了其他API方法(如SOAP、GraphQL和gRPC),但REST API因為易于實現而獲得了最廣泛的使用。REST API設計非常便于現代前端框架使用,因此成為Web應用、移動應用以及許多內部和企業間API實現的熱門選擇。
REST API安全性五大原則
盡管REST API能以高度安全和彈性的方式實施,但有些基本的API安全標準對任何實施都至關重要。
在REST API設計中構建安全性的五大原則是:
- 始終使用TLS加密
- 實施完善且可擴展的身份驗證和授權模型
- 不要在URL中包含敏感信息
- 嚴格定義允許的RESTful API請求和響應
- 實施持續的API發現功能
始終使用TLS加密
與其他類型的敏感HTTP流量一樣,對RESTful API使用TLS可以確保API消費者與API端點間的所有通信都經過加密。這對于REST API安全和Web應用程序安全同樣重要,因為由此產生的HTTP流量包括敏感的身份驗證詳細信息,如密碼、API密鑰或令牌。
實施完善且可擴展的身份驗證和授權模型
可以使用許多不同技術來管理對REST API的訪問。最常用的技術是API密鑰和安全令牌。但密鑰和令牌的管理可能是一種相當復雜的工作。
這往往會導致無意中出現REST API安全漏洞。通過與兼容OAuth 2.0的身份管理提供商集成來進行身份驗證和發放訪問令牌,可降低這種風險。集中式API網關也可用于規范和保護REST API安全方法。
不要在URL中包含敏感信息
在URL中包含敏感信息(包括用戶憑據、密鑰或令牌),這是一種常見的REST API設計缺陷。即便在使用TLS的情況下,攻擊者也很容易發現這些信息。API請求數據路徑上的各種服務器和網絡設備也會經常記錄URL,如果URL中包含敏感信息,就會導致進一步的數據泄漏。
嚴格定義允許的RESTful API請求和響應
我們需要假定攻擊者會試圖以惡意或無意的方式使用API。因此,切勿默認信任RESTful API請求。要采取的最重要步驟之一是:驗證任何參數或對象的格式、長度和類型等屬性。
我們還應該嚴格管理REST API可提供的響應類型。例如,響應應僅限于明確允許的內容類型,如GET、PUT和POST。
實施持續的API發現功能
即便是遵守REST API安全最佳實踐的企業,也可能會被正常流程之外實施的影子API或尚未退役的遺留基礎設施中被遺忘的僵尸API打個措手不及。因此,實施持續的企業級API發現功能至關重要。
保障為所有API維持完整清單的最佳方法是從所有可用的API活動信息源收集數據,這些信息源包括:
- API網關
- 內容交付網絡
- 云提供商日志
- 日志管理系統
- 編排工具
分析這些數據以獲取API活動的證據,可確保安全團隊了解整個企業使用的所有API。發現任何意外的REST API后,都可以通過應用適當的REST API最佳實踐來停止使用,或將其納入正式清單。
四大高級REST API安全最佳實踐
在REST API設計中實施一套基礎安全標準是必不可少的第一步,但僅靠這些步驟并不能保證應用程序完全安全。許多攻擊者已經開發出了規避REST API基本安全措施的高級技術。畢竟,并不是每次REST API安全攻擊都以攻破Web應用程序基礎架構為目。
在許多情況下,攻擊者只是希望以非故意的方式使用API功能來訪問敏感數據并獲得競爭優勢。這些活動可能來自可信來源,如已獲準訪問REST API的客戶或合作伙伴。憑證、密鑰和令牌也可能被竊取或劫持,從而使攻擊者在我們的基線REST API安全標準之外推進類似活動。
為了獲得更完善的保護,防止這些更復雜的API濫用方式,我們可以使用以下四種高級REST API安全最佳實踐:
- 使用云收集大量REST API安全數據集
- 將行為分析應用于REST API數據
- 為開發和運營團隊提供有關REST API使用情況的見解
- 開展積極主動的REST API威脅獵捕活動
使用云收集大量REST API安全數據集
許多第一代API安全技術都是在企業內部運行的。因此它們的作用僅限于分析非常短的活動窗口,之后API數據就會被丟棄。這種方式的效果極為有限,因為許多類型的API濫用活動都是在數周甚至數月內以低速緩慢的方式進行的。將API活動數據發送到云端,就能積累獲得API詳細信息所需規模的數據,存儲時間跨度可達一個月或更長。這為更復雜的分析技術打開了大門。
將行為分析應用于REST API數據
一旦掌握了大量有意義的REST API活動信息,我們還可以利用云計算的計算規模來執行行為分析。增強REST API安全策略的第一種方法是識別相關實體,從而獲得更多背景信息。實體可能包括用戶以及有意義的業務流程。
有了這些上下文,我們就可以確定API的正常使用模式。在此基礎上,可以進一步分析以檢測異常。這種類型的異常檢測是發現濫用的最佳方法,尤其是當濫用來自經過驗證的用戶時。
為開發和運營團隊提供有關REST API使用情況的見解
保護企業免受REST API安全漏洞侵害的最佳方法之一是完全避免這些漏洞。與開發人員和運營人員共享有關RESTful API使用和濫用情況的信息,將有助于企業在開發和實施流程的早期就采用更好的REST API安全實踐,實現“向左轉”。
開展積極主動的REST API威脅獵捕活動
不要等到REST API濫用升級為嚴重安全事件時才采取行動。積極主動地調查REST API使用情況并查找濫用企圖(即使沒有成功),這有助于我們發現REST API安全實踐中的薄弱環節。
檢查API使用活動也是發現REST API安全漏洞的有效方法。在攻擊者利用這些漏洞之前找到并消除它們,是增強REST API安全態勢的最有效方法之一。
總結
Akamai已幫助大量全球知名的企業實施了基礎和高級REST API安全最佳實踐。從API發現到行為分析,再到托管的威脅獵捕服務,我們的方法將幫您加快REST API安全工作的步伐。
—————————————————————————————————————————————————
如您所在的企業也想要進一步保護API安全,
點擊鏈接了解Akamai的解決方案