💬

Trivy によるセキュリティスキャン調査報告

に公開

調査日

2025年5月12日(月)

調査目的

ソースコードおよび Docker イメージに対して Trivy を使用し、脆弱性の有無を確認することで、開発対象プロジェクトのセキュリティ状況を把握する。

使用ツール

  • OS:Windows 11
  • スキャンツール:Trivy v0.62(Chocolatey経由でインストール)
  • Docker Desktop:起動済み

対象プロジェクト構成

D:\tech_survey\trivy-demo\
├── index.js
├── package.json
├── Dockerfile

実施内容

1. ソースコードスキャン(File System スキャン)

trivy fs . > trivy_fs_report.txt
  • 出力先:trivy_fs_report.txt

  • 結果概要:

    • JavaScript プロジェクトとして重大なセキュリティ問題は特に検出されなかった。
    • パッケージ依存の少ない構成であるため、比較的安全な状態。

2. Docker イメージスキャン

ビルド対象

docker build -t myapp:latest .

スキャン対象イメージ

trivy image myapp:latest > trivy_image_myapp.txt
trivy image nginx:latest > trivy_image_report.txt

スキャン結果サマリ

myapp:latest(Node.js ベースの独自イメージ)

  • 脆弱性数:少数(軽微なもののみ)
  • 対応方針:パッケージ更新と最小構成維持による対策が可能

nginx:latest(Debian 12.10 ベース)

  • 総脆弱性数:154 件

    • CRITICAL:2 件
    • HIGH:14 件
    • MEDIUM:39 件
    • LOW:99 件

主な脆弱性(CRITICAL)

ライブラリ CVE-ID 概要
libaom3 CVE-2023-6879 フレームサイズ変更時のヒープバッファオーバーフロー
libldap-2.5-0 CVE-2023-2953 NULL ポインタ参照による DoS の危険性

考察と対策案

  • nginx:latest は多くの汎用ライブラリを含むため、脆弱性数が多くなる傾向にある。
  • より軽量な nginx:alpine ベースの採用により、脆弱性の総数を大幅に削減できる。
  • 不要なライブラリやユーティリティを含めない構成を心がけることで、リスクを最小化できる。
  • Trivy の --ignore-unfixed オプションなどを活用し、実際に修正可能な脆弱性に集中する運用が望ましい。

結論

Trivy によるセキュリティスキャンを通じて、ベースイメージの選定や依存関係の整理がセキュリティ対策において重要であることが明確になった。今後は CI/CD パイプラインへの統合や、継続的な自動スキャンの導入によるセキュリティ監視体制の強化が推奨される。

Discussion