【編者按】作者Aaron Volkmann是CERT Division高級(jí)研究員,在本文中,他對(duì)DevOps自動(dòng)化違反SOX法案進(jìn)行了闡述。同時(shí),也簡(jiǎn)單的提出了如何通過CI來避免這個(gè)問題,由OneAPM工程師翻譯。
以下為譯文
為了解決類似Enron、Worldcom以及Tyco等公司暴露出的財(cái)務(wù)欺詐丑聞,21世紀(jì)初期美國(guó)國(guó)會(huì)頒布了薩班斯-奧克斯利法案(SOX Act)。SOX法案要求上市公司通過一系列內(nèi)部控制手段,確保向投資者披露正確的財(cái)務(wù)信息。在一家IT公司中,遵守SOX方案的主要準(zhǔn)則之一就在于:確保沒有任何員工可以單方面地在生產(chǎn)環(huán)境中變更軟件代碼。DevOps的自動(dòng)化技術(shù),如持續(xù)集成(CI)、持續(xù)交付(CD)、基礎(chǔ)設(shè)施即代碼(IaC)從表面上看,似乎已經(jīng)不再遵守SOX法案了。本文將會(huì)探討DevOps自動(dòng)化如何能夠讓公司在保持兼容性的同時(shí),還能從實(shí)際上提高其合規(guī)程度。
當(dāng)軟件控制進(jìn)程從傳統(tǒng)的手動(dòng)方式轉(zhuǎn)換為更加自動(dòng)化的過程時(shí),很多公司都擔(dān)心檢查會(huì)被忽略,平衡被打破的同時(shí)也造成公司違反SOX法案。在圖一中所展示的傳統(tǒng)場(chǎng)景中,一名開發(fā)者對(duì)某個(gè)軟件進(jìn)行變更后,先將代碼提交進(jìn)入評(píng)審流程,然后通過手工或系統(tǒng)進(jìn)行打包準(zhǔn)備部署。新版本被提交到變更控制流程中,準(zhǔn)備部署到生產(chǎn)環(huán)境中。在管理者批準(zhǔn)將變更實(shí)施到生產(chǎn)環(huán)境之后,由生產(chǎn)服務(wù)工程師進(jìn)行部署。盡管管理該過程有很多辦法,但仍無法確保評(píng)審的代碼版本就是部署到生產(chǎn)環(huán)境的那個(gè)版本。
通過使用CI服務(wù)器(如圖二所示),software shop可以記錄與追蹤每個(gè)源代碼文件的哪個(gè)版本構(gòu)成了軟件的相應(yīng)版本。在持續(xù)部署的過程中會(huì)有停頓,人們?cè)诖藭r(shí)對(duì)變更進(jìn)行檢查,準(zhǔn)備投入生產(chǎn)環(huán)境;任何未經(jīng)授權(quán)的變更都不能通過該環(huán)節(jié)。
CI使得對(duì)打包軟件所使用源代碼文件的確切版本進(jìn)行記錄與審核成為可能。software shop同樣可以具備集中自動(dòng)化測(cè)試的能力,這樣就能一一掃描每個(gè)軟件build,尋找安全缺陷。
另一個(gè)可能抵制自動(dòng)化的領(lǐng)域是服務(wù)器基礎(chǔ)設(shè)施配置。在SEI,由于需要管理員手動(dòng)查看服務(wù)器build,經(jīng)常會(huì)有人反對(duì)使用IaC作為服務(wù)器配置。在使用IaC工具(Chef,Docker或者Puppet)時(shí),可以將基礎(chǔ)設(shè)施配置腳本作為可驗(yàn)證、可測(cè)試、可信賴的軟件構(gòu)件,相信它能夠產(chǎn)生可靠且能夠復(fù)制的結(jié)果。IaC讓開發(fā)者有機(jī)會(huì)集中精力開發(fā)和測(cè)試配置腳本,同時(shí)允許自動(dòng)化抄送測(cè)試服務(wù)器鏡像,減少人為錯(cuò)誤的風(fēng)險(xiǎn)。
每家公司甚至各公司內(nèi)的每個(gè)科技/商業(yè)領(lǐng)域都可能會(huì)有獨(dú)特的需求和限制。在特定領(lǐng)域,達(dá)標(biāo)的自動(dòng)化水平可能也會(huì)不同。通過仔細(xì)將機(jī)器布置到位,讓自動(dòng)化進(jìn)程按部就班,這樣一來控制、審核和保護(hù)公司資源的能力,還有確保遵守如SOX法案這樣聯(lián)邦法規(guī)的可能性只會(huì)增加。
原文鏈接:A DevOps a Day Keeps the Auditors Away (and Helps Organizations Stay in Compliance with Federal Regulations such as Sarbanes-Oxley)(責(zé)編/仲浩)