漏洞扫描和修补程序
简短的摘要
漏洞管理是一个连续的周期:检测→风险评估→消除(修补/迁移/config)→验证→报告。扫描技术(SCA/SAST/DAST/IAST/Cloud/Container)提供信号,并且上下文(曝光,特权,数据,EPSS,漏洞)确定优先级。目标是通过使用自动化,金丝雀布局和清晰的SLO来减少没有业务停机的实际风险。
扫描分类法
SCA(软件构成分析):依赖性/许可证分析;在SBOM库中检测CVE。
SAST:在构建之前对本机代码进行静态分析。
DAST:动态的"黑匣子"与运行中的服务。
IAST:应用程序内部的传感器(在测试过程中)-FP更少,环境更深。
Container/OS扫描:映像(基础映像、软件包)、主机(内核/软件包/configs)、CIS基准。
Cloud/Infra (CSPM/KSPM): 云层/K8s misconfigs (IAM,网络,加密,公共垃圾箱)。
秘密扫描:存储库和图像中的密钥/令牌泄漏。
二进制/Artifact扫描:检查收集的工件(签名、漏洞)。
风险模型和优先级
估计=CVSS v3。x(基础)× EPSS(利用概率)×上下文(指数,数据,特权补偿措施)。
上下文因素:- 在Internet/内部曝光,存在WAF/mTLS/隔离。
- 数据:PII/财务/秘密。
- 进程/节点特权,后期运动潜力。
- 存在公共漏洞/大规模攻击,要求遵守。
CVSS向量的示例:'CVSS:3。1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H' →批评;如果服务是公开的,没有补偿措施-P1。
SLO阈值(示例):- P1(关键、可操作):fix ≤ 48小时。
- P2(高):假人≤ 7天。
- P3(平均):figs ≤ 30天。
- P4(低/输入)*计划/背景。
漏洞管理生命周期
1.资产清单:服务、映像、群集、操作系统、软件包、依赖项、版本。
2.定时扫描和事件扫描:commites,组装,deploy,每天/每周窗口。
3.三元组:重复数据消除、规范化(CVE→Ticket)、按所有者映射。
4.上下文优先排序:CVSS/EPSS+曝光/数据。
5.重新调节:补丁/依赖性更新/config-hardnening/虚拟补丁(WAF)。
6.验证:重新扫描,测试,金丝雀。
7.报告:关闭指标,漏洞年龄,SLO合规性。
8.经验教训:模板中的虚构(基本图像,Helm图表),面向未来的政策。
集成到CI/CD中
在PR阶段:SAST+SCA+秘密扫描;P1/P2的"break build"或申请的要求。
在构建阶段:映像扫描,SBOM生成(CycloneDX/SPDX),工件签名(cosign)。
在执行阶段:公差策略(Admission)-禁止具有"危害/高"漏洞且没有签名/SBOM的映像。
Deploy:DAST/IAST反对站立和部分生产(安全配置文件)。
示例: Renovate/Dependabot(片段)
json
{
"extends": ["config:recommended"],
"vulnerabilityAlerts": { "enabled": true },
"packageRules": [
{ "matchUpdateTypes": ["minor","patch"], "automerge": true },
{ "matchManagers": ["dockerfile"], "enabled": true }
]
}
入场政策(Kubernetes, OPA/Gatekeeper-简化)
rego package policy.vuln
deny[msg] {
input.image.vuln.critical > 0 msg:= sprintf("Image %s has critical vulns", [input.image.name])
}
deny[msg] {
input.image.sbom == false msg:= sprintf("Image %s without SBOM", [input.image.name])
}
补丁管理(操作系统、容器、K8s)
ОС (Linux/Windows)
补丁窗口:P1的常规窗口+紧急紧急窗口。
策略:首先是5-10%的节点,然后是波浪。
自动转换:Ansible/WSUS/Intune/SSM;检查相关性和回滚。
Kernel Live Patching(在可能的情况下)以尽量减少停机时间。
重启服务:drain/cordon驱动的K8s nod, graceful shutdown。
集装箱
不可思议的方法:不是rantime中的"apt upgrade";用更新的底座浏览图像。
基本图像:定期更新golden images (Alpine/Debian/Distroless),固定(文摘)版本。
多阶段装配:将曲面最小化(删除构建工具)。
复制前检查:具有关键CVE的映像块。
Kubernetes/Service Mesh
控制平面:及时发布次要版本,关闭CVE k8s/etcd/containerd。
Node OS/Container运行时:计划更新,版本兼容性。
Mesh/Ingress:Envoy/Istio/NGINX版本-关键(通常在解析器/NTR 3中为CVE)。
管理政策:禁令":最新",签名要求,漏洞限制。
虚拟补丁和补偿措施
当补丁无法快速完成时:- WAF/WAAP:针对特定端点的签名/正模型。
- Fichflags:禁用易受攻击的功能。
- 网络ACL/mTLS/IP allow-list:限制对易受攻击服务的访问。
- Config-hardnening:降级,sandbox, read-only FS,禁用危险模块。
- 缩写令牌/密钥的TTL,保密轮换。
例外管理(风险接受)
例外情况以tiket表示:理由,补偿措施,取消的SLA,审查日期。
在报告中标记为"临时风险接受",并包含在每月审查中。
可观察性和指标
技术性:- Mean Time To Patch (MTTP) по P1/P2/P3.
- 扫描覆盖的资产份额(%)。
- 打开漏洞的年龄(p50/p90), backlog burn-down。
- 具有SBOM和签名的映像百分比。
- 按截止时间执行SLO(例如,≥ 95%的P1 ≤ 48小时)。
- 对aptime的影响(在补丁事件中)。
- 重新识别相同的CVE(模板中的虚构质量)。
花花公子(缩写)
P1: 公共服务中的关键RCE
1.激活WAF规则/静态补丁。
2.阻止未经授权的源访问(如果允许)。
3.紧急映像/操作系统补丁,金丝雀→波浪。
4.重复DAST/遥测检查,错误监控。
5.后事件:在基本映像/Helm图表中固定假象,在CI中添加测试。
1.立即轮换秘密/密钥,召回令牌。
2.搜索使用痕迹,限制尾矿。
3.Repo/映像到秘密,引入预发布扫描仪。
工件示例
1) SQL报告热漏洞
sql
SELECT service, cve, cvss, epss, exposed, has_exploit, created_at,
PRIORITY(exposed, has_exploit, cvss, epss) AS prio
FROM vuln_findings
WHERE status = 'open' AND (cvss >= 8.0 OR has_exploit = true)
ORDER BY prio DESC, created_at ASC;
2)管理政策(Kyverno,关键漏洞块)
yaml apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata:
name: block-critical-vulns spec:
validationFailureAction: Enforce rules:
- name: image-must-have-no-critical match: { resources: { kinds: ["Pod"] } }
validate:
message: "Image contains critical vulnerabilities"
pattern:
metadata:
annotations:
vuln.scanner/critical: "0"
3)SBOM生成和签名(Makefile片段)
make sbom:
cyclonedx create --output sbom.json sign:
cosign sign --key cosign.key $(IMAGE_DIGEST)
iGaming/fintech的细节
高风险区域:支付网关,付款后端,防冻剂,PII/PAN处理-补丁优先P1/P2。
服务窗口:与锦标赛/促销、预赛缓存、低加载地区的金丝雀保持一致。
调节(PCI DSS/GDPR):修复漏洞的时间表、证据(屏幕截图/报告)、CHD区域分割、加密。
合作伙伴集成:要求在网络包上提供经过认证的SDK/客户端、授权的 SCA和HMAC/mTLS。
典型的错误
"扫描一切都没什么":没有业主和SLO。
仅关注无上下文的CVSS(指数,EPSS,数据)。
容器中的补丁而不是重新组合图像。
没有金丝雀/滚动计划。
忽略云/K8的misconfig(通常比CVE更重要)。
没有SBOM/签名-可追溯性弱(供应链)。
实施路线图
1.资产和所有者清单;统一服务/映像注册表。
2.扫描仪堆栈:SCA/SAST/DAST/Container/Cloud+secret-scan;集成到CI/CD中。
3.SLO策略和优先级:CVSS+EPSS+上下文;tiket模式。
4.Admission/Policy-as-Code:禁止关键漏洞,要求SBOM/签名。
5.补丁过程:窗户,金丝雀,回滚;次要/补丁版本的自动驾驶仪。
6.报告和指标:MTTP,覆盖范围,年龄;每周风险审查。
7.定期演习:模拟关键CVE,验证花花公子和滚回。
结果
成熟的漏洞管理是一个过程,不是一次性的"擦除":自动检测,上下文优先级,通过金丝雀/滚回的无漏洞补丁,prode入口处的策略即代码以及透明的执行度量。通过将小字固定在基本图像和模板中,您可以降低重复的风险,并保持攻击表面受到持续控制。