漏洞扫描与补丁管理
安全扫描工具
| 工具 | 类型 | 说明 |
|---|---|---|
| Trivy | 容器/IaC | 扫描镜像、文件系统、IaC 配置 |
| Nessus | 主机/网络 | 商业漏洞扫描器 |
| OpenVAS | 主机/网络 | 开源漏洞扫描 |
| Lynis | 主机合规 | Linux 安全审计 |
| Dependabot | 依赖 | GitHub 自动依赖更新 |
Trivy 扫描示例
# 扫描 Docker 镜像
trivy image nginx:latest
# 扫描文件系统
trivy fs /app
# CI/CD 中严格模式(发现高危漏洞则失败)
trivy image --severity HIGH,CRITICAL --exit-code 1 myapp:latest
Lynis 系统审计
lynis audit system
# 输出评分和加固建议
补丁管理策略
| 严重程度 | 修复时效 | 说明 |
|---|---|---|
| Critical (CVSS 9.0+) | 24-48 小时 | 远程代码执行、权限提升 |
| High (CVSS 7.0-8.9) | 7 天 | 信息泄露、DoS |
| Medium (CVSS 4.0-6.9) | 30 天 | 需在下个维护窗口修复 |
| Low | 90 天 | 低风险 |
自动安全更新(Ubuntu)
apt install unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
# /etc/apt/apt.conf.d/50unattended-upgrades
# 仅自动安装安全更新
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
CI/CD 集成
.github/workflows/security-scan.yml
name: Security Scan
on: [push, pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Trivy 镜像扫描
uses: aquasecurity/trivy-action@master
with:
image-ref: 'myapp:${{ github.sha }}'
severity: 'HIGH,CRITICAL'
exit-code: '1'
常见面试问题
Q1: 如何建立漏洞管理流程?
答案:
- 发现:定期扫描(Trivy/Nessus)+ 订阅 CVE 通告
- 评估:根据 CVSS 评分 + 业务影响确定优先级
- 修复:按时效要求修补,无法修复时做补偿控制(WAF 规则、网络隔离)
- 验证:修复后重新扫描确认
- 持续:CI/CD Pipeline 自动扫描,阻断高危镜像发布