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

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

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

定 價:¥56.00

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

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

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

本目錄推薦

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