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