安全扫描与漏洞检测
镜像安全扫描是容器安全的基础,下面介绍常用工具与使用。
Trivy
安装
Bash
# Linux
sudo apt-get install wget apt-transport-https gnupg
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -
echo deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/trivy.list
sudo apt-get update
sudo apt-get install trivy
扫描镜像
Bash
# 扫描本地镜像
trivy image nginx:latest
# 输出
+----------------+------------------+----------+-------------------+---------------+
| VULNERABILITY | PRODUCT | SEVERITY | INSTALLED VERSION | FIXED VERSION |
+----------------------+------------------+----------+-------------------+---------------+
| CVE-2024-1234 | openssl | HIGH | 1.1.1n | 1.1.1o |
+----------------------+------------------+----------+-------------------+---------------+
扫描结果过滤
Bash
# 仅显示高危和严重
trivy image --severity HIGH,CRITICAL nginx:latest
# 输出格式
trivy image --format json nginx:latest
trivy image --format table nginx:latest
Clair
部署 Clair
YAML
# docker-compose.yml
services:
clair:
image: quay.io/projectquay/clair:4.6
ports:
- "6060:6060"
environment:
- CLAIR_CONF=/config/config.yaml
volumes:
- ./clair-config.yaml:/config/config.yaml
扫描
Bash
# 使用 clair-scanner
clair-scanner --clair http://localhost:6060 nginx:latest
Harbor 集成扫描
Bash
# Harbor Web UI: 镜像 → 扫描
# 自动显示漏洞数量和等级
# API 扫描
curl -u admin:Harbor12345 -X POST \
https://harbor.example.com/api/v2.0/scan/all
漏洞等级
| 等级 | 说明 | 处理建议 |
|---|---|---|
| CRITICAL | 严重漏洞 | 立即升级 |
| HIGH | 高危漏洞 | 尽快升级 |
| MEDIUM | 中等风险 | 计划升级 |
| LOW | 低风险 | 可忽略 |
| UNKNOWN | 未知 | 评估后决定 |
修复策略
升级基础镜像
dockerfile
# 旧版本(有漏洞)
FROM ubuntu:20.04
# 升级到新版本(修复漏洞)
FROM ubuntu:22.04
更新包
dockerfile
# 构建时更新包
FROM ubuntu:22.04
RUN apt-get update && apt-get upgrade -y && \
rm -rf /var/lib/apt/lists/*
使用精简镜像
dockerfile
# 完整版本(包多,漏洞多)
FROM ubuntu:22.04
# Alpine 版本(包少,漏洞少)
FROM alpine:3.18
CI/CD 集成
YAML
# GitHub Actions
- name: Scan image
run: |
trivy image --exit-code 1 --severity CRITICAL,HIGH my-app:latest
--exit-code 1发现高危漏洞时返回非零退出码,阻止流水线继续。
要点总结
- Trivy 是流行的镜像扫描工具,支持多种输出格式
- Clair 是集中式扫描服务,适合企业集成
- Harbor 内置 Trivy 扫描,Web UI 查看报告
- 漏洞分 CRITICAL/HIGH/MEDIUM/LOW 四级
- 修复策略:升级基础镜像、更新包、使用精简镜像
📝 发现内容有误?点击此处直接编辑