商品簡介
作者簡介
目次
相關商品
商品簡介
本書是關於C和C++安全編碼的著作。本書介紹了C和C++程序中已經導致危險的、破壞性的基本編程錯誤,包括在字符串、指針、動態內存管理、整數、格式化輸出、文件I/O等中的漏洞或缺陷。本書還提供了對這些編程錯誤的深入剖析,并給出緩解策略,以減少或消除惡意利用漏洞的風險。
本書適合C/C++程序員、軟件安全工程師參考。
洞悉軟件漏洞的成因,熟知規避之道
通常而言,可利用的軟件漏洞都由本可避免的軟件缺陷所導致。在分析了過去10年中近18000份漏洞報告后,CERT/CC發現少量的根本原因導致了這些漏洞的產生。本書識別并解釋了這些原因,而且展示了預防利用漏洞的步驟。此外,本書還鼓勵程序員采用最佳安全實踐,并培養安全的開發理念,這不但有助于保護軟件免遭當前的攻擊,更可使它們免遭將來可能發生的攻擊。
基於CERT/CC的報告和總結,Robert Seacord系統地揭示了最可能導致安全缺陷的編程錯誤,展示了這些缺陷的利用方式,介紹了可能導致的后果,并提供了安全的替代做法。
本書特別討論了如下技術細節:
改善任何C/C++應用程序的整體安全性。
抵御利用不安全的字符串操作邏輯的緩沖區溢出和棧粉碎攻擊。
避免因對動態內存管理函數的不當使用而導致的漏洞和安全缺陷。
消除與整數相關的問題,包括整數溢出、符號錯誤以及截斷錯誤等。
正確地使用格式化輸出函數,避免引入格式字符串漏洞。
避免I/O漏洞,包括競爭條件等。
本書提供了許多針對Windows和Linux的安全代碼、不安全代碼以及利用程序的例子。如果你負責創建安全的C或C++軟件,或者需要保持這類軟件的安全性,本書為你提供了詳盡的專家級協助。在這方面,其他任何書籍都望塵莫及。
本書適合C/C++程序員、軟件安全工程師參考。
洞悉軟件漏洞的成因,熟知規避之道
通常而言,可利用的軟件漏洞都由本可避免的軟件缺陷所導致。在分析了過去10年中近18000份漏洞報告后,CERT/CC發現少量的根本原因導致了這些漏洞的產生。本書識別并解釋了這些原因,而且展示了預防利用漏洞的步驟。此外,本書還鼓勵程序員采用最佳安全實踐,并培養安全的開發理念,這不但有助于保護軟件免遭當前的攻擊,更可使它們免遭將來可能發生的攻擊。
基於CERT/CC的報告和總結,Robert Seacord系統地揭示了最可能導致安全缺陷的編程錯誤,展示了這些缺陷的利用方式,介紹了可能導致的后果,并提供了安全的替代做法。
本書特別討論了如下技術細節:
改善任何C/C++應用程序的整體安全性。
抵御利用不安全的字符串操作邏輯的緩沖區溢出和棧粉碎攻擊。
避免因對動態內存管理函數的不當使用而導致的漏洞和安全缺陷。
消除與整數相關的問題,包括整數溢出、符號錯誤以及截斷錯誤等。
正確地使用格式化輸出函數,避免引入格式字符串漏洞。
避免I/O漏洞,包括競爭條件等。
本書提供了許多針對Windows和Linux的安全代碼、不安全代碼以及利用程序的例子。如果你負責創建安全的C或C++軟件,或者需要保持這類軟件的安全性,本書為你提供了詳盡的專家級協助。在這方面,其他任何書籍都望塵莫及。
作者簡介
Robert C.Seaco rd是賓夕法尼亞州匹茲堡市SEI(SoftwareEngineering Institute,軟件工程研究院)的CERT/CC(CERT/Coordination Center,CERT協調中心)高級漏洞分析師。CERT/CC定期對軟件漏洞報告進行分析,并且評估互聯網及其他關鍵的基礎設施可能遭受的風險,此外還從事其他一些與安全有關的研究活動。作為一名涉獵廣泛的技術專家,Robert還是《Building Sy stems from Commercial Components》(Addison—Wesley,2002)和《Modernizing Legacy Systems》(Addison—Wesley,2003)的合著者,并發表T40多篇論文,領域涉及軟件安全、基於組件的軟件工程、基於Web的系統設計、遺留系統的現代化改造、組件倉庫與搜索引擎以及用戶界面設計與開發等。Robert于1982年起在IBM開始職業編程生涯,從事通信和操作系統軟件研發、處理器開發以及軟件工程。Robert還為x協會(X Consortium)工作,為CDE(Common DesktopEnvironment,公共桌面環境)和x Window系統開發和維護代碼。他還積極參與JTCl/SC22/WGl4的C語言國際標準化工作組工作。
目次
譯者序
序言
前言
作譯者簡介
第1章 夾縫求生
1.1 衡量危險
1.1.1 損失的現狀
1.1.2 威脅的來源
1.1.3 軟件安全
1.2 安全概念
1.2.1 安全策略
1.2.2 安全缺陷
1.2.3 漏洞
1.2.4 利用
1.2.5 緩解措施
1.3 C和C++
1.3.1 C和C++簡史
1.3.2 C存在的問題
1.3.3 遺留代碼
1.3.4 其他語言
1.4 開發平臺
1.4.1 操作系統
1.4.2 編譯器
1.5 本章小結
1.6 閱讀材料
第2章 字符串
2.1 字符串特徵
2.2 常見的字符串操作錯誤
2.2.1 無界字符串復制
2.2.2 差一錯誤
2.2.3 空結尾錯誤
2.2.4 字符串截斷
2.2.5 與函數無關的字符串錯誤
2.3 字符串漏洞
2.3.1 安全缺陷
2.3.2 緩沖區溢出
2.4 進程內存組織
2.5 棧粉碎
2.6 代碼注入
2.7 弧注入
2.8 緩解策略
2.8.1 預防
2.8.2 字符串流
2.8.3 檢測和恢復
2.9 著名的漏洞
2.9.1 遠程登錄
2.9.2 Kerberos
2.9.3 Metamail
2.10 本章小結
2.11 閱讀材料
第3章 指針詭計
3.1 數據位置
3.2 函數指針
3.3 數據指針
3.4 修改指令指針
3.5 全局偏移表
3.6 dtors區
3.7 虛指針
3.8 atexit()和on exit()函數
3.9 longjmp()函數
3.10 異常處理
3.10.1 結構化異常處理
3.10.2 系統默認異常處理
3.11 緩解策略
……
第4章 動態內存管理
第5章 整數安全
第6章 格式化輸出
第7章 文件I/O
第8章 推薦的實踐
參考文獻
縮略語
序言
前言
作譯者簡介
第1章 夾縫求生
1.1 衡量危險
1.1.1 損失的現狀
1.1.2 威脅的來源
1.1.3 軟件安全
1.2 安全概念
1.2.1 安全策略
1.2.2 安全缺陷
1.2.3 漏洞
1.2.4 利用
1.2.5 緩解措施
1.3 C和C++
1.3.1 C和C++簡史
1.3.2 C存在的問題
1.3.3 遺留代碼
1.3.4 其他語言
1.4 開發平臺
1.4.1 操作系統
1.4.2 編譯器
1.5 本章小結
1.6 閱讀材料
第2章 字符串
2.1 字符串特徵
2.2 常見的字符串操作錯誤
2.2.1 無界字符串復制
2.2.2 差一錯誤
2.2.3 空結尾錯誤
2.2.4 字符串截斷
2.2.5 與函數無關的字符串錯誤
2.3 字符串漏洞
2.3.1 安全缺陷
2.3.2 緩沖區溢出
2.4 進程內存組織
2.5 棧粉碎
2.6 代碼注入
2.7 弧注入
2.8 緩解策略
2.8.1 預防
2.8.2 字符串流
2.8.3 檢測和恢復
2.9 著名的漏洞
2.9.1 遠程登錄
2.9.2 Kerberos
2.9.3 Metamail
2.10 本章小結
2.11 閱讀材料
第3章 指針詭計
3.1 數據位置
3.2 函數指針
3.3 數據指針
3.4 修改指令指針
3.5 全局偏移表
3.6 dtors區
3.7 虛指針
3.8 atexit()和on exit()函數
3.9 longjmp()函數
3.10 異常處理
3.10.1 結構化異常處理
3.10.2 系統默認異常處理
3.11 緩解策略
……
第4章 動態內存管理
第5章 整數安全
第6章 格式化輸出
第7章 文件I/O
第8章 推薦的實踐
參考文獻
縮略語
主題書展
更多
主題書展
更多書展今日66折
您曾經瀏覽過的商品
購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。