API使應用程序的特性更加豐富和動態,但它們也增加了攻擊面。
API或應用程序編程接口是多個計算機程序相互通信的一種方式。例如,網站可以使用API從數據庫請求信息或將信息傳遞給第三方服務。移動應用程序經常使用API將數據來回發送到中央服務器。傳統的網站正迅速被高度交互的基于API的網站所取代。API也是企業應用程序的關鍵,它取代了原有的信息交換機制。
根據Akamai公司今年早些時候發布的一份報告,API調用現在占所有Web流量的83%。這意味著提供了功能更強大、功能更豐富的應用程序,但同時也意味著更大的安全風險。根據調研機構Gartner公司的調查,到2021年,將有90%的啟用Web的應用程序以暴露的API而非用戶界面的形式具有更大的攻擊面,而2019年為40%。到2022年,API濫用將成為最常見的攻擊。
例如,麥當勞公司的API公開了其移動交付應用程序用戶的個人數據。由于API導致數據泄露的其他公司包括Facebook、Twitter、Panera Bread、T-Mobile、Instagram、Salesforce和Snapchat。甚至美國國稅局也遭遇了API數據泄漏的事件。
總部位于波士頓的安全機構Cybereason公司的首席信息安全官Israel Barak表示,“在過去的五六年中,API成為越來越大的問題。業務、系統和應用程序之間的互連性的增加加速了面向公眾的API的采用。然后便是微服務和容器等服務的使用。” 以一個用于預訂航班的網絡應用為例。如果它是傳統的整體應用程序,則用戶將選擇一個航班,獲取報價,付款并預定。他們將按順序完成所有這些步驟。Barak說,“交易過程確保第一步發生在第二步之前。”
現在,網絡上的同一應用程序可能是一組獨立功能,每個功能都調用一個單獨的API。一個乘客可能會向支付系統發送請求。另一個乘客可能會向航空公司發送預訂航班的請求。利用公開的API,黑客可以跳過付款步驟而直接進入預訂步驟。此外,攻擊者也可能劫持確認所有用戶信息,并獲取其他客戶的姓名、地址和付款明細的API。
有時,即使是完全無害的API也會造成損害,Barak說。例如,在用戶選擇城市所在的國家/地區后,網絡表單通常會提供城市列表。如果城市列表是通過API提供的,則攻擊者可以發送大量假請求,足以關閉該特定服務-并使整個Web表單停止運行。Barak說,“而且不能使用驗證碼,因為另一邊沒有人。”
總部位于圣馬特奧的網絡安全機構PerimeterX公司聯合創始人兼首席技術官Ido Safruti表示,當人們使用API來驗證信用卡且訪問權限未得到適當鎖定時,還會發生另一種常見的API濫用。他說:“我可以直接采用API并嘗試驗證被盜的信用卡或者禮品卡,這更容易,因為不需要用戶的姓名或郵政編碼。” 他補充說,“這種第三方API的使用非常難以鎖定。作為數據中心運營商,如果其應用程序在數據中心之外調用API,那么可能對此完全一無所知。”
從后臺到前臺 在以往,企業的應用程序在內部網絡內相互通信,可以安全地隱藏在防火墻后面。應該說,這意味著訪問和身份驗證問題對開發人員的壓力并不大。實施大量安全檢查會很麻煩,會減慢開發速度并干擾功能。如今,在混合數據中心和萬物實現云化的情況下,但API并沒有企業的防火墻防護,但是開發人員經常忘記這一事實,并意外地將其公開。
BTB Security公司顧問Humberto Gauna說,“保護API并不難。但這需要一定的資源,將會增加公司的成本。”他建議,在構建新的API時,企業應讓安全專業人員參與早期階段。
通常情況下,數據中心安全管理人員對開發人員如何編寫其API并沒有什么要求。但它們可以確保內部數據庫和服務器得到適當的保護,并確保基于云計算的服務得到適當的配置。他們還可以為內部部署環境和云計算部署設置API網關。
API網關的優缺點 并非所有專家都認為API網關是一個好主意。
當企業通過一個或多個API網關匯集所有API流量時,它們可以確保基本的安全策略(如加密、身份驗證和訪問控制)得到充分實施。網關還可以執行其他操作,如負載均衡和DDoS保護。
可以為內部部署數據中心設置API網關,大多數主要的云計算提供商都將它們作為基礎設施上托管的系統的服務來提供。Cybereason公司的Barak說,該過程從創建數據中心公開的所有API的目錄開始。他說,“這是一個良好的安全平臺的核心組成部分,但很多人沒有采用它。使目錄保持最新是很困難的,云主機,特別是當開發新的微服務并在幾天甚至幾小時內推出時。” 接下來,企業必須使用自己的令牌(例如API密鑰或OpenID標識符)來標識每個API,并根據這些令牌控制對數據和服務的訪問。Barak說,“沒有授權令牌,企業的開發人員不能公開新的API,而是必須注冊該API。”