はじめに

2026年 3月 30日に発生した axios の脆弱性に関するサプライチェーン攻撃 は、世界中のアプリケーション開発者に対して衝撃を与えました。

JavaScript や Node.js は、ブラウザアプリやサーバーサイドのプログラムに広く利用されています。
その中では npm として多くの開発者がエコシステムに対するライブラリの提供を行っており、特に axios は週間 1億ダウンロードを超える重要なライブラリです。

このようなサプライチェーン攻撃の管理に対して、従来の管理の弱点が存在します。

JavaScript は、クライアントサイドで実行されます。
そのため、サーバーサイド保護 (EPD, EPP 等) の保護は適用できず、WAF なども対応できません。

技術的に、これらの攻撃を防ぐためには、ソースコードを保護することが重要となります。

この記事では、GitHub Actions と組み合わせたソースコード脆弱性管理について示します。

JavaScript 脆弱性についての補記

axios のサプライチェーン攻撃は、技術的には npm の postinstall という hook を用いています。
これは、一般的に JavaScript の脆弱性という文脈で語られるクライアントサイドに対する脆弱性とは異なります。
開発者クライアントを標的として、推移的参照で axios が利用された際に、ファイルレスマルウェアとして動作させる点が今回の攻撃の特徴です。

今回のリスクは、厳密には開発者クライアント (Windows / Mac) のエンドポイント保護 (EDP/ EPP) で語られるべきリスクです。

この記事では、今回の脆弱性に対する保護ではなく、一般的な JavaScript 脆弱性について述べます。

Sysdig の保護レイヤー

Sysdig には、多くの保護レイヤーが存在しています。
たとえば、以下のような保護を提供します。

機能 保護レイヤー
CSPM (Cloud Security Posture Management) クラウドの『設定不備』を検知し、保護する。
CWPP (Cloud Workload Protection Platform) ワークロードの『不正な動作等』を検知し、保護する。
CDR (Cloud Detection and Response) クラウド内の『不正な挙動』を検知し、保護する。
CIEM(Cloud Infrastructure Entitlement Management) 『過剰な権限の付与や、未使用、脆弱なアカウント』を検知し、保護する。

今回の脆弱性に対しては、これらの機能の適用範囲外となります。
なぜなら、今回のような脆弱性は JavaScript というクライアントで動作する攻撃であったためです。

JavaScript の脆弱性は、S3 Web hosting などの静的な配布が実施され、利用者のブラウザ上で実行されるという特殊性から、クラウドを保護する観点の保護は適用できません。

脆弱性管理

これら脆弱性管理のため、Sysdig には Vuln Management (脆弱性管理) という機能があります。
Runtime / Registry / Pipeline の 3つの機能を有しています。

Runtime は、Host / Container / Kubernetes などの Workload 保護と組み合わせて保護を提供します。
Registry は、Amazon ECR や Google Artifact Registry 、Docker などと組み合わせた Container Image に対する保護を提供します。
Pipeline は、CI/CD と組み合わせた保護を提供できます。

今回のような JavaScript などの脆弱性の場合、Pipeline の利用が適切です。

今回の例では GitHub Actions を利用した保護を追加しました。
Pipeline 保護を適用することで、Deploy 実行前に強制停止させるなどの Shift left 的な保護を利用できます。

リスクとしての脆弱性管理

Sysdig の脆弱性管理は、多くの脆弱性管理ツールと異なり『リスク』という点に着目しています。

SBOM (ソフトウェア部品表) としてパッケージを管理し、そのリスクを検知できます。
実際の利用状況なども管理しているため、優先順位に対してより危険なものを検知できるようになっています。

SBOM 管理を行うことで、その時点の脆弱性だけでなく、あとから発見された脆弱性を追跡評価することも可能です。

How to Vuln management

この章では、Pipeline に対する脆弱性管理の実施方法を Step by Step で説明します。

権限などは、ある程度は絞っています。
より強固な保護を行う場合は、KDDI アイレットまでご相談ください。

Service Account の発行

Sysdig に対して、Upload を行うための Service Account を発行します。

権限を絞るため、新しい API Key を発行します。
Sysdig にログイン後、以下の操作を実施します。

Settings / Access & Secrets / Teams / team / Service Account にアクセス。
『Add service account』を選択して、新しい Service Account を作成します。

Role は 『Standard User』で十分です。

Service Account 登録後、token が発行されます。
画面を更新すると取得できなくなるため、今の段階でコピーを行います。

GitHub Secrets に対する Token 保管

GitHub Secrets に Token を保管します。

GitHub の Repository で、Settings / Security and quality / Secrets and variables / Actions を選択して、Repository secret に対して値を保管します。

SYSDIG_SECURE_TOKEN という Name で、発行された Token を保管します。

GitHub Actions の保管

GitHub Actions を利用するため、.github/workflows/build-and-push.yml に定義ファイルを保管します。

この定義には sysdig-scan を追加して、保護を実施しています。

GitHub Actions 内で Docker build を実施して、該当 Image を Sysdig でスキャンして Upload しています。

stop-on-failed-policy-eval: true を追加することで、Build 失敗時に Push を停止させるようにしています。

これにより、スキャンを実施して、その結果を Sysdig に Upload することが可能となります。

詳細のパラメーターなどは、scan-action を参照してください。

name: Build, Push and Deploy

on:
  push:
    branches: [develop, main]
    paths:
      - 'src/**'
      - 'package.json'
      - 'pnpm-lock.yaml'

jobs:
  build:
    runs-on: ubuntu-latest
    ...
  sysdig-scan:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Build Docker image (local)
        uses: docker/build-push-action@v6
        with:
          context: .
          push: false
          load: true
          tags: "local/repo-name:${{ github.sha }}"

      - name: Sysdig Image Scan
        uses: sysdiglabs/scan-action@v6
        with:
          image-tag: "local/repo-name:${{ github.sha }}"
          sysdig-secure-token: ${{ secrets.SYSDIG_SECURE_TOKEN }}
          sysdig-secure-url: {endpoint}
          severity-at-least: medium
          stop-on-failed-policy-eval: true
          stop-on-processing-error: false

  deploy:
    needs: [build, sysdig-scan]
    ...

脆弱性管理

これらの処理が完了後、Sysdig の Dashboard から脆弱性管理が可能となります。

Dashboards / Vulnerabilities / Vuln - Pipeline や、Attack Surface / Vulnerability Findings / Vuln - Pipeline にアクセスすることで、詳細管理が可能となります。

脆弱性が管理されることで、Threat Intelligence などからも影響調査が可能となります。

Threat Intelligence

今回の axios のような新しいリスクが発生した際に、影響調査は重要です。
しかし、『どのように調査したら良いか?』という点で即時性を担保することが重要です。

Sysdig には Threat Intelligence という機能があり、Sysdig で認知したリスクに対して、一つのダッシュボードから影響調査が可能な機能を有しています。

脆弱性情報を Sysdig 内で管理しておくことで、Axios Supply Chain Attack のように影響調査が可能です。

まとめ

Sysdig などの CNAPP を活用するためには、全ての情報を CNAPP に集約して管理することが重要です。

CI/CD Pipeline と組み合わせることで、ソースコードの脆弱性も Sysdig 上で集約管理が可能となります。

ゼロデイ脆弱性に対する保護や、サプライチェーン攻撃に対応するためにも、CNAPP をご活用ください。