那么,什么是网络安全风险管理?它是一种结构化的实践,用于识别、评估、缓解和监控威胁软件系统、基础设施和数字资产的风险。它涵盖了从代码漏洞和错误配置到第三方依赖项缺陷和机密泄露等方方面面。
为什么这有关系? #
网络安全风险管理至关重要,因为现代软件环境复杂且瞬息万变。新代码频繁部署,依赖关系每日变化,威胁行为者也不断改进其策略。如果没有清晰的安全风险管理流程,团队就会盲目行事,微小的疏忽就可能导致严重的安全漏洞。
在 DevSecOps 的背景下,网络安全风险管理成为一项共同的责任。开发人员、安全工程师和运营团队必须通力合作,将安全性直接嵌入到软件开发生命周期中。
现实世界中网络安全风险管理的失败 #
一个易受攻击的开源库未经审查就投入生产。秘密 commit被转移到 Git 仓库,仅在发生违规后才被发现。这些并非假设情况。它们是风险管理失败的真实且反复出现的例子。
有效的风险管理并非一个理论框架。它旨在防止生产构建部署可利用的软件包、保护凭据,并降低自定义代码和第三方组件的暴露风险。
DevSecOps 网络安全风险管理阶段 #
以下是网络安全风险管理的实际流程 DevSecOps 环境:
流程图TD
A[发现资产] –> B[识别风险]
B –> C[确定优先级并评估]
C –> D[减轻 CI/CD]
D –> E[持续监测]
E –> A
各阶段细分:
- 发现资产:代码库、API、依赖项、基础架构。使用 SBOMs 和扫描仪来维护库存
- 识别风险: CVEs 依赖关系、代码中的秘密以及权限配置错误
- 确定优先级并进行评估: 风险评分 根据严重程度和 开发性
- 缓解 CI/CD:强制执行 SAST, SCA和 机密扫描 ,我们将参加 pull requests
- 持续监控:自动重新扫描构建,对新漏洞发出警报,跟踪漂移
风险管理必须是周期性的,并与开发生命周期紧密结合。
实际应用程序安全风险:自有代码 vs. 开源代码 #
应用程序安全风险出现在内部代码库和第三方组件中:
你编写的代码 #
您导入的代码 #
- 开源软件包中的 CVE。
- 恶意库(域名抢注、依赖混淆)。
- 具有脆弱子依赖关系的深层依赖链。
如果无法洞察整个堆栈,网络安全风险管理又有何意义呢?网络安全风险管理依赖于双重视角:你拥有代码,你也承担风险,即使漏洞来自第三方库。
将网络安全风险管理嵌入 CI/CD Pipelines #
在网络安全中,治理指的是领导力。以下是如何将风险管理直接落实到 CI/CD 工作流程:
工作:
安全性:
脚步:
– 运行:sca-tool scan-deps –fail-on high
– 运行:secrets-scan。–退出代码 1
- 跑步: iac-检查器-文件 iac/ –block-risky
- 跑步: sast-分析器 –代码。–退出关键
如果出现以下情况,此作业将停止构建:
- 开源软件包中存在严重漏洞。
- 秘密是 commit特德。
- IaC 配置是有风险的。
- 静态分析标记应用程序代码中的关键问题。
内部网络安全风险管理 CI/CD pipeline意味着将安全机制左移,并实现自动化执行。话虽如此,风险管理必须积极主动,在部署前发现问题。
网络安全有效风险管理的工具和策略 #
为了支持风险管理,您可以信赖以下类型的工具:
- SCA (软件组成分析):跟踪和审计第三方依赖关系。
- SAST (静态应用安全测试):尽早检测不安全的代码模式。
- 秘密探测:防止凭证和令牌泄露。
- IaC 扫描:强化您的云配置。
- 策略即代码:自动执行安全策略。
结合这些工具,实现分层防护。那么,如果不建立一个能够捕捉人类可能遗漏的信息的系统,网络安全风险管理又何谈意义呢?
使网络风险可行
#
如果没有持续更新,网络安全风险管理又谈何容易?漏洞每天都在涌现;您的代码、软件包和基础设施都必须受到监控。
风险管理是一个动态的过程。它存在于你的 pipeline在你的代码评审中,以及在 dashboard由您的安全团队监控。
西吉尼 提供整个软件供应链的可见性,帮助监控代码、依赖关系、机密,并在整个 pipeline使网络安全风险管理具体化,而不是概念化。
