云API安全隱患:如何評估云服務(wù)提供商API
云安全聯(lián)盟(CSA)的最新報(bào)告《云計(jì)算面臨的主要威脅》中,提出了一些新出現(xiàn)的風(fēng)險(xiǎn),并對已經(jīng)存在的風(fēng)險(xiǎn)進(jìn)行了修改和重新排序。報(bào)告名為《九宗罪:2013年云計(jì)算面臨的主要威脅》,該報(bào)告是根據(jù)云計(jì)算和安全社區(qū)的反饋,許多個人和組織權(quán)衡比較,在他們所面臨的風(fēng)險(xiǎn)中,該關(guān)注哪些風(fēng)險(xiǎn),這些都是最新報(bào)告值得更加關(guān)注的地方。
作為負(fù)責(zé)該報(bào)告的工作組的三位聯(lián)席主席之一,針對名單上的第四種威脅,我提出了很多問題,比如“不安全的接口和API”到底代表什么?所涉及的風(fēng)險(xiǎn)有哪些?以及組織如何去評估并確保這些云API?在這篇文章中,我們將探討云API的安全性,并解答這些亟待解決的問題。
定義不安全API所帶來的風(fēng)險(xiǎn)
首先,對于那些對云API是什么以及云API如何使用不熟悉的人來說,云API本質(zhì)上只是軟件接口,云提供商利用云API,讓用戶管理云服務(wù),典型的如基于標(biāo)準(zhǔn)的云API。API能夠讓許多常見的云計(jì)算進(jìn)程變得容易,讓更復(fù)雜的業(yè)務(wù)需求實(shí)現(xiàn)自動化,例如在多個供應(yīng)商之間配置各種云,以及為云和內(nèi)部部署系統(tǒng)應(yīng)用第三方管理平臺。
然而,云API特別關(guān)注云提供商和云客戶。如《九宗罪》報(bào)告中所述,在保密性、完整性、可用性和可說明性等方面,不安全的云API會帶來多種風(fēng)險(xiǎn)。雖然所有的云服務(wù)提供商都應(yīng)該密切關(guān)注其API的安全性,但是因人而異。因此,了解如何分析云API的安全性是很重要的。
分析云提供商API的一個很好的起點(diǎn),可以查看Gunnar Peterson的Web服務(wù)安全清單(PDF),此清單提出了許多與CSA報(bào)告同類的問題。以下包括一些客戶應(yīng)該關(guān)注的主要領(lǐng)域:
傳輸安全性。多數(shù)API都通過多種不同的渠道提供,但是需要交互或者攜帶敏感數(shù)據(jù)的API,應(yīng)該通過安全的渠道加以保護(hù),如SSL / TLS或IPSec。在云服務(wù)提供商(CSP)與客戶之間建立IPSec通道可能很困難或者根本不可能,因此, 建立SSL / TLS通道較容易實(shí)現(xiàn)。然而這又帶來大量潛在問題,如必須用代理平臺作為中間介質(zhì)時(shí),會出現(xiàn)內(nèi)部或者(更常見的)外部證書授權(quán)的有效證書的生成與管理問題、平臺服務(wù)的配置問題、軟件集成和端到端的保護(hù)問題。
身份驗(yàn)證與授權(quán)。許多云API主要關(guān)注身份驗(yàn)證和授權(quán),因此對許多客戶而言,這也是關(guān)鍵關(guān)注領(lǐng)域。咨詢CSP的問題包括:API可以管理用戶名和密碼的加密嗎?可以管理雙因素身份認(rèn)證屬性嗎?可以創(chuàng)建并維護(hù)細(xì)粒度的授權(quán)策略嗎?內(nèi)部身份管理系統(tǒng)和屬性之間具有連續(xù)性嗎?以及內(nèi)部身份管理系統(tǒng)和云提供商提供的API擴(kuò)展屬性之間具有連續(xù)性嗎?
代碼和開發(fā)實(shí)踐。通過JSON和XML消息傳送的,或者接受用戶和應(yīng)用程序輸入的任何API,都必須經(jīng)過標(biāo)準(zhǔn)注入式攻擊和跨站請求偽造(CSRF)攻擊、模式驗(yàn)證、輸入和輸出編碼等的嚴(yán)格測試。
消息保護(hù)。除了確保編碼的生成遵循最佳實(shí)踐以外, API主要考慮的其他因素包括消息結(jié)構(gòu)、完整性驗(yàn)證、加密或編碼。
何確保云API的安全
一旦組織很好的掌握了不安全API帶來的問題,就能夠采取最佳措施確保云API。首先,通過云提供商的API文檔,確定其API安全性,包括現(xiàn)有的應(yīng)用評估結(jié)果和報(bào)告,這些都以 鑒證業(yè)務(wù)準(zhǔn)則第16號報(bào)告(Statement on Standards for Attestation Engagements No.16)或其他報(bào)告的形式,展示了安全最佳實(shí)踐和審計(jì)結(jié)果。Dasein云API就是開源性的且可擴(kuò)展性的云API文檔很好的例子。
除了文檔外,客戶應(yīng)該向云提供商提出要求,即能夠?qū)PI進(jìn)行滲透測試和漏洞評估,或者云提供商自己完成這些測試,也可以通過第三方供應(yīng)商完成這些測試,客戶與潛在客戶達(dá)成保密協(xié)議,因此客戶能夠評估安全實(shí)踐。利用網(wǎng)絡(luò)和應(yīng)用控制的結(jié)合,以及良好的發(fā)展實(shí)踐和QA測試,保護(hù)Web服務(wù)的API,防止開放式Web應(yīng)用程序安全項(xiàng)目中,常見應(yīng)用程序安全漏洞名單的前10種漏洞。
此外,許多云服務(wù)提供商為客戶提供利用API的訪問和身份驗(yàn)證機(jī)制的加密密鑰。對于客戶和云服務(wù)提供商來說,保護(hù)這些密鑰都至關(guān)重要。安全策略能夠保證密鑰的產(chǎn)生、傳輸、儲存和處理的合理化,并且密鑰應(yīng)該安全地存儲在硬件安全模塊或其它加密保護(hù)的文件存儲中。應(yīng)該避免密鑰嵌入到配置文件或其他腳本中,或者直接嵌入到代碼中,因?yàn)檫@些情況會更新密鑰,使密鑰成為開發(fā)者和其他人的噩夢。云服務(wù)提供商,如亞馬遜和微軟的Azure,包括基于散列的帶有對稱密鑰的消息認(rèn)證碼,既具有完整性,又能避免通過不可信的網(wǎng)絡(luò)傳輸共享的秘密。構(gòu)建基于CSP的API的任何第三方都應(yīng)遵循這一建議,像CSP那樣重視密鑰(和一般的API安全性)。
結(jié)論
隨著云應(yīng)用的開發(fā)和集成的發(fā)展,毫無疑問,云用戶正面臨著不安全API帶來的嚴(yán)重威脅??尚业氖?,供應(yīng)商也面臨同樣的問題,這個問題將不會出現(xiàn)在下一代CSA熱門威脅列表中。