本文來自微信公眾號“數(shù)世咨詢”,作者/nana。
職業(yè)黑客團(tuán)伙和黑客國家隊(duì)每年都在網(wǎng)絡(luò)犯罪上投入更多時間、金錢和精力。惡意黑客采用種種創(chuàng)新技術(shù)發(fā)起全球頂級網(wǎng)絡(luò)安全專家都見所未見的各種新型攻擊。有動力有資金,惡意黑客團(tuán)伙如今不僅有資源對可帶來豐厚利潤的大企業(yè)下手,也不放過蚊子腿兒也是肉的小公司。美國杜克大學(xué)最近的一項(xiàng)調(diào)查研究發(fā)現(xiàn),各行各業(yè)的受訪中型企業(yè)中竟然有85%都曾被成功滲透過,盡管其中很多可能都遵循了成熟的最佳實(shí)踐。
惡意黑客最為關(guān)注的一個行業(yè)是計(jì)算機(jī)軟件開發(fā)。由于我們?nèi)粘9ぷ骱蜕钪袔缀蹼x不開軟件,所以公司很有必要設(shè)置一系列規(guī)程來幫助確保自己的軟件是安全的,并且領(lǐng)先惡意黑客和無法預(yù)測的威脅一步。
網(wǎng)絡(luò)和IT運(yùn)營管理軟件公司SolarWinds以其Next-Generation Build System(“下一代構(gòu)建系統(tǒng)”)輔助創(chuàng)建更加安全的軟件開發(fā)過程,采用并行構(gòu)建過程在多個相同的安全瞬時環(huán)境中開發(fā)軟件。為保護(hù)整個行業(yè)不受未來威脅的侵?jǐn)_,SolarWinds將開源此構(gòu)建系統(tǒng)的組件,以便其他公司可從中獲益。
Next-Generation Build System中有四個指導(dǎo)原則可供企業(yè)參考。結(jié)合公私合作和威脅情報(bào)共享,這幾個原則可以幫助企業(yè)在風(fēng)險(xiǎn)逐年上升的情況下改善自身安全。
構(gòu)建自毀系統(tǒng),并使用代碼構(gòu)建
為保護(hù)軟件開發(fā)過程,企業(yè)需要實(shí)現(xiàn)不會留下持久環(huán)境的系統(tǒng)。這一點(diǎn)很重要,因?yàn)殚L期的環(huán)境和構(gòu)建系統(tǒng)可能含有更為嚴(yán)重的漏洞和過時組件,讓攻擊者可以更輕松地展開攻擊。
企業(yè)可以通過在短期軟件構(gòu)建環(huán)境中開發(fā)產(chǎn)品來緩解這些漏洞,也就是每次構(gòu)建任務(wù)完成后環(huán)境自毀。這么做可以消除攻擊者在系統(tǒng)中建立“基地”的機(jī)會,大大增加攻擊者嘗試攻擊的難度。
構(gòu)建系統(tǒng)基于代碼可以實(shí)現(xiàn)短期自毀模式,并為構(gòu)建組件提供保護(hù)和版本控制。
這種開發(fā)方式需要嚴(yán)格控制的過程和井然有序的領(lǐng)導(dǎo),因?yàn)槠髽I(yè)必須分隔各個構(gòu)建系統(tǒng),單獨(dú)管理并密切監(jiān)測這些構(gòu)建系統(tǒng)。
復(fù)現(xiàn)性是關(guān)鍵
說到軟件開發(fā),復(fù)現(xiàn)性是確保構(gòu)建安全的關(guān)鍵。復(fù)現(xiàn)性背后的假定是:開發(fā)團(tuán)隊(duì)在某個位置構(gòu)建軟件后可以在另一個系統(tǒng)上或在不同時間重新構(gòu)建,而構(gòu)建出的結(jié)果相同。
依靠可復(fù)現(xiàn)的構(gòu)建,開發(fā)人員可以確保自己的軟件能以同樣的方式運(yùn)行,消除代碼中的差異,識別異常,防止入侵。采用可復(fù)現(xiàn)構(gòu)建,軟件開發(fā)公司可以再現(xiàn)錯誤,從而更好地了解和修復(fù)錯誤,識別構(gòu)建管道中任何未經(jīng)授權(quán)的調(diào)整。
可復(fù)現(xiàn)的構(gòu)建十分關(guān)鍵,因?yàn)樗€使得軟件開發(fā)能夠比較源代碼的最終輸出,從而確保無論何時何地創(chuàng)建的構(gòu)建都是同樣的。這一點(diǎn)對軟件開發(fā)過程的下一步,也就是并行構(gòu)建而言可謂至關(guān)重要。
并行構(gòu)建
加強(qiáng)軟件開發(fā)過程完整性的另一途徑是通過所謂的“并行構(gòu)建”過程。想要最大限度地保證安全,就需要用到三個邏輯構(gòu)建管道:開發(fā)人員、預(yù)生產(chǎn)/確認(rèn),以及生產(chǎn)。所有構(gòu)建都必須滿足上述特征。
開發(fā)人員管道進(jìn)行正常的工程構(gòu)建。大多數(shù)工程都得訪問構(gòu)建環(huán)境。預(yù)生產(chǎn)/確認(rèn)構(gòu)建的訪問權(quán)限有限。除了執(zhí)行構(gòu)建,該管道也是執(zhí)行質(zhì)量、安全和性能測試的環(huán)節(jié)。
最后就是生產(chǎn)管道。此管道的訪問權(quán)限極其有限。只有少數(shù)預(yù)先確定的人員有權(quán)訪問。完成與預(yù)生產(chǎn)管道的比較之后,軟件才可以從生產(chǎn)管道發(fā)售。這一構(gòu)建模式采取了假定遭到破壞的方法,也就是說,單個違規(guī)人員無法獨(dú)立破壞生產(chǎn)構(gòu)建。
這些并行環(huán)境各自有其單獨(dú)的入口點(diǎn),都是獨(dú)立的環(huán)境,這樣一來,潛在威脅都集中在單一環(huán)境中,也就減少了漏洞。即便某個環(huán)境被攻破,攻擊活動也沒多大可能性復(fù)制到其他兩個環(huán)境中。
追溯每個步驟
可追溯性是確保構(gòu)建過程安全的最后一個關(guān)鍵原則。有必要通過能在軟件發(fā)布之前加以驗(yàn)證的跟蹤過程來驗(yàn)證每個構(gòu)建步驟。這需要管道上每個項(xiàng)目的工程師和管理人員簽字。
個中理念就是仔細(xì)審視每一步,驗(yàn)證代碼是否匹配且正確實(shí)現(xiàn),并且有可追溯的明晰歷史供了解任何錯誤或異常。在生產(chǎn)發(fā)布之前加上人工驗(yàn)證有助于保證已采取了所有恰當(dāng)?shù)拇胧﹣泶_保質(zhì)量和安全。
網(wǎng)絡(luò)安全形勢不斷變化。新威脅和有動力、有資金的惡意黑客每天都在涌現(xiàn)。提高軟件開發(fā)過程的安全性是挫敗和緩解這些攻擊者的關(guān)鍵部分。行業(yè)應(yīng)采用上述原則,在安全方面更為開放,共享信息和最佳實(shí)踐,從而改善整個行業(yè)的安全性。