# 如何应对当前的全球网络安全威胁?
开发安全漏洞尽可能少的软件,应该着眼于源头安全。
边界安全盒深度防御是重要的安全手段,但软件自身的安全是安全防护的第一关。
即使软件源头存在较少的漏洞,这些漏洞也足以被利用,成为侵犯民族和国家经济利益的武器,或者成为有组织犯罪的网络武器储备。
我们不仅要把软件做的更好、更安全,必须保证该解决方案具有较好的成本收益、操作相关性和可行性以及投资可行性。
 
# 软件的现状
软件已成为我们的关键基础设施和日常生活方方面面的重要组成部分。
软件已经融入我们日常生活使用的各种各样的物品中,从家庭智能电表到汽车都含有软件。
 
# 软件安全的现状
软件安全并没有像软件本身那样以相同的速度发展。许多软件产品依然在这样一种环境下开发:他们在发布后解决问题而不是保证第一次做的就是正确的。这里存在两个主要的问题。
第一个问题是软件漏洞普遍存在。正在寻找和利用软件漏洞的那些人有着充足的漏洞可挖掘,因为,我们必须确保漏洞管理足够好,而且,怎样做才能让工作生活越来越依赖的后续软件中不会存在这种类型的漏洞。减少这些漏洞以及在软件开发过程中组织他们的出现非常有益,使用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. Rocket - tilelink - Broadcast

    https://mp.weixin.qq.com/s/-pjCLzzincJz0Z66orx8kg   介绍Broadcast的实现.   ​​   1. 基本介绍   TLBroadcast实现的是 ...

  2. Java实现 LeetCode 725 分隔链表(暴力)

    725. 分隔链表 给定一个头结点为 root 的链表, 编写一个函数以将链表分隔为 k 个连续的部分. 每部分的长度应该尽可能的相等: 任意两部分的长度差距不能超过 1,也就是说可能有些部分为 nu ...

  3. java实现扑克牌移动

    /* 下面代码模拟了一套扑克牌(初始排序 A~K,共 13 张)的操作过程. 操作过程是: 手里拿着这套扑克牌,从前面拿一张放在后面,再从前面拿一张放桌子上,再从前面拿一张放在后面,.... 如此循环 ...

  4. python—迭代器,生成器与for循环机制

    一:什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代器中的下一项,要么就引起一个stoplteration异常,以终止协议(只能往后走不能往前) 2.可迭代对 ...

  5. tensorflow2.0学习笔记第一章第三节

    1.3鸢尾花数据读入 # 从sklearn包datasets读入数据 from sklearn import datasets from pandas import DataFrame import ...

  6. 一篇关于Android M以后权限介绍的不错的文章

    文章地址:http://www.jianshu.com/p/e1ab1a179fbb/

  7. QingStor 对象存储架构设计及最佳实践

    对象存储概念及特性 在介绍 QingStor️对象存储内部的的架构和设计原理之前,我们首先来了解一下对象存储的概念,也就是从外部视角看,对象存储有什么特性,我们应该如何使用. 对象存储本质上是一款存储 ...

  8. 解决:Error:java: 无效的源发行版: 12

    一. spring cloud项目启动.遇到问题: 二. 解决,共两个地方. 第一个位置: Shift/Ctrl/Alt/S 快捷键一起按 Modules选择你的项目(以及父级项目,如果有的话)-&g ...

  9. Python类中装饰器classmethod,staticmethod,property,

    @classmethod 有的时候在类中会有一种情况,就是这个方法并不需要使用每一个对象属性 因此 这个方法中的self参数一个完全无用的参数,使用classmethod class A: __cou ...

  10. Source Insight 中的 Auto Indenting

    编码过程中,希望输入花括号时能自动对齐,Source Insigth 应如何设置? 先来看一下Source Insight 中的帮助. “ Auto Indenting The auto-indent ...