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

安全編程代碼靜態(tài)分析

安全編程代碼靜態(tài)分析

定 價(jià):¥56.00

作 者: (美國(guó))Brian Chess、(美國(guó))Jacob West 著;董啟雄、韓平 譯
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng): 華章程序員書(shū)庫(kù)
標(biāo) 簽: 程序設(shè)計(jì)

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


ISBN: 9787111233213 出版時(shí)間: 2008-03-01 包裝: 平裝
開(kāi)本: 16 頁(yè)數(shù): 362 pages 字?jǐn)?shù):  

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

  創(chuàng)建安全的代碼,僅有好的意圖是遠(yuǎn)遠(yuǎn)不夠的。程序員要知道:他們的代碼幾乎需要在各種使用環(huán)境和各種配置之下都是安全的。靜態(tài)源代碼分析為用戶提供了使用優(yōu)秀的工具來(lái)審查其工作的能力,從而找出各類可直接導(dǎo)致安全漏洞的錯(cuò)誤。現(xiàn)在,本書(shū)提供了一份關(guān)于靜態(tài)分析的完整指導(dǎo):如何進(jìn)行靜態(tài)分析,如何將其集成到軟件開(kāi)發(fā)過(guò)程以及如何在代碼安全審查期間最大化其功效等。靜態(tài)分析專家Brian Chess和Jacob West探討了當(dāng)前最為常見(jiàn)的安全缺陷類型。他們使用來(lái)自實(shí)際安全事件的Java和C代碼實(shí)例闡明了:如何發(fā)現(xiàn)編碼錯(cuò)誤,如何防止出現(xiàn)編碼錯(cuò)誤以及如何通過(guò)靜態(tài)分析來(lái)快速找出類似的錯(cuò)誤。本書(shū)讀者對(duì)象是所有關(guān)注構(gòu)建更加安全的軟件的人:軟件開(kāi)發(fā)人員、軟件安全工程師、軟件分析師以及軟件測(cè)試人員。本書(shū)內(nèi)容包括:■ 為什么常規(guī)的Bug捕獲技術(shù)經(jīng)常找不出安全問(wèn)題?!?怎樣才能通過(guò)靜態(tài)分析幫助程序員做好安全工作?!?決定一個(gè)靜態(tài)分析工具成敗的關(guān)鍵屬性和算法。■ 提高代碼靜態(tài)分析效率的36種技術(shù)?!?70多種嚴(yán)重安全漏洞及其詳細(xì)解決方案?!?來(lái)自FireFox、OpenSSH、MySpace、eTrade、Apache httpd以及其他■ 更多軟件的漏洞實(shí)例?!?處理非可信輸入的技術(shù)?!?消除緩沖區(qū)溢出的戰(zhàn)術(shù)和戰(zhàn)略方法?!?避免出現(xiàn)Web應(yīng)用程序、Web 服務(wù)以及Ajax相關(guān)的錯(cuò)誤。■ 關(guān)注安全的日志技術(shù)、調(diào)試技術(shù)以及錯(cuò)誤/異常處理技術(shù)?!?秘密和機(jī)密信息的創(chuàng)建、維護(hù)和共享?!?帶你穿越靜態(tài)分析的詳盡過(guò)程。

作者簡(jiǎn)介

  Brian Chess是Fortify Software公司的創(chuàng)始人和首席科學(xué)家,他的研究重點(diǎn)是用于創(chuàng)建安全系統(tǒng)的實(shí)用方法。他在圣克魯茲的加帥l大學(xué)(University of California)獲得計(jì)算機(jī)工程博士學(xué)位,在那里他研究在代碼中查找安全相關(guān)缺陷問(wèn)題的靜態(tài)分析。

圖書(shū)目錄

r>第一部分  軟件安全和靜態(tài)分析
第1章  軟件安全問(wèn)題
   1.1  僅有防御性編程還不夠
   1.2  安全功能≠安全的功能
   1.3  質(zhì)量的誤區(qū)
   1.4  軟件開(kāi)發(fā)全局中的靜態(tài)分析
   1.5  漏洞分類
     1.5.1 種有害的領(lǐng)域
     1.5.2  “7種有害的領(lǐng)域”與“OWASP前10名”
   1.6  小結(jié)
第2章  靜態(tài)分析簡(jiǎn)介
   2.1  靜態(tài)分析的能力和局限性
   2.2  通過(guò)靜態(tài)分析解決問(wèn)題
     2.2.1  類型檢查
     2.2.2  風(fēng)格檢查
     2.2.3  程序理解
     2.2.4  程序驗(yàn)證和屬性檢查
     2.2.5  Bug查找
     2.2.6  安全審查
   2.3  一點(diǎn)理論,一點(diǎn)實(shí)際
     2.3.1  成功準(zhǔn)則
     2.3.2  分析源代碼與分析編譯后的代碼
   2.4  小結(jié)
第3章  作為代碼審查過(guò)程組成部分的靜態(tài)分析
   3.1  執(zhí)行代碼審查
     3.1.1  代碼審查周期
     3.1.2  避開(kāi)可利用性陷阱
   3.2  將安全審查加入到現(xiàn)有的開(kāi)發(fā)過(guò)程中
     3.2.1  采用工具的疑慮
     3.2.2  小處著手,循序漸進(jìn)
   3.3  靜態(tài)分析度量標(biāo)準(zhǔn)
   3.4  小結(jié)
第4章  靜態(tài)分析技術(shù)內(nèi)幕
   4.1  建模
     4.1.1  詞法分析
     4.1.2  解析
     4.1.3  抽象語(yǔ)法
     4.1.4  語(yǔ)義分析
     4.1.5  跟蹤控制流
     4.1.6  跟蹤數(shù)據(jù)流
     4.1.7  污染傳播
     4.1.8  指針別名歧義
   4.2  分析算法
     4.2.1  斷言檢查
     4.2.2  單純本地分析
     4.2.3  本地分析方法
     4.2.4  全局分析
     4.2.5  研究性的工具
   4.3  規(guī)則
     4.3.1  規(guī)則格式
     4.3.2  用于污染傳播的規(guī)則
     4.3.3  本書(shū)中討論的規(guī)則
   4.4  報(bào)告結(jié)果
     4.4.1  結(jié)果的分組和分類
     4.4.2  消除非預(yù)期的結(jié)果
     4.4.3  解釋結(jié)果的意義
   4.5  小結(jié)
第二部分  常見(jiàn)問(wèn)題
第5章  處理輸入
   5.1  驗(yàn)證內(nèi)容
     5.1.1  驗(yàn)證所有輸入
     5.1.2  驗(yàn)證各種來(lái)源的輸入
     5.1.3  建立可信邊界
   5.2  如何進(jìn)行驗(yàn)證
     5.2.1  使用強(qiáng)輸入驗(yàn)證
     5.2.2  避免黑名單法
     5.2.3  不要混淆可用性和安全性
     5.2.4  拒絕不良數(shù)據(jù)
     5.2.5  默認(rèn)執(zhí)行正確的輸入驗(yàn)證
     5.2.6  檢驗(yàn)輸入的長(zhǎng)度
     5.2.7  限制數(shù)值輸入
   5.3  防止元字符攻擊
     5.3.1  使用參數(shù)化請(qǐng)求
     5.3.2  路徑操縱
     5.3.3  命令注入
     5.3.4  日志欺騙
   5.4  小結(jié)
第6章  緩沖區(qū)溢出
   6.1  緩沖區(qū)溢出簡(jiǎn)介
     6.1.1  利用緩沖區(qū)溢出漏洞
     6.1.2  緩沖區(qū)分配策略
     6.1.3  跟蹤緩沖區(qū)大小
   6.2  字符串
     6.2.1  天生危險(xiǎn)的函數(shù)
     6.2.2  有界字符串操作
     6.2.3  有界函數(shù)的常見(jiàn)缺陷
     6.2.4  保留Null終止符
     6.2.5  字符集、表達(dá)式和編碼
     6.2.6  格式串
     6.2.7  更完善的字符串類和類庫(kù)
   6.3  小結(jié)
第7章  緩沖區(qū)溢出伴隨的問(wèn)題
   7.1  整數(shù)
     7.1.1  回繞錯(cuò)誤
     7.1.2  截?cái)嗪头?hào)位擴(kuò)展
     7.1.3  有符號(hào)數(shù)和無(wú)符號(hào)數(shù)之間的轉(zhuǎn)換
     7.1.4  檢測(cè)和防止整數(shù)溢出的方法
   7.2  運(yùn)行時(shí)保護(hù)
     7.2.1  更安全的編程語(yǔ)言
     7.2.2  更安全的C語(yǔ)言
     7.2.3  動(dòng)態(tài)緩沖區(qū)溢出保護(hù)
     7.2.4  動(dòng)態(tài)保護(hù)基準(zhǔn)結(jié)果
   7.3  小結(jié)
第8章  錯(cuò)誤和異常
   8.1  利用返回代碼處理錯(cuò)誤
     8.1.1  檢查C語(yǔ)言中的返回值
     8.1.2  檢查Java中的返回值
   8.2  管理異常
     8.2.1  捕獲頂層的任何東西
     8.2.2  消失的異常
     8.2.3  只捕獲需要處理的異常
     8.2.4  控制已檢測(cè)的異常
   8.3  防止資源泄露
     8.3.1  C和C++
     8.3.2  Java
   8.4  日志記錄和調(diào)試
     8.4.1  集中日志記錄
     8.4.2  在最終代碼中不包含調(diào)試幫助和“后門(mén)”訪問(wèn)代碼
     8.4.3  清除備份文件
     8.4.4  不要容忍“復(fù)活節(jié)彩蛋”
   8.5  小結(jié)
第三部分  特性與特色
第9章  Web應(yīng)用程序
   9.1  用于Web的輸入和輸出驗(yàn)證
     9.1.1  預(yù)料到瀏覽器已遭到破壞
     9.1.2  認(rèn)為瀏覽器是一種一覽無(wú)余的事物
     9.1.3  保護(hù)瀏覽器免受惡意內(nèi)容的攻擊
   9.2  HTTP考慮
     9.2.1  使用POST,而不是GET
     9.2.2  請(qǐng)求順序
     9.2.3  錯(cuò)誤處理
     9.2.4  請(qǐng)求出處
   9.3  維護(hù)會(huì)話狀態(tài)
     9.3.1  使用強(qiáng)用戶會(huì)話標(biāo)識(shí)符
     9.3.2  強(qiáng)制會(huì)話空閑超時(shí)和最大會(huì)話持續(xù)時(shí)間
     9.3.3  在認(rèn)證的基礎(chǔ)上開(kāi)始一個(gè)新的會(huì)話
   9.4  為輸入驗(yàn)證使用Struts架構(gòu)
     9.4.1  建立Struts  Validator
     9.4.2  對(duì)所有操作使用Struts  Validator
     9.4.3  驗(yàn)證每一個(gè)參數(shù)
     9.4.4  維護(hù)驗(yàn)證邏輯
   9.5  小結(jié)
第10章  XML與Web服務(wù)
   10.1  使用XML
     10.1.1  使用一個(gè)標(biāo)準(zhǔn)兼容的XML語(yǔ)法分析程序
     10.1.2  開(kāi)啟驗(yàn)證
     10.1.3  要小心外部引用
     10.1.4  保持對(duì)文檔查詢的控制
   10.2  使用Web服務(wù)
     10.2.1  輸入驗(yàn)證
     10.2.2  WSDL苦惱
     10.2.3  過(guò)度暴露
     10.2.4  過(guò)去錯(cuò)誤的新機(jī)會(huì)
     10.2.5  JavaScript劫持:一種新的邊界
   10.3  小結(jié)
第11章  隱私與秘密
   11.1  隱私與規(guī)則
     11.1.1  識(shí)別私有信息
     11.1.2  處理私有信息
   11.2  外發(fā)密碼
     11.2.1  源代碼中不能有密碼
     11.2.2  不存儲(chǔ)明文密碼
   11.3  隨機(jī)數(shù)
     11.3.1  在Java中生成隨機(jī)數(shù)
     11.3.2  在C和C++中生成隨機(jī)數(shù)
   11.4  密碼技術(shù)
     11.4.1  選擇一個(gè)好的算法
     11.4.2  不要自以為是
   11.5  內(nèi)存中的秘密
     11.5.1  使保持秘密的時(shí)間最短
     11.5.2  保守地共享秘密
     11.5.3  安全地刪除秘密
     11.5.4  防止不必要地復(fù)制秘密
   11.6  小結(jié)
第12章  具有特權(quán)的程序
   12.1  特權(quán)的含義
     12.1.1  最小特權(quán)原理
     12.1.2  這次我是認(rèn)真的:不相信每一件事
   12.2  管理特權(quán)
     12.2.1  在實(shí)踐中應(yīng)用最小特權(quán)
     12.2.2  限制文件系統(tǒng)上的特權(quán)
     12.2.3  謹(jǐn)防非期待的事件
   12.3  特權(quán)提升攻擊
     12.3.1  文件訪問(wèn)競(jìng)態(tài)條件
     12.3.2  不安全的臨時(shí)文件
     12.3.3  命令注入
     12.3.4  標(biāo)準(zhǔn)文件描述符
   12.4  小結(jié)
第四部分  靜態(tài)分析實(shí)踐
第13章  Java語(yǔ)言源代碼分析練習(xí)
  練習(xí)13.0  安裝
  練習(xí)13.1  留意結(jié)果,現(xiàn)在開(kāi)始
  練習(xí)13.2  人工審計(jì)源代碼
  練習(xí)13.3  運(yùn)行Fortify  SCA
  練習(xí)13.4  理解原始的分析結(jié)果
  練習(xí)13.5  分析一個(gè)完整的應(yīng)用程序
  練習(xí)13.6  使用Audit  Workbench調(diào)整結(jié)果
  練習(xí)13.7  審計(jì)一個(gè)問(wèn)題
  練習(xí)13.8  執(zhí)行一個(gè)完整的審計(jì)
  練習(xí)13.9  編寫(xiě)自定義規(guī)則
  練習(xí)13.2  中問(wèn)題的答案
第14章  C語(yǔ)言源代碼分析練習(xí)
  練習(xí)14.0  安裝
  練習(xí)14.1  留意結(jié)果,現(xiàn)在開(kāi)始
  練習(xí)14.2  人工審計(jì)源代碼
  練習(xí)14.3  運(yùn)行Fortify  SCA
  練習(xí)14.4  理解原始的分析結(jié)果
  練習(xí)14.5  分析一個(gè)完整的應(yīng)用程序
  練習(xí)14.6  使用Audit  Workbench調(diào)整結(jié)果
  練習(xí)14.7  審計(jì)一個(gè)問(wèn)題
  練習(xí)14.8  執(zhí)行一個(gè)完整的審計(jì)
  練習(xí)14.9  編寫(xiě)自定義規(guī)則
  練習(xí)14.2中的問(wèn)題答案
結(jié)束語(yǔ)
參考文獻(xiàn)

本目錄推薦

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