应用程序安全方法论和最佳实践已有十多年的历史,其中“成熟度模型的安全开发”(BSIMM)是企业多年来跟踪安全开发成熟度进展的重要模式。
上周,Synopsys发布了基于BSIMM11模型报告分析了基于金融服务、软件、云计算、医疗等9个垂直行业的130家公司的软件安全实践,揭示了以下四种应用安全趋势:
- 工程导向的软件安全工作正在成功推进DevOps追求弹性的价值流;
- 安全治理软件定义不再只是雄心勃勃;
- 安全正成为质量实践的一部分,而质量实践则被视为可靠性的一部分,这一切都是为了追求弹性;
- “左移”正变成“无处不在”。
类似于之前的报告,BSIMM11分析显示,大多数企业都满足了基本要求,包括在整个开发过程中进行外部渗透测试和基本软件安全培训。
以下,是BSIMM11企业安全发展实践中最常见的12项活动(上图)可作为企业保持行业安全同步的最低参考基准:
治理:战略和指标
活动:实施生命周期治理:
组织中最常见的基本活动之一是实施生命周期治理,包括入口、检查点、围栏和里程碑等发布条件。BSIMM11,90%的组织实施了生命周期治理。此外,许多组织正在走得更远,并实施治理策略。例如,47%的组织也通过测量和跟踪异常来验证发布条件。
治理:合规和政策
活动:确定PII义务(个人身份信息)
大约86%的组织可以通过明确其个人身份信息(PII)满足法律法规要求的义务。这是最常见的合规活动,72%的组织可以在所有监管标准中统一自己的观点和实践。BSIMM11表明,随着时间的推移,组织也将通过履行其义务来逐步提高其合规能力。在过去两年中,积极在其应用程序组合中建立受保护的PII仓储企业数量增加了10个百分点,达到42%。同样,在同一时间范围内,组织实施和跟踪合规控制措施的比例从36%增加到47%。
治理:培训
活动:安全意识培训:
在组织范围内进行某种形式的安全意识培训已成为企业应用开发组织的行业标准,但即便如此,仍有许多企业未能遵守。BSIMM11据说,只有约64%的企业对其软件相关人员进行了至少一门安全意识入门课程的培训,即使这些课程是为特定受众量身定制的。同时,对特定角色的安全意识培训也很常见,但还没有成为主流,只有29%的组织从事这项活动。
情报:攻击模型
活动:创建数据分类方案和清单
如今,大多数软件组织在威胁建模、开发滥用案例和攻击者思维方面的成熟度仍然很低。BSIMM11报告中,只有63%以上的组织能够满足这方面的最低要求,即根据存储的数据和对攻击者的吸引力,创建数据分类方案和列表,优先考虑应用程序的重要性或风险水平。与此同时,只有8%的组织建立了与潜在攻击者相关的攻击模式和滥用案例,在过去几年中保持稳定。
情报:安全功能及设计
活动:集成并提供安全功能
为了满足可重复安全的需要,许多组织接受了提供积极指导和代码提供预先批准的安全功能的实践,包括身份验证、角色管理和加密等模块提供的功能。这样,开发人员就不必每次在项目中添加这些标准功能时重新发明轮子。BSIMM11,约78%的组织参与了该应用程序安全活动。在安全功能和设计方面仍有很大的发展空间。例如,尽管许多组织向开发团队提供这些功能资源,但只有11%的组织强制使用规定列表或存储库中批准的安全功能和框架。
情报:标准和要求
活动:将合规约束转化为需求
意识到开发人员不是遵守法律法规的专家(这不是他们自己的工作),许多安全组织现在正在承担责任PCI DSS标准等内容被解释为软件需求的重要任务。BSIMM11,今天大约有72%的组织这样做。近72%的组织制定了安全标准,解释了遵守企业战略的必要方法,从身份验证到开发人员基础设施的配置。
SSDL接触点:结构分析
活动:安全功能审查:
根据BSIMM11,目前,约88%的组织将对开发的软件进行某些安全功能审查。通常,这仍然是大多数组织分析其软件系统结构安全性的唯一途径,但该行业正在发展。在过去的两年里,设计和审查高风险应用程序的组织比例增加了5个百分点,达到32%。
SSDL接触点:代码审查
活动:使用自动化工具和手动审核
DevSecOps多年来,体育和安全支持者的倡导提高了业界对代码审查过程自动化的重视。BSIMM11据说,由于效率和一致性,近77%的组织将静态分析合并到代码审查过程中。自动化的使用多种多样,一些组织将自动化审查建立在代码管理或交付管道的工作过程中。然而,这些代码审查工具并不总是被迫执行。只有38%的组织要求所有项目都进行代码审查。
SSDL接触点:安全测试
活动:确保质量检验支持边缘/边界值条件测试
代码审查只是可靠审查部署软件安全性的第一步。其他安全测试(如黑盒测试)可以检测软件构建过程中的漏洞。BSIMM11据说至少80%的组织质量检验团队超出了功能测试范围,可以进行基本的对抗测试,探索简单的边缘条件和边界条件。但在许多其他方面仍有很大的发展空间。例如,只有32%的组织将黑盒安全工具集成到质量检验过程中。
部署:渗透试验
活动:使用外部渗透测试人员发现问题
使用外部渗透测试人员是大多数软件团队进行渗透测试的必要选择。BSIMM11,近88%的人使用外部渗透测试人员在代码和配置中提供漏洞的证据。此外,77%的企业将这些测试结果用于漏洞管理和缓解系统,68%的企业将红队测试和其他内部指导的渗透测试作为外部渗透测试结果的备份。
部署:软件环境
活动:确保主机和基本网络安全措施到位
BSIMM11发现主机和网络安全基本安全措施是所有组织中最常见的软件安全措施。约93%的组织表示,首先要确保运行软件的数据中心和网络资产的安全,因为报告指出:“在主机和网络的安全性得不到保证之前,谈论应用程序的安全性就像先穿鞋再穿袜子一样。”
部署:配置管理和漏管理
活动:创建事件响应或与事件响应互动
尽管许多组织在跟踪和修复软件错误方面挣扎,但至少83%的企业在开发人员和安全事件响应人员之间建立了某种形式的界面。此外,78%的受访者还报告说,他们通过操作监控发现了软件缺陷,并将其反馈给开发人员。然而,只有8%的人从事这项活动仍然难以实现更先进的活动(例如,使用操作中识别的错误信息来操作软件事件响应模拟,以改善安全软件开发的生命周期)。
【本文是51CTO专栏作者“安全牛”请通过安全牛(微信微信官方账号)转载原创文章id:gooann-sectv)获取授权】
戳这里,看作者更多的好文章