- C和C++安全編碼(原書第2版)
- (美)Robert C.Seacord
- 1269字
- 2020-10-30 17:56:32
序
現代社會對網絡化軟件系統的依賴日益加深,以這些系統為目標的攻擊數量亦與日俱增。形形色色的針對政府、公司、教育機構以及個人系統的攻擊,已經導致諸多嚴重的后果:敏感數據丟失或損壞、系統受損、生產效率降低,以及經濟損失等。
盡管今天互聯網上的攻擊行為大多不過是惡作劇,但是越來越多的證據表明,罪犯、恐怖分子以及其他心懷叵測的人已將軟件系統中的漏洞視作達成其不可告人目的的手段。近年來,每年發現的軟件漏洞已逾4000個。這些漏洞的成因包括:在設計和實現方面對如何保護系統考慮不周,在開發實踐方面對消除會導致安全缺陷的實現瑕疵關注不夠。
伴隨著軟件漏洞的日益增加,攻擊手段也與時俱進,變得越發老練、有效。入侵者在發現軟件產品中的漏洞后,可以迅速開發出利用漏洞的腳本,繼而使用這些腳本威脅計算機的安全。更糟糕的是,他們還將這些腳本與其他攻擊者共享。這些腳本與一些“自動掃描網絡以窺探脆弱系統”的程序聯合起來,攻擊那些脆弱系統,危害其安全,甚至利用它們進一步傳播攻擊。
由于每年都會發現大量的漏洞,系統管理員為了給既有系統打補丁日益疲于奔命。打補丁有時并非易事,并可能會導致意想不到的副作用。在供應商發布一個安全補丁后,可能需耗時數月乃至數年的時間,90%~95%的受影響計算機才能完成修補工作。
互聯網用戶已經嚴重依賴于這樣一種解決方式:互聯網社區作為一個整體,對發生的安全攻擊快速做出反應,以確保將損害降至最低,并將攻擊迅速擊潰。然而,顯而易見,如今的“反應式解決方案”已經達到其效力的極限。雖然個體響應組織都在為將漏洞處理過程的精簡化和自動化而努力工作,但是今天商業軟件產品中的漏洞數目,已經多至只有財力雄厚的組織才能應對漏洞修復工作,其他組織實質上已心有余而力不足。
沒有任何證據表明大多數產品中的安全問題得到了改善,很多軟件開發者尚未很好地理解從各種漏洞成因中獲得的教訓,或者尚未運用能夠起作用的緩解策略,CERT/CC不斷在同一軟件產品的更新版本中發現早期版本已存在的同類漏洞就是明證。
這些因素交織在一起,預示著我們完全可以相信,很多攻擊甚至會在我們實際希望的最短響應時間內造成巨大的經濟損失和服務崩潰。
雖然積極且協調的反應仍然不可或缺,但我們還必須構建出不易被破壞的、更安全的系統。
關于本書
本書致力于解決C和C++中已經導致危險的、破壞性的常見軟件漏洞的基本編程錯誤,這些漏洞自CERT 1988年創立以來就記錄在案。針對導致這些漏洞的編程錯誤,本書既出色地給出了深度工程分析,又提出了緩解策略,可以富有成效地降低或消除漏洞被惡意利用的風險。
自Robert于1987年4月加入SEI以來,我就一直與他共事。Robert是一位知識淵博、技術熟練的軟件工程師,他在軟件漏洞細節分析和表達洞察成果方面卓爾不凡。作為研究結果,本書細致而精確地分析了軟件開發者面臨的常見問題,并提供了實用的解決方案。Robert在軟件開發方面具備的寬廣背景,也使得他擅長在性能、易用性以及其他在開發安全代碼過程中必須考慮的質量特性之間進行權衡。除了Robert外,本書還凝聚了CERT積累和提煉的知識,以及CERT/CC漏洞分析小組、CERT操作人員、SEI編輯和工作人員的杰出工作。
Richard D.Pethia
CERT 主管
- Mastering JavaScript Object-Oriented Programming
- Building a Home Security System with Raspberry Pi
- Wireshark Network Security
- Learn Swift by Building Applications
- Monitoring Elasticsearch
- SQL Server 2016數據庫應用與開發習題解答與上機指導
- Windows Forensics Cookbook
- PHP編程基礎與實例教程
- C# Multithreaded and Parallel Programming
- SEO教程:搜索引擎優化入門與進階(第3版)
- Python編程基礎教程
- 趣味掌控板編程
- PostGIS Cookbook
- vSphere High Performance Cookbook(Second Edition)
- Android性能優化之道:從底層原理到一線實踐