《安全漏洞追踪》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)盖弗等著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2008
  • ISBN:9787121073717
  • 页数:508 页
图书介绍:应用软件的安全并不仅仅局限于使用安全技术的功能特征,以及像加密和账户管理这样的功能特征。我们必须认真考虑一个产品的每个功能特征的安全。鉴于此,在微软工作的每个项目管理人员、开发人员、测试人员和相关技术人员都有责任保证软件尽可能安全。本书认为安全是每个人的责任,并且重点向测试人员提供用来发现软件功能安全bug的信息,这些安全bug都可能是难以发现的。

第1章 安全测试的一般方法 1

安全测试人员的不同类型 2

一种安全测试的方法 3

深入理解测试的内容 4

从攻击者的角度思考如何攻击目标 6

攻击产品 8

时刻关注新的攻击 8

小结 9

第2章 利用威胁模型进行安全测试 10

威胁建模 10

测试人员如何对威胁模型分级 11

数据流程图 12

入口点和退出点的安全 13

识别威胁的技巧及常见威胁 14

测试人员如何利用一个完整的威胁模型 16

技术实现难以符合产品规范或威胁模型 19

小结 20

第3章 查找入口点 21

查找入口点并划分等级 22

常见入口点 23

文件 23

套接字(Socket) 27

HTTP请求 29

命名管道 32

可插入协议处理程序 35

恶意服务器响应 37

程序化接口 38

SQL 39

注册表 39

用户接口 41

E-mail 42

命令行参数 44

环境变量 45

小结 47

第4章 成为恶意的客户端 48

客户端/服务器交互 48

发现服务器正常接收的请求 49

操纵网络请求 51

测试HTTP 55

理解无状态协议 56

接收输入的测试方法 56

快速测试特定的网络请求 66

测试技巧 68

小结 69

第5章 成为恶意的服务器 70

理解客户端接收恶意服务器响应的常见方法 71

SSL能否阻止恶意服务器的攻击 73

操纵服务器响应 73

恶意响应漏洞的例子 74

错误认识:对攻击者来说创建恶意服务器非常困难 76

理解降级(Downgrade)MITM攻击 77

测试技巧 78

小结 79

第6章 欺骗 80

掌握欺骗问题的重要性 80

寻找欺骗问题 82

常见欺骗案例 82

IP地址欺骗 83

MAC地址欺骗 84

利用网络协议欺骗 85

用户接口(User Interface,UI)欺骗 88

重构对话框 88

Z-Order欺骗 93

让人误解的URL和文件名 94

测试技巧 97

小结 97

第7章 信息泄露 98

信息泄露问题 98

定位信息泄露的常见区域 99

文件泄露 99

网络泄露 107

识别重要的数据 111

数据混淆 112

隐含泄露 113

小结 113

第8章 缓冲区溢出及堆栈/堆操纵 114

了解溢出的工作原理 117

堆栈溢出 118

整型溢出 121

堆溢出 128

其他攻击 129

溢出测试:在哪里寻找(测试)用例 130

网络 130

文档与文件 131

较高权限和较低权限用户之间的共享信息 131

可编程接口 132

黑盒(功能)测试 133

确定期待的是什么数据 133

使用你能识别的数据 134

了解界限与边界 134

保持全部数据的完整性 137

改造正常数据使其溢出的策略 141

测试首要行为和次要行为 143

要查找什么 144

运行时工具 156

模糊测试 158

白盒测试 159

要查找的对象 160

溢出的可用性 164

Unicode数据 169

已过滤的数据 170

其他主题 170

无代码执行的溢出也很严重 170

/GS编译器开关 173

测试技巧 175

小结 176

第9章 格式化字符串攻击 177

什么是格式化字符串 178

理解为什么格式化字符串存在问题 178

剖析prinf调用 179

堆栈解析错误 180

内存覆盖 182

格式化字符串安全漏洞测试 183

代码检查 183

黑盒测试 184

走查(Walkthrough):经历一个格式化字符串攻击过程 185

寻找格式化字符串漏洞 185

分析可利用性 186

深度挖掘:围绕可利用性问题进行工作 189

构建一个简单的负载 201

测试技巧 208

小结 209

第10章 HTML脚本攻击 210

理解针对服务器的反射跨站脚本攻击 211

例子:一个搜索引擎中的反射XSS 212

理解为什么XSS攻击是安全相关的 214

利用服务端的反射XSS漏洞 216

POST也是可利用的 218

理解针对服务器的持久性XSS攻击 219

例子:在一个留言簿中的持久性XSS攻击 220

利用针对服务器的持久性XSS攻击 221

识别用于反射和持久性XSS攻击的数据 221

程序员阻止攻击的常用方法 224

理解针对本地文件的反射XSS攻击 227

例子:本地文件中的反射XSS 228

利用本地文件中的反射XSS漏洞 229

理解为何本地XSS漏洞是一个问题 229

利用本地XSS漏洞在受害者的机器上运行二进制文件 232

HTML资源 233

编译后的帮助文件 234

在客户端脚本中查找XSS漏洞 236

理解本地计算机区域中的脚本注入攻击 237

例子:在Winamp播放列表中的脚本注入 237

把非HTML文件当作HTML来解析 240

程序员用于防止HTML脚本攻击的方法 243

过滤器 243

深入理解浏览器中的解析器 245

Style中的注释 245

ASP.NET内置的过滤器 247

理解Internet Explorer如何减轻针对本地文件的XSS攻击 248

从互联网到本地计算机区域的链接被阻止 248

在默认情况下,脚本在本地计算机区域中是禁止运行的 248

识别HTML脚本的脆弱性 250

通过检查代码查找HTML脚本漏洞 250

识别所有返回内容给Web浏览器或者文件系统的位置 251

确定输出中是否包含攻击者提供的数据 251

检查攻击者的数据是否进行了适当的验证或者编码 252

ASP.NET自动对数据进行编码 253

小结 254

第11章 XML问题 255

测试XML输入文件中的非XML安全问题 255

结构良好的XML 256

有效的XML 257

XML输入中包括非字母数字的数据 257

测试特定的XML攻击 260

实体(Entity) 260

XML注入(XML Injection) 263

大文件引用(Large File Reference) 266

简单对象访问协议(Simple Object Access Protocol) 266

测试技巧 271

小结 271

第12章 规范化问题 272

理解规范化问题的重要性 272

查找规范化问题 273

基于文件的规范化问题 273

目录遍历 274

使文件扩展名检查失效 274

导致规范化问题的其他常见错误 277

基于Web的规范化问题 282

编码问题 282

URL问题 287

测试技巧 290

小结 291

第13章 查找弱权限 292

理解权限的重要性 293

查找权限问题 294

理解Windows的访问控制机制 295

安全对象 295

安全描述符 296

ACL 296

ACE 297

查找和分析对象的权限 298

使用Windows安全属性对话框 298

使用AccessEnum 300

使用Process Explorer 300

使用Obj SD 301

使用App Verifier 302

识别常见的权限问题 302

弱自主访问控制列表(DACL) 303

NULL DACL 307

不恰当的ACE顺序 308

对象创建者 308

间接访问资源 309

忘记恢复原权限 309

蹲点(Squatting)攻击 310

利用竞争条件 311

文件链接 312

确定对象的可访问性 315

可远程访问的对象 315

本地可访问对象 317

其他的权限考虑 318

.NET权限 318

SQL权限 318

基于角色的安全 320

小结 321

第14章 拒绝服务攻击 322

掌握DoS攻击的类型 322

查找技术实现缺陷 323

查找资源消耗缺陷 329

寻找解决严重问题的方法 335

测试技巧 336

小结 336

第15章 托管代码问题 337

澄清有关使用托管代码的常见错误认识 338

错误认识1:在托管代码中不存在缓冲区溢出 338

错误认识2:ASP.NET Web控件可防止跨站脚本 339

错误认识3:垃圾回收可以防止内存泄露 339

错误认识4:托管代码可防止SQL注入 340

理解代码访问安全的基础 340

用户安全和代码安全的比较(User Security vs.Code Security) 341

CAS概况 341

程序(Assembly) 342

物证 343

权限 343

策略 344

全局程序集缓冲区(Global Assembly Cache) 348

堆栈审核(Stack Walk) 348

堆栈审查修改器(Stack Walk Modifier) 350

使用代码检查方法查找问题 352

调用不安全的代码 353

查找断言导致的问题 355

查找链接查询中的问题 357

了解拙劣的异常处理 360

理解使用APTCA带来的问题 362

.NET程序反编译 368

测试技巧 368

小结 369

第16章 SQL注入 370

SQL注入的确切含义 370

了解SQL注入的重要性 372

查找SQL注入问题 373

利用黑盒测试方法 374

利用代码检查 385

避免SQL注入的常见错误 387

转义输入中的单引号 388

删除分号以阻止多重语句 388

只使用存储过程 389

删除不必要的存储过程 390

将运行SQL Server的计算机安置在防火墙之后 390

理解SQL存储过程的再利用 391

示例:备份文档 392

搜寻存储过程中的再利用问题 393

识别类似的注入攻击 393

测试技巧 394

小结 395

第17章 观察及逆向工程 396

在没有调试器或反汇编工具时的观测结果 396

输出比较 397

使用监视工具 398

使用调试器跟踪程序的执行并改变其行为 399

修改执行流程以旁路限制 400

在调试器下读取并修改内存的内容 404

使用反编译器或反汇编工具对一个程序实施逆向工程 408

理解二进制本地代码与字节码的区别 409

在没有源代码时定位不安全的函数调用 411

对算法实施逆向工程以识别安全缺陷 415

分析安全更新 417

测试技巧 418

法律方面的考虑因素 419

小结 419

第18章 ActiveX再利用攻击 420

理解ActiveX控件 421

在Internet Explorer浏览器中创建ActiveX控件 421

ActiveX控件的初始化和脚本解析 423

ActiveX控件再利用 424

理解ActiveX控件安全模型 428

利用ActiveX控件测试方法学 434

其他的测试窍门及技术 441

走查(Walkthrough):ActiveX控件测试 450

Clear 451

ClipboardCopy 452

ClipboardPaste 453

InvokeRTFEditor 455

LoadRTF 464

NumChars 465

RTFEditor属性 466

RTFEditor PARAM 467

RTFEditorOverride 468

挑战 470

测试技巧 470

小结 471

第19章 其他再利用攻击 472

理解请求外部数据的文档格式 472

文档格式请求外部数据的常见的降低风险的方法 473

测试请求外部数据的文档格式 474

请求外部数据的Web页面 475

通过URL查询字符串进行的CSRF攻击 475

通过POST数据进行的CSRF攻击 476

防止CSRF攻击的常用方法 477

通过SOAP数据进行的CSRF攻击 478

对CSRF攻击进行测试 479

理解窗口和线程消息的再利用 479

小结 480

第20章 报告安全漏洞 481

报告问题 481

联系开发商 482

期望联系开发商后得到什么 484

公开发布 485

确定细节数量 485

公开时间选择 486

定位产品中的安全漏洞 486

与漏洞发现者联系 487

识别漏洞产生的根本原因 487

寻找相关的漏洞 487

确定受影响的产品及其版本 488

测试补丁 488

确定减轻措施和相关工作 488

为所有受影响的产品及其版本同时发布补丁 489

小结 489

附录A 相关工具 490

附录B 安全测试用例列表 497