64°

SDL软件安全读书笔记(一)

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

本文转载自博客园,原文链接:https://www.cnblogs.com/mlsec/p/13199178.html

全部评论: 0

    我有话说: