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