主页 详情

《安全软件开发之道 构筑软件安全的本质方法》_(美)JohnViegaGaryMcgraw著;殷丽华,张冬艳,郭云川,颜子夜译_13498331_978711

【书名】:《安全软件开发之道 构筑软件安全的本质方法》
【作者】:(美)JohnViegaGaryMcgraw著;殷丽华,张冬艳,郭云川,颜子夜译
【出版社】:北京:机械工业出版社
【时间】:2014
【页数】:316
【ISBN】:9787111459156
【SS码】:13498331

最新查询

内容简介

第1章 软件安全概论

1.1都是软件惹的祸

1.2对安全问题的处理

1.2.1 Bugtraq

1.2.2 CERT公告

1.2.3 RISKS文摘

1.3影响软件安全的技术趋势

1.4非功能性需求

1.4.1什么是安全

1.4.2难道只是可靠性

1.5.“渗透-修补”是个坏方法

1.6艺术和工程

1.7安全目标

1.7.1预防

1.7.2跟踪与审计

1.7.3监控

1.7.4隐私和保密

1.7.5多级安全

1.7.6匿名

1.7.7认证

1.7.8完整性

1.8常见软件安全缺陷

1.9软件项目目标

1.10结论

第2章 软件安全风险管理

2.1软件安全风险管理概述

2.2安全人员的任务

2.3软件生命周期中的软件安全人员

2.3.1获取需求

2.3.2风险评估

2.3.3安全设计

2.3.4实现

2.3.5安全测试

2.4现实的权衡

2.5让人们去思考安全性

2.6软件风险管理实践

2.6.1当开发走向歧途

2.6.2当安全分析走向歧途

2.7通用准则

2.8结论

第3章 技术的选择

3.1语言的选择

3.2分布式对象平台的选择

3.2.1 COBRA

3.2.2 DCOM

3.2.3 EJB和RMI

3.3操作系统的选择

3.4认证技术

3.4.1基于主机的认证

3.4.2物理令牌

3.4.3生物认证

3.4.4密码认证

3.4.5深度防御与认证

3.5结论

第4章 开放源代码和封闭源代码

4.1通过隐藏实现安全

4.1.1逆向工程

4.1.2代码混淆

4.1.3紧包软件的安全

4.1.4通过隐藏实现安全并非万能

4.2开源软件

4.3.“多眼球现象”是真的吗

4.3.1漏洞检测是困难的

4.3.2其他的忧虑

4.4关于发布加密算法

4.5另外两个关于开源的谬论

4.5.1微软谬论

4.5.2 Java谬论

4.6例子:GNU Mailman的安全

4.7证据:特洛伊木马

4.8开放源码还是不开放源码

4.9另一个来自于缓冲区溢出的安全教训

4.10忠告

4.11结论

第5章 软件安全的指导原则

5.1确保最薄弱环节的安全

5.2深度防御

5.3失效安全

5.4最小特权

5.5分割

5.6尽可能简单

5.7提升隐私权

5.8记住隐藏信息很困难

5.9不要轻信

5.10使用社会资源

5.11结论

第6章 软件审计

6.1架构的安全性分析

6.1.1攻击树

6.1.2报告分析结果

6.2实现安全性分析

6.2.1审计源代码

6.2.2源码级的安全审计工具

6.2.3在分析中使用RATS

6.2.4安全扫描软件的有效性

6.3结论

第7章 缓冲区溢出

7.1什么是缓冲区溢出

7.2为什么缓冲溢出是安全问题

7.3缓冲区溢出的防御

7.4主要的陷阱

7.5内部缓冲区溢出

7.6更多的输入溢出

7.7其他风险

7.8帮助工具

7.9堆破坏和栈破坏

7.10堆溢出

7.11栈溢出

7.11.1破译堆栈

7.11.2陷入无限循环……并更糟

7.12代码攻击

7.12.1 UNIX漏洞利用

7.12.2关于Windows

7.13结论

第8章 访问控制

8.1 UNIX访问控制模型

8.1.1 UNIX权限工作原理

8.1.2修改文件属性

8.1.3修改文件的所有权

8.1.4 umask命令

8.1.5编程接口

8.1.6 Setuid编程

8.2 Windows NT的访问控制

8.3分割

8.4细粒度权限

8.5结论

第9章 竞争条件

9.1什么是竞争条件

9.2检查时间与使用时间

9.2.1攻破passwd

9.2.2避免TOCTOU问题

9.3安全的文件访问

9.4临时文件

9.5文件锁定

9.6其他竞争条件

9.7结论

第10章 随机性和确定性

10.1伪随机数发生器

10.1.1伪随机数发生器实例

10.1.2 Blum-Blum-Shub PRNG

10.1.3 Tiny PRNG

10.1.4对PRNG的攻击

10.1.5在网络赌博游戏中作弊

10.1.6 PRNG的统计测试

10.2熵的收集和估计

10.2.1硬件解决方案

10.2.2软件解决方案

10.2.3糟糕的熵收集示例

10.3处理熵

10.4实用的随机数据来源

10.4.1 Tiny

10.4.2 Windows的随机数据

10.4.3 Linux的随机数

10.4.4 Java中的随机数

10.5结论

第11章 密码学的应用

11.1一般性建议

11.1.1开发者并不是密码专家

11.1.2数据完整性

11.1.3密码出口的有关法律

11.2常用密码库

11.2.1 Cryptlib

11.2.2 OpenSSL

11.2.3 Crypto+++

11.2.4 BSAFE

11.2.5 Cryptix

11.3利用密码学编程

11.3.1加密

11.3.2散列算法

11.3.3公共密钥加密

11.3.4多线程

11.3.5 cookie加密

11.4加密散列更多的应用

11.5 SSL和TLS

11.6 Stunnel

11.7一次一密

11.8结论

第12章 信任管理和输入验证

12.1关于信任

12.2不恰当信任的例子

12.2.1信任是传递的

12.2.2预防恶意的调用者

12.2.3安全地调用其他程序

12.2.4源自Web的问题

12.2.5客户端安全

12.2.6 Perl问题

12.2.7格式字符串攻击

12.3自动检测输入问题

12.4结论

第13章 口令认证

13.1口令存储

13.2向口令数据库中添加用户

13.3口令认证的方式

13.4口令选择

13.4.1更多的建议

13.4.2掷骰子

13.4.3口令短语

13.4.4应用程序选择的口令

13.5一次性口令

13.6结论

第14章 数据库安全

14.1基础知识

14.2访问控制

14.3在访问控制中使用视图

14.4字段保护

14.5针对统计攻击的安全防卫

14.6结论

第15章 客户端安全

15.1版权保护方案

15.1.1许可证文件

15.1.2防范偶然性盗版

15.1.3其他的许可证特性

15.1.4其他的版权保护方案

15.1.5对不可信客户端的身份认证

15.2防篡改

15.2.1反调试措施

15.2.2校验和

15.2.3应对滥用

15.2.4诱饵

15.3代码混淆

15.3.1基本的代码混淆技术

15.3.2加密部分程序

15.4结论

第16章 穿越防火墙

16.1基本策略

16.2客户端代理

16.3服务器代理

16.4 SOCKS

16.5对等网络

16.6结论

附录A密码学基础

参考文献


书查询(www.shuchaxun.com)本网页唯一编码:
24f43f58f30f09faeaca6274f5d2a667#1a981f53de60d0f8158d1e4720d672f9#56017898#安全软件开发之道 构筑软件安全的本质方法_13498331.zip