Tasuke HubLearn · Solve · Grow
#Security

ソフトウェアサプライチェーンセキュリティ入門:npm auditとTrivyで依存関係の脆弱性を検知・修正する

オープンソースの依存関係に潜むリスクからアプリケーションを守る手法を解説。npm auditによる脆弱性の発見と修正、Trivyを使ったコンテナイメージのスキャン、SBOMの重要性まで、開発者が実践すべきセキュリティ対策を紹介します。

時計のアイコン19 September, 2025
TH

Tasuke Hub管理人

東証プライム市場上場企業エンジニア

情報系修士卒業後、大手IT企業にてフルスタックエンジニアとして活躍。 Webアプリケーション開発からクラウドインフラ構築まで幅広い技術に精通し、 複数のプロジェクトでリードエンジニアを担当。 技術ブログやオープンソースへの貢献を通じて、日本のIT技術コミュニティに積極的に関わっている。

🎓情報系修士🏢東証プライム上場企業💻フルスタックエンジニア📝技術ブログ執筆者

はじめに

2021年末に発覚した「Log4Shell」脆弱性は、JavaのロギングライブラリLog4jに存在した欠陥が、世界中の何百万ものアプリケーションに影響を与えた事件として記憶に新しいでしょう。この一件は、私たちが日常的に利用するオープンソースパッケージに潜む脆弱性が、いかに深刻なセキュリティリスクになり得るかを浮き彫りにしました。

このように、自作のコードだけでなく、それが依存するライブラリ、ビルドツール、コンテナイメージといった連鎖(サプライチェーン)全体を保護する考え方が「ソフトウェアサプライチェーンセキュリティ」です。現代の開発において、この視点はもはや無視できません。

この記事では、すべての開発者が今すぐ実践できる、ソフトウェアサプライチェーンセキュリティの第一歩として、代表的なツールnpm auditTrivyを使った脆弱性スキャンと修正の方法を具体的に解説します。

ベストマッチ

最短で課題解決する一冊

この記事の内容と高い親和性が確認できたベストマッチです。早めにチェックしておきましょう。

SBOM (ソフトウェア部品表) の重要性

対策を講じる前に、まず自分たちのアプリケーションが「何でできているか」を正確に把握する必要があります。そのためのリストがSBOM (Software Bill of Materials) ソフトウェア部品表です。

SBOMは、アプリケーションを構成する全てのコンポーネント(ライブラリ、フレームワーク、OSパッケージなど)とそのバージョン、ライセンス情報を一覧にしたものです。SBOMを持つことで、新たな脆弱性が発見された際に、自分たちのプロダクトが影響を受けるかを迅速に特定できるようになります。

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

実践①: npm auditによる依存関係の脆弱性スキャンと修正

Node.js開発者にとって最も身近なツールが、npmに標準で付属するnpm auditです。

npm auditとは?

npm auditは、プロジェクトのpackage-lock.jsonに記録されている依存関係ツリーを、GitHub Advisory Databaseなどの脆弱性データベースと照合し、既知の脆弱性がないかをチェックしてくれるコマンドです。

使い方とレポートの見方

プロジェクトのルートディレクトリで以下のコマンドを実行します。

npm audit

脆弱性が発見されると、以下のようなレポートが出力されます。

# npm audit report

axios  < 0.21.1
Severity: high
Cross-Site Request Forgery (CSRF) - https://npmjs.com/advisories/1594
fix available via `npm audit fix`
node_modules/axios

このレポートは、axios0.21.1未満のバージョンに高(high)深刻度の脆弱性があることを示しています。

脆弱性の修正

npm auditは、多くの場合、脆弱性を自動で修正する手段も提供してくれます。

npm audit fix

このコマンドを実行すると、npmは現在のpackage.jsonで定義されたセマンティックバージョニングの範囲内で、脆弱性が修正されたバージョンにpackage-lock.jsonを更新します。これは安全な操作です。

もし、修正に破壊的変更を伴うメジャーバージョンの更新が必要な場合は、npm audit fix --forceを使うこともできますが、アプリケーションの動作に影響が出る可能性があるため、実行後は必ず十分なテストが必要です。

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

実践②: Trivyによる多角的なスキャン

npm auditはNode.jsエコシステムに特化していますが、より汎用的なスキャンツールとしてTrivyが非常に強力です。Trivyは、Aqua Security社が開発するオープンソースの脆弱性スキャナで、コンテナイメージやファイルシステムなど、様々な対象をスキャンできます。

インストール

macOSの場合はHomebrewで簡単にインストールできます。

brew install trivy

ファイルシステムのスキャン

trivy fsコマンドは、プロジェクトディレクトリ内のロックファイル(package-lock.json, yarn.lock, pom.xml, Gemfile.lockなど)を自動で探し出し、脆弱性をスキャンします。

trivy fs .

npm auditと同様の結果が得られますが、Trivyは複数の言語の依存関係を一度にスキャンできるのが強みです。

コンテナイメージのスキャン

DevSecOpsにおいてTrivyが真価を発揮するのが、コンテナイメージのスキャンです。アプリケーションをDockerイメージとしてビルドした後、そのイメージに脆弱性がないかを確認できます。

trivy image my-app:latest

このコマンドは、アプリケーションのライブラリ(例: axios)だけでなく、ベースイメージ(例: node:18-alpine)に含まれるOSパッケージ(glibcなど)の脆弱性も検出します。これにより、アプリケーション全体のリスクを網羅的に把握できます。

SBOMの生成

Trivyは脆弱性スキャンだけでなく、SBOMの生成もサポートしています。標準的なCycloneDX形式で出力するには、以下のようにします。

trivy image --format cyclonedx --output sbom.json my-app:latest

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

CI/CDへの組み込み

これらの脆弱性スキャンは、開発者の手元で実行するだけでなく、CI/CDパイプラインに組み込むことが不可欠です。GitHub Actionsを使えば、コードがプッシュされるたびに自動でスキャンを実行し、問題があればビルドを失敗させるといった制御が可能です。

GitHub Actionsのワークフロー例:

name: Security Scan
on: [push]
jobs:
  trivy_scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Run Trivy vulnerability scanner in repo mode
        uses: aquasecurity/trivy-action@master
        with:
          scan-type: 'fs'
          scan-ref: '.'
          ignore-unfixed: true
          format: 'table'
          severity: 'CRITICAL,HIGH'

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

まとめ

ソフトウェアサプライチェーンセキュリティは、もはや専門家だけのものではありません。オープンソースを日常的に利用するすべての開発者が、自らの手でアプリケーションの安全性を確認し、向上させる責務を負っています。

npm auditのような身近なツールから始め、Trivyのような汎用ツールでスキャンの範囲を広げ、CI/CDで自動化する。この「シフトレフト」(開発の早い段階でセキュリティを組み込む)のアプローチを実践することで、より安全なソフトウェアを世に送り出すことができるのです。

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

この記事をシェア

続けて読みたい記事

編集部がピックアップした関連記事で学びを広げましょう。

#サプライチェーン

【2025年版】AIで実現するサプライチェーン可視化

2025/11/23
#マイクロサービス

マイクロサービスセキュリティ完全トラブルシューティングガイド【2025年実務脆弱性対策決定版】

2025/8/19
#セキュリティ

【2025年版】AIエージェントのセキュリティテスト完全ガイド

2025/11/23
#dbt

dbt Core入門:SQLだけで構築する、モダンなデータ変換パイプライン

2025/9/18
#Security

APIセキュリティ実践ガイド【2025年版】:OWASP Top 10と具体的な対策

2025/9/3
#DevSecOps

DevSecOps実践ガイド:CI/CDにセキュリティを組み込む手法【2025年版】

2025/9/19