注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)程序設(shè)計(jì)綜合C和C++安全編碼(原書(shū)第2版)

C和C++安全編碼(原書(shū)第2版)

C和C++安全編碼(原書(shū)第2版)

定 價(jià):¥79.00

作 者: (美)Robert C. Seacord 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng): 華章程序員書(shū)庫(kù)
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787111442790 出版時(shí)間: 2013-12-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 377 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  《華章程序員書(shū)庫(kù):C和C++安全編碼(原書(shū)第2版)》是C/C++安全編碼領(lǐng)域的權(quán)威著作,被視為“標(biāo)準(zhǔn)”參考書(shū),由國(guó)際資深軟件安全專(zhuān)家撰寫(xiě),美國(guó)CERT主管親自作序推薦。本書(shū)結(jié)合國(guó)際標(biāo)準(zhǔn)C11和C++11,以及C和C++語(yǔ)言的最新發(fā)展,既詳細(xì)闡述了C/C++語(yǔ)言及其相關(guān)庫(kù)固有的安全問(wèn)題和陷阱,系統(tǒng)總結(jié)了導(dǎo)致軟件漏洞的各種常見(jiàn)編碼錯(cuò)誤,并給出了應(yīng)對(duì)錯(cuò)誤的解決方案;又對(duì)C/C++軟件中常見(jiàn)漏洞的危害、被利用方式、檢測(cè)方法和應(yīng)對(duì)之道進(jìn)行了全方位講解,包含大量編碼練習(xí),實(shí)踐性強(qiáng)。《華章程序員書(shū)庫(kù):C和C++安全編碼(原書(shū)第2版)》從C和C++語(yǔ)言的各個(gè)部分分別介紹了可能導(dǎo)致安全問(wèn)題的軟件漏洞:第1章介紹安全術(shù)語(yǔ)和概念,并指出為何C和C++程序中存在如此多的漏洞。第2章描述C和C++中的字符串操作、常見(jiàn)的安全缺陷以及由此導(dǎo)致的漏洞。第3章介紹任意內(nèi)存寫(xiě)漏洞利用方式,它允許攻擊者對(duì)內(nèi)存中任意位置的一個(gè)地址進(jìn)行寫(xiě)操作。第4章描述動(dòng)態(tài)內(nèi)存管理,討論了動(dòng)態(tài)分配的緩沖區(qū)溢出、寫(xiě)入已釋放內(nèi)存,以及重復(fù)釋放漏洞。第5章討論整數(shù)安全問(wèn)題(即與整數(shù)操作相關(guān)的安全議題),包括整數(shù)溢出、符號(hào)錯(cuò)誤以及截?cái)噱e(cuò)誤等。第6章描述格式化輸出函數(shù)的正確和錯(cuò)誤的用法,對(duì)因這些函數(shù)的錯(cuò)誤使用所導(dǎo)致的格式字符串和緩沖區(qū)溢出漏洞都有討論。第7章重點(diǎn)介紹并發(fā)和可能導(dǎo)致死鎖、競(jìng)爭(zhēng)條件和無(wú)效的內(nèi)存訪問(wèn)序列的漏洞。第8章描述和文件I/O相關(guān)的常見(jiàn)漏洞,包括競(jìng)爭(zhēng)條件和檢查時(shí)間與使用時(shí)間漏洞。第9章推薦一些可以整體改善C/C++應(yīng)用程序安全性的具體開(kāi)發(fā)實(shí)踐,這些建議是對(duì)每一章中用于解決特定漏洞問(wèn)題的推薦做法的補(bǔ)充。

作者簡(jiǎn)介

暫缺《C和C++安全編碼(原書(shū)第2版)》作者簡(jiǎn)介

圖書(shū)目錄

譯者序

前言
致謝
第1章 夾縫求生
1.1  衡量危險(xiǎn)
1.1.1  損失的現(xiàn)狀
1.1.2  威脅的來(lái)源
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++簡(jiǎn)史
1.3.2  C存在的問(wèn)題
1.3.3  遺留代碼
1.3.4  其他語(yǔ)言
1.4  開(kāi)發(fā)平臺(tái)
1.4.1  操作系統(tǒng)
1.4.2  編譯器
1.5  小結(jié)
1.6  閱讀材料
第2章 字符串
2.1  字符串
2.1.1  字符串?dāng)?shù)據(jù)類(lèi)型
2.1.2  UTF-8
2.1.3  寬字符串
2.1.4  字符串字面值
2.1.5  C++中的字符串
2.1.6  字符類(lèi)型
2.1.7  計(jì)算字符串大小
2.2  常見(jiàn)的字符串操作錯(cuò)誤
2.2.1  無(wú)界字符串復(fù)制
2.2.2  差一錯(cuò)誤
2.2.3  空字符結(jié)尾錯(cuò)誤
2.2.4  字符串截?cái)?br />2.2.5  與函數(shù)無(wú)關(guān)的字符串錯(cuò)誤
2.3  字符串漏洞及其利用
2.3.1  被污染的數(shù)據(jù)
2.3.2  IsPasswordOK的安全缺陷
2.3.3  緩沖區(qū)溢出
2.3.4  進(jìn)程內(nèi)存組織
2.3.5  棧管理
2.3.6  棧溢出
2.3.7  代碼注入
2.3.8  弧注入
2.3.9  返回導(dǎo)向編程
2.4  字符串漏洞緩解策略
2.4.1  字符串處理
2.4.2  C11附錄K邊界檢查接口
2.4.3  動(dòng)態(tài)分配函數(shù)
2.4.4  C++ std::basic_string
2.4.5  使字符串對(duì)象的引用失效
2.4.6  使用basic_string的其他常見(jiàn)錯(cuò)誤
2.5  字符串處理函數(shù)
2.5.1  gets
2.5.2  C99
2.5.3  C11附錄K邊界檢查接口:gets-s
2.5.4  動(dòng)態(tài)分配函數(shù)
2.5.5  strcpy和strcat
2.5.6  C99
2.5.7  strncpy和strncat
2.5.8  memcpy和memmove
2.5.9  strlen
2.6  運(yùn)行時(shí)保護(hù)策略
2.6.1  檢測(cè)和恢復(fù)
2.6.2  輸入驗(yàn)證
2.6.3  對(duì)象大小檢查
2.6.4  Visual Studio中編譯器生成的運(yùn)行時(shí)檢查
2.6.5  棧探測(cè)儀
2.6.6  棧溢出保護(hù)器
2.6.7  操作系統(tǒng)策略
2.6.8  檢測(cè)和恢復(fù)
2.6.9  不可執(zhí)行棧
2.6.10  W^X
2.6.11  PaX
2.6.12  未來(lái)發(fā)展方向
2.7  著名的漏洞
2.7.1  遠(yuǎn)程登錄
2.7.2  Kerberos
2.8  小結(jié)
2.9  閱讀材料
第3章 指針詭計(jì)
3.1  數(shù)據(jù)位置
3.2  函數(shù)指針
3.3  對(duì)象指針
3.4  修改指令指針
3.5  全局偏移表
3.6  dtors區(qū)
3.7  虛指針
3.8  atexit和on-exit函數(shù)
3.9  longjmp函數(shù)
3.10  異常處理
3.10.1  結(jié)構(gòu)化異常處理
3.10.2  系統(tǒng)默認(rèn)異常處理
3.11  緩解策略
3.11.1  棧探測(cè)儀
3.11.2  W-X
3.11.3  對(duì)函數(shù)指針編碼和解碼
3.12  小結(jié)
3.13  閱讀材料
第4章 動(dòng)態(tài)內(nèi)存管理
4.1  C內(nèi)存管理
4.1.1  C標(biāo)準(zhǔn)內(nèi)存管理函數(shù)
4.1.2  對(duì)齊
4.1.3  alloca和變長(zhǎng)數(shù)組
4.2  常見(jiàn)的C內(nèi)存管理錯(cuò)誤
4.2.1  初始化錯(cuò)誤
4.2.2  未檢查返回值
4.2.3  Null或無(wú)效指針解引用
4.2.4  引用已釋放內(nèi)存
4.2.5  多次釋放內(nèi)存
4.2.6  內(nèi)存泄漏
4.2.7  零長(zhǎng)度分配
4.2.8  DR # 400
4.3  C++的動(dòng)態(tài)內(nèi)存管理
4.3.1  分配函數(shù)
4.3.2  釋放函數(shù)
4.3.3  垃圾回收
4.4  常見(jiàn)的C++內(nèi)存管理錯(cuò)誤
4.4.1  未能正確檢查分配失敗
4.4.2  不正確配對(duì)的內(nèi)存管理函數(shù)
4.4.3  多次釋放內(nèi)存
4.4.4  釋放函數(shù)拋出一個(gè)異常
4.5  內(nèi)存管理器
4.6  Doug Lea的內(nèi)存分配器
4.7  雙重釋放漏洞
4.7.1  寫(xiě)入已釋放的內(nèi)存
4.7.2  RtlHeap
4.7.3  緩沖區(qū)溢出(終極版)
4.8  緩解策略
4.8.1  空指針
4.8.2  一致的內(nèi)存管理約定
4.8.3  phkmalloc
4.8.4  隨機(jī)化
4.8.5  OpenBSD
4.8.6  jemalloc內(nèi)存管理器
4.8.7  靜態(tài)分析
4.8.8  運(yùn)行時(shí)分析工具
4.9  值得注意的漏洞
4.9.1  CVS緩沖區(qū)溢出漏洞
4.9.2  Microsoft數(shù)據(jù)訪問(wèn)組件
4.9.3  CVS服務(wù)器雙重釋放漏洞
4.9.4  MIT Kerberos 5中的漏洞
4.10  小結(jié)
第5章 整數(shù)安全
5.1  整數(shù)安全導(dǎo)論
5.2  整數(shù)數(shù)據(jù)類(lèi)型
5.2.1  無(wú)符號(hào)整數(shù)類(lèi)型
5.2.2  回繞
5.2.3  有符號(hào)整數(shù)類(lèi)型
5.2.4  有符號(hào)整數(shù)的取值范圍
5.2.5  整數(shù)溢出
5.2.6  字符類(lèi)型
5.2.7  數(shù)據(jù)模型
5.2.8  其他整數(shù)類(lèi)型
5.3  整數(shù)轉(zhuǎn)換
5.3.1  轉(zhuǎn)換整數(shù)
5.3.2  整數(shù)轉(zhuǎn)換級(jí)別
5.3.3  整數(shù)類(lèi)型提升
5.3.4  普通算術(shù)轉(zhuǎn)換
5.3.5  由無(wú)符號(hào)整數(shù)類(lèi)型轉(zhuǎn)換
5.3.6  由有符號(hào)整數(shù)類(lèi)型轉(zhuǎn)換
5.3.7  轉(zhuǎn)換的影響
5.4  整數(shù)操作
5.4.1  賦值
5.4.2  加法
5.4.3  減法
5.4.4  乘法
5.4.5  除法和求余
5.4.6  移位
5.5  整數(shù)漏洞
5.5.1  漏洞
5.5.2  回繞
5.5.3  轉(zhuǎn)換和截?cái)噱e(cuò)誤
5.5.4  非異常的整數(shù)邏輯錯(cuò)誤
5.6  緩解策略
5.6.1  整數(shù)類(lèi)型的選擇
5.6.2  抽象數(shù)據(jù)類(lèi)型
5.6.3  任意精度算術(shù)
5.6.4  范圍檢查
5.6.5  前提條件和后驗(yàn)條件測(cè)試
5.6.6  安全整數(shù)庫(kù)
5.6.7  溢出檢測(cè)
5.6.8  編譯器生成的運(yùn)行時(shí)檢查
5.6.9  可驗(yàn)證范圍操作
5.6.10  仿佛無(wú)限范圍整數(shù)模型
5.6.11  測(cè)試與分析
5.7  小結(jié)
第6章 格式化輸出
6.1  變參函數(shù)
6.2  格式化輸出函數(shù)
6.2.1  格式字符串
6.2.2  GCC
6.2.3  Visual C++
6.3  對(duì)格式化輸出函數(shù)的漏洞利用
6.3.1  緩沖區(qū)溢出
6.3.2  輸出流
6.3.3  使程序崩潰
6.3.4  查看棧內(nèi)容
6.3.5  查看內(nèi)存內(nèi)容
6.3.6  覆寫(xiě)內(nèi)存
6.3.7  國(guó)際化
6.3.8  寬字符格式字符串漏洞
6.4  棧隨機(jī)化
6.4.1  阻礙棧隨機(jī)化
6.4.2  以雙字的格式寫(xiě)地址
6.4.3  直接參數(shù)訪問(wèn)
6.5  緩解策略
6.5.1  排除用戶輸入的格式字符串
6.5.2  靜態(tài)內(nèi)容的動(dòng)態(tài)使用
6.5.3  限制字節(jié)寫(xiě)入
6.5.4  C11附錄K邊界檢查接口
6.5.5  iostream與stdio
6.5.6  測(cè)試
6.5.7  編譯器檢查
6.5.8  靜態(tài)污點(diǎn)分析
6.5.9  調(diào)整變參函數(shù)的實(shí)現(xiàn)
6.5.10  Exec Shield
6.5.11  FormatGuard
6.5.12  靜態(tài)二進(jìn)制分析
6.6  著名的漏洞
6.6.1  華盛頓大學(xué)FTP Daemon
6.6.2  CDE ToolTalk
6.6.3  Ettercap NG-0.7.2版
6.7  小結(jié)
6.8  閱讀材料
第7章 并發(fā)
7.1  多線程
7.2  并行
7.2.1  數(shù)據(jù)并行
7.2.2  任務(wù)并行
7.3  性能目標(biāo)
7.4  常見(jiàn)錯(cuò)誤
7.4.1  競(jìng)爭(zhēng)條件
7.4.2  損壞的值
7.4.3  易變的對(duì)象
7.5  緩解策略
7.5.1  內(nèi)存模型
7.5.2  同步原語(yǔ)
7.5.3  線程角色分析(研究)
7.5.4  不可變的數(shù)據(jù)結(jié)構(gòu)
7.5.5  并發(fā)代碼屬性
7.6  緩解陷阱
7.6.1  死鎖
7.6.2  過(guò)早釋放鎖
7.6.3  爭(zhēng)用
7.6.4  ABA問(wèn)題
7.7  值得注意的漏洞
7.7.1  在多核動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器系統(tǒng)中的DoS攻擊
7.7.2  系統(tǒng)調(diào)用包裝器中的并發(fā)漏洞
7.8  小結(jié)
第8章 文件I/O
8.1  文件I/O基礎(chǔ)
8.1.1  文件系統(tǒng)
8.1.2  特殊文件
8.2  文件I/O接口
8.2.1  數(shù)據(jù)流
8.2.2  打開(kāi)和關(guān)閉文件
8.2.3  POSIX
8.2.4  C++中的文件I/O
8.3  訪問(wèn)控制
8.3.1  UNIX文件權(quán)限
8.3.2  進(jìn)程特權(quán)
8.3.3  更改特權(quán)
8.3.4  管理特權(quán)
8.3.5  管理權(quán)限
8.4  文件鑒定
8.4.1  目錄遍歷
8.4.2  等價(jià)錯(cuò)誤
8.4.3  符號(hào)鏈接
8.4.4  規(guī)范化
8.4.5  硬鏈接
8.4.6  設(shè)備文件
8.4.7  文件屬性
8.5  競(jìng)爭(zhēng)條件
8.5.1  檢查時(shí)間和使用時(shí)間
8.5.2  創(chuàng)建而不替換
8.5.3  獨(dú)占訪問(wèn)
8.5.4  共享目錄
8.6  緩解策略
8.6.1  關(guān)閉競(jìng)爭(zhēng)窗口
8.6.2  消除競(jìng)爭(zhēng)對(duì)象
8.6.3  控制對(duì)競(jìng)爭(zhēng)對(duì)象的訪問(wèn)
8.6.4  競(jìng)爭(zhēng)檢測(cè)工具
8.7  小結(jié)
第9章 推薦的實(shí)踐
9.1  安全開(kāi)發(fā)生命周期
9.1.1  TSP-Secure
9.1.2   計(jì)劃和跟蹤
9.1.3  質(zhì)量管理
9.2  安全培訓(xùn)
9.3  要求
9.3.1  安全編碼標(biāo)準(zhǔn)
9.3.2  安全質(zhì)量需求工程
9.3.3  用例/誤用例
9.4  設(shè)計(jì)
9.4.1  安全的軟件開(kāi)發(fā)原則
9.4.2  威脅建模
9.4.3  分析攻擊面
9.4.4  現(xiàn)有代碼中的漏洞
9.4.5  安全包裝器
9.4.6  輸入驗(yàn)證
9.4.7  信任邊界
9.4.8  黑名單
9.4.9  白名單
9.4.10  測(cè)試
9.5  實(shí)現(xiàn)
9.5.1  編譯器檢查
9.5.2  仿佛無(wú)限范圍整數(shù)模型
9.5.3  有安全保證的C/C++
9.5.4  靜態(tài)分析
9.5.5  源代碼分析實(shí)驗(yàn)室
9.5.6  深層防御
9.6  驗(yàn)證
9.6.1  靜態(tài)分析
9.6.2  滲透測(cè)試
9.6.3  模糊測(cè)試
9.6.4  代碼審計(jì)
9.6.5  開(kāi)發(fā)人員準(zhǔn)則與檢查清單
9.6.6  獨(dú)立安全審查
9.6.7  攻擊面回顧
9.7  小結(jié)
9.8  閱讀材料
參考文獻(xiàn)
縮略語(yǔ)

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)