微信订阅号二维码
本栏目热门内容
  • 微软安全合规工具包(SCT...
  • SELINUX介绍连载#3:什么...
  • Windows 系统安全基线及软...
  • SELINUX介绍连载#2:模式...
  • 详细了解微软安全合规工具...
  • CIS关键安全控制措施#7持...
  • 从甲方角度介绍“CIS互联...
  • 关于OpenSCAP/SCAP安全策...
  • CIS关键安全控制措施#8审...
  • SELINUX介绍连载#1:基础...
  • CIS关键安全控制措施#9电...
  • 安装RHEL/CentOS时如何选...
  • CIS关键安全控制措施#5账...
  • CIS关键安全控制措施#2软...
  • CIS关键安全控制措施#6访...
  • 什么是网络行为异常检测(...
  • SELINUX介绍连载#4:策略...
  • CIS关键安全控制措施#12网...
  • CIS关键安全控制措施#11数...
  • 网络行为异常检测(NBAD)...
  • 如何使用OpenSCAP检查工具...
  • CIS关键安全控制措施#14安...
  • CIS关键安全控制措施#10防...
  • CIS关键安全控制措施#15服...
  • CIS关键安全控制措施#1总...
  • CIS关键安全控制措施#16应...
  • CIS关键安全控制措施#4企...
  • CIS关键安全控制措施#18渗...
  • CIS关键安全控制措施#16应...
  • 更多...

    如何应用CIS互联网安全中心发布的《CIS关键安全控制措施集》之十六:应用软件安全(下)
    作者:Sender  来源:WaveCN.com  发布日期:2022-04-20  最后修改日期:2022-04-20

      CIS关键安全控制措施集(CIS Critical Security Controls,CIS Controls)系列介绍文章,本期介绍控制措施16:应用软件安全。

      由于本篇太长,为方便阅读,分为上下两篇。上篇介绍14个细项,下篇介绍控制措施本身。上篇见此链接:如何应用CIS关键安全控制措施集之十六:应用软件安全(上)

      控制措施16:应用软件安全(下篇)

      控制措施16的目的是让企业具备管理内部开发、托管或获取的软件的安全生命周期的能力,以便在这些软件的安全问题可能影响到企业产生安全弱点之前,防止、检测和纠正它们。

      对于CIS控制措施集版本8,CIS与SAFECode(https://safecode.org)合作,帮助开发这一最新的应用软件安全控制的程序和安全措施。但是,应用程序软件安全本身就是一个很大的话题,因此(与整体CIS控制措施的原则相一致),我们在这里重点关注最关键的安全措施。这些都来自于SAFECode开发的一篇关于应用软件安全的配套论文(参考下文),该论文提供了对该主题的更深入的处理,并与SAFECode现有的内容主体相一致。

      SAFECode开发了一种三层的方法,以帮助读者按开发项目的成熟度规模确定自己适合哪个开发组(Development Group,DG)。这也是CIS控制措施中定义的三个IG级别,启发了他们使用DG去进行定义:

    开发组1

      企业在很大程度上依赖于现成的商业或开源软件(OSS)的软件包,只需要偶尔添加小型应用程序或进行网站编码开发。根据CIS控制措施的指导,企业能够应用基本的操作,推进实施最佳实践,并管理其供应商提供的软件的安全性。

    开发组2

      企业依赖于一些自定义的(内部或承包商开发的)基于web的或本地代码的应用程序,它们与第三方组件集成,并在本地或云中运行。企业拥有至少一个能够应用软件开发最佳实践的开发人员。企业关注其所依赖的第三方开源或商业代码的质量,以及这些代码是否有被维护。

    开发组3

      企业对定制软件进行了重大投资,以运行其业务和为客户服务。它可以在自己的基础设施上,在云中,或者在两者都托管软件,并可以集成大量的第三方开源和商业软件组件。提供SaaS服务的软件供应商和企业,应该将开发组3视为最低限度的要求集合。

      开发应用程序安全程序的第一步是实现漏洞管理过程。这个过程必须集成到开发生命周期中,并且应该是轻量级的,可以插入到标准的bug修复过程中。

      该过程应该包括根本原因分析,以修复潜在的缺陷并减少未来的漏洞,以及一套严重程度评级办法,以确定补救工作的优先级。

      开发人员需要接受应用程序安全概念和安全编码实践方面的培训。这包括获取或评估应用程序中使用的第三方软件、模块和库的过程,以确保它们不会引入安全缺陷。开发人员应该知道他们可以安全地使用什么类型的模块,在哪里可以安全地获得它们,以及哪些组件是他们可以或不可以自己开发,典型如加密操作库就不应该自己从头开发。

      支持这些应用程序的基础设施中如果存在弱点,就可能会带来风险。CIS控制措施,以及最小化攻击面的概念,可以帮助保护应用程序中使用的网络、系统和账户的安全。具体的指导可以在CIS控制措施1-7、12和13中找到。

      理想的应用程序安全实现程序,是尽可能早地将安全实践引入到软件开发的生命周期中。安全问题的管理应该与标准的软件缺陷/错误管理相一致,并集成在一起,而不是另外建立一个竞争开发资源的单独流程。

      更大或更成熟的开发团队应该在设计阶段考虑威胁建模的实践。设计级漏洞不如代码级漏洞常见;但一旦出现,通常就非常严重,而且难以快速修复。威胁建模是在创建代码之前识别和解决应用程序安全设计缺陷的过程。威胁建模需要特定的培训、技术和商业知识。建议最好通过评比每个开发团队的内部“安全冠军”这种文化来进行,并以此领导该团队的软件的威胁建模实践。威胁建模还能为下游活动提供了有价值的关联信息,例如根本原因分析和安全测试。

      更大的或商业的开发团队也可以考虑实施漏洞赏金程序,即对发现应用程序中的缺陷的独立个人给予报酬。这样的程序最适合于补充内部的安全开发过程,并能提供一种有效的机制,来识别在安全开发过程中需要关注的漏洞类别。

      最后,在2020年,NIST®发布了其安全软件开发框架(SSDF),该框架汇集了过去20年软件工业对软件安全的了解,并创建了一个安全软件开发框架,用于规划、评估和交流软件安全活动。获取软件或服务的企业可以使用这个框架来构建其安全需求,并了解软件提供商的开发过程是否遵循最佳实践。以下是一些应用程序安全资源:

    SAFECode Application Security Addendum

    https://safecode.org/cis-controls/

    NIST® SSDF

    https://csrc.nist.gov/News/2020/mitigating-risk-of-software-vulns-ssdf

    The Software Alliance

    https://www.bsa.org/reports/updated-bsa-framework-for-secure-software

    OWASP®

    https://owasp.org/

    本栏目相关
  •  2022-03-18 微软安全合规工具包(SCT)操作实战
  •  2022-03-09 网络安全等级保护之SELINUX介绍连载之三(什么是策略)
  •  2022-03-16 Windows 系统安全基线及软件工具介绍
  •  2022-03-08 网络安全等级保护之SELINUX介绍连载之二(模式切换篇)
  •  2022-03-17 详细了解微软安全合规工具包(SCT)
  •  2022-04-06 如何应用CIS互联网安全中心发布的《CIS关键安全控制措施集》之七:持续的漏洞管理
  •  2022-03-25 从甲方角度介绍“CIS互联网安全中心”
  •  2022-03-13 关于OpenSCAP/SCAP安全策略的介绍
  •  2022-04-07 如何应用CIS互联网安全中心发布的《CIS关键安全控制措施集》之八:审计日志管理