API 是各個(gè)不同的應(yīng)用程序和系統(tǒng)之間互相調(diào)用和傳輸數(shù)據(jù)的標(biāo)準(zhǔn)方式。我們熟知的手機(jī) App、網(wǎng)絡(luò)游戲、視頻直播、遠(yuǎn)程會(huì)議和 IoT 設(shè)備,都離不開終端設(shè)備與服務(wù)端的連接和數(shù)據(jù)傳輸,這些都是通過(guò) API 完成的。在 API 出現(xiàn)之前,數(shù)據(jù)的傳輸和交換并沒(méi)有標(biāo)準(zhǔn)的方式,大多數(shù)情況下是通過(guò)數(shù)據(jù)庫(kù)、Excel 表格、文本,或者是 FTP,不同的系統(tǒng)和程序通過(guò)各種五花八門的方式來(lái)溝通。這些混亂的背后,隱藏了巨大的開發(fā)成本和安全隱患。

而 API 的出現(xiàn),使得開發(fā)者只需要關(guān)心其他系統(tǒng)對(duì)外暴露的 API 即可,無(wú)需關(guān)心底層實(shí)現(xiàn)和細(xì)節(jié),從而構(gòu)建足夠復(fù)雜的產(chǎn)品。通常我們有四種常見的API類型:公共、私有、伙伴和復(fù)合。
公共API有時(shí)也被稱為開放或外部API。顧名思義,任何人都可以公開的方式,在沒(méi)有限制、或限制相對(duì)較少的情況下使用它。此類API通常是方便第三方與本公司開發(fā)的Web應(yīng)用進(jìn)行通信的一種方式。一些常見的、為大多數(shù)中小企業(yè)提供服務(wù)的公共API有:PandaDoc、BigCommerce、DocuSign、NetSuite等。與公共API集成相對(duì)比較容易。不同的公司都會(huì)為您提供必要的API文檔,其中描述了各種端點(diǎn)、驗(yàn)證與授權(quán)其API的使用和調(diào)用方法等。
作為公共API的對(duì)立面,私有API僅適用于單個(gè)公司。企業(yè)開發(fā)人員經(jīng)常使用它們來(lái)實(shí)現(xiàn)Web應(yīng)用之間在某種程度上的數(shù)據(jù)交換、提供對(duì)企業(yè)數(shù)據(jù)庫(kù)和其他內(nèi)部共享服務(wù)的訪問(wèn)權(quán)限、以及與其他內(nèi)部API通信、或?yàn)楣締T工構(gòu)建內(nèi)部應(yīng)用。由于私有API通常駐留在具有高度安全性的環(huán)境中,因此與它們的集成需要通過(guò)非常嚴(yán)格的防火墻或VPN服務(wù),來(lái)發(fā)起調(diào)用(當(dāng)然首先需要能夠允許外部可以訪問(wèn)到)。這意味著,如果您想知道本公司的集成中間件是否確實(shí)有用,就應(yīng)該去檢查它是否具有某種安全機(jī)制/層,去訪問(wèn)本地系統(tǒng)和Web應(yīng)用。
伙伴API屬于內(nèi)部API的一個(gè)類別,但這些API通常在業(yè)務(wù)伙伴和B2B客戶之間共享,而不是在某個(gè)組織內(nèi)自己使用。此類API的一個(gè)常見用例是,在供應(yīng)鏈集成或銷售點(diǎn)的集成中,連接兩個(gè)內(nèi)部業(yè)務(wù)軟件的應(yīng)用程序。由于伙伴API不是公開可用的,因此您可能無(wú)法找到允許即時(shí)“連接”的集成方案。如果您打算集成此類伙伴API的話,就需要提供良好的手動(dòng)編碼、或者去尋找支持自助服務(wù)、以及自定義連接器的集成中間件的幫助。
復(fù)合API的使用場(chǎng)景最廣泛。例如在購(gòu)物車中創(chuàng)建訂單時(shí),就需要對(duì)多個(gè)端點(diǎn)進(jìn)行多次API調(diào)用,其中包括:創(chuàng)建新的客戶、創(chuàng)建新的訂單、向該訂單添加新的商品、展示分類商品等。一個(gè)復(fù)合API往往可以在一次性調(diào)用中,完成所有這些工作。這無(wú)疑加快了多任務(wù)處理的能力和效率。在集成方面,復(fù)合API與常規(guī)公共API并沒(méi)有太大的區(qū)別。事實(shí)上,如果您的集成平臺(tái)方案已經(jīng)具有被用于REST或SOAP的通用連接器的話,您可以輕松地使用它來(lái)連接到復(fù)合API處。
根據(jù)最新研究數(shù)據(jù)統(tǒng)計(jì),目前公共和私人API的應(yīng)用數(shù)量已接近2億,而到2031年,這個(gè)數(shù)字可能會(huì)超過(guò)10億。鑒于這種快速的應(yīng)用增長(zhǎng)趨勢(shì),API安全問(wèn)題在各種組織中已經(jīng)表現(xiàn)得非常廣泛,當(dāng)組織缺乏適當(dāng)?shù)腁PI可見性、治理機(jī)制和生命周期策略時(shí),僵尸、影子和幽靈等可怕的API威脅就會(huì)出現(xiàn),并給企業(yè)業(yè)務(wù)開展造成損害。而產(chǎn)生這些可怕的僵尸API、影子API和幽靈API的主要原因就是API蔓延(API Sprawl),這已經(jīng)成為現(xiàn)代企業(yè)數(shù)字化轉(zhuǎn)型發(fā)展的重大挑戰(zhàn)。
僵尸API是指一些暴露的API或已經(jīng)過(guò)時(shí)、被拋棄的API端點(diǎn)。當(dāng)一個(gè)組織沒(méi)有對(duì)遷移、棄用和淘汰的舊API進(jìn)行適當(dāng)控制時(shí),這些API可能會(huì)永遠(yuǎn)存在,并由此形成“僵尸”API。
影子API是創(chuàng)建和部署在安全監(jiān)控范圍外的API端點(diǎn),這些令人厭惡的API有時(shí)是從影子IT中產(chǎn)生的。開發(fā)人員通常希望更快地部署API或端點(diǎn)這也造成了影子API大量出現(xiàn)。影子API會(huì)帶來(lái)的安全風(fēng)險(xiǎn)包括:
幽靈API的概念是指第三方開發(fā)(或代寫)的API,并在組織生產(chǎn)環(huán)境中公開使用。幽靈API可以暴露在任何地方:打包的應(yīng)用程序(商業(yè)的和開源的)、基于SaaS的服務(wù)、基于本地和云的基礎(chǔ)設(shè)施組件(例如虛擬設(shè)備上的admin API)等等。

API蔓延會(huì)加劇企業(yè)在業(yè)務(wù)開展和安全運(yùn)營(yíng)方面的挑戰(zhàn),需要盡早采取積極的措施應(yīng)對(duì)API蔓延。
指定一個(gè)集中式API管理計(jì)劃在防止API失控方面有很大幫助。它還使查找、連接和保護(hù)API變得更加容易,這也有助于避免API蔓延。擁有集中式API治理策略可以幫助組織概念化諸如API架構(gòu)、層次結(jié)構(gòu)等內(nèi)容。實(shí)現(xiàn)企業(yè)范圍的API策略(如速率限制或授權(quán))也更容易。
跟蹤API本就是件棘手的事情,當(dāng)API蔓延失控時(shí),它會(huì)變得更加復(fù)雜。擁有一個(gè)集中式API發(fā)現(xiàn)和管理解決方案可以實(shí)現(xiàn)所有API的集中統(tǒng)一管理,這樣每個(gè)人都可以快速找到并使用它們,此舉也有助于避免影子API或有風(fēng)險(xiǎn)的僵尸端點(diǎn)。
API架構(gòu)可能很快就變得非常復(fù)雜。根據(jù)規(guī)模的不同,組織可能需要一個(gè)完整的開發(fā)人員團(tuán)隊(duì)來(lái)跟蹤每個(gè)API的位置以及它們的交互方式。通過(guò)監(jiān)測(cè)API指標(biāo),企業(yè)可以看到所有API在整個(gè)組織中的執(zhí)行情況。沒(méi)有這一點(diǎn),想要優(yōu)化或保護(hù)網(wǎng)絡(luò)應(yīng)用系統(tǒng)將非常困難。
目前,90%使用了API的組織都經(jīng)歷了某種不同程度的安全事件?梢哉f(shuō),每創(chuàng)建一個(gè)新的API,就可能會(huì)為網(wǎng)絡(luò)犯罪分子創(chuàng)造更多的可利用空間。這也可能導(dǎo)致API被誤用和濫用,從而導(dǎo)致API進(jìn)一步蔓延。
API的采用只會(huì)日益增加。因此,最好在問(wèn)題失控之前就解決API蔓延問(wèn)題。創(chuàng)建一個(gè)通用的解決方案,確保所有API都是可發(fā)現(xiàn)的,并且能夠彼此通信,這將有助于阻止API的蔓延,并緩解許多其他問(wèn)題。
遵循API規(guī)范(如OpenAPI)并不復(fù)雜,但卻可以有效減少API的蔓延,因?yàn)樗褂^察發(fā)現(xiàn)API及其所有組件變得更加容易。這大大降低了API在混亂中丟失或被遺忘的可能性。此外,遵循API規(guī)范可以使API應(yīng)用生成自動(dòng)化文檔,從而進(jìn)一步降低API蔓延的風(fēng)險(xiǎn)。
隨著API不斷變化及應(yīng)用的越來(lái)越廣泛,API的安全問(wèn)題也會(huì)越來(lái)越重要,基于API的攻擊也在不斷變化,相應(yīng)的API安全檢測(cè)防護(hù)技術(shù)也在不斷變化,所以,API安全是API業(yè)務(wù)重要的組成部分的,API安全要重點(diǎn)關(guān)注以下幾個(gè)方面:
可持續(xù)的對(duì)API使用情況進(jìn)行檢測(cè),發(fā)現(xiàn)除了未被注冊(cè)/登記的API外,還包括被濫用、誤用的API。
Bot不僅可以探測(cè)API,爬取數(shù)據(jù),還可以通過(guò)暴力破解、撞庫(kù)等直接非法侵入,甚至還可以通過(guò)自動(dòng)化掃描,發(fā)現(xiàn)漏洞,進(jìn)而入侵;以及利用大量的Bot發(fā)起DDoS攻擊等。
檢測(cè)利用API漏洞的攻擊,包括API業(yè)務(wù)平臺(tái)的Web服務(wù)器及中間件漏洞。
檢測(cè)通過(guò)API傳輸?shù)拿舾袛?shù)據(jù)、隱私數(shù)據(jù),防止數(shù)據(jù)泄漏。威脅檢出只是其中關(guān)鍵功能,還需要考慮API的發(fā)現(xiàn)和獲取,尤其是當(dāng)前API幾乎都是加密傳輸情況下,以及檢測(cè)出攻擊、異常后的實(shí)時(shí)阻斷能力。
如今API安全已經(jīng)成為提供API服務(wù)的企業(yè)之間以及企業(yè)內(nèi)部都需要關(guān)注的一個(gè)安全問(wèn)題,一旦沒(méi)有很好的保護(hù)好提供服務(wù)的API,不僅會(huì)對(duì)用戶的使用體驗(yàn)以及個(gè)人隱私帶來(lái)威脅和風(fēng)險(xiǎn),而且可能會(huì)使企業(yè)面臨安全威脅和風(fēng)險(xiǎn)。對(duì)于開發(fā)人員來(lái)說(shuō),為了提高API安全性需要在設(shè)計(jì)和開發(fā)階段,對(duì)API的安全性進(jìn)行良好的構(gòu)建和設(shè)計(jì),此外要遵守API安全開發(fā)規(guī)范進(jìn)行實(shí)施。對(duì)于管理人員來(lái)說(shuō),應(yīng)該使用API管理平臺(tái)對(duì)API服務(wù)所面臨的風(fēng)險(xiǎn)進(jìn)行檢測(cè)和防護(hù)。