漏洞掃描和修補程序
簡短的摘要
漏洞管理是一個連續的周期:檢測→風險評估→消除(修補/遷移/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入口處的策略即代碼以及透明的執行度量。通過將小字固定在基本圖像和模板中,您可以降低重復的風險,並保持攻擊表面受到持續控制。