软件漏洞分析技术.pdf

软件漏洞分析技术.pdf
 

书籍描述

内容简介
《软件漏洞分析技术》首先介绍了软件漏洞在当今社会所造成的影响,进而引出漏洞的基本概念,包括定义、特点、分类等,在此基础上总结了现今普遍应用的漏洞分析方法,并进一步将其划分为源代码漏洞分析、二进制漏洞分析、架构安全性分析和运行系统漏洞分析等4大类别;在后面的章节中对4大类漏洞分析技术所包含的具体技术从基本原理、实现方法、实例分析和典型使用等几个方面进行展开;并在最后对未来漏洞分析的前景进行了展望。

编辑推荐
《软件漏洞分析技术》由科学出版社出版。

目录
第1部分漏洞分析基础
第1章软件中的漏洞
1.1漏洞概述
1.1.1漏洞定义
1.1.2漏洞特点
1.2漏洞分类与分级
1.2.1漏洞分类
1.2.2漏洞分级
1.3漏洞的影响
1.3.1漏洞无处不在
1.3.2漏洞分析保障信息安全
参考文献
第2章漏洞分析发展历程
2.1软件漏洞分析
2.1.1广义漏洞分析
2.1.2狭义漏洞分析
2.2原始萌芽阶段
2.2.1通信安全
2.2.2分析萌芽
2.2.3信息加密
2.3初步发展阶段
2.3.1计算机安全
2.3.2单一化漏洞挖掘
2.3.3操作系统防护
2.4高速发展阶段
2.4.1互联网安全
2.4.2多样化漏洞分析
2.4.3信息系统防护
2.5综合治理阶段
2.5.1网际安全
2.5.2系统化漏洞管控
2.5.3防御体系建设
参考文献
第3章漏洞分析技术概述
3.1漏洞分析技术体系
3.2软件架构安全分析
3.2.1形式化架构分析技术
3.2.2工程化架构分析技术
3.2.3分析技术对比
3.3源代码漏洞分析
3.3.1基于中间表示的分析技术
3.3.2基于逻辑推理的分析技术
3.3.3分析技术对比
3.4二进制漏洞分析
3.4.1静态漏洞分析技术
3.4.2动态漏洞分析技术
3.4.3动静结合的漏洞分析技术
3.4.4分析技术对比
3.5运行系统漏洞分析
3.5.1信息收集
3.5.2漏洞检测
3.5.3漏洞确认
3.5.4分析技术对比
参考文献
第2部分源代码漏洞分析
第4章数据流分析
4.1基本原理
4.1.1基本概念
4.1.2检测程序漏洞
4.1.3辅助支持技术
4.2方法实现
4.2.1使用数据流分析检测程序漏洞
4.2.2数据流分析作为辅助技术
4.3实例分析
4.3.1使用数据流分析检测程序漏洞
4.3.2数据流分析作为辅助技术
4.4典型工具
4.4.1Fortify SCA
4.4.2Coverity Prevent
4.4.3 FindBugs
参考文献
第5章污点分析
5.1基本原理
5.1.1基本概念
5.1.2使用污点分析技术挖掘程序漏洞
5.2方法实现
5.2.1基于数据流的污点分析
5.2.2基于依赖关系的污点分析
5.3实例分析
5.4典型工具
5.4.1 Pixy
5.4.2 TAJ
参考文献
第6章符号执行
6.1基本原理
6.1.1基本概念
6.1.2检测程序漏洞
6.1.3构造测试用例
6.1.4与其他漏洞分析技术结合
6.2方法实现
6.2.1使用符号执行检测程序漏洞
6.2.2使用符号执行构造测试用例
6.3实例分析
6.3.1检测程序漏洞
6.3.2构造测试用例
6.4典型工具
6.4.1 Clang
6.4.2KLEE
参考文献
第7章模型检测
7.1基本原理
7.1.1基本概念
7.1.2技术框架
7.1.3方法特点
7.2方法实现
7.2.1程序建模
7.2.2安全缺陷属性描述
7.2.3程序漏洞检查
7.3实例分析
7.3.1线性时序逻辑检查
7.3.2分布式软件的漏洞检测
7.4典型工具
7.4.1SLAM
7.4.2 MOPS
参考文献
第8章定理证明
8.1基本原理
8.1.1基本概念
8.1.2技术框架
8.1.3方法特点
8.2方法实现
8.2.1程序转换
8.2.2属性描述
8.2.3定理证明
8.3实例分析
8.3.1整数溢出漏洞分析
8.3.2 TLS协议逻辑漏洞分析
8.3.3输入验证类漏洞分析
8.4典型工具
8.4.1 Saturn
8.4.2 ESC/Java
参考文献
……
第3部分二进制漏洞分析

文摘
版权页:



4.1.3辅助支持技术
静态程序漏洞分析需要一些辅助技术的支持,其中获得相对准确和完整的控制流信息是决定分析精确程度的关键。通常控制流分析和数据流分析是密切相关的,精确的数据流分析需要控制流分析的支持,而程序中一些变量的取值(类型)可以决定控制流。例如代码中存在除零异常,如果数据流分析得出某个确定的程序点可能存在这样的异常,那么在分析程序的控制流时,可以得出该程序点语句执行后可能跳转到异常处理的过程。和数据流分析更加密切相关的控制流问题是面向对象程序的调用图的构建问题。使用数据流分析给出变量可能的类型可以辅助构建相对完整和精确的调用图。此外,由于静态漏洞分析常常需要了解变量之间的别名关系,一些漏洞分析常常使用别名分析这种特殊的数据流分析提高分析精度。
1.构建相对完整的程序调用图
相对完整和精确的调用图对于静态分析是至关重要的。有时编译器可能不会去确定某个具体的调用点调用哪个函数,如在C语言程序中使用函数指针或者Java语言程序中使用虚方法等。程序在运行时会根据具体的上下文确定调用哪个函数。代码4.3给出了一段Java代码,为构建程序调用图,需要确定语句o.func()所调用的方法。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多