基本信息
文件名称:网络空间安全技术 第19章SDL安全开发生命周期 第20章网络空间安全新动向.pptx
文件大小:250.73 KB
总页数:36 页
更新时间:2025-05-15
总字数:约9.47千字
文档摘要

第19章:SDL安全开发生命周期

要点SDL安全开发流程概述安全设计安全基准线威胁建模第三方库安全代码安全与静态扫描SAST应用安全与动态扫描DAST交互式应用安全测试IAST渗透攻击测试PenTest

1SDL安全开发流程概述安全开发生命周期(SDL)不仅是一个方法论变迁的历史与经验总结,还通过许多已经实践过的过程(从设计到发布产品)的每一个阶段为用户提供指导,以将安全缺陷降低到最小程度。实施SDL主要有两个目的:其一是减少安全漏洞与隐私问题的数量,其二是降低残留漏洞的严重性。产品安全涉及方方面面,如果没有一个完整的、可重复使用的安全开发流程来执行和保证,那么经常所有的努力只在代码上,而忽视或屏蔽了不同层次可能带来的安全风险或安全攻击。

1.1微软SDLSDL的全称是SecurityDevelopmentLifecycle,即:安全开发生命周期。由微软最早提出,是一种专注于软件开发的安全保障流程。为实现保护最终用户为目标,它在软件开发流程的各个阶段引入安全和隐私问题。安全培训是SDL最核心的概念。培训要求设计实施验证发布响应?核心安全培训确定安全要求创建质量门/错误标尺安全和隐私风险评估确定设计要求分析攻击面威胁建模使用批准的工具弃用不安全的函数静态分析动态分析模糊测试攻击面评析事件响应计划最终安全评析发布存档执行事件响应计划

1.2思科SDL思科安全开发生命周期(SDL)是可重复和可衡量的过程,旨在提高思科产品的弹性和可信赖性。在开发生命周期中引入的工具,流程和意识培训相结合,可以促进深度防御,提供产品弹性的整体方法,并建立安全意识的文化。思科SDL采用行业领先的做法和技术来构建可信赖的解决方案,从而减少现场发现的产品安全事件。通过检查其组成元素可以更好地描述思科SDL:1.产品安全要求2.第三方安全安全设计安全编码安全分析漏洞测试

2安全设计产品的安全设计很重要,根据待开发产品、模块、功能的特点,安全设计的切入点可能不完全相同,有的条目多一些,有的少一些(比如说是基于Web的项目,那么对于Session管理、HTTPHeader安全设计就需要考虑进去,但是如果是基于客户端安装的产品就可能不涉及这些安全场景)。1.总体框架输入有效性验证身份认证与授权Session管理监控与审计HTTPHeader安全

3安全基准线安全基准线是一个大型企业必须要设立的安全标准,所有公司产品如果想上线必须满足安全基准线上的各项要求才能上线。思科的安全基准线(PSB)是安全需求的生动体现,它定义了与安全相关的功能,开发过程以及对思科产品组合的文档期望。PSB专注于重要的安全组件,例如证书和密钥管理,加密标准,反欺骗功能,完整性和篡改保护以及会话/数据/流管理。PSB还概述了有关弹性和健壮性,敏感数据处理和日志记录的指南。不断提高这一关键需求,以纳入新技术和标准,以建立抵御不断发展的威胁的固有保护。

4威胁建模威胁建模是利用抽象来帮助思考风险,通过识别目标和漏洞来优化系统安全,然后定义防范或减轻系统威胁的对策的过程。威胁建模是分析应用程序安全性的一种方法。这是一种结构化的方法,通过威胁建模能够识别,量化和解决与应用程序相关的安全风险。威胁建模不是代码审查方法,但却是对安全代码审查过程的补充。在SDL中包含威胁建模可以帮助确保从一开始就以内置的安全性开发应用程序。这与作为威胁建模过程一部分的文档相结合,可以使审阅者更好地理解系统。这使得审阅者可以看到应用程序的入口点以及每个入口点的相关威胁。

5第三方库安全很多软件由于长期使用第三方库文件,导致了持续的安全问题。而在程序开发设计阶段,开发者又经常忽略了第三方库代码的漏洞审查,甚至有些资源库(repositories)直接被信手拈来使用,从根本上就缺乏了安全审计。如果某个库文件存在漏洞,那么,大量使用了该库文件的软件程序都将面临安全威胁。这种场景,在现实世界中已经有了血淋淋的证明:如OpenSSL中出现的心脏滴血漏洞(Heartbleed)、GNUBash出现的破壳漏洞(Shellshock)和Java中的反序列化漏洞(Deserialization),这些都是实际应用程序中,存在第三方资源库或应用框架漏洞的典型案例。产品安全开发流程SDL中,对方第三方库,一定要有管理与漏洞披露,以及及时跟踪与修复这些漏洞。当然这里所说的第三方库也可以扩大到产品部署时所在环境中的中间件漏洞升级,以及操作系统相关的安全漏洞升级或补丁更新。

6代码安全与静态扫描SASTSAST:静态应用程序安全测试(StaticApplicationSecurityTesting)技术通常在编码阶段分析应用程序的源代码或二进制文件的语法、结构、过程、接口等来发现