# 如何应对当前的全球网络安全威胁?
开发安全漏洞尽可能少的软件,应该着眼于源头安全。
边界安全盒深度防御是重要的安全手段,但软件自身的安全是安全防护的第一关。
即使软件源头存在较少的漏洞,这些漏洞也足以被利用,成为侵犯民族和国家经济利益的武器,或者成为有组织犯罪的网络武器储备。
我们不仅要把软件做的更好、更安全,必须保证该解决方案具有较好的成本收益、操作相关性和可行性以及投资可行性。
 
# 软件的现状
软件已成为我们的关键基础设施和日常生活方方面面的重要组成部分。
软件已经融入我们日常生活使用的各种各样的物品中,从家庭智能电表到汽车都含有软件。
 
# 软件安全的现状
软件安全并没有像软件本身那样以相同的速度发展。许多软件产品依然在这样一种环境下开发:他们在发布后解决问题而不是保证第一次做的就是正确的。这里存在两个主要的问题。
第一个问题是软件漏洞普遍存在。正在寻找和利用软件漏洞的那些人有着充足的漏洞可挖掘,因为,我们必须确保漏洞管理足够好,而且,怎样做才能让工作生活越来越依赖的后续软件中不会存在这种类型的漏洞。减少这些漏洞以及在软件开发过程中组织他们的出现非常有益,使用SDL构建软件安全比软件发布后的系统恢复和漏洞修复的成本更低。
另一个问题是0day漏洞,通过从一开始就不允许漏洞发生的方式,找到可能消除0day漏洞的方法,将节省企业的资金投入,使得软件及其用户更安全,关键基础设施更具弹性。
 
# 软件安全的成本
软件项目受限于成本和严格的时间表,这种情况下,因为某处走捷径而牺牲安全是不可避免的。
成本、时间和资源通常是软件开发支持安全的三要素,牺牲任意一个,安全和质量都会深受其害。
软件开发环境是围绕程序员建立的,他们收到各个方面的压力:更快的工作、走捷径,以安全和质量为代价编写更多的代码。
 
# 缓解安全风险
100%安全的软件和系统是不存在的,但是开发者和管理者应始终力求最大限度地缓解风险,使攻击者以未经授权的方式进行访问变得更难:
不得已利用可追溯的和明显的入侵手段访问,以致他们被立即发现;
花费很多时间试图访问系统,以致最终被注意到;
放弃并转向更容易的攻击目标;
 
# 潜在的软件漏洞如果被利用,可能会导致以下问题
全部或部分基础设施被中断,包括电网、核电站、通讯戒指和应急系统
化工厂被用于产生大规模的爆炸和剧毒云
远程控制、修改或破坏关键的武器系统或平台
导致监控系统被篡改或不可用
经济剥削或讹诈犯罪
操控金融市场和投资
通过改变医疗支持系统或设备、手术计划和药物处方来实施谋杀或伤害人体健康
通过网站毁损或底层Web应用的关闭和破坏修改自动投票软件、进行敲诈了锁或导致品牌信用降级,从而产生政治暴动或者一些人群的特殊利益收到影响。
 
# 软件安全问题解决方向
讲述当今科技、运作、商业及其开发环境的软件安全过程,通过人类可控制、管理的安全软件开发过程,并用一种较好的实践方式和度量方式来表达。虽然安全问题会始终存在,但是如何将公司的能力最大化,同时在软件发布前将软件被攻击的概率最小化,以及如何将安全构建融入开发过程中。通过构建最好用的SDL模型,以应对前面提到的问题,并在SDL安全软件开发模型中得到解决。
 
 
# 软件安全的需求、价值和挑战(五大主题)
我们将描述一个软件安全模型,应用一个操作上相关且可控的安全开发生命周期(Security Development Lifecycle, SDL)来构建安全软件。SDL适用于所有的软件开发生命周期(Software Development Lifecycle,SDLC)。
  1. 软件安全的重要性和相关性
  2. 软件安全和软件开发生命周期
  3. 高质量和安全代码
  4. 三个重要的SDL安全目标
  5. 威胁建模和攻击面验证
 
 
# 克服软件安全中的挑战
管理和克服软件安全挑战相关的模型、方法论、工具、人才及度量标准。把SDL及其相关的最佳实践应用到一个通用的软件开发生命周期中。
SDL程序的实现,能够保证良好的企业软件设计和开发固有的安全,而不是在产品发布后。使用SDL方法能够产生切实的好处,例如保证所有的软件版本符合最低安全标准,所有的利益相关者支持和强制执行安全准则。在开发周期的早期漏洞更容易被修复且成本更低,给信息安全团队提供一个系统化的方法在开发过程中协同消除软件风险。
SDL模型
可信计算安全开发生命周期(微软SDL)
软件安全触点模型(Cigital Software Security Touchpoints model)
OWASP SDL
Cisco Secure Development Lifecycle CSDL
SDL优化模型,渐进的、一致的和具有成本效益的SDL实现,将安全和隐私即成到SDLC中,评估其当前的状态,并逐步推进组织使用,以生产更安全的软件。使得开发经理和IT决策者评估开发中的安全状态,为降低客户风险创建一个视图和路线图,以一种具有成本效益、一致和渐进方式编写更加安全与可靠的软件。通过推进SDL优化模型的成熟度等级,组织管理层对SDL目标和结果的承诺将有初步接受提高为强有力的授权。
 
 
# 软件安全成熟度模型
Cigital BSIMM 内置安全成熟度模型
OWASP SAMM 开放软件保证成熟度模型
 
# SDL最佳实践
ISO/IEC 27034
SAFECode
美国国土安全软件保障计划
美国国家标准与技术研究院
公共计算机漏洞和暴露
SANS研究所高级网络安全风险
美国国防部网络安全与信息系统信息分析中心
CERT Bugtraq SecurityFocus
 
# 关键工具和人才
工具(开源组件、静态分析、动态分析)
人才(软件安全架构师、软件安全从业者)角色和职责
 
# 最小特权原则
# 隐私
# 度量标准的重要性(如果你不能衡量它,就不能改进它)
# 把SDL映射到SDLC
 
 
 

SDL软件安全读书笔记(一)的更多相关文章

  1. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  2. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  3. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  4. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  5. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  6. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

  7. LOMA280保险原理读书笔记

    LOMA是国际金融保险管理学院(Life Office Management Association)的英文简称.国际金融保险管理学院是一个保险和金融服务机构的国际组织,它的创建目的是为了促进信息交流 ...

  8. 《3D Math Primer for Graphics and Game Development》读书笔记2

    <3D Math Primer for Graphics and Game Development>读书笔记2 上一篇得到了"矩阵等价于变换后的基向量"这一结论. 本篇 ...

  9. 《3D Math Primer for Graphics and Game Development》读书笔记1

    <3D Math Primer for Graphics and Game Development>读书笔记1 本文是<3D Math Primer for Graphics and ...

随机推荐

  1. 50个SQL语句(MySQL版) 建表 插入数据

    本学期正在学习数据库,前段时间老师让我们做一下50个经典SQL语句,当时做的比较快,有一些也是百度的,自我感觉理解的不是很透彻. 所以从本篇随笔开始,我将进行50个经典SQL语句的复盘,加深理解. 答 ...

  2. 关于ueditor编译器

    取消自动保存提示.edui-editor-messageholder.edui-default{ visibility:hidden;} Qiyuwen 1033935470@qq.com

  3. Java实现 LeetCode 768 最多能完成排序的块 II(左右便利)

    768. 最多能完成排序的块 II 这个问题和"最多能完成排序的块"相似,但给定数组中的元素可以重复,输入数组最大长度为2000,其中的元素最大为10**8. arr是一个可能包含 ...

  4. Java实现 LeetCode 695 岛屿的最大面积(DFS)

    695. 岛屿的最大面积 给定一个包含了一些 0 和 1 的非空二维数组 grid . 一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相 ...

  5. Java实现 LeetCode 363 矩形区域不超过 K 的最大数值和

    363. 矩形区域不超过 K 的最大数值和 给定一个非空二维矩阵 matrix 和一个整数 k,找到这个矩阵内部不大于 k 的最大矩形和. 示例: 输入: matrix = [[1,0,1],[0,- ...

  6. Java实现 LeetCode 347 前 K 个高频元素

    347. 前 K 个高频元素 给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输 ...

  7. 自动把网页px单位转换成rem

    自动把网页px单位转换成rem 首先在你的项目开发环境中安装2个插件 然后在vue.config.js文件引入并重新启动服务器 这样就配置成功了,一起看看效果

  8. 总结梳理:webpack中如何使用vue

    1. 安装vue的包 cnpm i vue -S  2. 由于在webpack中,推荐使用 .vue这个组件模板文件定义的组件,所以,需要安装,   能解析这个文件的loader: cnpm i vu ...

  9. iOS-Reactive Cocoa的常见用法

    今天是周末,临近年底,工作上遇到不可抗力,会有点一些变动!这多少会让人有一点静不下来,但需克制,Reactive Cocoa是今天的主角! 废话不多说,今天聊聊Reactive Cocoa的常见使用! ...

  10. SmokePing 快速搭建

    SmokePing介绍 smokeping是来监控IDC机房网络质量情况,可以从监控图上的延时与丢包情况分辨出机房的网络是否稳定,是否为多线,是否为BGP机房以及到各城市的三个运行商网络各是什么情况. ...