万本电子书0元读

万本电子书0元读

顶部广告

软件安全开发——属性驱动模式电子书

在日益严峻的信息安全背景下,软件的安全性已经成为信息安全问题的重中之重。本书针对信息安全领域这一核心问题,站在软件发过程控制的视角,从系统工程基本理论思想出发,借鉴当前国际*的软件安全发的理论和方法,提出安全属性驱动的软件发方法。

售       价:¥

纸质售价:¥43.50购买纸书

79人正在读 | 2人评论 6.2

作       者:宋明秋

出  版  社:电子工业出版社

出版时间:2016-06-01

字       数:24.9万

所属分类: 科技 > 计算机/网络 > 计算机理论与教程

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(2条)
  • 读书简介
  • 目录
  • 累计评论(2条)
在日益严峻的信息安全背景下,软件的安全性已经成为信息安全问题的重中之重。本书针对信息安全领域这一核心问题,站在软件发过程控制的视角,从系统工程基本理论思想出发,借鉴当前国际先的软件安全发的理论和方法,提出安全属性驱动的软件发方法。全书以软件安全属性为核心,将安全属性贯穿于软件发生命周期的每一个阶段,通过对软件发生命周期全过程的安全质量管理和控制,以期减少发过程中可能产生的各种漏洞,提高软件产品的本质安全性。全书共分为6章,第1章是软件安全发相关的基本概念,第2章介绍了软件安全发方法的历史演化程以及一些典型的软件安全发模型,第3章基于需求工程原理阐述了软件安全属性需求获取方法,第4章从系统架构角度出发阐述了软件安全架构的设计方法以及相关安全技术,第5章介绍了软件发编码过程中的安全问题,第6章对于软件安全性测试行了全面的阐述。本书的特是既注重系统性和科学性,又注重实用性,系统性地介绍软件发生命周期全过程的安全质量保证方法,可作为软件发组织者、系统分析师、软件架构师、软件设计人员、发人员、测试人员、系统运维人员以及软件相关专业的在校大学生和研究生学习与实践的较好的参考书。<br/>【推荐语】<br/>在日益严峻的信息安全背景下,软件的安全性已经成为信息安全问题的重中之重。本书针对信息安全领域这一核心问题,站在软件发过程控制的视角,从系统工程基本理论思想出发,借鉴当前国际*的软件安全发的理论和方法,提出安全属性驱动的软件发方法。<br/>【作者】<br/>宋明秋,工学博士,CISSP、CISA,大连理工大学管理与经济学部副教授,英国牛津大学Internet研究所访问学者,主要研究方向:软件安全发,信息安全风险管理。<br/>
目录展开

作者简介

其他

本书的章节设置

序言

第1章 理解软件安全开发

1.1 信息安全面临的困境

1.2 软件安全基本概念

1.2.1 软件的定义

1.2.2 软件安全错误

1.2.3 软件安全的定义

1.3 软件安全属性刻画

1.3.1 保密性

1.3.2 完整性

1.3.3 可用性

1.3.4 认证性

1.3.5 授权

1.3.6 可记账性/审计性

1.3.7 抗抵赖性

1.3.8 可控性

1.3.9 可信性

1.4 信息产品的安全性评估标准

1.5 系统安全工程

1.6 系统安全工程能力成熟度模型

1.7 属性驱动的软件安全开发的基本思想

1.7.1 软件安全开发方法

1.7.2 软件定义安全

1.7.3 属性驱动的软件安全开发方法

1.8 本章小结

第2章将安全嵌入软件开发整个生命周期

2.1 系统安全开发方法的进化史

2.2 软件安全开发模型

2.2.1 启发式软件安全开发模型

2.2.2 软件安全生命周期开发模型

2.3 微软的SDL模型

2.3.1 传统的系统开发瀑布模型

2.3.2 软件安全开发生命周期模型SDL

2.3.3 敏捷的SDL

2.3.4 ISO/IEC 27034

2.4 McGraw的软件安全开发模型

2.4.1 McGraw的七个接触点模型BSI

2.4.2 软件安全开发成熟度模型BSIMM

2.5 OWASP的软件安全开发模型

2.5.1 CLASP

2.5.2 SAMM

2.6 NIST的软件安全开发生命周期模型

2.7 属性驱动的软件安全开发生命周期模型

2.8 本章小结

第3章 软件安全需求分析

3.1 概述

3.1.1 基本内涵

3.1.2 安全需求的来源

3.1.3 软件安全需求的内容

3.2 核心软件安全需求

3.2.1 保密性需求

3.2.2 完整性需求

3.2.3 可用性需求

3.2.4 认证需求

3.2.5 授权需求

3.2.6 可记账性/审计需求

3.3 通用软件安全需求

3.3.1 安全架构需求

3.3.2 会话管理需求

3.3.3 错误和例外管理需求

3.3.4 配置参数管理需求

3.4 运维安全需求

3.4.1 环境部署需求

3.4.2 归档需求

3.4.3 反盗版需求

3.5 其他安全需求

3.5.1 顺序和时间需求

3.5.2 国际性需求

3.5.3 采购需求

3.6 软件安全需求获取方法

3.6.1 软件安全需求获取的概念

3.6.2 头脑风暴

3.6.3 问卷调查和访谈

3.6.4 策略分解

3.6.5 数据分类

3.6.6 主/客体关系矩阵

3.6.7 使用用例和滥用案例建模

3.7 软件安全需求跟踪矩阵

3.8 本章小结

第4章 软件安全保障设计

4.1 概述

4.1.1 软件安全设计的概念

4.1.2 软件安全设计的基本原则

4.1.3 平衡安全设计原则

4.2 属性驱动的软件安全设计

4.3 软件安全架构设计

4.3.1 康威定律

4.3.2 软件安全架构的设计方法

4.3.3 攻击面评估

4.3.4 威胁建模

4.3.5 风险分析

4.3.6 软件架构的选择

4.3.7 软件架构的安全考虑

4.3.8 与现有架构的集成

4.4 基于核心安全需求的软件安全设计

4.4.1 保密性设计

4.4.2 完整性设计

4.4.3 可用性设计

4.4.4 认证设计

4.4.5 授权设计

4.4.6 可记账性/审计设计

4.5 其他安全需求设计

4.5.1 接口安全设计

4.5.2 互联互通性

4.6 软件安全技术

4.6.1 认证

4.6.2 身份管理

4.6.3 凭证管理

4.6.4 流控制

4.6.5 防火墙和网络代理

4.6.6 中间件

4.6.7 排队基础设施和技术

4.6.8 日志与审计

4.6.9 入侵检测系统

4.6.10 入侵防御系统

4.6.11 数据丢失保护

4.6.12 虚拟化

4.6.13 数字版权管理

4.6.14 可信计算

4.6.15 数据库安全

4.6.16 编程语言环境

4.6.17 公共语言运行库

4.6.18 Java虚拟机

4.6.19 编译器选项

4.6.20 操作系统安全

4.6.21 嵌入式系统安全

4.7 安全架构与设计检查

4.8 本章小结

第5章 编写安全的代码

5.1 概述

5.1.1 漏洞的基本概念

5.1.2 漏洞分类

5.1.3 漏洞产生的原因

5.1.4 通用软件漏洞数据库

5.1.5 软件安全编码实践与控制

5.2 常见软件漏洞类型分析与防御方法

5.2.1 缓冲区溢出

5.2.2 注入缺陷

5.2.3 认证和会话管理

5.2.4 跨站脚本攻击XSS

5.2.5 不安全的直接对象引用

5.2.6 安全配置错误

5.2.7 敏感数据泄露

5.2.8 加密机制本身的安全问题

5.2.9 缺少功能级检查

5.2.10 跨站请求伪造CSRF

5.2.11 使用已知漏洞组件

5.2.12 未经验证的重定向和转发

5.2.13 文件攻击

5.2.14 竞争条件

5.2.15 边信道攻击

5.3 软件安全编码实践

5.3.1 输入验证

5.3.2 标准化

5.3.3 数据净化

5.3.4 错误处理

5.3.5 安全的API

5.3.6 内存管理

5.3.7 例外管理

5.3.8 会话管理

5.3.9 配置参数管理

5.3.10 安全启动

5.3.11 加密机制的安全保护

5.3.12 并发控制

5.3.13 标签化

5.3.14 沙箱

5.3.15 防篡改技术

5.4 软件安全编码保证过程

5.4.1 选择安全的编程语言

5.4.2版本(配置)管理

5.4.3 代码分析

5.4.4 代码评审

5.4.5 构建安全的软件编译环境

5.5 本章小结

第6章 软件安全测试

6.1 概述

6.1.1 软件安全测试的定义和目的

6.1.2 软件安全测试的基本内涵

6.1.3 软件安全测试框架

6.1.4 软件安全测试方法

6.1.5 从攻击者角度思考

6.2 软件安全功能测试

6.2.1 保密性测试

6.2.2 完整性测试

6.2.3 可用性测试

6.2.4 认证性测试

6.2.5 授权测试

6.2.6 可记账性/审计测试

6.3 软件安全漏洞测试

6.3.1 攻击面验证

6.3.2 环境测试

6.3.3 模拟测试

6.4 其他测试

6.4.1 性能测试

6.4.2 可扩展性测试

6.4.3 隐私测试

6.5 软件安全功能测试方法

6.5.1 单元测试

6.5.2 集成测试

6.5.3 回归测试

6.5.4 系统测试

6.5.5 逻辑测试

6.5.6 用户接收测试

6.6 软件安全漏洞测试方法

6.6.1 源代码测试

6.6.2 白盒测试

6.6.3 黑盒测试

6.6.4 Fuzzing测试

6.6.5 扫描

6.6.6 渗透测试

6.6.7 静态测试

6.6.8 动态测试

6.7 几种重要的软件安全漏洞控制测试

6.7.1 输入验证测试

6.7.2 缓冲区溢出控制测试

6.7.3 SQL注入缺陷控制测试

6.7.4 XSS脚本攻击控制测试

6.7.5 抗抵赖控制测试

6.7.6 假冒控制测试

6.7.7 失效控制测试

6.7.8 优先权提升控制测试

6.7.9 抗逆向工程保护测试

6.7.10 Web应用漏洞测试

6.8 测试过程模型

6.8.1 软件安全测试基本过程

6.8.2 V模型

6.8.3 W模型

6.8.4 X模型

6.8.5 H模型

6.8.6 前置测试模型

6.8.7 基于软件开发生命周期的测试

6.9 测试数据的管理

6.9.1 漏洞报告和跟踪

6.9.2 漏洞影响评估与修复

6.10 常见的软件安全测试工具

6.11 本章小结

附录A 软件安全开发生命周期模型

附录B 常见的HTTP状态代码和原因解释

附录C 用于输入验证的正则表达式语法

附录D 常用软件安全测试工具

参考文献

致谢

累计评论(2条) 2个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部