如何在云環(huán)境中落實(shí)安全運(yùn)維管理
安全在傳統(tǒng)上總是被當(dāng)成軟件開發(fā)過程中“事后再想”的部分。但人人聞之色變Heartbleed漏洞及其相關(guān)的補(bǔ)丁困難使安全性被推到了最前線。而一個(gè)使用安全運(yùn)維管理,或SecOps的安全軟件開發(fā)周期方式將可以加強(qiáng)AWS應(yīng)用的安全性。
SecOps方法就有如DevOps原則一樣,促進(jìn)了開發(fā)者和運(yùn)營之間更好的溝通,只是對應(yīng)的是安全方面,Todd Vernon,一家DevOps工具供應(yīng)商VictorOps的CEO說道。DevOps允許IT團(tuán)隊(duì)能夠在部署云應(yīng)用至生產(chǎn)前快速做出改動(dòng)。但這也產(chǎn)生了顯著的安全問題。
“過去,你可能三不五時(shí)會進(jìn)行一次安全審計(jì)。但現(xiàn)在這能有什么用?”Vernon問道。安全運(yùn)營管理即是不斷的開發(fā),測試和監(jiān)測系統(tǒng)中威脅的過程。它也提供了對于DevOps的相互制衡。
將安全融于設(shè)計(jì)之中
“將安全性從一開頭就放在設(shè)計(jì)里很關(guān)鍵,”David Eads,安全咨詢公司Mobile Strategy Partners的CEO說道。“如果安全只是事后再想的問題,那真正的安全是沒希望了。”對于基于云的環(huán)境來說更是放大了這種情形,他補(bǔ)充道。
在云里,新的漏洞可以很快補(bǔ)上。云配置腳本可以確保修復(fù)會快速的散播到所有其他受影響的環(huán)境,這樣漏洞不會再度發(fā)生。云也使得尋找類似問題,修復(fù)相關(guān)腳本,和可能與此相關(guān)但是不同問題的安全環(huán)境變成可能。
“IT人員在傳統(tǒng)環(huán)境下不可能做到這樣的事,”Eads說道。如果某個(gè)組織有著反應(yīng)式的軟件開發(fā)文化,那它多半會先遭受近乎災(zāi)難的結(jié)果,然后才能嚴(yán)肅的考慮安全性的問題,而這些有時(shí)候已經(jīng)太遲了。
“Code Spaces就是個(gè)很好的例子,”Sirish Raghuram,私有云基礎(chǔ)架構(gòu)供應(yīng)商Platform9的CEO說道。“他們在他們的Amazon(Web服務(wù))帳號中漏掉某些非常基本的安全防范措施,而他們再也沒得到過第二次機(jī)會。你需要在組織里有某個(gè)有影響力的人,這人必須毫不遲疑的堅(jiān)持改革,而不是等到一切都太遲了。”
未雨綢繆
那些在他們的開發(fā)過程中細(xì)密的羅織安全編程習(xí)慣的組織,多半對于安全性有著比較正確的觀點(diǎn),Zulfikar Ramzan,基于云SecOps供應(yīng)商Elastica的CTO說道。雖然事后的安全測試是有價(jià)值的,但它永遠(yuǎn)無法揭露出底層真正的問題。
比如說,Heartbleed bug的嚴(yán)重性非常驚人。但是,多年來大家卻對它視而不見。這個(gè)挑戰(zhàn)部分存在于各種開發(fā)過程是依靠一個(gè)相當(dāng)復(fù)雜的拼湊起來的東西來互相連接的。其中一個(gè)如果改動(dòng),就算這個(gè)改動(dòng)看似無害,卻可以在下游過程中造成大災(zāi)難。此外,顧客會要求云服務(wù)提供安全編程習(xí)慣的證明,Ramzan說道。那些企業(yè)們將處理他們數(shù)據(jù)的大任托付給廠商,自然必須加大保證的力度來確保該廠商正在以合理,安全和理智的方式來達(dá)成這件事。2014年的網(wǎng)絡(luò)供應(yīng)鏈管理和透明度法案強(qiáng)制要求所有的云服務(wù)供應(yīng)商,例如AWS,將已知的漏洞對政府客戶公布。
改善安全工程
一開始就將設(shè)計(jì)中的漏洞處理好是不可或缺的。在這些安全問題還在代碼階段的時(shí)候就處理掉對于預(yù)防跨站式腳本攻擊、SQL注入和其他已知漏洞是更有效的,Mark Patton,一家反惡意軟件供應(yīng)商Malwarebytes的工程副總裁說道。而了解對于基于云系統(tǒng)對比本地系統(tǒng)的最佳實(shí)踐常常是個(gè)挑戰(zhàn)。
那些采用設(shè)計(jì)后安全編程實(shí)踐的組織應(yīng)該遵循以下的建議來更好保證你們的環(huán)境不會產(chǎn)生漏洞:
- 考慮API表面的安全性就跟保護(hù)網(wǎng)頁一樣重要
- 查看云平臺安全性、AWS虛擬私有云布局和使用AWS安全組
- 討論認(rèn)證的技術(shù)(用戶名和密碼、令牌、雙重認(rèn)證等等)
- 不要將密碼憑證嵌入代碼,這會將它們泄漏給用戶
- 使用基于角色的“需要知道”或“需要訪問”來架構(gòu)云資源的訪問
一個(gè)成功且安全的組織會為團(tuán)隊(duì)提供圍繞安全性,以及功能和進(jìn)度的激勵(lì)。企業(yè)應(yīng)該將安全性包括在成功的定義中作為第一要素,并且從第一天起就被當(dāng)作每個(gè)人的任務(wù)。
認(rèn)清戰(zhàn)術(shù)上的障礙 確保安全開發(fā)
過渡到安全的開發(fā)生命周期絕不簡單。根據(jù)以安全為基礎(chǔ)的安全供應(yīng)商Veracode的說法,公司要?jiǎng)?chuàng)建一個(gè)具有安全意識的企業(yè)文化,必須克服一些戰(zhàn)術(shù)上的障礙。
創(chuàng)建擴(kuò)展的測試方法。隨著組織向敏捷化的遷移和持續(xù)部署,他們需要自動(dòng)化的可以和已有流程整合的測試方法。
提供對開發(fā)人員有用的結(jié)果。一個(gè)手動(dòng)測試(和某些自動(dòng)化測試的結(jié)果)的缺點(diǎn)是很難給出有用的信息可以讓開發(fā)人員解決問題。代碼行數(shù)的報(bào)告比起不包括到底哪里出錯(cuò)的診斷信息的漏洞類型報(bào)告更有用。
雇傭足夠的人才。要將安全貫徹到軟件開發(fā)中并且在過程中帶動(dòng)開發(fā)人員一起需要專業(yè)的技能。對大多數(shù)組織來說,市場上沒有足夠的擁有正確技能的人來讓一個(gè)程序規(guī)?;倪\(yùn)行。