- 軟件開發(fā)安全之道:概念、設(shè)計(jì)與實(shí)施
- (美)洛倫·科恩費(fèi)爾德
- 1019字
- 2024-01-31 18:37:17
第2章 威脅

威脅常常比事件本身更加可怖。——索爾·阿林斯基
威脅無處不在。不過,如果妥善管理,我們也可以安然與威脅共存。軟件安全其實(shí)并沒有什么不同之處,只不過我們自己沒有幾百萬年進(jìn)化而來的本能來防御軟件方面的威脅。這也就是為什么我們需要樹立軟件安全的意識,為此我們必須把視角從軟件構(gòu)建者轉(zhuǎn)向攻擊者。理解一個(gè)系統(tǒng)的潛在風(fēng)險(xiǎn)是一切的起點(diǎn),我們應(yīng)該從這一點(diǎn)出發(fā),在軟件設(shè)計(jì)中加入可靠的防御和緩解措施。不過,要想在第一時(shí)間意識到這些風(fēng)險(xiǎn)的存在,我們暫且不要思考那些經(jīng)典的使用案例,也不要按照設(shè)計(jì)功能來使用軟件。我們必須首先看清軟件的本質(zhì):它是由一堆代碼和組件構(gòu)成的,這些代碼和組件承擔(dān)著數(shù)據(jù)處理和存儲的職責(zé)。
我們以曲別針為例,曲別針是一個(gè)設(shè)計(jì)十分巧妙的工具,它可以把一沓紙夾在一起。不過,曲別針本身也可以掰成一根筆直的鐵絲。典型的安全意識就是,我們應(yīng)該意識到犯罪分子可以把曲別針掰成鐵絲,再把這根鐵絲插進(jìn)鑰匙孔里、撥開鎖扣,然后推門而入。
這里需要強(qiáng)調(diào)的是,威脅包含各種可以帶來傷害的方式。刻意發(fā)動(dòng)的對抗性攻擊行為固然是我們探討的重點(diǎn),但是我們也絕對不能忽視因軟件錯(cuò)誤、人為錯(cuò)誤、意外事故和硬件故障等問題導(dǎo)致的威脅。
威脅建模可以為我們提供一個(gè)視角,讓我們可以在整個(gè)軟件開發(fā)過程中做出足以影響全局的安全性決策。后文介紹的處理方法強(qiáng)調(diào)的是概念和原則,而不會把重點(diǎn)放在威脅建模的具體方法上。微軟公司在21世紀(jì)初采用的早期威脅建模行之有效,但是需要對安全人員進(jìn)行大量的培訓(xùn),也需要安全人員付出巨大的努力。好在威脅建模的方式本身就很豐富,一旦理解了基本概念,人們很容易就可以對自己的威脅建模流程加以調(diào)整,從而利用有限的時(shí)間和精力,得到合理的回報(bào)。
我們當(dāng)然很難窮舉大型軟件系統(tǒng)的所有威脅和漏洞。因此,高明的安全工作是逐步提高標(biāo)準(zhǔn),而不是追求盡善盡美。我們可以首先找出一些潛在的風(fēng)險(xiǎn),然后緩解其中的一部分問題。即便如此,那也意味著做出了一定的改進(jìn)。這樣的做法或許就有可能避免出現(xiàn)重大的安全事件,這已經(jīng)是不容小覷的成就了。不過,我們恐怕從來都對那些遭到挫敗的攻擊一無所知,而缺乏反饋機(jī)制往往會讓人倍感失望。可以說,我們展現(xiàn)出來的安全意識越強(qiáng),我們就可以看到越多的威脅。
最后,理解威脅建模可以讓我們把視野從安全性上擴(kuò)展出去,從而重新審視我們的目標(biāo)系統(tǒng)。如果我們通過新的方式對軟件加以檢視,就可以更加深入地發(fā)現(xiàn)改進(jìn)、提升、簡化軟件的機(jī)會,也可以發(fā)現(xiàn)那些與安全性無關(guān)的新特性。
- Extending Symfony2 Web Application Framework
- 數(shù)據(jù)恢復(fù)方法及案例分析
- 信息安全導(dǎo)論(在線實(shí)驗(yàn)+在線自測)
- 特種木馬防御與檢測技術(shù)研究
- 移動(dòng)APT:威脅情報(bào)分析與數(shù)據(jù)防護(hù)
- 解密數(shù)據(jù)恢復(fù)
- 信息安全等級保護(hù)測評與整改指導(dǎo)手冊
- 人工智能安全(精裝版)
- 數(shù)據(jù)安全與流通:技術(shù)、架構(gòu)與實(shí)踐
- 編譯與反編譯技術(shù)實(shí)戰(zhàn)
- 實(shí)用黑客攻防技術(shù)
- VMware vCloud Security
- 網(wǎng)絡(luò)安全實(shí)戰(zhàn)詳解(企業(yè)專供版)
- Kali Linux高級滲透測試(原書第4版)
- 云計(jì)算安全防護(hù)技術(shù)