2026年9月14日
2026年9月14日
DockerのセキュリティスキャンにTrivy/Snykを使う方法
手順・設定方法
はじめに
Dockerを使用してアプリケーションをコンテナ化する際、セキュアなイメージを作成し続けることが重要です。TrivyとSnykは、これらの目的に最適なツールで、それぞれが不同的な方法でイメージの脆弱性をスキャンします。この記事では、DockerのセキュリティスキャンにTrivyとSnykを使用する手順について解説します。
症状・背景
このテーマが必要になる主な場面:
- 開発/運用プロセスの一部として定期的なセキュリティ検査が必要
- 脆弱性情報を迅速に取得し、修正するため
- セキュアコード実践の一環
手順・設定方法
ステップ1: TrivyとSnykをインストールする
TrivyとSnykは、それぞれ公式ドキュメンテーションからダウンロードまたはインストールできます。以下に手順を示します。
# Trivyのインストール
curl -sSL https://raw.githubusercontent.com/aquasecurity/trivy/main/script/install.sh | sh
# Snyk CLIのインストール
curl -fsSL https://static.snyk.io/cli/latest/install.sh | bash
ステップ2: Dockerイメージをスキャンする
各ツールを使用してDockerイメージをスキャンします。まずTrivyから始めましょう。
# TrivyでDockerイメージをスキャン
trivy image <image_name_or_id>
# 例:
trivy image busybox
次にSnykを使用します。
# SnykでDockerイメージの脆弱性を検出
snyk scan image <image_name_or_id>
# 例:
snyk scan image nginx:latest
ステップ3: 結果を確認する
スキャン結果は、それぞれのツールが表示します。TrivyとSnykでは、脆弱性の詳細情報や影響度などを提供します。
# Trivyスキャン結果の例
Vulnerabilities: 10 (low: 8, medium: 2)
# Snykスキャン結果の例
[INFO] Detected 3 vulnerabilities
vuln-12345: LOW - A known vulnerability in package 'example' that could allow unauthorized access.
ステップ4: 実践/トラブルシュート/監視
実践:
脆弱性が発見された場合は、迅速に修正または回避策を検討します。TrivyとSnykのスキャン結果から、必要なアクションを実行します。
# 特定の脆弱性に対する対応例:
snyk policy enable <vulnerability_id>
トラブルシュート:
- コマンドが正しくない場合:エラーメッセージに従って修正します。
- イメージの読み取り権限がない場合:適切なユーザーとして実行するか、Dockerイメージのアクセス権限を確認します。
監視:
定期的にスキャンを行うことで、新たな脆弱性の早期発見が可能です。cronジョブを使用して自動化することもできます。
# cronジョブに追加:
0 2 * * * /path/to/snyk scan image nginx:latest > /var/log/snyk-scan.log
注意事項
- セキュリティ上の注意:スキャン結果を定期的に確認し、脆弱性が修正されるまで待機するか、自動更新機能を利用しましょう。
- パフォーマンス/運用上的注意:大量のイメージを一度にスキャンすると遅くなる可能性があります。必要最低限の画像のみを定期的にスキャンすることをお勧めします。
まとめ
1. TrivyとSnykのインストール: TrivyとSnykは、それぞれ異なる方法でDockerイメージの脆弱性を検出し修正できます。
2. スキャンの実行: Dockerイメージに対してTrivyとSnykを使用して定期的なセキュリティスキャンを行います。
3. 結果の確認: スキャン結果から具体的な問題点を特定し、迅速に対応します。
4. 定期的な監視: 定期的にスキャンを行い、脆弱性の早期発見と修正に努めます。
関連記事: