第一部分发展安全状况和趋势分析
目前,一些企业已经充分认识到开发安全在整个软件生命周期中的重要性,国家正在从重点行业逐步要求企业提高软件安全开发能力建设。这体现在三个方面:宏观政策、市场形势和技术趋势:
宏观政策:《网络安全法》第33条规定,关键信息基础设施建设应当确保其具有支撑业务稳定持续运行的性能,并确保安全技术措施同步规划、建设和使用。这和应用开发安全的概念非常契合,构造就意味着合规。
市场现状:2020年开发安全市场逐渐发展起来,从企业自身对开发安全重要性的认识、企业客户对开发安全预算投入的增加、安全厂商的不断涌入三个维度可以看出。
技术:DevSecOps的想法是在2018年RSA大会上提出的,受到了国内企业的追捧。作为一个在安全领域逐渐进入成熟阶段的技术体系,DevSecOps本质上继承了软件安全开发全生命周期的安全壁垒向左移动的思想。
软件安全开发的全生命周期模型历史悠久,有一套成熟的开发安全理论体系的方**。国内外知名的模型框架有微软SDL、OWASP S-SDLC和CLASP、NIST SP800-***、BSIMM和SAMM。软件安全开发的流程,每个阶段需要进行的安全活动,持续运行后的评估体系,都可以借鉴上述模型。而国内大部分企业在尝试开发安全系统的过程中会面临很多问题,导致落地困难。主要难点包括:
1)软件安全开发全生命周期流程复杂,与大多数企业软件开发流程不兼容,难以有效控制;
2)企业缺乏自动化工具和可视化平台的支持,面对迭代开发的持续交付,提高效率是亟待解决的问题;
3)市场缺乏安全开发专业人才,具体开发安全工作高度依赖人员的安全能力,无法有效实施;
4)企业缺乏对开发安全实践的评估和审核能力,导致相应的安全活动无法确定实施效果并进行有效改进,最终演变成形式化。
因此,无论是管理层还是参与具体开发安全工作的团队,都要从可行性、如何闭环、如何量化、如何不影响开发进度、如何自动化、智能化等方面考虑构建企业开发安全能力的思路。,从而在实践中达到更好的落地效果。
第二部分安全能力建设发展要点
1,构建适合企业自身的开发保障体系
首先,充分调研了企业发展模式和安全现状。了解企业内相关信息后,评估现有安全实施流程、最新监管要求和行业最佳实践之间的差距,听取部门相关人员对安全指南的意见和建议,为安全发展体系的构建、修订和实施提供依据。
软件开发系统实现中需要的知识库需要根据企业自身情况进行定制,这就要求我们在需求阶段要特别注意不同的业务需求。我们需要根据企业所在行业的监管合规需求和具有行业特点的业务场景进行风险分析和安全需求识别,通过威胁建模或威胁列表将业务场景与安全需求进行匹配,以支持后续工具的部署和运行。在设计阶段,为每个安全需求提供了安全、有效、接地气的设计方案,可供开发人员在实现安全需求的过程中借鉴;在编码阶段,对应每个安全需求给出一个真实的安全编码实例,对应导出安全组件的使用说明;在测试阶段,每个安全需求都有一个安全测试用例。
在此基础上,还需要结合访谈和调研的结果,定制以安全发展管控工具为核心的企业安全发展管控流程。需要明确:平台的角色设置与安全开发管控流程中涉及的角色之间的关系,哪些关键里程碑需要在平台上评审,哪些安全活动需要在平台上统一调度或自动化,从而最终确定一个快速且落地的软件安全开发体系。
开发企业安全架构图
2,构建自动化可视化工具平台系统
在快速迭代开发的过程中,盲目加入传统的安全工作,必然会对软件交付进度产生负面影响。为了避免这种情况,企业应该以软件开发过程为主线,构建自动化、可视化的安全开发控制工具平台。从开发需求阶段到上线运维阶段,他们可以基于丰富、专业的安全开发知识图谱,掌控应用系统的安全开发流程。通过智能化的安全需求设计与分析、安全漏洞管理、定制化的安全需求、安全设计与安全测试文档生成,以及基于CI/CD引擎的第三方安全工具从编码到运维的整合,构建流水线自动化工作流程,在保证开发安全的前提下实现最大程度的降本增效。
在安全开发管控平台上对软件开发全生命周期涉及的安全活动进行统一管理,并对安全数据进行动态集中展示,是安全开发管控工作价值的直观体现。
工具系统图
3,建立一个可衡量的、持续的评价体系
在发展保障能力建设过程中,需要不断考虑整个体系的不足,以确保发展保障体系的真正落实。重点项目包括安全开发体系建设过程中的安全开发评审和安全开发培训、安全需求分析过程中的威胁识别、策略合规性解释和安全需求覆盖、安全设计过程中的威胁建模合理性、安全编码过程中的静态安全扫描bug数量、测试验收过程中的安全测试和代码审计漏洞数量、部署运行过程中的集中安全评估。例子如下:
1)在运行过程中,对于知识库无法覆盖的企业业务场景,为了有效地导出安全需求、安全设计、安全编码和安全测试用例,需要补充新的业务场景,以保证知识库能够支持平台自动化分析的全面性和正确性。
2)在运行过程中,如果不能有效度量安全需求是否已经正确实现,则需要进一步确认和改进,将安全需求与编码测试阶段检测到的缺陷有效对应起来,以确保安全需求和安全设计能够通过编码测试阶段的安全测试用例等工作度量。
4,可选专家经验
根据绿盟科技自身在多个行业客户的服务经验,上述三个开发安全能力的思路和要点,大部分都能很好的实践,但部分企业由于组织架构、安全资源投入等问题,仍然无法达到应有的效果。此时,考虑以下三个原则是否得到了有效实施:
1)企业必须自上而下进行发展和安全能力建设,并有相应的组织结构支撑。
2)根据不同的角色,有针对性的安全培训将贯穿软件安全开发的全生命周期。
3)能够管理风险偏差,并根据预期的安全目标灵活定制安全活动。
第三部分金融行业企业发展的安全实践
随着金融监管的精细化、严格化和业务范围的扩大,业务系统需要频繁变更,甚至开发新的系统。大量应用系**立开发或调试时,多从业务功能实现、性能等方面进行验收。由于缺乏相应的技术手段和能力,对交付应用系统全生命周期的安全状态进行测试,导致出现SQL注入、安全功能缺失等漏洞。被发起后,不仅影响被网络攻击后的正常业务运作,还会给企业造成经济和声誉的双重损失。
目前,软件开发项目的安全管理主要集中在一些环节,如静态代码分析、等级保护测试等。,并且缺乏软件开发全生命周期的安全管理流程。而且系统投产后,修复bug的成本很高,甚至会耽误系统预定的上线时间。为了加强软件开发项目全生命周期的安全管理,企业需要建立统一的软件开发项目安全管理体系、流程、技术标准和管理平台,在软件开发过程的各个阶段增加一系列与安全相关的活动,全面提升系统安全性。
参考流程如下:
1.根据监管要求和行业最佳实践,结合客户实际情况建立应用软件,开发全生命周期安全管理模型。其中,涵盖了应用软件开发中涉及的所有安全功能,如应用安全、终端安全、网络与通信安全、数据安全、系统安全等。
2.根据客户应用系统的类型和特点,形成了多个应用软件开发的安全管理场景,涵盖了客户应用系统所有已知的安全开发需求。根据应用软件安全管理场景,形成与每个场景相对应的需求、设计、开发和测试的完整安全基线。
3.结合企业目前的软件开发基础设施,通过API接口连接企业内部软件开发项目管理平台和其他第三方工具,真正将安全活动融入到软件开发项目管理过程中。在安全开发管控平台上,对软件开发全生命周期涉及的安全活动进行统一管理,动态集中展示安全数据。
4.根据应用软件开发的安全管理解决方案,结合已建立的应用软件开发安全管理模型、技术资源库等。该平台用于安全开发控制,在保证应用软件开发安全性的前提下,提高应用软件开发的效率。
第四部分结论
安全建设最大的挑战是能否有效实施。借鉴上面介绍的开发安全能力建设实践,企业可以对方**和经验进行总结和建模,将程序化、经验化的工作转化为工具平台的自动化运行模式,大大降低了初、中级专业人员的工作量和专业技能要求。这不仅是安全发展的必由之路,也是DevSecOps可持续发展的核心,更是安全服务行业未来的发展方向。
本文来自别舍不得旧情人投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/598447.html