软件开发团队如何“将安全左移”
发表时间:2023-10-08 08:03:21
文章来源:炫佑科技
浏览次数:153
菏泽炫佑科技
软件开发团队如何“将安全左移”
专家描述了软件开发团队如何“将安全性左移”(即在开发的早期阶段关注安全性)并改进对使用开源组件、管理代码、部署服务和处理数据的治理。
CIO 及其 IT 部门面临着来自业务的巨大压力,需要实现应用程序现代化、改善客户体验、将应用程序迁移到云端以及实现工作流程自动化。 敏捷开发和 () 包括文化、实践、工具和自动化,使软件开发团队能够实现这些目标,并以更高的质量和更快的发布周期交付业务价值。
*先进的开发团队使用全自动的持续集成和持续交付(CI/CD)管道,具有集成的测试自动化功能,并将基础设施部署为代码。 他们将变更管理和事件管理工作流程与敏捷开发工具结合起来,并使用人工智能操作 (AIops) 平台更快地找到生产环境中实际问题的根本原因。
然而,软件开发中的安全问题仍然存在。 行业分析公司 ESG 的现代应用程序开发安全报告显示,只有 36% 的受访者将其应用程序安全计划评为 9 或 10,而 66% 的受访者表示应用程序安全工具受到保护,使用的代码库不到 75%,而 48% 的受访者表示应用程序安全工具受到保护承认经常将易受攻击的代码推送到生产环境。
这些安全缺陷并不是由于缺乏技术、咨询或安全服务提供商造成的。 2020 年网络安全年鉴列出了 3,500 多个潜在安全合作伙伴。 *终,在软件开发中交付业务价值并*大程度降低安全风险的关键是明确定义安全原则并将这些原则传达给软件开发团队。
以下是 CIO 和 IT 领导者应该关注的六种风险以及如何应对它们。
01 未能将安全视为 中的一等公民
企业组织优先考虑安全性,许多企业组织确实遵循敏捷和 中的*佳安全实践。 但与开发团队的规模相比,信息安全团队往往人手不足,而且很容易理解为什么围绕业务和技术债务的其他优先事项构成了敏捷团队要完成的大部分工作,以及为什么没有统一采用安全实践整个组织。
ESG的研究报告支持了这一结论。 虽然 78% 的受访者表示他们的安全分析师直接与开发人员互动,但只有 31% 的受访者逐个功能地审查功能和代码。 这个差距相当大,大多数企业组织不太可能聘请足够的安全专家并将他们长期分配到敏捷开发团队。 但许多组织可以做到以下几点:
需要对整个软件开发团队进行持续的安全培训和教育。
要求信息安全团队在 Teams 或 Teams 等工具中记录安全验收标准,并要求敏捷团队在用户故事中提及这些标准。
将敏捷规划和发布管理方面的协作正式化,以便信息安全团队可以在开发过程的早期标记高风险功能和用户故事。
记录并发布迭代开发周期 (IDC) 审核结果,以便信息安全团队可以看到更多审核结果并标记有风险的实施。
要求所有新开发的 API、微服务、集成机制和应用程序在 CI/CD 管道中实施所需的安全测试。
定义原则、确保跨团队协作、改善文化和提高团队幸福感可能是 CIO 帮助提高软件安全性的一些*重要的方法。 2020 年 社区调查发现,感觉舒适的开发人员关心安全的可能性是其他人的 3.6 倍。
02 开发专有技术实施方法
软件开发团队喜欢编写和开发解决方案,组织需要他们的才能、创新和技术实力来解决紧迫的业务挑战。 但有时,现实世界的需求也会让开发团队陷入解决棘手的技术挑战和实施方法的困境,而这些挑战和实施方法本来可以从第三方获得。
低代码和无代码有时意味着更安全的解决方案,至少有两个原因:首先,敏捷产品的所有者并不总是了解其主要功能的安全含义。 其次,许多人试图在不指定解决方案元素的情况下阐明需求,这有时会导致团队实施代码密集型解决方案,从而带来安全风险。
敏捷开发团队应该首先向产品所有者询问有关功能优先级的问题,并协商范围和要求。 避免受到挑战的一种方法是按照严格的规范编写用户故事并对其进行评估,以便在编程开始之前暴露复杂性。
一旦团队就优先级和功能范围达成一致,开发团队就应该考虑在实施过程中到底在哪里利用第三方技术。 审查应包括低代码/无代码平台、开源代码库、商业框架、公共云服务和软件即服务工具。
当然,天下没有免费的午餐。 使用第三方解决方案也存在风险。
03 开源和商业组件的治理和管理不善
您是否听说过为什么 团队*适合选择自己的工具? 这是高级团队经常提到的一个概念,我也听说过几本著名的书籍都提倡这个原则。
然而,许多 CIO、IT 领导者和 CISO 警告不要给予 团队对工具和组件选择的全部权力。 与此同时,大多数领导者承认太多的限制和复杂的审批流程会阻碍创新并挫败有才华的开发人员。 首席信息官、IT 领导者和首席信息安全官必须围绕技术选择、升级和补丁建立清晰、易于遵循的规则和智能治理。
*近的发现说明了其中的风险。 某公司对1500名IT专业人员进行了开发安全运营和开源代码管理方面的调查,结果发现,只有72%的公司声称有关于开源代码使用的政策,只有64%的公司声称有开源治理委员会。 这只是冰山一角,因为只有 16% 的受访者认为,一旦发现高风险开源漏洞,他们有能力修复该漏洞。
考虑到与开源组件相关的泄漏数量,这些结果令人担忧。 在 2020 年开发安全运营社区调查中,21% 的受访者承认遇到过与开源组件相关的泄露问题。 这不仅仅是一个开源问题,因为任何商业系统也可能存在 API 安全漏洞或其他软件组件漏洞。
降低风险需要围绕开源代码的使用、工具选择和技术生命周期制定明确的政策、治理和管理实践。 但企业组织在*佳实践方面存在差异。 一些企业依赖更开放的程序,而另一些企业则依赖较低的风险承受能力和更严格的程序。 为了实现安全与创新之间的平衡政策软件开发团队如何“将安全左移”,首席信息官应组建一个跨职能团队来确定治理程序、实践标准、工具和指标。
拥有将开发人员能力与安全*佳实践相集成的工具可以减轻选择开源组件的一些挑战。 Quick Base 首席产品和技术官 Jay 介绍了该公司利用开源进行创新的方法:
“我们是早期采用者,该产品让我们更容易发现平台上管理的开源项目中的漏洞。 这是为了将安全性尽早引入软件开发生命周期(或者用开发人员的术语来说,这是向左迈出的重要一步。”
04 不受限制地访问源代码存储库和 CI/CD 管道
如何保证内部软件的安全? 以前的方法是保护版本控制存储库、扫描代码中的漏洞、定义*小权限以促进部署、加密连接以及执行渗透测试。 保护网络和基础设施是一个完全不同的安全领域,涉及由 IT 运营管理的单独工具和规则。
今天有更多的风险和更多的工具,但也有更好的集成机制。 我与工程副总裁 Josh Mason 讨论了确保代码安全的实践。 “我们添加了自动静态分析安全测试 (SAST)、动态应用程序安全测试和手动完成的渗透测试,这通常可以提高生产力,”他说。 “将 SAST 作为 CI/CD 管道的一部分实施,可以发现漏洞。该流程在软件开发生命周期中进一步向左移动,从而可以更快、更经济高效地解决问题。”
梅森还建议严密保护版本控制的存储库。 “遵循零信任模型和*小权限原则的指导是限制对源代码控制存储库及其功能的访问的良好实践。源代码控制存储库解决方案(例如 Azure、 等)提供细粒度的用户权限,从而将开发人员(或整个开发团队)限制在与其工作相关的一小部分代码库中。”
戴尔科技公司 Boomi 的工程主管建议遵循几项安全准则并让开发团队承担责任。 “如果软件开发不当,大规模环境下的安全风险相比单个系统受到攻击会被大大放大。 为了降低风险,必须保证CI/CD管道的安全,以*小权限原则严格保护系统,并利用多重身份验证实现自动化的安全变通方案,提高团队成员的安全意识,建立安全的网络。编程实践。”
05 保护和管理敏感数据
虽然许多 团队精通开发、测试和部署应用程序的安全实践,但他们还必须添加数据管理和数据操作的安全实践。
首席执行官 Chris Bergh 解释了这一点以及更多安全地自动化数据操作的方法。 “数据隐私和安全挑战阻碍公司利用数据获得竞争优势。 手动流程无法解决问题——太多数据流入太快,没有时间处理。 数据安全操作 (DSOps) 是一组支持数据隐私和自动化的安全方法,它将隐私、安全和治理集成到与数据分析开发、部署和操作一起执行的自动化工作流程中。”
CIO 和 IT 领导者在数据运营方面面临的主要挑战是采用主动的数据治理、标记敏感数据以及对开发人员和数据科学家进行可接受的数据实践方面的教育。 集中身份管理、定义基于角色的授权以及在开发环境中屏蔽敏感数据是确保数据安全和数据隐私的重要实践。
管理敏感数据超出了数据安全的范围。 例如,许多公司,尤其是受监管行业的公司,必须记录数据沿袭,显示谁更改了数据、何时、何地以及如何更改。 这些公司经常使用具有内置数据沿袭功能的数据集成和数据管理平台。
06 DIY安全专业知识和解决方案
我管理风险和安全的方法一直是听取不同专家的建议。 安全威胁的规模和复杂性日益增加,大多数企业组织不太可能拥有所有所需的专业知识。 此外,当确实出现安全问题时,有一群人可以就如何降低风险、解决问题、收集取证分析结果和堵塞漏洞提供建议,这对于*大限度地减少影响至关重要。
虽然许多工具和实践可以帮助首席信息官解决当今的问题自动化软件开发,但我们需要专家来解决下一组安全挑战。
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等