Web應(yīng)用程序安全:通過設(shè)計(jì)來保證安全
應(yīng)用程序并不是一成不變的,它們可能一開始只是一組功能,然后添加上元素并與其他應(yīng)用程序合并變成其他復(fù)雜的應(yīng)用程序。隨著應(yīng)用程序的越來越復(fù)雜,漏洞越來越多,特別是托管在Web上的應(yīng)用程序以及遷移到云端的應(yīng)用程序都會出現(xiàn)很多安全問題。
“Web應(yīng)用程序是頭等攻擊目標(biāo),因?yàn)樗鼈兒茈y被保護(hù)。今天,云部署完全由web驅(qū)動,這意味著云和web應(yīng)用程序漏洞將直接碰撞。”OWASP志愿者連接委員會主席兼White Hat安全架構(gòu)的副主席Jim Manico說。
OWASP主席兼Mozilla安全保障總監(jiān)Michael Coates認(rèn)為,為這些技術(shù)開發(fā)一個“通過設(shè)計(jì)保障安全”的架構(gòu)已經(jīng)是一個挑戰(zhàn)。一旦發(fā)展中的企業(yè)將新應(yīng)用納入受信任架構(gòu)之下,下一個障礙就是在這些應(yīng)用隨時(shí)間改變以及遷移到云中保持一種安全態(tài)勢。
據(jù)2011年P(guān)onemon Institute和加密供應(yīng)商對Vormetric對安全與服從性進(jìn)行的調(diào)查發(fā)現(xiàn),大多數(shù)安全和服從性方面的專家相信當(dāng)前部署到云的趨勢到來了更多漏洞。在此項(xiàng)調(diào)查里,不到40%的受訪者信任自己的技術(shù)有能力保護(hù)其云中的敏感數(shù)據(jù)——不到三分之一的受訪者對其云中的敏感數(shù)據(jù)進(jìn)行了加密。
專家稱,加密是一個基礎(chǔ)設(shè)計(jì)點(diǎn),所以應(yīng)在含有敏感數(shù)據(jù)的應(yīng)用中充分考慮到,然而這也是云中最難實(shí)現(xiàn)的進(jìn)程。
在一個安全的設(shè)計(jì)方案中還需要些什么要素?人們會根據(jù)自己所在的行業(yè),所設(shè)計(jì)的云或Web服務(wù)類型來給出答案。不過,有一些常見的設(shè)計(jì)領(lǐng)域可同時(shí)應(yīng)用于Web和云應(yīng)用。這包括收集商業(yè)請求,開發(fā)和測試;訪問,驗(yàn)證和數(shù)據(jù)保護(hù);配置和分區(qū);可視性;維護(hù)和持續(xù)性。
開發(fā)
專家稱,應(yīng)用程序是由程序員在不同的時(shí)間編寫并進(jìn)行升級,且通常也沒有總體規(guī)劃,程序中包含了一堆有著已知漏洞的代碼,對象和平臺。
賽門鐵克高級技術(shù)總監(jiān)Gary Phillips
賽門鐵克高級技術(shù)總監(jiān)、SAFECode董事會成員Gary Phillips稱,隨著應(yīng)用程序?qū)⒏嗟牟渴鸬教摂M化環(huán)境、云計(jì)算環(huán)境甚至是移動平臺中,一個安全的程序設(shè)計(jì)要在開發(fā)完成前和開發(fā)期間都對應(yīng)用程序進(jìn)行測試。
據(jù)Phillips透露,安全的代碼開發(fā)實(shí)例正在商務(wù)供應(yīng)商之間興起。最新的IBMX-Force2011年中趨勢與威脅報(bào)告中提到的Web應(yīng)用程序漏洞在減少也證明了這一點(diǎn)。報(bào)告中提到這是六年來Web應(yīng)用程序漏洞第一次出現(xiàn)減少,從去年的49%降到了37%(占2011上半年所報(bào)告漏洞總和的比例)。
IBM高級安全總監(jiān)Jack Danahy
另一方面,IBM高級安全總監(jiān)Jack Danahy稱,漏洞的數(shù)量翻了三番,而寫這份報(bào)告的人預(yù)計(jì)移動漏洞的數(shù)量在2012年會翻兩倍。SQL注入,XSS,輸入驗(yàn)證和大量傳統(tǒng)攻擊方法都盛行于Web應(yīng)用程序當(dāng)中,這些則不應(yīng)該帶到云中去。
為了在應(yīng)用完成開發(fā)前確認(rèn)哪些漏洞可能被攻擊者利用,必須從整體的角度看應(yīng)用。應(yīng)用開發(fā)顧問公司Denim集團(tuán)CTO Dan Cornell稱這就是通常所說的攻擊面。
OWASP,SAFECode,云安全聯(lián)盟提供的工具,庫和API等可以幫助程序員模擬應(yīng)用威脅,發(fā)現(xiàn)應(yīng)用程序中可能出現(xiàn)故障的代碼,調(diào)用,互動和功能。
Cornell稱,從確定數(shù)據(jù)價(jià)值開始,應(yīng)用程序會包含或訪問。例如,如果涉及個人可識別信息(PII),醫(yī)療保健或金融信息,應(yīng)用就會成為目標(biāo)。然后,通過查看應(yīng)用的單獨(dú)組件模擬威脅。
Cornell建議企業(yè)設(shè)計(jì)安全的工作區(qū),如連接器,API,增強(qiáng)系統(tǒng)??赡艿脑挘褂眯碌膽?yīng)用設(shè)計(jì)作為升級舊的不安全系統(tǒng)的契機(jī)。#p#
配置
Verizon公司Terremark安全方案總監(jiān)Omar Khawaja
Verizon云服務(wù)子公司Terremark安全方案總監(jiān)Omar Khawaja舉例稱,假設(shè)一個客戶面對的是處理金融交易的Web應(yīng)用程序。在設(shè)計(jì)期間,必須在Web和交易服務(wù)器之間創(chuàng)建信任邊界來保護(hù)數(shù)據(jù)。這看似明顯的設(shè)計(jì)點(diǎn),但是在虛擬環(huán)境和云環(huán)境中,這些信任區(qū)域常被忽視了。
賽門鐵克Phillips稱,當(dāng)設(shè)計(jì)商務(wù)云服務(wù)供應(yīng)商時(shí),安全的區(qū)域也包括云中的客戶是如何彼此分隔的。
身份與訪問管理供應(yīng)商Symplified公司CEO Eric Olden稱,身份聯(lián)盟,驗(yàn)證和訪問標(biāo)準(zhǔn)——如OAUTH,XACML,SCIM和SAML——現(xiàn)正處于設(shè)計(jì)種,目的就是滿足訪問需求。
業(yè)內(nèi)專家認(rèn)為敏感數(shù)據(jù)加密還應(yīng)該與驗(yàn)證聯(lián)系起來。不過,據(jù)云安全聯(lián)盟去年十一月發(fā)布的一項(xiàng)調(diào)查結(jié)果顯示,云加密產(chǎn)品并不是非常有效。該份由TrendMicro贊助的報(bào)告推薦給傳輸,存儲中的數(shù)據(jù)設(shè)置多層加密,并進(jìn)行密鑰管理。
▲Voltage安全產(chǎn)品管理副總裁Mark Bower
Voltage安全產(chǎn)品管理副總裁MarkBower透露,驗(yàn)證應(yīng)該與數(shù)據(jù)加密聯(lián)系起來以減少實(shí)時(shí)數(shù)據(jù)的暴露——特別是新技術(shù),如隔世保存加密。他說,“加密還應(yīng)該用于保護(hù)授權(quán)用戶的實(shí)時(shí)數(shù)據(jù),例如,為了驗(yàn)證一個交易或是將用戶與其賬號匹配,運(yùn)營商或許只要查看社??ㄌ柎a碼的最后四位數(shù)字或者只查看信用卡號碼的最后一節(jié)。”
目前,大多數(shù)企業(yè)應(yīng)該可以用數(shù)據(jù)集中方式加密自己的敏感數(shù)據(jù),這意味著存儲中,傳輸中和使用中的敏感信息都處于加密狀態(tài)。如果企業(yè)過渡到IaaS,他們就要為自己的應(yīng)用負(fù)責(zé),或許他們可以通過基于標(biāo)準(zhǔn)的API在云中復(fù)制相同技術(shù)。
如果購買SaaS,企業(yè)應(yīng)該了解供應(yīng)商如何幫助自己加密數(shù)據(jù),特別是如何進(jìn)行云中的密鑰管理。例如,Voltage為Voltage云服務(wù)文件和郵件加密客戶管理云中密鑰。企業(yè)或許也想用on-premise密鑰服務(wù)器控制自己的密鑰。
OWASPManico稱,當(dāng)思考云中的應(yīng)用程序部署時(shí),托管環(huán)境的特殊類型決定了安全功能(如加密和監(jiān)控)會怎樣獲得支持。
例如,在IaaS模式中,要求這項(xiàng)服務(wù)的企業(yè)要對自己的應(yīng)用程序負(fù)責(zé)。而如果是SaaS,供應(yīng)商則會為企業(yè)管理應(yīng)用。SaaS服務(wù)供應(yīng)商還能管理云中的安全應(yīng)用,并為客戶提供新的安全服務(wù)。
可視性和維護(hù)
在研發(fā)的關(guān)鍵階段和應(yīng)用程序投入生產(chǎn)后,靜態(tài)分析和功能性測試也同樣重要。所以必須在設(shè)計(jì),開發(fā)和后期生產(chǎn)期間測試應(yīng)用程序以維護(hù)應(yīng)用程序的安全態(tài)勢。
賽門鐵克Phillips稱,這意味著設(shè)計(jì)必須包括基本的監(jiān)控支持,如產(chǎn)生有用的日志,數(shù)據(jù)和訪問注冊的更改。
有大量工具與服務(wù)可用來測試Web應(yīng)用程序看是否存在SQL注入,XSS和其他源于代碼的功能型漏洞。不過,專家認(rèn)為在公共云應(yīng)用的可視性方面,企業(yè)必須依靠其云服務(wù)供應(yīng)商提供的監(jiān)控工具來監(jiān)視自己的數(shù)據(jù)。對供應(yīng)商網(wǎng)絡(luò)的監(jiān)視主要依靠合同和年度審核。
安全的設(shè)計(jì)需要在業(yè)務(wù),開發(fā)和安全部門之間共同計(jì)劃和協(xié)調(diào)。做起來雖難但并非不可能。#p#
程序安全設(shè)計(jì)的資源
為程序員尋找指導(dǎo)方針比為設(shè)計(jì)師和規(guī)劃者尋找指導(dǎo)方針要容易。下面就是例子:
云安全聯(lián)盟有很多用于開發(fā)和部署云的指導(dǎo)方針,包括:
云計(jì)算重點(diǎn)領(lǐng)域安全指南——描述了云類型和組成要素以及映射出架構(gòu),管理和運(yùn)營中關(guān)鍵區(qū)域威脅的方法。
一個CloudControlsMatrix樣式表為云服務(wù)運(yùn)營商和客戶列出了控件區(qū)域,規(guī)格和架構(gòu)組件。
訪問公共云,私有云和混合云環(huán)境的工具集
OWASP有一個常用的代碼審查指南,它將安全,設(shè)計(jì)和業(yè)務(wù)環(huán)境聯(lián)系起來。其他流行的資源包括:
給程序員的安全小抄;
威脅建模指導(dǎo);
安全編碼與測試指引。
SAFECode最近發(fā)布了安全軟件開發(fā)基礎(chǔ)實(shí)例的第二版,其他資源包括:
供應(yīng)鏈應(yīng)用的軟件保障;
軟件完整性控制的概述;
軟件安全工程師培訓(xùn)。
程序安全設(shè)計(jì)要點(diǎn)
不論應(yīng)用程序被部署在何處,基礎(chǔ)設(shè)計(jì)架構(gòu)都適用。在賽門鐵克案例中,開發(fā)團(tuán)隊(duì)都遵循這些基本設(shè)計(jì)原則:
1、在信任邊界數(shù)據(jù)重復(fù)驗(yàn)證與保護(hù)
在信任邊界進(jìn)行的數(shù)據(jù)傳輸必須受到保護(hù),如在跨優(yōu)先級別的處理或是兩個獨(dú)立電腦之間進(jìn)行處理。數(shù)據(jù)的類型,數(shù)值范圍,客戶端和服務(wù)器端的語義都必須進(jìn)行驗(yàn)證。數(shù)據(jù)保護(hù)可通過數(shù)據(jù)簽名這類機(jī)制來部署。
2、服務(wù)器和用戶代理的共同驗(yàn)證
由于許多不受信任的實(shí)體都涉及用戶代理和服務(wù)之間的互動,所以用戶代理和服務(wù)必須創(chuàng)建共同驗(yàn)證,而最好是通過PKI和多要素驗(yàn)證實(shí)現(xiàn)共同驗(yàn)證。
3、防止偷聽——強(qiáng)加密
敏感數(shù)據(jù)和關(guān)鍵數(shù)據(jù)可能暴露在用戶代理和服務(wù)器之間不受信任的實(shí)體面前。FIPS140-2服從加密法則必須用于傳輸中的數(shù)據(jù)。即便是閑置的敏感數(shù)據(jù)也必須加密。要使用加強(qiáng)型密碼增加解密的難度。
4、會話超時(shí)和一次性密碼
長時(shí)會話可能導(dǎo)致攻擊重現(xiàn)和會話劫持。特別是在云應(yīng)用中,一次性密碼和短時(shí)會話可以顯著降低這類漏洞的威脅。
5、最小特權(quán)
由多個要素組成的應(yīng)用程序只能授予最低許可和最小權(quán)限,以減少攻擊者提高優(yōu)先權(quán)帶來的風(fēng)險(xiǎn)。
6、分區(qū)
隔開開規(guī)定的權(quán)限和資源,從而減少資源消耗和ddos漏洞。