0 day安全:软件漏洞分析技术(含光盘1张)
分類: 图书,计算机/网络,软件工程/开发项目管理,
作者: 王清编著
出 版 社: 电子工业出版社
出版时间: 2008-4-1字数: 410000版次: 1页数: 358印刷时间: 2008/04/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787121060779包装: 平装编辑推荐
国内知名软件安全网站——看雪学院鼎力打造!
堆栈原理讲解:
精辟的论述带您重游计算机体系架构关键部位,深入解读恶意代码践踏内存的技俩,为漏洞分析打下良好的理论基础。
漏洞调试实验:
一系列精心设计的Demo程序向您准确展示堆栈的技术细节,带您在实践中跨过漏洞分析的技术门槛,真正步入信息安全技术的殿堂。
高级Exploit思路:
细数Black Hat上若干著名议题中提出的漏洞利用方法,开阔视野,远瞻安全技术前沿动态。
微软安全机制揭秘:
深入挖掘GS安全编译选项、堆栈保护、Safe S.E.H等安全机制。知己知彼,知彼知己,在回顾安全技术对抗的过程中提高自己。
经典Oday案例分析:
精选历史上若干著名系统漏洞进行剖析。在真实案例分析的过程中学习漏洞分析技术,了解计算机应急响应的严峻性。
软件安全性测试:
高级逆向工具、Fuzz测试、攻击测试(Penetration testing)介绍,从软件开发与测试的角度增强产品的安全性。
内容简介
本书分为4篇17章,系统全面地介绍了Windows平台缓冲区溢出漏洞的分析、检测与防护。第一篇为常用工具和基础知识的介绍;第二篇从攻击者的视角出发,揭秘了攻击者利用漏洞的常用伎俩,了解这些知识对进行计算机应急响应和提高软件产品安全性至关重要;第三篇在第二篇的基础上,从安全专家的角度介绍了漏洞分析和计算机应急响应方面的知识;第四篇则站在软件工程师的角度讲述如何在开发、测试等软件生命周期的各个环节中加入安全因素,以增强软件产品的安全性。
作者简介
王清,网络ID:failwest,于西安交通大学先后获得计算机科学与技术学士学位、系统工程专业硕士学位。曾工作于教育部下一代互联网与网络安全重点实验室,研究兴趣涉及蠕虫建模、高级IDS算法、网站安全、代码审计、漏洞分析、病毒分析、逆向工程等领域。现就职于Symantec产品安全部,从事软件攻击测试,系统安全性审计,安全咨询等工作。
目录
第1篇基础知识
第1章漏洞概述
1.1bug与漏洞
1.2几个令人困惑的安全问题
1.3漏洞挖掘、漏洞分析、漏洞利用
1.4漏洞的公布与0 day响应
第2章二进制文件概述
2.1PE文件格式
2.2虚拟内存
2.3PE文件与虚拟内存之间的映射
第3章必备工具
3.1OllyDbg简介
3.2SoftICE简介
3.3WinDbg 简介
3.4IDA Pro简介
3.5二进制编辑器
3.6虚拟机简介
3.7Crack二进制文件
第2篇漏洞利用
第4章栈溢出利用
4.1系统栈的工作原理
4.1.1内存的不同用途
4.1.2栈与系统栈
4.1.3函数调用时发生了什么
4.1.4寄存器与函数栈帧
4.1.5函数调用约定与相关指令
4.2修改邻接变量
4.2.1修改邻接变量的原理
4.2.2突破密码验证程序
4.3修改函数返回地址
4.3.1返回地址与程序流程
4.3.2控制程序的执行流程
4.4代码植入
4.4.1代码植入的原理
4.4.2向进程中植入代码
第5章开发shellcode的艺术
5.1shellcode概述
5.1.1shellcode与exploit
5.1.2shellcode需要解决的问题
5.2定位shellcode
5.2.1栈帧移位与jmp esp
5.2.2获取“跳板”的地址
5.2.3使用“跳板”定位的exploit
5.3缓冲区的组织
5.3.1缓冲区的组成
5.3.2抬高栈顶保护shellcode
5.3.3使用其他跳转指令
5.3.4不使用跳转指令
5.3.5函数返回地址移位
5.4开发通用的shellcode
5.4.1定位API的原理
5.4.2shellcode的加载与调试
5.4.3动态定位API地址的shellcode
5.5shellcode编码技术
5.5.1为什么要对shellcode编码
5.5.2会“变形”的shellcode
5.6为shellcode“减肥”
5.6.1shellcode瘦身大法
5.6.2选择恰当的hash算法
5.6.3191个字节的bindshell
第6章堆溢出利用
6.1堆的工作原理
6.1.1Windows堆的历史
6.1.2堆与栈的区别
6.1.3堆的数据结构与管理策略
6.2在堆中漫游
6.2.1堆分配函数之间的调用关系
6.2.2堆的调试方法
6.2.3识别堆表
6.2.4堆块的分配
6.2.5堆块的释放
6.2.6堆块的合并
6.3堆溢出利用(上)——DWORD SHOOT
6.3.1链表“拆卸”中的问题
6.3.2在调试中体会“DWORD SHOOT”
6.4堆溢出利用(下)——代码植入
6.4.1DWORD SHOOT的利用方法
6.4.2狙击P.E.B中RtlEnterCritical-Section()的函数指针
6.4.3堆溢出利用的注意事项
第7章Windows异常处理机制深入浅出
7.1S.E.H概述
7.2在栈溢出中利用S.E.H
7.3在堆溢出中利用S.E.H
7.4挖掘Windows异常处理
7.4.1不同级别的S.E.H
7.4.2线程的异常处理
7.4.3进程的异常处理
7.4.4系统默认的异常处理U.E.F
7.4.5异常处理流程的总结
7.5V.E.H简介
第8章高级内存攻击技术
8.1狙击异常处理机制
8.1.1攻击V.E.H链表的头节点
8.1.2攻击TEB中的S.E.H头节点
8.1.3攻击U.E.F
8.1.4攻击PEB中的函数指针
8.2“off by one”的利用
8.3攻击C++的虚函数
8.4Heap Spray:堆与栈的协同攻击
第9章揭秘Windows安全机制
9.1Service Pack 2简介
9.2百密一疏的S.E.H验证
9.3栈中的较量
9.3.1.net中的GS安全编译选项
9.3.2GS机制面临的挑战
9.4重重保护下的堆
9.5硬件方面的安全措施
第10章用MetaSploit开发Exploit
10.1漏洞测试平台MSF 简介
10.2入侵Windows系统
10.2.1漏洞简介
10.2.2图形界面的漏洞测试
10.2.3console界面的漏洞测试
10.3利用MSF制作shellcode
10.4用MSF扫描“跳板”
10.5Ruby语言简介
10.6“傻瓜式”Exploit开发
10.7用MSF发布POC
第11章其他漏洞利用技术
11.1格式化串漏洞
11.1.1printf中的缺陷
11.1.2用printf读取内存数据
11.1.3用printf向内存写数据
11.1.4格式化串漏洞的检测与防范
11.2SQL注入攻击
11.2.1SQL注入原理
11.2.2攻击PHP+MySQL网站
11.2.3攻击ASP+SQL Server网站
11.2.4注入攻击的检测与防范
11.3XSS攻击
11.3.1脚本能够“跨站”的原因
11.3.2XSS Reflection攻击场景
11.3.3Stored XSS攻击场景
11.3.4攻击案例回顾:XSS蠕虫
11.3.5XSS的检测与防范
第3篇漏洞分析
第12章漏洞分析技术概述
12.1漏洞分析的方法
12.2用“白眉”在PE中漫步
12.2.1指令追踪技术与Paimei
12.2.2Paimei的安装
12.2.3使用PE Stalker
12.2.4迅速定位特定功能对应的代码
12.3补丁比较
第13章MS06-040分析:系统入侵与蠕虫
13.1MS06-040简介
13.2漏洞分析
13.2.1动态调试
13.2.2静态分析
13.3远程Exploit
13.3.1RPC编程简介
13.3.2实现远程exploit
13.3.3改进exploit
13.3.4MS06-040与蠕虫
第14章MS06-055分析:揭秘“网马”
14.1MS06-055简介
14.1.1矢量标记语言(VML)简介
14.1.2O day安全响应纪实
14.2漏洞分析
14.3漏洞利用
14.3.1实践Heap Spray技术
14.3.2网页木马攻击
第15章MS07-060分析:Word文档中的阴谋
15.1MS07-060简介
15.2POC分析
第4篇漏洞挖掘与软件安全性测试
第16章漏洞挖掘技术浅谈
16.1漏洞挖掘概述
16.2Fuzz文件格式
16.2.1File Fuzz简介
16.2.2用Paimei实践File Fuzz
16.3Fuzz网络协议
16.3.1协议测试简介
16.3.2SPIKE的Fuzz原理
16.3.3SPIKE的Hello World
16.3.4定义Block
16.3.5生成Fuzz用例
16.4Fuzz ActiveX
16.5静态代码审计
第17章安全的软件生命周期
17.1Threat Modeling
17.2编写安全的代码
17.3产品安全性测试
17.4漏洞管理与应急响应
参考文献