由于许多组织最初关注扫描和分析应用程序代码和基础设施以获取安全洞察力的机制,结果通常是一种反模式,其中一组复杂的重叠和松散集成的工具跨越开发和生产实际上阻止了工程团队解决开发过程中的安全问题。而且由于传统的安全工具是为静态环境构建的,考虑到云原生应用程序开发的动态和快速发展的特性,它们通常效率不高。虽然云原生架构使组织能够构建和运行可扩展的动态应用程序,但它并非没有挑战。根据云安全联盟(CSA)的数据,70%的安全专业人员和工程团队正在努力“左移”,其中许多人无法识别反模式形成,无法理解云原生开发、成本、治理、文化理念等。认识到范式转变正如CNCF年度报告的细分所述,55%的受访者每周或更频繁地发布代码,18%的受访者每天多次发布代码。微服务的持续采用和实施对组织和遗留应用程序安全工具提出了越来越大的挑战,即在整个开发过程中跟踪软件漏洞。实施DevSecOps工程团队实践和自动化安全工具将更早地识别安全风险、节省开发人员时间、加快发布周期并交付更安全和合规的代码。此外,数据泄露、零日漏洞和侵犯隐私等安全事件对业务的影响只会继续增加,因此组织绝对有必要确保安全是数字化转型和云原生应用程序开发的关键部分.无论您是SolarWinds、Zoom还是受数据泄露影响的许多其他公司中的任何一家,风险都很高,后果可能从失去客户到破产不等。在美国,平均每起数据泄露给企业造成905万美元的损失,Log4j零日漏洞正在影响数以亿计的应用程序和设备,数据隐私法规导致8.88亿美元的罚款。组织(字面上)不能再忽视云原生开发引入的不断变化的威胁动态。让开发人员具备安全意识开发人员知道如何构建应用程序……但他们需要正确的工具、洞察力、流程和文化来安全地构建应用程序。不幸的是,确保工程团队承担安全开发的额外责任是实施DevSecOps最具挑战性和最关键的部分之一。根据SANS2022DevSecOps调查:创建一种文化以显着改善组织的安全态势,高管的支持是DevSecOps安全计划成功的首要因素。组织需要一种结构化的方法来吸引领导者、动员安全拥护者并确保“安全”成为“完成的定义”中不可或缺的一部分。此外,通过确保工程、安全和运营之间的一致性,鼓励开发人员“提高技能”并专注于学习和实施有助于提高Web应用程序安全性的技术,更重要的是,使团队能够更好地将安全性尽早纳入设计和编码阶段。例如,OWASPCloudNativeApplicationSecurityTop10提供了有关云原生应用程序最突出的安全风险、所涉及的挑战以及如何克服这些风险的信息。OWASPTop10鼓励将安全性集成到CI/CD管道、参数化查询、验证所有输入、实施错误处理、改进日志记录策略、利用安全框架、保护静态数据和加密、减少敏感数据的暴露、实施安全访问控制等。全面、优先和可操作的见解由于许多原因(最显着的是速度和灵活性),软件开发的发展已经远远超出了单个开发人员从头开始编写代码的贡献。虽然从现有库中组装应用程序并将它们与自定义代码连接在一起很常见,但这并非完全没有风险:全球超过95%的IT组织使用开源软件来处理任务关键型IT工作负载(OSS)。2021年,软件供应链攻击将增长300%以上。每年在开源代码和第三方代码中发现超过20,000个常见漏洞和暴露(CVE)。正如开发人员安全平台的前5大评估标准中所讨论的:云原生工具:提供对应用程序运行时的洞察力的工具,是非侵入性的,并且在云原生应用程序中可以很好地扩展优先和全面的安全洞察力:提供应用程序感知的上下文信息,例如跨应用程序代码、依赖项、容器映像和Web界面的使用信息和堆栈跟踪开发人员教育:为开发人员提供及时、上下文相关且可操作的安全见解InsightsCI/CD集成和开发人员体验:无缝集成和自动化安全和对CI/CD管道进行合规性测试了解安全性对合规性的影响:通过满足合规性目标确保客户数据的安全发展速度超过秒的领域纯度。出于这个原因,工程团队应该评估可以观察正在运行的应用程序的工具,以便为开发人员提供上下文相关的应用程序感知信息。这可以包括使用信息、堆栈跟踪以及跨应用程序代码、依赖项、容器映像和Web界面的全面洞察。跨应用程序组件的漏洞和不安全代码的识别和关联可以支持工程团队通过帮助开发人员发现、确定优先级和补救最关键的安全风险来防止警报疲劳。自动化安全测试当大多数工程团队考虑采用DevSecOps时,跨开发和运营无缝集成和自动化安全性的能力是一项必备功能。然而,许多传统的应用程序安全工具专注于通过耗时的“门”或检查点提供反馈,给开发人员带来了开销和摩擦。(顺便说一下,这是反模式的一个很好的例子!)远离这种模式实际上代表了安全团队的重大转变,他们习惯于迫使开发人员遵守他们的流程和工具。然而,通过强调直接集成到现有CI/CD工作流和工具链中的技术和支持系统,目标应该是“自动”观察在开发和测试期间运行应用程序的行为以提供安全洞察,而不需要工程团队浪费宝贵的开发时间上下文切换。事实上,回到之前的挑战,确保每个功能测试都是安全测试有助于将“你构建它,你运行它”的DevOps理念扩展到查找和解决安全漏洞。
