说明:收录全文最新的团体标准 提供单次或批量下载
文库搜索
切换导航
文件分类
频道
文件分类
批量下载
SDL-软件安全设计初窥 — safer applications begin with secure design —
[email protected]
摘要:本文详细介绍微软软件安全开发生命周期(SDL)相关概念,并讨论要遵循 SDL 过 程所应执行的各种安全活动,其中着重对软件安全设计的原则进行探讨。并对 STRIDE 威胁 建模方法进行深入介绍。 安全开发生命周期(SDL)是一个帮助开发人员构建更安全的软件和解决安全合规要求 的同时降低开发成本的软件开发过程。 安全应用从安全设计开始,软件的安全问题很大一 部分是由于不安全的设计而引入的,微软用多年的经验总结出了安全开发生命周期(SDL), 并提出了攻击面最小化、STRIDE 威胁建模等多种方法辅助安全人员对软件进行安全设计。 安全设计对于软件安全的重要性尤为可见。 第 1页 共 12页 一. 前言 1.1 SDL 介绍 安全开发生命周期(SDL)即 Security Development Lifecycle,是一个帮助开发人员 构建更安全的软件和解决安全合规要求的同时降低开发成本的软件开发过程。 自 2004 年 起,微软将 SDL 作为全公司的计划和强制政策,SDL 的核心理念就是将安全考虑集成在软件 开发的每一个阶段:需求分析、设计、编码、测试和维护。从需求、设计到发布产品的每一 个阶段每都增加了相应的安全活动,以减少软件中漏洞的数量并将安全缺陷降低到最小程 度。安全开发生命周期 (SDL)1 是侧重于软件开发的安全保证过程,旨在开发出安全的软件 应用。 1.2 SDL 安全活动 简单来说,SDL 是微软提出的从安全角度指导软件开发过程的管理模式,在传统软件开 发生命周期 (SDLC) 的各个阶段增加了一些必要的安全活动,软件开发的不同阶段所执行的 安全活动也不同,每个活动就算单独执行也都能对软件安全起到一定作用。当然缺少特定的 安全活动也会对软件的安全性带来影响。 图 1:微软 SDL 安全活动简图 我曾今有幸参加过微软安全专家 Michael Howard 及 Taha Mir 关于 SDL 及威胁建模的培 训,作为《软件安全开发生命周期》一书的作者,Michael Howard 不只一次强调,安全培 训是 SDL 最核心的概念,软件是由设计人员设计,代码是有开发人员编写。同样,大部分软 件本身的安全漏洞也是由设计及编码人员引入,所以对软件开发过程中的技术人员进行安全 培训这点至关重要。 1 https://www.microsoft.com/en-us/SDL/process/design.aspx 第 2页 共 12页 可以看到在整个 SDL 周期中,除了安全培训这项活动,还在软件发布后增加了安全应急 响应的相关活动,而目前国内大多数公司目前已经基本上具备了安全应急响应的活动和职能 部门,同时包括安全编码规范、代码审计、渗透测试等安全活动也都已经基本具备甚至个别 企业已经比较成熟。但在软件设计阶段的安全活动则相对较少,据我了解仅个别大型跨国企 业才拥有安全设计等相关的安全活动。而根据微软多年的实践和经验,软件的安全问题很大 一部分是由于不安全的设计而引入的。在设计阶段造成的安全缺陷在后期修复的成本和时间 都相对较高。STRIDE 威胁建模的创始人之一 Taha Mir 曾说过“safer applications begin with secure design”,即安全应用从安全设计开始,相应的微软 SDL 也提出了若干核心的 安全设计原则,并提出了如攻击面最小化、STRIDE 威胁建模等多种方法辅助安全人员对软 件进行安全设计,本文就针对当前国内企业在软件设计阶段安全活动发展相对欠缺的安全设 计进行探讨。 二. 安全设计核心原则 SDL 安全设计核心原则: Attack Surface Reduction:攻击面最小化 Basic Privacy: 基本隐私 Least Privilege: 权限最小化 Secure Defaults: 默认安全 Defense in Depth:纵深防御 Threat Modeling:威胁建模 2.1 攻击面最小化 攻击面是指程序任何能被用户或者其它程序所访问到的部分,这些暴露给用 户的地方往往也是最可能被恶意攻击者攻击的地方。 攻击面最小化即是指尽量减少暴露恶意用户可能发现并试图利用的攻击面 数量。软件产品的受攻击面是一个混合体,不仅包括代码、接口、服务,也包括 对所有用户提供服务的协议。尤其是那些未被验证或者远程的用户都可以访问到 第 3页 共 12页 的协议,安全人员在攻击面最小化时首先要对攻击面进行分析,攻击面分析就是 枚举所有访问入库、接口、协议一剂可执行代码的过程,从高层次来说,攻击面 分析着重于: 降低默认执行的代码量 限制可访问到代码的人员范围 限定可访问到代码的人员身份 降低代码执行所需权限 常见的攻击面分析技巧如下表: Higher Attack Surface Lower Attack Surface On by default Off by default Open socket Close socket UDP TCP Anonymous access Authenticated user access Constantly on On as needed Internet accessible Local subnet accessible 表 1 攻击面分析常用技巧 攻击面最小化在微软的应用实践示例: Windows RPC 需要认证、防火墙默认打开 iis6.0、7.0 使用 Network service 权限运行,默认关闭. Sql server 2005 xp_cmdshell 存储过程默认关闭,默认不开放远程链接 /2008 VS2005/2008 Web server 和 sql server 默认仅本地访问 表 2 攻击面最小化微软实践示例 2.2 基本隐私 用户使用软件时无可避免个人信息被收集、使用甚至分发,企业则有责任和 义务建立保护个人信息的保护措施,抵御敌对攻击行为,确保用户基本隐私的安 全性。隐私安全是建立可信任应用程序的关键因素。 第 4页 共 12页 在软件设计时考虑用户基本隐私的必要性及意义有: 履行法律规定和义务 增加客户的信赖 防止堵塞部署 对于特殊的软件或者全球性的产品,设计人员需要明确软件的行为及针对人 群。尤其要考虑当地国家的法律法规,如美国儿童网路隐私保护法 COPPA(Children's Online Privacy Protection Act)等,企业在开发产品、服务时 有必要制定明确的隐私准则,对获取、记录用户隐私的相关产品需有明确的要求 和指导建议。 Tips: 只收集程序必须用到的隐私数据,并明确告知用户并征得用户同意; 微软对于用户隐私数据如密码、口令等均需要加密存储,最低要求是 sha256+salt,对于更高要求的则使用 PBKDF2 算法加密存储; 2.3 权限最小化 如果一个应用程序或网站被攻击、破坏,权限最小化机制能够有效的将潜在 损害最小化。常见的权限最小化实践如: 普通管理员/系统管理员等角色管理 文件只读权限/文件访问权限等访问控制 进程/服务以所需最小用户权限运行 在进行软件设计时,安全设计人员可以评估应用程序的行为及功能所需的最 低限度权限及访问级别,从而合理分配相应的权限。如果程序特定情况必须要较 高级别的权限,也可以考虑特权赋予及释放的机制。即便程序遭到攻击,也可以 将损失降到最低。 Tips: Windows 系统中网络进程、本地服务、用户进程的权限都较低且互相独 立,分别为 NETWORK SERVICE、LOCAL SERVICE、user 权限,只 有核心的重要进程实用 SYSTEM 权限; 第 5页 共 12页 最新版本的 Office 程序打开不可信来源的文档时,默认时不可编辑的, 同时也是默认不可执行代码的,即使存在缓冲区溢出漏洞,也不会执行 shellcode 等恶意代码; 2.4 默认安全 默认安全配置在客户熟悉安全配置选项之前不仅有利于更好的帮助客户掌 握安全配置经验,同时也可以确保应用程序初始状态下处于较安全状态。而客户 可根据实际使用情况而决定应用程序安全与隐私的等级水平是否降低。 Tips: 在 Win 7 之后的 Windows 操作系统中,DEP(数据执行保护)默认是开启 的。用户可设置选项改变 DEP 的状态; Win 10 默认启用安全防护软件 Windows Defender,用户可选择关闭; 2.5 纵深防御 与默认安全一样,纵深防御也是设计安全方案时的重要指导思想。纵深防御 包含两层含义:首先,要在各个不同层面、不同方面实施安全方案,避免出现疏 漏,不同安全方案之间需要相互配合,构成一个整体;其次,要在正确的地方做 正确的事情,即:在解决根本问题的地方实施针对性的安全方案。 纵深防御并不是同一个安全方案要做两遍或多遍,而是要从不同的层面、不 同的角度对系统做出整体的解决方案。 Tips: 针对 XSS 的防护,除了要对用户输入的特殊符号进行过滤,还要区分是 否是富文本进而进行相应编码操作,在输入时过滤的同时在输出时也进 行过滤操作。 即使做了十足的过滤、编码等安全防护,为了更一步确保缓解 XSS 攻击, Internet Explorer 6 SP1 为 Cookie 引入了一个新属性,这个属性规定, 不许通过脚本访问 cookie。Web 站点程序对 Cookie 启用 HTTP-Only 第 6页 共 12页 属性后,可确保即使发生 XSS 攻击,也可以阻止通过脚本访问 Cookie 的操作。 2.6 威胁建模 威胁建模是一种分析应用程序威胁的过程和方法。这里的威胁是指恶意用户 可能会试图利用以破坏系统,和我们常说的漏洞并不相同。漏洞是一个特定的可 以被利用的威胁,如缓冲区溢出、sql 注入等。 作为 SDL 设计阶段的一部分安全活动,威胁建模允许安全设计人员尽在的 识别潜在的安全问题并实施相应缓解措施。在设计阶段把潜在的威胁发现有助于 威胁的全面和更有效的解决,同时也有助于降低开发和后期维护的成本。威胁建 模的一般流程如下: 与系统架构师及设计人员沟通,了解设计详情 使用成熟的威胁建模方法分析当前设计潜在的安全问题 提出安全建议及对潜在威胁的缓解措施 对安全设计进行验证并对整个设
微软SDL 软件安全设计初窥
文档预览
中文文档
12 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
赞助1.5元下载(无需注册)
温馨提示:本文档共12页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
下载文档到电脑,方便使用
赞助1.5元下载
本文档由 路人甲 于
2022-05-14 11:58:20
上传分享
举报
下载
原文档
(426.4 KB)
分享
友情链接
ISO 16191 2013 Water quality — Determination of the toxic effect of sediment on the growth behaviour of Myriophyllum aquaticum.pdf
ISO 3315 2018 Assembly tools for screws and nuts — Driving parts for hand-operated square drive socket wrenches — Dimensions and tests.pdf
ISO 28927-3 2009 Hand-held portable power tools — Test methods for evaluation of vibration emission — Part 3 Polishers and rotary, orbital and random orbital sanders.pdf
ISO 22197-5 2021 Fine ceramics (advanced ceramics advanced technical ceramics) Test method for air-purification performance of semiconducting photocatalytic materials Part 5 Removal of methyl mercap.pdf
ISO 3530 1979 Vacuum technology — Mass-spectrometer-type leak-detector calibration.pdf
ISO-IEC 29341-12-2 2015 Information technology -- UPnP Device Architecture -- Part 12-2 Remote User Interface Device Control Protocol -- Remote User Interface Server Device.pdf
ISO IEC 9646-6 1994 Information technology — Open Systems Interconnection — Conformance testing methodology and framework — Part 6 Protocol profile test specification.pdf
ISO 17183 2016 Soil quality Screening soils for isopropanol-extractable organic compounds by determining emulsification index by light attenuation.pdf
ISO IEC TR 29110-5-3 2018 Systems and software engineering — Lifecycle profiles for Very Small Entities (VSEs) — Part 5-3 Service delivery guidelines.pdf
ISO 20437 2017 Natural rubber latex cleanroom gloves — Specification.pdf
GB-T 32427-2015 信息技术 SOA 成熟度模型及评估方法.pdf
GB-T 5825-1986 建筑门窗扇开、关方向和开、关面的标志符号.pdf
GB-T 30517-2014 液化石油气中游离水的试验 目视法.pdf
GB-T 24205-2009 铁矿粉 烧结试验结果表示方法.pdf
GB-T 37897-2019 纤维增强塑料复合材料 平板扭曲法测定面内剪切模量.pdf
GB-T 20034-2005 纺织机械与附件 经纱筒子架 主要尺寸.pdf
GB-T 2007.1-1987 散装矿产品取样、制样通则 手工取样方法.pdf
GB-T 37864-2019 生物样本库质量和能力通用要求.pdf
GB-T 21298-2007 实验室玻璃仪器 试管.pdf
GB-T 12773-2021 内燃机气阀用钢及合金棒材.pdf
1
/
3
12
评价文档
赞助1.5元 点击下载(426.4 KB)
回到顶部
×
微信扫码支付
1.5
元 自动下载
官方客服微信:siduwenku
支付 完成后 如未跳转 点击这里 下载
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们
微信(点击查看客服)
,我们将及时删除相关资源。