安全軟件生命周期之內(nèi)容動機
內(nèi)容動機
從歷史上看,有時現(xiàn)在,組織將其安全策略集中在網(wǎng)絡系統(tǒng)級別,例如防火墻,并對軟件采取了被動的方法。安全性,使用通常稱為“滲透和修補”的方法。[5]通過這種方法,當產(chǎn)品通過嘗試已知攻擊的滲透測試完成時,可以評估安全性;或者,當組織成為已部署軟件攻擊的受害者時,會在發(fā)布后發(fā)現(xiàn)漏洞。在任何一種情況下,組織都會通過安全補丁查找和修復漏洞來做出反應。以下缺點在以被動方式處理網(wǎng)絡安全時可能更為普遍:
? 違規(guī)行為代價高昂。根據(jù)對15個國家/地區(qū)的477家公司的研究,2018年P(guān)oneman Institute[4]報告稱,美國和中東的違規(guī)成本平均為790萬美元,中東為530萬美元。印度和巴西的違規(guī)行為成本最低,但這些國家/地區(qū)每次違規(guī)行為的平均費用分別為180萬美元和120萬美元。違規(guī)造成的聲譽損失很難量化。
? 攻擊者可以在不被注意的情況下發(fā)現(xiàn)和利用漏洞。根據(jù)對15個國家/地區(qū)的477家公司進行的一項研究,2018年P(guān)oneman Institute[4]報告稱,識別發(fā)生違規(guī)行為的平均時間為197天,查找和修復漏洞的平均時間為一旦檢測到違規(guī)行為,還需要69天。
? 補丁可能會引入新的漏洞或其他問題。漏洞補丁被認為是緊急的,可以匆忙推出,可能會給系統(tǒng)帶來新的問題。例如,Microsoft針對Meltdown1芯片漏洞的早期補丁在Windows7 2中引入了一個更嚴重的漏洞。新漏洞允許攻擊者更快地讀取內(nèi)核內(nèi)存并寫入自己的內(nèi)存,并可能允許攻擊者訪問在機器。
? 客戶通常不應用補丁。用戶和系統(tǒng)管理員可能不愿意應用安全修補程序。例如,OpenSSL中廣為人知的Heartbleed3漏洞允許攻擊者輕松,悄悄地利用易受攻擊的系統(tǒng),竊取密碼,cookie,私有加密密鑰等等。該漏洞于2014年4月報告;但在2017年1月,掃描顯示仍有200,000臺可訪問的互聯(lián)網(wǎng)設備未打補丁[7]。一旦漏洞被公開報告,攻擊者就會制定一種新的機制來利用該漏洞,因為他們知道許多組織不會采用該修復程序。
1998年,McGraw[5]主張超越滲透和補丁方法,基于他在DARPA資助的研究工作中的工作,研究軟件工程在軟件漏洞評估中的應用。他認為,主動嚴格的軟件分析應該在評估和防止應用程序中的漏洞方面發(fā)揮越來越重要的作用,因為眾所周知的事實,即由于軟件設計和編碼錯誤而發(fā)生安全違規(guī)。2002年,Viega和McGraw出版了第一本關(guān)于開發(fā)安全程序的書,Building Secure Software[6],重點是防止漏洞注入和降低安全性。通過將安全性集成到軟件開發(fā)過程中來承擔風險。
在2000年代初期,攻擊者變得更加激進,Microsoft成為這種侵略的焦點,暴露了其產(chǎn)品中的安全漏洞,尤其是Internet信息服務(IIS)。Gartner是一家領(lǐng)先的研究和咨詢公司,很少建議其客戶避開特定的軟件,建議公司停止使用IIS。為了回應客戶的擔憂和越來越多的負面新聞,當時的Microsoft首席執(zhí)行官比爾·蓋茨(Bill Gates)在一月份向所有員工發(fā)送了可信計算備忘錄[2]。2002年第15期。該備忘錄也在互聯(lián)網(wǎng)上廣為流傳。備忘錄的摘錄定義了可信計算:
“可信計算是我們所有工作的最高優(yōu)先級。我們必須將行業(yè)引導到一個全新的計算可信度水平......可信計算是與電力、供水服務和電話一樣可用、可靠和安全的計算。
可信計算備忘錄引起了公司的轉(zhuǎn)變。兩周后,Microsoft宣布推遲發(fā)布Windows.NET Server [8],以確保根據(jù)以下要求進行適當?shù)陌踩珜彶椋ǚQ為Windows安全推送)。Microsoft的可信計算計劃在本備忘錄中概述。2003年,Microsoft員工Howard和Le Blanc[9]公開出版了一本關(guān)于編寫安全代碼以防止漏洞,檢測設計缺陷和實現(xiàn)的書的第二版錯誤,并改進測試代碼和文檔。在推送期間,Windows團隊的所有成員都必須閱讀第一版。
在隨后的幾年中,Microsoft改變了他們的開發(fā)流程,通過對從早期規(guī)劃到產(chǎn)品生命周期結(jié)束的開發(fā)流程進行全面改革來構(gòu)建安全產(chǎn)品。他們的產(chǎn)品包含的漏洞明顯較少[9]。在內(nèi)部使用該流程后,Microsoft編纂并貢獻了他們的13階段內(nèi)部開發(fā)流程,即2006年名為《安全開發(fā)生命周期[3]》的書,將其Microsoft安全開發(fā)生命周期(SDL)提供給社區(qū)。正如蓋茨的初衷一樣,Microsoft SDL通過提供第一個記錄在案的全面規(guī)范性生命周期,為信息技術(shù)行業(yè)奠定了基礎(chǔ)。同樣在2006年,McGraw出版了第一本關(guān)于軟件安全最佳實踐的書[10]。
正如本知識領(lǐng)域的其余部分所討論的那樣,組織建立在Microsoft以及Viega和McGraw奠定的基礎(chǔ)上[6,5]。