作者 | 陳峻
審校 | 重樓
SaaS(軟件即服務(wù))應(yīng)用在過去幾年中得到了迅速發(fā)展。截至2023年,全球已有超過30,000家SaaS初創(chuàng)公司。SaaS應(yīng)用程序已成為無數(shù)行業(yè)在線業(yè)務(wù)的重要組成部分和首要選擇。憑借著簡化的流程,便捷的交付和可擴(kuò)展性,越來越多的應(yīng)用數(shù)據(jù)和業(yè)務(wù)邏輯已從本地被遷移到了SaaS云端環(huán)境中。
然而,SaaS應(yīng)用的增長與普及也自然成為了無數(shù)網(wǎng)絡(luò)威脅與攻擊的誘人目標(biāo)。面對各種安全挑戰(zhàn),SaaS應(yīng)用供應(yīng)商和使用方需要通過全方位的安全措施與測試來積極分析與應(yīng)對。
SaaS面對的主要風(fēng)險(xiǎn)
由于SaaS應(yīng)用通常被托管在服務(wù)提供商的云服務(wù)器上,并讓用戶設(shè)備通過互聯(lián)網(wǎng)進(jìn)行訪問,因此這種交付模式具有更低的成本和更易維護(hù)的優(yōu)點(diǎn)。不過,攻擊者一旦發(fā)現(xiàn)SaaS應(yīng)用上存在安全漏洞,就會(huì)想方設(shè)法通過獲取應(yīng)用服務(wù)的訪問權(quán)限,如探囊取物般批量獲取使用方和客戶的數(shù)據(jù)信息。
目前,此類風(fēng)險(xiǎn)大致包括如下方面:
多租戶架構(gòu)缺陷
在多租戶SaaS架構(gòu)中,來自不同客戶的數(shù)據(jù)駐留在同一臺(tái)服務(wù)器上。一旦租戶之間的邏輯隔離不到位,那么某個(gè)租戶就可能無意、甚至刻意訪問到另一個(gè)租戶的數(shù)據(jù),進(jìn)而出現(xiàn)隱私信息的泄露,機(jī)密性的缺失。
任意訪問的開放性
由于任何人都可以從任何位置訪問SaaS應(yīng)用,因此攻擊者不再受限。他們可以輕松地使用網(wǎng)絡(luò)釣魚詐騙,來獲取用戶憑據(jù),或通過直接破解弱密碼,來實(shí)現(xiàn)未經(jīng)授權(quán)的訪問。
與其他應(yīng)用的集成
SaaS平臺(tái)通常使用API來與其他應(yīng)用集成。如果這些API在設(shè)計(jì)上具有安全缺陷,那么攻擊者便可以將其作為網(wǎng)關(guān),滲透到SaaS應(yīng)用以外的多個(gè)系統(tǒng),并竊取敏感數(shù)據(jù)。
故障導(dǎo)致數(shù)據(jù)丟失
雖然SaaS的云服務(wù)保障了應(yīng)用的可用性,但是云服務(wù)器上的數(shù)據(jù)安全性可能因網(wǎng)絡(luò)問題、設(shè)備故障、甚至是自然災(zāi)難而丟失或損壞。對此,安全團(tuán)隊(duì)在檢查SaaS業(yè)務(wù)時(shí),應(yīng)注意數(shù)據(jù)備份策略的可靠性,以避免因?yàn)?/span>數(shù)據(jù)丟失而造成服務(wù)的完整性欠缺。
直接遭遇攻擊
根據(jù)開放式Web應(yīng)用安全項(xiàng)目(OWASP)列出的典型十大Web應(yīng)用和API風(fēng)險(xiǎn),我們可以知道SaaS應(yīng)用上一旦存在邏輯漏洞和技術(shù)問題,就會(huì)被黑客通過互聯(lián)網(wǎng),發(fā)起直接攻擊和利用,也就可能產(chǎn)生服務(wù)中斷、數(shù)據(jù)泄露、以及隱私侵犯等不利影響。
責(zé)任共擔(dān)
由于多個(gè)應(yīng)用共享同一套云服務(wù)系統(tǒng)與后臺(tái)邏輯,因此服務(wù)提供方的配置錯(cuò)誤、服務(wù)中斷等運(yùn)營故障,就可能會(huì)被SaaS系統(tǒng)的共享結(jié)構(gòu)所放大,進(jìn)而波及到使用方的業(yè)務(wù),甚至將網(wǎng)絡(luò)釣魚、惡意軟件、以及勒索攻擊,傳播至使用方的業(yè)務(wù)數(shù)據(jù)上,使其被動(dòng)承擔(dān)相應(yīng)的責(zé)任。
欠合規(guī)與監(jiān)管
縱然SaaS應(yīng)用的使用方竭力遵循合規(guī)與監(jiān)管的要求,但是一旦疏忽了對其使用到的SaaS供應(yīng)商的合規(guī)性查驗(yàn),則會(huì)面臨連帶的監(jiān)管風(fēng)險(xiǎn),進(jìn)而導(dǎo)致巨額的罰款、或讓公司聲譽(yù)受損。對此,安全團(tuán)隊(duì)?wèi)?yīng)定期審查SaaS供應(yīng)商對行業(yè)標(biāo)準(zhǔn)和法律法規(guī)的遵守情況。
測試的概念與好處
鑒于SaaS應(yīng)用為用戶簡化了復(fù)雜的服務(wù)處理與提供機(jī)制,而其自身通常會(huì)保留使用方和最終用戶的大量敏感商業(yè)信息與個(gè)人數(shù)據(jù),因此SaaS安全測試可以通過對SaaS業(yè)務(wù)的所有組成部分采取深入掃描、利用與評估,以發(fā)現(xiàn)并修復(fù)應(yīng)用在界面、網(wǎng)絡(luò)、通信、API、第三方集成、基礎(chǔ)代碼、用戶輸入、以及角色權(quán)限等方面的安全漏洞,進(jìn)而降低SaaS應(yīng)用的運(yùn)營風(fēng)險(xiǎn),改進(jìn)其安全態(tài)勢。
可見,SaaS安全測試不但有助于保障企業(yè)的云端系統(tǒng)、應(yīng)用與數(shù)據(jù)安全,而且能夠滿足各種嚴(yán)格的合規(guī)性要求。
測試關(guān)注的組件
對于SaaS應(yīng)用的安全測試而言,安全團(tuán)隊(duì)通常需要關(guān)注和檢查如下三個(gè)方面的基本組件:
連接的安全性
客戶端設(shè)備與SaaS應(yīng)用的連接是一個(gè)值得關(guān)注的重要風(fēng)險(xiǎn)點(diǎn)。鑒于SaaS應(yīng)用的特點(diǎn),服務(wù)提供商需要為使用方實(shí)施必要的信道保護(hù)、身份驗(yàn)證、權(quán)限管理、以及行為監(jiān)控等連接上的準(zhǔn)入與保障。而本著“從不信任,始終驗(yàn)證”的零信任原則,應(yīng)用使用方的安全團(tuán)隊(duì)有必要通過了解,來為后續(xù)的安全測試做好規(guī)劃。
應(yīng)用服務(wù)的安全性
SaaS應(yīng)用雖然簡化了使用方的自我構(gòu)建,對于后端復(fù)雜的調(diào)用邏輯,使用方往往通過API、以及配套的管理控制臺(tái)來實(shí)現(xiàn)調(diào)用。不過,在開展應(yīng)用安全測試之前,使用方的安全人員有必要通過與SaaS服務(wù)供應(yīng)商的交互,獲悉其平臺(tái)應(yīng)用本身的基本業(yè)務(wù)類型,了解其技術(shù)架構(gòu)可能存在的挑戰(zhàn),API的權(quán)限管控,管理控制臺(tái)的設(shè)置與操作邏輯。
集成交互的安全性
使用方往往需要將由SaaS平臺(tái)提供的服務(wù)與數(shù)據(jù),通過API集成等方式,為自己的前端應(yīng)用提供擴(kuò)展的功能、自動(dòng)化的工作流、以及與其他服務(wù)的交互。鑒于此類集成往往是一次性完成的,因此使用方的安全團(tuán)隊(duì)?wèi)?yīng)當(dāng)根據(jù)職責(zé)分離(SoD)和最小權(quán)限(PoLP)原則,審查前端應(yīng)用與SaaS平臺(tái)集成及交互的必要性與可控性。
測試的階段
為了避免出現(xiàn)“拆盲盒”的不確定性,使用方的安全團(tuán)隊(duì)可以參考如下步驟,分階段開展SaaS安全測試:
收集信息
安全團(tuán)隊(duì)在考慮對SaaS應(yīng)用開展安全測試之前,需要對待測的應(yīng)用的架構(gòu)、網(wǎng)絡(luò)、業(yè)務(wù)邏輯、數(shù)據(jù)流轉(zhuǎn)、以及角色權(quán)限有所了解。這是制定有效的測試策略的基礎(chǔ)。鑒于安全團(tuán)隊(duì)可能并非在應(yīng)用項(xiàng)目開始時(shí)就參與其中,因此我們可以通過如下簡單的問卷列表,來獲取“第一手資料”:
- 該應(yīng)用能夠提供哪些基本功能?
- 哪些團(tuán)隊(duì)會(huì)在哪些場景下使用到該應(yīng)用?
- 該應(yīng)用對于前端業(yè)務(wù)的重要程度?
- 該應(yīng)用中將存儲(chǔ)哪些業(yè)務(wù)數(shù)據(jù)類型,它們的敏感度如何?
- 最終用戶會(huì)使用受管理的設(shè)備、還是個(gè)人終端訪問該應(yīng)用?
- 用戶會(huì)使用受管理的私密網(wǎng)絡(luò)、還是互聯(lián)網(wǎng)連接訪問該應(yīng)用?
- 訪問該應(yīng)用的方式是瀏覽器、還是由使用方提供的應(yīng)用接口?
- 平臺(tái)供應(yīng)商是否能給出應(yīng)用的架構(gòu)、通信、以及配置等信息?特別是如下安全控制信息:
Web應(yīng)用防火墻(WAF)等云安全組件
可用的外部端口
負(fù)載均衡和DDoS保護(hù)
基于身份認(rèn)證管理(IAM)的單點(diǎn)登錄(SSO)集成、或多因素身份驗(yàn)證(MFA)的訪問控制
靜態(tài)和傳輸中的數(shù)據(jù)加密
服務(wù)器上的端點(diǎn)檢測和響應(yīng)(EDR)和反病毒(AV)方案
API密鑰的管理與限流
數(shù)據(jù)與代碼的備份和服務(wù)的高可用性(HA)
日志記錄和監(jiān)控選項(xiàng)
制定計(jì)劃
安全測試團(tuán)隊(duì)根據(jù)了解到待測應(yīng)用的信息與復(fù)雜程度,與各個(gè)利益方討論潛在的限制、預(yù)估的成本,最終創(chuàng)建一個(gè)全面的安全測試計(jì)劃,其中包括:明確的范圍、標(biāo)準(zhǔn)、方法、深度、以及測試所需的系統(tǒng)配置、工具、及腳本。
雙方交流
安全測試團(tuán)隊(duì)通過與被測應(yīng)用供應(yīng)商交流,確定將要執(zhí)行測試的人員以及聯(lián)系方式,給將要使用的測試工具開放端口,并將其IP地址放入白名單,按需開放跳板主機(jī),以及開通測試工具的安裝許可。
自動(dòng)掃描
該階段,安全團(tuán)隊(duì)通過專業(yè)的掃描工具,采用自動(dòng)化的方式,仔細(xì)尋找被測應(yīng)用的顯著漏洞。此類工具往往具有一定的侵入性。也就是說,它們可以通過模擬潛在的攻擊者,來爬取應(yīng)用中的每個(gè)請求,進(jìn)而快速地發(fā)現(xiàn)潛在的安全弱點(diǎn)和漏洞。
利用測試
針對自動(dòng)化掃描到的漏洞,安全測試團(tuán)隊(duì)需要綜合運(yùn)用PoC(漏洞驗(yàn)證程序)和EXP(漏洞利用程序)里的各種工具、Selenium腳本、及策略,通過手動(dòng)測試的方式,按照計(jì)劃所制定的標(biāo)準(zhǔn)與范圍,先后對應(yīng)用開展黑盒、白盒、以及灰盒(按需)等類型的利用和測試。參照OWASP Top 10,典型的測試要點(diǎn)包括:
- 注入滲透
- 服務(wù)器配置審查
- 模糊輸入
- 數(shù)據(jù)篡改
- 文件上傳
- 跨站腳本(XSS)
通過模擬攻擊的真實(shí)場景,我們可以獲悉被測應(yīng)用的抗攻擊能力、以及攻擊得逞后,可能泄露的數(shù)據(jù)、篡改的系統(tǒng)、以及中斷的服務(wù)。值得一提的是,安全測試人員除了使用手動(dòng)測試技術(shù),也可以利用自動(dòng)化工具模擬人類的交互,以社會(huì)工程的方式非法獲取應(yīng)用的訪問授權(quán)。
評估報(bào)告
在完成了利用測試之后,安全測試團(tuán)隊(duì)?wèi)?yīng)根據(jù)記錄到的漏洞,測算潛在系統(tǒng)的損失、參考CVSS評分、以及核對如下維度實(shí)施漏洞分類,影響分析,優(yōu)先級評定,以及按需進(jìn)行風(fēng)險(xiǎn)計(jì)算。
- IAM – 基于角色的訪問控制(RBAC)、SSO、MFA
- 數(shù)據(jù)安全 – 數(shù)據(jù)加密、數(shù)據(jù)分級、數(shù)據(jù)泄露保護(hù)(DLP)
- 可見性 – 日志記錄(SIEM)、監(jiān)控、警報(bào)
- 配置 – 安全設(shè)置、訪問控制列表(ACL)、IP白名單、接入的第三方應(yīng)用
- 網(wǎng)絡(luò) – WAF、入侵檢測、DDoS保護(hù)
- 合規(guī)–認(rèn)證(ISO 27001、SOC 2 Type II、PCI DSS等)、隱私(PII、HIPAA、GDPR、CCPA等)
此外,通過結(jié)果保存與按需截屏的方式,安全測試團(tuán)隊(duì)最終出具高準(zhǔn)確度的報(bào)告,并向利益相關(guān)方給出修復(fù)建議。
整改重測
針對被確認(rèn)的漏洞,應(yīng)用使用團(tuán)隊(duì)將協(xié)同安全團(tuán)隊(duì)著手整改。而對于實(shí)難整改的部分,則可以按需引入云訪問安全代理(CASB)和云安全態(tài)勢管理(CSPM)等元安全組件以輔助加固。完成后,安全測試團(tuán)隊(duì)將進(jìn)入重新測試的階段,以確認(rèn)漏洞是否被修復(fù),且無新的漏洞產(chǎn)生,進(jìn)而達(dá)到提高SaaS應(yīng)用程序的整體安全態(tài)勢。
定期安全測試
我們常說:“安全態(tài)勢只是一時(shí),并非一世”。這個(gè)概念在SaaS應(yīng)用安全測試領(lǐng)域亦然。為此,我們需要通過定期開展安全測試(有時(shí)也稱為道德黑客攻擊),來驗(yàn)證應(yīng)用的安全預(yù)防措施的持續(xù)有效。
與此同時(shí),我們也需要定期從開源情報(bào)(OSINT)處,收集并獲悉有關(guān)被測SaaS應(yīng)用的其他公開報(bào)道、共享信息、客戶與合作伙伴反饋等,以根據(jù)各種突發(fā)的事件,及時(shí)開展安全測評工作。
總體而言,我們對于SaaS應(yīng)用安全就是要本著主動(dòng)發(fā)現(xiàn)、及時(shí)管控、按需評測的態(tài)度,保障SaaS應(yīng)用在整個(gè)生命周期的安全態(tài)勢。
作者介紹
陳峻(Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項(xiàng)目實(shí)施經(jīng)驗(yàn),善于對內(nèi)外部資源與風(fēng)險(xiǎn)實(shí)施管控,專注傳播網(wǎng)絡(luò)與信息安全知識(shí)與經(jīng)驗(yàn)。