您现在的位置是:网络安全 >>正文
安全软件生命周期之规范性安全软件生命周期流程: SAFE Code
网络安全668人已围观
简介2.1.3SAFE Code软件保障卓越代码论坛SAFECode)是一个非营利性、全球性、行业主导的组织,致力于通过推进有效的软件保障方法。SAFECode的使命是推广开发和提供更安全、更可靠的软件、 ...
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等人使用的六个软件开发阶段。与之前的工作类似,这些模型在六个软件开发阶段的指导方面展示了优势和劣势 。没有任何模型可以被认为是适用于所有情况的完美模型。安全专家可以考虑六个软件开发阶段实践的传播情况 ,为其组织定制模型。
Tags:
转载:欢迎各位朋友分享到网络,但转载请说明文章出处“算法与编程”。http://www.bzli.cn/news/475b599519.html
相关文章
YODA工具检测到4.7万恶意WordPress插件
网络安全研究人员在2.4万网站发现4.7万WordPress恶意插件。佐治亚理工学院(Georgia Institute of Technology)研究人员经过8年的持续研究,开发了一个可以自动化检测恶意W ...
【网络安全】
阅读更多UnitedHealth勒索软件攻击事件应吸取的六个备份教训
网络安全今年早些时候发生在美国UnitedHealth的勒索软件攻击,堪称医疗保健行业的最重大的网络安全事故之一,同时还被认为是近年来最重大的医疗数据泄露事件,并导致整个美国医疗保健系统的重大运营中断。Uni ...
【网络安全】
阅读更多打补丁要快!0Day漏洞正在被黑客广泛利用
网络安全近日,美国、英国、加拿大、澳大利亚和新西兰五眼联盟)网络安全机构联合发布了报告,公布了2023年最常被利用的漏洞清单。其中,零日漏洞已经成为黑客最常利用的漏洞类型。该警告强调,攻击者们正越来越多地利用 ...
【网络安全】
阅读更多