- C和C++安全編碼(原書第2版)
- (美)Robert C.Seacord
- 646字
- 2020-10-30 17:56:36
1.5 小結(jié)
軟件漏洞大都是由常見的軟件瑕疵所引起的,這一事實(shí)早已不是秘密。對(duì)C和C++而言更是如此。這些語言在設(shè)計(jì)時(shí)假設(shè)其用戶具有一定水平的專業(yè)知識(shí),可事實(shí)上并非如此。結(jié)果導(dǎo)致售出的產(chǎn)品中包含大量的瑕疵,其中一些可能導(dǎo)致軟件漏洞。軟件開發(fā)者需要對(duì)用戶發(fā)現(xiàn)的漏洞(其中一些是惡意的)作出反應(yīng),接著就開始發(fā)布補(bǔ)丁和安裝補(bǔ)丁的循環(huán)周期。然而,補(bǔ)丁的數(shù)量實(shí)在太多,導(dǎo)致系統(tǒng)管理員并不能及時(shí)完成打補(bǔ)丁的工作。甚至有時(shí)補(bǔ)丁程序本身也包含安全缺陷。這種針對(duì)安全缺陷的反應(yīng)式策略并不奏效,我們需要一種在早期進(jìn)行預(yù)防和消除安全缺陷的策略。
引起軟件安全問題最主要的原因就是軟件中的瑕疵,有瑕疵的軟件隨處可見。那些廣泛使用的操作系統(tǒng)平均每千行代碼就有一兩個(gè)瑕疵,而它們都是由幾百萬行代碼所組成,因此通常都會(huì)包含數(shù)千個(gè)瑕疵[Davis 2003]。應(yīng)用軟件的規(guī)模雖然沒有操作系統(tǒng)那么龐大,但其每千行代碼包含的瑕疵數(shù)目差不多也是如此。雖然并非每個(gè)瑕疵都有安全問題,但是,就算它們導(dǎo)致安全漏洞的比例只有1%或2%,風(fēng)險(xiǎn)也是相當(dāng)大的。
SANS Institute主管Alan Paller曾沮喪地說過:“在SANS Institute Top 20 Internet Security排行榜中所列出的安全漏洞,都是由于糟糕的代碼編寫、不嚴(yán)格的測試、馬虎的軟件工程實(shí)踐所造成的。這些問題并非如某些外行所想,是什么‘前沿’問題,它們的技術(shù)解決方案都存在,可就是沒有得到很好地實(shí)現(xiàn)”[Kirwan 2004]。
理解漏洞產(chǎn)生的原理和如何進(jìn)行安全編程對(duì)于保護(hù)整個(gè)互聯(lián)網(wǎng)以及我們自身免受攻擊至關(guān)重要。要想減少軟件缺陷的數(shù)量,需要采用一種以健全的設(shè)計(jì)原則和有效的質(zhì)量管理實(shí)踐為基礎(chǔ)的、嚴(yán)肅的工程方法。
- MATLAB 2020 從入門到精通
- Python網(wǎng)絡(luò)爬蟲從入門到實(shí)踐(第2版)
- Learning SQLite for iOS
- Redis Essentials
- Asynchronous Android Programming(Second Edition)
- Kotlin開發(fā)教程(全2冊(cè))
- JavaScript腳本特效編程給力起飛
- Orleans:構(gòu)建高性能分布式Actor服務(wù)
- Android Sensor Programming By Example
- Java程序設(shè)計(jì)基礎(chǔ)(第6版)
- 軟硬件綜合系統(tǒng)軟件需求建模及可靠性綜合試驗(yàn)、分析、評(píng)價(jià)技術(shù)
- Learning TypeScript
- Hadoop Blueprints
- 計(jì)算機(jī)視覺實(shí)戰(zhàn):基于TensorFlow 2
- Java Web程序開發(fā)參考手冊(cè)