全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-21 5 分钟 ✍️ juanwangdev

安全扫描与漏洞检测

镜像安全扫描是容器安全的基础,下面介绍常用工具与使用。

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 四级
  • 修复策略:升级基础镜像、更新包、使用精简镜像

📝 发现内容有误?点击此处直接编辑

← 上一篇 Secret 敏感信息管理
下一篇 → 最小化镜像原则
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库