安全编程代码静态分析(附光盘)
分類: 图书,计算机/网络,软件工程/开发项目管理,
作者: (美)奇思(Chess,B.),(美)韦斯特(West,J.)著,董启雄等译
出 版 社: 机械工业出版社
出版时间: 2008-3-1字数:版次: 1页数: 362印刷时间: 2008/03/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787111233213包装: 平装编辑推荐
首本关于软件安全静态分析的专家指南!
创建安全的代码,仅有好的意图是远远不够的。程序员要知道:他们的代码几乎需要在各种使用环境和各种配置之下都是安全的。静态源代码分析为用户提供了使用优秀的工具来审查其工作的能力,从而找出各类可直接导致安全漏洞的错误。现在,本书提供了一份关于静态分析的完整指导:如何进行静态分析。如何将其集成到软件开发过程以及如何在代码安全审查期间最大化其功效等。
静态分析专家Brian Chess币DJacob West探讨了当前最为常见的安全缺陷类型。他们使用来自实际安全事件的Java和C代码实例阐明了:如何发现编码错误,如何防止出现编码错误以及如何通过静态分析来快速找出类似的错误。本书读者对象是所有关注构建更加安全的软件的人:软件开发人员、软件安全工程师、软件分析师以及软件测试人员。
本书内容包括:
为什么常规的Bu9捕获技术经常找不出安全问题。
怎样才能通过静态分析帮助程序员做好安全工作。
决定一个静态分析工具成败的关键属性和算法。
提高代码静态分析效率的36种技术。
70多种严重安全漏洞及其详细解决方案。
来自FireFox、OpenSSH、MySpace、eTrade、Apache httpd以及其他更多软件的漏洞实例。
处理非可信输入的技术。
消除缓冲区溢出的战术和战略方法。
避免出现Web应用程序、Web服务以及Ajax相关的错误。
关注安全的日志技术、调试技术以及错误/异常处理技术。
秘密和机密信息的创建、维护和共享。
带你穿越静态分析的详尽过程。
“为了能够对Java进行静态分析,我们对其进行了相关设计。本书向您展示了如何应用高级静态分析技术
来创建更为安全、更为可靠的软件。”
——Bill Joy(Sun Microsystems公司的共同创始人,Java语言的共同发明人)
本书是适合关心安全的开发人员和安全从业人员阅读的一本优秀入门书。本书写得非常好,容易阅读,讲
述的内容正是您所需要的。”
——David Wagner(加利福尼亚大学伯克利分校副教授)
“软件开发人员是代码安全的第一道也是最佳的一道防线。本书为他们提供安全开发知识和相关的工具,
以便在软件成为最终产品使用之前消除安全漏洞。”
——Howard A.Schmidt(前白宫计算机安全顾问)
内容简介
本书介绍应用静态分析技术创建安全软件的方法,共分为4个部分。第一部分“软件安全和静态分析”,讲述软件安全静态分析概述性的内容,即软件安全问题:静态分析帮助改善软件安全性的方法;以及将静态分析集成到软件开发过程等。第二部分“常见问题”,探讨当前最为常见的安全问题和安全缺陷类型,并用来自安全实践的Java和C代码实例阐明了:如何发现编码错误:如何防止出现编码错误:以及通过静态分析如何能快速找出类似的错误等。第三部分“特性与特色”,处理影响常见的各种程序以及特殊软件功能的相关安全问题。第四部分“静态分析实践”,给出一组展现静态分析如何能够改进软件安全的动手实践。
本书适合于软件开发人员、软件安全工程师、软件分析师,软件测试人员以及其他关注构建更加安全的软件的人员。
作者简介
Brian Chess是Fortify Software公司的创始人和首席科学家,他的研究重点是用于创建安全系统的实用方法。他在圣克鲁兹的加帅l大学(University of California)获得计算机工程博士学位,在那里他研究在代码中查找安全相关缺陷问题的静态分析。
目录
译者序
序
前言
作者简介
第一部分软件安全和静态分析
第1章软件安全问题
1.1仅有防御性编程还不够
1.2安全功能≠安全的功能
1.3质量的误区
1.4软件开发全局中的静态分析
1.5漏洞分类
1.5.17种有害的领域
1.5.2 “7种有害的领域”与“OWASP前10名”
1.6小结
第2章静态分析简介
2.1静态分析的能力和局限性
2.2通过静态分析解决问题
2.2.1类型检查
2.2.2风格检查
2.2.3程序理解
2.2.4程序验证和属性检查
2.2.5Bu9查找
2.2.6安全审查
2.3一点理论,一点实际
2.3.1成功准则
2.3.2分析源代码与分析编译后的代码
2.4小结
第3章作为代码审查过程组成部分的静态分析
3.1执行代码审查
3.1.1代码审查周期
3.1.2避开可利用性陷阱
3.2将安全审查加入到现有的开发过程中
3.2.1采用工具的疑虑
3.2.2小处着手,循序渐进
3.3静态分析度量标准
3.4小结
第4章静态分析技术内幕
4.1建模
4.1.1词法分析
4.1.2解析
4.1.3抽象语法
4.1.4语义分析
4.1.5跟踪控制流
4.1.6跟踪数据流
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规则
4.3.1规则格式
4.3.2用于污染传播的规则
4.3.3本书中讨论的规则
4.4报告结果
4.4.1结果的分组和分类
4.4.2消除非预期的结果
4.4.3解释结果的意义
4.5小结
第二部分 常见问题
第5章 处理输入
第6章 缓冲区溢出
第7章 缓冲区溢出伴随的问题
第8章 错误和异常
第三部分 特性与特色
第9章 Web应用程序
第10章 XML与Web服务
第11章 隐私与秘密
第12章 具有特权的程序
第四部分 静态分析实践
第13章 Java语言源代码分析练习
第14章 C语言源代码分析练习
结束语
参考文献