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