官术网_书友最值得收藏!

1.5 小結

軟件漏洞大都是由常見的軟件瑕疵所引起的,這一事實早已不是秘密。對C和C++而言更是如此。這些語言在設計時假設其用戶具有一定水平的專業知識,可事實上并非如此。結果導致售出的產品中包含大量的瑕疵,其中一些可能導致軟件漏洞。軟件開發者需要對用戶發現的漏洞(其中一些是惡意的)作出反應,接著就開始發布補丁和安裝補丁的循環周期。然而,補丁的數量實在太多,導致系統管理員并不能及時完成打補丁的工作。甚至有時補丁程序本身也包含安全缺陷。這種針對安全缺陷的反應式策略并不奏效,我們需要一種在早期進行預防和消除安全缺陷的策略。

引起軟件安全問題最主要的原因就是軟件中的瑕疵,有瑕疵的軟件隨處可見。那些廣泛使用的操作系統平均每千行代碼就有一兩個瑕疵,而它們都是由幾百萬行代碼所組成,因此通常都會包含數千個瑕疵[Davis 2003]。應用軟件的規模雖然沒有操作系統那么龐大,但其每千行代碼包含的瑕疵數目差不多也是如此。雖然并非每個瑕疵都有安全問題,但是,就算它們導致安全漏洞的比例只有1%或2%,風險也是相當大的。

SANS Institute主管Alan Paller曾沮喪地說過:“在SANS Institute Top 20 Internet Security排行榜中所列出的安全漏洞,都是由于糟糕的代碼編寫、不嚴格的測試、馬虎的軟件工程實踐所造成的。這些問題并非如某些外行所想,是什么‘前沿’問題,它們的技術解決方案都存在,可就是沒有得到很好地實現”[Kirwan 2004]。

理解漏洞產生的原理和如何進行安全編程對于保護整個互聯網以及我們自身免受攻擊至關重要。要想減少軟件缺陷的數量,需要采用一種以健全的設計原則和有效的質量管理實踐為基礎的、嚴肅的工程方法。

主站蜘蛛池模板: 乐清市| 南康市| 平舆县| 翁牛特旗| 恩平市| 那曲县| 克拉玛依市| 无为县| 邮箱| 读书| 扬州市| 吕梁市| 绥阳县| 沾化县| 庄河市| 高安市| 横峰县| 班玛县| 新竹市| 孝昌县| 武功县| 宁晋县| 新安县| 安阳市| 怀宁县| 怀安县| 赤峰市| 青州市| 武强县| 肃宁县| 铜川市| 西华县| 新巴尔虎左旗| 龙南县| 汉川市| 屏南县| 晋中市| 外汇| 闸北区| 林西县| 山阳县|