IBM安全研究高級架構(gòu)師Ryan Berg表示,金融服務(wù)業(yè)在推動安全編碼實現(xiàn)上遠遠領(lǐng)先于其他產(chǎn)業(yè),而其它的公司,包括一些規(guī)模較小的獨立軟件供應(yīng)商,并沒有為此做出努力。Berg表示,一個公司的首席執(zhí)行官可以改變這種狀況。Berg強調(diào),如果首席執(zhí)行官承諾大幅改善軟件開發(fā),并且有一定的預(yù)算支持,這將給整個軟件開發(fā)過程帶來更多積極有利的變化。在此次采訪中,Berg列出了一些可能導(dǎo)致安全威脅的領(lǐng)域,并解釋了公司如何才能逐步提升自己的軟件開發(fā)過程,以及從哪些發(fā)展模式中可獲得指導(dǎo)。
我們了解到大多數(shù)公司都把重點放在安全軟件開發(fā)上。為什么要優(yōu)先考慮軟件的安全性呢?
Ryan Berg:大約12年前,我在一家名為BBN的公司工作, 那時BBN是第一家管理防火墻服務(wù)器的公司,被人們所熟知。在12年前,對一個公司來說最大的威脅之一是來自網(wǎng)絡(luò)的訪問,這是每個人都在關(guān)心的問題。于是防火墻孕育而生,你只需要一個高層次的管理員來配置防火墻。然而,我們的網(wǎng)絡(luò)運營中心最大的需求之一是:“你能為我打開這個端口嗎?”隨著越來越多的應(yīng)用程序移植到網(wǎng)絡(luò)上,為了保證人們正常工作,試圖打開防火墻的需求越來越多。當時的應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序都相當糟糕。那時的威脅來自于網(wǎng)頁置換,隨后網(wǎng)絡(luò)開始演變。大約在5年前,我們看到越來越多的動態(tài)信息被放到了網(wǎng)絡(luò)上,同時網(wǎng)絡(luò)也增加了一些更為實際的業(yè)務(wù)功能。雖然防火墻還規(guī)定了一個安全基準,但是用戶可以通過允許開啟80端口,免費、快速地訪問網(wǎng)絡(luò)。曾經(jīng)人們所理解的內(nèi)網(wǎng)和外網(wǎng)概念已經(jīng)被徹底打破。大多數(shù)公司一旦在互聯(lián)網(wǎng)上開展業(yè)務(wù),都會開放80端口允許訪問他們的網(wǎng)絡(luò),這樣他們基本上也為來自外界的訪問打開了方便之門。
很多應(yīng)用程序已經(jīng)放在網(wǎng)絡(luò)了,攻擊者似乎不再通過操作系統(tǒng)漏洞,而是通過瀏覽器的漏洞以及一些其他面向網(wǎng)絡(luò)應(yīng)用程序的漏洞來發(fā)動攻擊,是這樣的嗎?
Berg:由于操作系統(tǒng)廠商在操作系統(tǒng)安全防范上做的很好,人們逐漸意識到攻擊者想得到的只是數(shù)據(jù)。這是一個數(shù)據(jù)經(jīng)濟時代。商務(wù)分析人士希望獲得這些數(shù)據(jù)來推動自己的業(yè)務(wù)發(fā)展,黑客也想得到這些數(shù)據(jù)來推動自己的業(yè)務(wù)發(fā)展。獲得數(shù)據(jù)的方式將不再是通過網(wǎng)絡(luò)和入侵操作系統(tǒng)。黑客正嘗試讓應(yīng)用程序本身去訪問這些數(shù)據(jù),然后直接摧毀這些應(yīng)用程序。黑客試圖用一種邪惡的方式來合法的獲取數(shù)據(jù)。這就是為什么類似于SQL注入和跨站點腳本攻擊(XSS)這樣的攻擊成為主流的原因。這些都只是攻擊者用來破壞應(yīng)用程序正常功能的方式。軟件缺陷、不良設(shè)計或編碼質(zhì)量低下都是客觀存在的。
如果一家公司要把軟件安全列為優(yōu)先項目,那么它該從哪入手?公司里誰應(yīng)該起帶頭作用?
Berg:我認為應(yīng)該從首席執(zhí)行官開始。你必須改變你對軟件制造的思維方式。公司改變其軟件制造方式的唯一途徑就是通過首席執(zhí)行官的領(lǐng)導(dǎo)。我接觸過很多公司,并不是開發(fā)人員不想做正確的事情。他們也并不希望編寫出糟糕的代碼。但開發(fā)人員沒有被告知,這是我們業(yè)務(wù)的一個基本職能。軟件交付使用時一定要具備安全性。為了使這成為一個標準以及讓開發(fā)人員能夠堅持自己的開發(fā)理念,必須從公司最高管理層開始貫徹落實。我從來沒有告訴過任何公司不要關(guān)心他們的軟件質(zhì)量。如果你關(guān)心軟件質(zhì)量,那么你必須關(guān)注它的安全性,因為不可能存在缺乏安全性的高質(zhì)量軟件。公司花費了太多的精力在質(zhì)量上。有專門的質(zhì)量檢測工程師負責(zé)產(chǎn)品的測試。但是,還需要專門的工程師來測試軟件的安全性。質(zhì)量檢測工程師不能進行這個測試,因為這是另外一門技術(shù)。所以需要有一個企業(yè)承諾需求和一個企業(yè)提供這樣的職能。
一旦做出這種承諾,將會產(chǎn)生許多種不同的模式,我們可以以此作為指南。比如成熟度模型(BSIMM)中的建筑安全就很管用。微軟也將它的SDL廣泛應(yīng)用。您對這些不同的模式怎么看?這會是一個很好的起步平臺嗎?
相關(guān)閱讀