安全软件生命周期之规范性安全软件生命周期流程: SAFE Code

2.1.3 SAFE Code

软件保障卓越代码论坛(SAFECode)是一个非营利性、全球性、行业主导的组织,致力于通过推进有效的软件保障方法。SAFECode的使命是推广开发和提供更安全、更可靠的软件、硬件和服务的最佳实践。SAFECode组织发布了“安全软件开发的基本实践:安全开发生命周期计划的基本要素”指南,以促进整个行业的发展采用基本的安全开发实践。基本实践涉及保证-软件抵御试图利用设计或实现错误的攻击的能力。其指南中概述的八项基本做法如下所述:

1.    应用程序安全控制定义。SAFECode使用术语应用程序安全控制(ASC)来指代安全要求(请参阅第2.1.1节第2点)。同样,NIST 800-53使用短语安全控制来指代安全功能和安全保证要求。

ASC的输入包括以下内容:安全设计原则(见第2.1.3节第3点);安全编码实践;应用程序需要遵守的法律和行业要求(例如HIPAA、PCI、GDPR或SCADA);内部政策和标准;事件和其他反馈;威胁和风险。ASC的开发在设计阶段之前就开始了,并贯穿整个生命周期,以提供清晰和可操作的控制,并响应不断变化的业务需求和不断变化的威胁环境。

2.    设计。软件必须包含安全功能,以符合内部安全实践和外部法律或法规。此外,软件必须根据操作环境抵御已知威胁。(请参阅第2.1.1节第5点。威胁建模(请参阅第2.1.1节第4点)、架构评审和设计评审可用于在将设计缺陷实施到源代码之前识别和解决设计缺陷。

系统设计应包含加密策略(请参阅第2.1.1节第6点),以保护敏感数据在静态或传输过程中免遭意外泄露或更改。

系统设计应使用标准化的身份和访问管理方法来执行身份验证和授权。标准化提供了组件之间的一致性,并就如何验证是否存在适当的控制提供了明确的指导。验证主体(无论是人类用户、其他服务还是逻辑组件)的身份并验证执行操作的授权是系统的基本控制。已经开发了几种访问控制方案来支持授权:强制性、自由裁量权、基于角色或基于属性。这些都有优点和缺点,应根据项目特征进行选择。

日志文件在发生违规时提供取证分析所需的证据,以减轻否认威胁。在设计良好的应用程序中,系统和安全日志文件提供了了解应用程序行为及其随时使用方式的能力,并区分善意的用户行为和恶意用户行为。由于日志记录会影响可用的系统资源,因此日志记录系统应设计为捕获关键信息,同时不捕获过多数据。需要围绕存储、防篡改和监控日志文件建立策略和控制。OWASP为设计和实施日志记录提供了宝贵的资源1415.

3.     安全编码实践。意外的代码级漏洞是由程序错误引入的。这些类型的错误可以通过使用编码标准来预防和检测;选择最合适(和安全)的语言、框架和库,包括使用它们相关的安全功能(见第8节);使用自动分析工具(见第2.1.1节项目符号9和10);以及手动审查代码。

组织为安全编码提供标准和指南,例如:

(a)OWASP安全编码实践,快速参考指南

(b) OracleSecure Coding Guidelinesfor Java SE 

(c)软件工程研究所(SEI)CERT安全编码标准

还必须特别注意通过记录事件的通用错误处理程序或异常处理程序以受控和优雅的方式处理意外错误。如果调用泛型处理程序,则应将应用程序视为处于不安全状态,以便不再将进一步执行视为受信任。

4.     管理使用第三方组件时固有的安全风险。见第2.1.1节第7点。

5.    测试和验证。见第2.1.1节第9-11点和第2.1.2节第1、3和4点。

6.     管理安全发现。前五个实践生成的工件包含或生成与产品安全性(或缺乏安全性)相关的发现。应跟踪这些工件中的发现,并采取措施修复漏洞,例如通用准则(请参阅第4.3节)缺陷修复程序中列出的漏洞[36].或者,当确定风险可接受时,团队可能会有意识地接受安全风险。必须跟踪风险的接受情况,包括严重性等级;补救计划、到期或重新审查截止日期;以及重新审查/验证的区域。

明确严重性定义对于确保所有参与者对安全问题及其潜在影响有一致的理解非常重要。可能的起点是映射到通用漏洞评分系统(CVSS)19使用的严重性级别、属性和阈值,例如10–8.5表示严重,8.4–7.0表示高等。严重性级别用于根据缓解措施的利用复杂性和对系统属性的影响来确定缓解措施的优先级。

7.     漏洞响应和披露。即使遵循安全的软件生命周期,由于不断变化的威胁,没有产品可以“完全安全”。漏洞将被利用,软件最终将受到损害。组织必须制定漏洞响应和披露流程,以帮助推动解决外部发现的漏洞,并让所有利益相关者了解进度。ISO为漏洞消除和处理提供了经过行业验证的标准20。为了防止漏洞在新产品或更新的产品中再次出现,团队应执行根本原因分析,并将经验教训反馈到安全软件生命周期实践中。有关进一步讨论,请参阅第2.1.1节第12点和2.1.2项目符号7。

8.     规划安全开发的实现和部署。一个健康和成熟的安全开发生命周期包括上述七种实践,但也包括将这些实践集成到业务流程和整个组织中,包括项目管理、利益相关者管理、部署规划、气象和指标,以及持续改进的计划。在规划部署安全软件生命周期时,需要考虑组织的文化、专业知识和技能水平。根据过去的历史,组织可能会更好地响应公司任务、自下而上的风浪方法或一系列试点计划。将需要培训(见第2.1.1节第1点)。应记录组织安全软件生命周期的规范,包括角色和职责。应制定合规性和过程运行状况计划(请参阅第4节)。

2.2 比较安全软件生命周期模型

2009年,德温等.比较了CLASP、Microsoft最初记录的SDL[3]和接触点(参见第2.1.2节),以便就它们的共性提供指导以及方法的具体性,并提出改进建议。作者将每个生命周期模型的153种可能活动映射到六个软件开发阶段:教育和意识;项目启动;分析和需求;架构和详细设计;实施和测试;以及发布、部署和支持。这些活动将第2.1.1–2.1.3节中的做法提升到更精细的粒度。作者指出了每个模型是否包括153个活动中的每一个,并就每个模型的优缺点提供了指导。作者发现模型中没有明确的全面“赢家”,因此从业者可以考虑使用指南来获得所有模型中所需的细粒度实践。

表1将第2.1.1-2.1.3节的实践分为DeWin等人使用的六个软件开发阶段。与之前的工作类似,这些模型在六个软件开发阶段的指导方面展示了优势和劣势。没有任何模型可以被认为是适用于所有情况的完美模型。安全专家可以考虑六个软件开发阶段实践的传播情况,为其组织定制模型。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/147953.html<

(0)
管理的头像管理
上一篇2025-03-11 22:31
下一篇 2025-03-11 22:32

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注