陳言勝
在過(guò)去幾年中,API驅(qū)動(dòng)的應(yīng)用程序在企業(yè)級(jí)云平臺(tái)上部署以擴(kuò)展規(guī)模,它們能夠根據(jù)用戶需求進(jìn)行擴(kuò)展,徹底改變了應(yīng)用程序的編寫和部署方式。通常,這些分布式應(yīng)用程序都部署在Kubernetes平臺(tái)上,以便更輕松地進(jìn)行管理、編排和部署微服務(wù)容器。
DevOps團(tuán)隊(duì)投入了大量資源,以確保他們?cè)贙ubernetes基礎(chǔ)設(shè)施平臺(tái)上運(yùn)行的應(yīng)用程序安全可靠,不會(huì)被利用。包括強(qiáng)化操作系統(tǒng),通過(guò)跨集群的微分段防止橫向移動(dòng),以及通過(guò)嚴(yán)格的RBAC控制來(lái)限制訪問(wèn),防止未經(jīng)授權(quán)的訪問(wèn)。
然而,這只是成功的一半。從Kubernetes平臺(tái)上部署的API驅(qū)動(dòng)的應(yīng)用程序有自己的安全問(wèn)題,需要不同的方法來(lái)實(shí)現(xiàn)適當(dāng)級(jí)別的安全保護(hù)。API驅(qū)動(dòng)應(yīng)用程序的興起助長(zhǎng)了一類新的API漏洞,這些漏洞無(wú)法被現(xiàn)有的安全產(chǎn)品保護(hù)。
隱藏在底層API中的漏洞可能會(huì)暴露并被利用,從而影響關(guān)鍵業(yè)務(wù)數(shù)據(jù)。網(wǎng)絡(luò)犯罪分子已經(jīng)注意到并正在開(kāi)發(fā)新的攻擊向量,以便在企業(yè)向API經(jīng)濟(jì)發(fā)展時(shí)利用它們。
以下是企業(yè)在評(píng)估API安全解決方案時(shí)應(yīng)考慮的一些關(guān)鍵標(biāo)準(zhǔn)。
盡管API使用量呈爆炸式增長(zhǎng),但許多安全和開(kāi)發(fā)團(tuán)隊(duì)仍無(wú)法回答有關(guān)API程序的基本問(wèn)題———例如我們有多少、誰(shuí)擁有它們以及它們做什么。在當(dāng)今復(fù)雜的網(wǎng)絡(luò)環(huán)境中,這給企業(yè)帶來(lái)了巨大的安全風(fēng)險(xiǎn)。
為了防范安全風(fēng)險(xiǎn),企業(yè)了解API程序的所有方面及其相關(guān)的安全挑戰(zhàn)至關(guān)重要。這可以更好地幫助領(lǐng)導(dǎo)者通過(guò)適當(dāng)?shù)牟呗愿纳破浣M織的安全狀況。
大多數(shù)企業(yè)都公開(kāi)了許多內(nèi)置的API,并為客戶和合作伙伴開(kāi)源。它們由不同的團(tuán)隊(duì)發(fā)布,使用不同的應(yīng)用程序堆棧和不同的程序。因此,很難跟蹤和了解潛在風(fēng)險(xiǎn)在哪里。以下是企業(yè)應(yīng)該考慮的一些關(guān)鍵API可見(jiàn)性挑戰(zhàn)。
未知API:影子、已棄用或隱藏的API可能會(huì)超出安全團(tuán)隊(duì)的可見(jiàn)范圍,這通常會(huì)導(dǎo)致它們不受保護(hù),這些API可能會(huì)傳輸敏感數(shù)據(jù)并危及組織的合規(guī)地位。
API參數(shù):API漏洞(例如批量分配)允許攻擊者將用戶配置文件更改為管理員,從而導(dǎo)致權(quán)限提升,這可能導(dǎo)致欺詐、數(shù)據(jù)丟失。
敏感數(shù)據(jù)暴露:在響應(yīng)代碼或錯(cuò)誤消息中暴露機(jī)密或敏感數(shù)據(jù)可用于竊取數(shù)據(jù)或作為大規(guī)模攻擊的偵察形式。
業(yè)務(wù)邏輯缺陷:應(yīng)用程序業(yè)務(wù)邏輯缺陷可以使不良行為者通過(guò)帳戶接管、抓取、虛假帳戶創(chuàng)建和其他形式的API濫用進(jìn)行欺詐。
在尋求解決這些常見(jiàn)的API安全挑戰(zhàn)時(shí),提出問(wèn)題以評(píng)估和降低風(fēng)險(xiǎn)程度會(huì)有所幫助。有許多問(wèn)題需要考慮:我們擁有的API有什么作用?API所有者是誰(shuí)?哪些API需要遵守法律或法規(guī)?如何監(jiān)控API中的漏洞?我們的API是否會(huì)暴露敏感數(shù)據(jù)或PII,這是否會(huì)導(dǎo)致不合規(guī)?如何測(cè)試和衡量API監(jiān)控的有效性?
大多數(shù)擁有Web應(yīng)用程序的企業(yè)都擁有Web應(yīng)用程序防火墻(WAF)以進(jìn)行安全保護(hù)。然而,隨著企業(yè)繼續(xù)擴(kuò)大其API驅(qū)動(dòng)的應(yīng)用程序,他們發(fā)現(xiàn)傳統(tǒng)的WAF無(wú)法很好地適應(yīng)單體應(yīng)用程序的需求,無(wú)法滿足現(xiàn)代API驅(qū)動(dòng)的應(yīng)用程序的需求。
由于API驅(qū)動(dòng)的應(yīng)用程序的編寫方式非常獨(dú)特,使其成為一個(gè)單獨(dú)的可利用漏洞類別,這些漏洞與OWASP前10名Web兄弟非常不同。有效保護(hù)單體Web應(yīng)用程序漏洞免受OWASP的10大Web漏洞攻擊的安全方法在API世界中并不能很好地轉(zhuǎn)化。
使用傳統(tǒng)的Web安全方法很難防御損壞的對(duì)象級(jí)授權(quán)(BOLA)和批量分配等關(guān)鍵API漏洞。越來(lái)越多的客戶逐漸意識(shí)到,部署WAF來(lái)保護(hù)他們的API就像在槍戰(zhàn)中拿刀一樣,是低級(jí)且錯(cuò)誤的武器。
現(xiàn)在出現(xiàn)了一種新的API安全產(chǎn)品類別,它取代了Web應(yīng)用程序防火墻,更符合保護(hù)API驅(qū)動(dòng)的應(yīng)用程序免受利用的特定要求。這些API安全解決方案是圍繞應(yīng)用程序的日常行為方式構(gòu)建的,并由機(jī)器學(xué)習(xí)(ML)提供支持,專注于學(xué)習(xí)應(yīng)用程序行為和發(fā)現(xiàn)異?;顒?dòng)。
構(gòu)建應(yīng)用程序機(jī)器學(xué)習(xí)模型可以為發(fā)現(xiàn)嵌入在數(shù)百個(gè)微服務(wù)中的內(nèi)在業(yè)務(wù)邏輯缺陷和API漏洞奠定基礎(chǔ)。用戶驅(qū)動(dòng)的流量為機(jī)器學(xué)習(xí)模型的開(kāi)發(fā)提供動(dòng)力,并捕捉應(yīng)用程序的微服務(wù)如何協(xié)同工作以交付應(yīng)用程序業(yè)務(wù)邏輯。如果企業(yè)正在尋找API安全解決方案,應(yīng)該考慮以下3個(gè)標(biāo)準(zhǔn)。
發(fā)現(xiàn):識(shí)別企業(yè)環(huán)境中的所有API,理想情況下,API安全工具應(yīng)該知道定義允許請(qǐng)求的API參數(shù)。例如,API應(yīng)該只允許用戶響應(yīng)255個(gè)字符串字符,通常,未經(jīng)驗(yàn)證的API響應(yīng)可用于利用應(yīng)用程序漏洞。
學(xué)習(xí):API安全工具應(yīng)該能夠從用戶驅(qū)動(dòng)的流量中學(xué)習(xí)API行為,這允許API安全解決方案的機(jī)器模型了解定義正常應(yīng)用程序行為的所有細(xì)微差別。用戶行為的輕微和突然偏差會(huì)通過(guò)警報(bào)向安全運(yùn)營(yíng)團(tuán)隊(duì)顯示。
適應(yīng):在敏捷環(huán)境中開(kāi)發(fā)的大多數(shù)現(xiàn)代應(yīng)用程序都在迅速變化。API安全解決方案應(yīng)該能夠自動(dòng)調(diào)整其安全模型以不斷適應(yīng)所有新變化,確保應(yīng)用程序安全始終與DevOps保持同步。
當(dāng)網(wǎng)絡(luò)犯罪分子從應(yīng)用程序中泄露敏感數(shù)據(jù)時(shí),他們會(huì)采取必要的預(yù)防措施來(lái)逃避檢測(cè)。為了對(duì)抗它們,需要威脅分析來(lái)檢測(cè)訪問(wèn)應(yīng)用程序的用戶之間的惡意活動(dòng)。
從應(yīng)用程序中獲得的數(shù)據(jù)的質(zhì)量和廣度將決定企業(yè)的安全保護(hù)級(jí)別,并影響其在多長(zhǎng)時(shí)間內(nèi)檢測(cè)到即將發(fā)生的網(wǎng)絡(luò)攻擊。隨著應(yīng)用程序變得更加復(fù)雜和分布式,更多地了解應(yīng)用程序的內(nèi)部工作原理、工作方式、業(yè)務(wù)邏輯以及與其他第三方技術(shù)合作伙伴的交互變得更加重要。
收集應(yīng)用程序內(nèi)所有點(diǎn)的數(shù)據(jù)交互可確保其全面了解所有用戶與應(yīng)用程序的交互。數(shù)據(jù)集越豐富,就越容易將惡意與合法用戶交易區(qū)分開(kāi)來(lái),并使企業(yè)的安全團(tuán)隊(duì)能夠盡快發(fā)現(xiàn)數(shù)據(jù)泄露。
API安全平臺(tái)應(yīng)使安全團(tuán)隊(duì)能夠執(zhí)行以下操作:
威脅搜尋:安全分析師可以通過(guò)數(shù)據(jù)湖搜索正在進(jìn)行的活動(dòng)。
跟蹤攻擊者:當(dāng)攻擊者深入挖掘應(yīng)用程序時(shí),可以跟蹤殺傷鏈活動(dòng),例如偵察或掃描活動(dòng)。
事后分析:安全分析師可以獲得事后取證,以了解網(wǎng)絡(luò)攻擊如何利用應(yīng)用程序的業(yè)務(wù)邏輯或漏洞。
快速變化的API驅(qū)動(dòng)應(yīng)用程序有助于加快產(chǎn)品上市速度,但也釋放了可被網(wǎng)絡(luò)犯罪分子快速利用的API漏洞。
可以很好地保護(hù)單體Web應(yīng)用程序的應(yīng)用程序安全產(chǎn)品在保護(hù)API驅(qū)動(dòng)的應(yīng)用程序方面無(wú)法很好地?cái)U(kuò)展。
由于分布式應(yīng)用架構(gòu)的快速變化,API安全的要求與市場(chǎng)上現(xiàn)有的應(yīng)用安全產(chǎn)品有著根本的不同。在評(píng)估API安全解決方案時(shí),一定要關(guān)注解決方案如何提供可見(jiàn)性、以及它對(duì)應(yīng)用程序的理解程度和威脅分析的質(zhì)量與深度。