企業(yè)源代碼安全審計工作這個鍋應(yīng)該由誰來背?

隨著應(yīng)用系統(tǒng)安全技術(shù)越來越受業(yè)主和承建方(甲方)的重視,對于源代碼安全審計層面是進行安全漏洞的防范,避免產(chǎn)生所謂的“0-day”漏洞,現(xiàn)在已是所有提測客戶的共識,已經(jīng)形成了一種共鳴,成為構(gòu)建軟件安全保障體系中的必備環(huán)節(jié)。但也常常聽到有人抱怨“源代碼安全審計很難開展,總是遇到這樣那樣的問題,分工不明,權(quán)責(zé)不清,配合變成對抗,最后導(dǎo)致虎頭蛇尾,甚至是執(zhí)行不下去,留以形勢,無法產(chǎn)生實際作用“。

源代碼審計

那么今天我們就來討論一下,企業(yè)內(nèi)部怎樣開展源代碼測試?到底誰來背源代碼審計這個鍋,才能使其有效地執(zhí)行,事半功倍?

源代碼安全審計工作到底歸準(zhǔn)?這個鍋由誰來背呢

軟件源代碼安全測試工作到底應(yīng)該歸屬于哪個部門?是測試部門?是安全部門?還是開發(fā)部門?這個問題時候我們企業(yè)管理人員、企業(yè)高層必須思考和解決的。因為只有真正弄明白這個問題,才能清楚地根據(jù)用戶的實際需求,為用戶提供真正有效的幫助。

這個問題看上去確實不難回答,但在實際工作分配的時候,你會發(fā)現(xiàn)好像交給誰,他們都會說“不太合適”。

我們逐個來分析一下:

1、測試部門

測試部分首當(dāng)其沖,企業(yè)中很多人都會想到這個“源代碼安全審計工作”當(dāng)然由測試部門來完成,當(dāng)然這屬于測試部門的工作。當(dāng)把源代碼安全審計工作交給測試部門的時候,他們會告訴你:“對不起,我們只懂測試。功能和性能測試交給我們沒有問題,可是我們不太懂安全和安全漏洞,還是源代碼級別的安全漏洞,我們一是看不懂代碼,二是不明白什么是安全漏洞,這是安全工作,你還是找安全部門人員”。但是很少企業(yè)有“安全測試部門”或者“安全部門”,很多業(yè)主企業(yè)幾乎沒有安全部門的,根本沒有實力進行“源代碼安全審計工作”,只能向?qū)I(yè)的第三方軟件評測機構(gòu)進行提測申請,出具專業(yè)的《源代碼安全審計驗收測試報告》。

2、安全部門

安全測試部門對所熟知的一些測試,如漏洞掃描,滲透測試等都是屬于安全工作職責(zé)。可安全人員卻會說:“這是源代碼安全,屬于代碼安全優(yōu)化和加固,我們安全人員90%的人員來自于網(wǎng)絡(luò)安全背景,基本上看不懂代碼,更不會編寫代碼。同時,軟件源代碼我們一般也很少拿得到源代碼,拿到了也不會構(gòu)建測試環(huán)境。這還是開發(fā)部門做比較合適。”得,這個鍋就到了研發(fā)部門這邊了。

3、開發(fā)部門

既然前兩個部門的人員都共同指出了他們看不懂代碼,不會編碼,所以做不好原地阿媽安全審計。那就由開發(fā)部門來做吧??砷_發(fā)部門做源代碼安全測試,他們能同意嗎?從經(jīng)驗上看,一般他們會以“開發(fā)時間緊、任務(wù)重;功能開發(fā)都無法按時完成;安全問題是安全部門考慮的”等等一系列“借口”給你推掉。要是遇到較為“強勢”的開發(fā)部門,他們會說:“安全測試的活都要我們做,那還要安全部門和測試干什么?”不過在我們看來,即使開發(fā)人員做了源代碼安全測試,他們也都會以“各種各樣的理由,而將“問題”判定為‘誤報’,不去修復(fù)”。這種即作“選手”,又作“裁判”的情況,也很難真正發(fā)揮源代碼安全測試的功能。

制定企業(yè)內(nèi)部源代碼安全審計體系

那到底該誰來負(fù)責(zé)實施源代碼安全測試工作?以我們評測機構(gòu)多年對評測服務(wù)的經(jīng)驗來看,這項工作需要安全、測試、開發(fā)和管理四個部門有效地配合才能真正執(zhí)行下去。

我們將四個相互獨立的部門,在源代碼安全上進行地貫穿,相互牽動,形成一個上通下達的有效的整體,各個部門分工明確,權(quán)責(zé)清楚,再加以積極配合即可實現(xiàn)源代碼安全審計保障。具體上講,就是建立以“源代碼安全測試標(biāo)準(zhǔn)”中心,“審計式測試和開發(fā)者測試”為兩個基本點的源代碼安全測試制度,以“安全測試與安全開發(fā)”兩手都要抓,兩手都硬的原則來開展源代碼安全審計工作,并最終形成“有法可依,有法必依,執(zhí)法必嚴(yán),違法必究”的管理格局。

具體要點如下: 

“源代碼安全測試標(biāo)準(zhǔn)”為中心。在以安全部門為主,開發(fā)和測試為輔的方式下,合理地制定出源代碼安全測試標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)要即能滿足安全部門安全防范的要求,又要能讓測試和開發(fā)部門能夠執(zhí)行得下去,避免矯枉過正。然后由管理部門制定和發(fā)布執(zhí)行。形成“有法可依”。

“審計式測試”第一個基本點。在以測試部門為主,選擇業(yè)界最佳的安全產(chǎn)品解決方案(如北京尚拓云測科技有限公司的安全測試團隊),以此建立盡可能全自動化的源代碼安全測試平臺。來實現(xiàn)測試成本最小的“審計式測試”。其中“審計式測試”是指在系統(tǒng)階段版本發(fā)布或者系統(tǒng)發(fā)布之前的安全測試,由測試部門完成。安全部門執(zhí)行監(jiān)督。確保任何一個系統(tǒng)在發(fā)布之前都執(zhí)行了安全測試,并符合“源代碼安全測試標(biāo)準(zhǔn)”。

“開發(fā)者測試”第二個基本點。開發(fā)部門在經(jīng)過幾次安全問題測試和修復(fù)過程后,就會發(fā)現(xiàn)“與其被動測試,被動修復(fù)問題,不如主動防范錯誤”,打鐵還需自身硬。這樣一方面開發(fā)人員就會加強和重視源代碼安全編碼方面的質(zhì)量,避免出錯。另一方面,如安全測試過程基是全自動化的,測試成本很低,開發(fā)人員會主動地在開發(fā)程中進行源代碼安全測試。開發(fā)者測試還帶來的另一個好處是,及時地發(fā)現(xiàn)安全問題,修復(fù)成本變化極低。

通過上面詳細(xì)的分析和總結(jié),我相們大家已經(jīng)明白了軟件源代碼安全審計工作的特點以及對實施這項目工作的工作重點。那么就形成統(tǒng)一的測試整體體系,各部門有效地積極配合才能讓整個企業(yè)安全開發(fā)水平、測試水平、理水平得到提高,真正達到事半功倍的效果。從而這個鍋每個執(zhí)行部門都要背,都要積極的去面對才能做好源代碼安全審計工作。