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