-- Views
October 27, 26
スライド概要
2026/10/24 Vue Fes Japan 2026 の登壇資料です
https://vuefes.jp/2026/speaker/masashi-ageno
株式会社デジタルバリュー
https://www.digitalvalue.co.jp/
株式会社デジタルバリューは、ITの力で北陸地域をより便利に、より住みやすい地域にしていくために、株式会社CCIグループ(旧:株式会社北國フィナンシャルホールディングス)の一員として2019年に設立されたデジタル企業です!全国各地のIT好きなエンジニアに参画してもらいながらアジャイルで地域のためのデジタルプラットフォームを作り続けています。
npmサプライチェーンが狙われた1年 金融システムで実践している防御策 Masashi Ageno 2026.10.24 株式会社デジタルバリュー 01 / 14
株式会社デジタルバリュー 株式会社デジタルバリューは、金融領域のシステムを主に開発しています。フロントエンド にはVueやNuxtを使っています。 当社ではpnpmを使い、依存の取り込みを制限しています。今回は、その設定とCIによる検 査を紹介します。 株式会社デジタルバリュー 02 / 14
アプリを起動する前に、認証情報が盗まれる。
npmエコシステムで相次ぐ攻撃 サプライチェーン攻撃は、依存パッケージの配布経路に不正コードを混入させ、利用者の 環境へ届ける攻撃です。 2025年11月 Shai-Hulud 2.0 2026年3月 axios 2026年8月 keyv / cacheable 広く使われるnpmパッケージでも、悪意ある版の配布が相次いでいます。 株式会社デジタルバリュー 04 / 14
インストールだけで、認証情報が盗まれる Shai-Huludでは、悪意あるインストールスクリプトにより、開発端末やCIのトークン・ク ラウド認証情報が盗まれました。 入口になるのは、preinstall / install / postinstallなど。アプリを起動する前か ら被害が発生します。 まず、依存を入れる瞬間に制限を置きます。 株式会社デジタルバリュー 05 / 14
3つのタイミングで対策を実施する ① 依存を入れる瞬間 ② PRを送るとき ③ 開発を続けている間 pnpmの設定 OSV-Scanner pnpm audit(週次) 公開時期・スクリプト・公 既知マルウェアを照合 導入後に公表された問題 開元の信頼情報に制限を置 し、重大な脆弱性も併せ も、週次で確認してチー きます。 て検査します。 ムへ共有します。 株式会社デジタルバリュー 06 / 14
① pnpmの設定をリポジトリで共有する pnpm-workspace.yamlをリポジトリに置き、ローカルとCIのpnpmに制限を適用していま す。 minimumReleaseAge 公開から設定期間が経過した版だけを選びます。 onlyBuiltDependencies 許可した依存のスクリプトだけを実行します。 trustPolicy 過去の公開版より信頼情報が弱まると停止します。 上記はpnpm 10系の導入例です。設定とpnpmの版はリポジトリごとに異なります。 株式会社デジタルバリュー 07 / 14
① 公開直後の版をpnpmで制限する minimumReleaseAgeを7日に設定し、公開直後の版を制限します。 パッケージ公開 7日未満 解決候補から除外 7日 7日以上 解決候補にできる ✓ pnpmが公開日時を確認。直接依存・推移的依存に適用。 ※minimumReleaseAgeExcludeで、内製パッケージなど例外の登録ができます。 ※7日後の安全性を保証する設定ではありません。 株式会社デジタルバリュー 08 / 14
① インストールスクリプトを許可リストで制御する onlyBuiltDependenciesに、スクリプトを実行してよい依存だけを登録します。 pnpmの許可リスト onlyBuiltDependencies esbuild、@parcel/watcher msw、unrs-resolver ✓ 登録した依存 実行する × リスト外の依存 実行しない pnpm 10.26以降では、 allowBuildsでパッケージごとに実行の許可・拒否を指定できます。 ※この設定が制御するのは、インストール時のスクリプトです。アプリ起動後の不正な処 理を防ぐには、別の対策も必要です。 株式会社デジタルバリュー 09 / 14
① 公開元の信頼情報が弱まった版を止める trustPolicyをno-downgradeに設定し、過去の公開版より信頼情報が弱い版のインスト ールを失敗させます。 過去の公開版(例) Trusted Publisher 今回の公開版 provenanceのみ 信頼情報の低下を検知 インストール停止 ※比較は公開日時が基準。 株式会社デジタルバリュー 10 / 14
② PRで既知マルウェアを照合する PRのCIでOSV-Scannerを使い、依存をOSVの報告と照合します。 pnpm-lock.yaml OSV-Scanner 結果JSONを判定 × MAL-で始まる報告 報告があれば OpenSSFのマルウェア情報 CIを失敗させる osv-scanner scan source --lockfile pnpm-lock.yaml 併せて脆弱性も検査。CVSS 9.0以上はCI停止の基準です。 ※CVSSは深刻度の目安です。自社への影響は別途確認が必要です。 株式会社デジタルバリュー 11 / 14
③ 取り込み後に公表された問題も追う 週次発火のpipelineでpnpm audit --jsonを実行し、検査結果を社内チャットシステムへ 自動通知しています。 週次で起動 脆弱性を検査 結果を自動通知 pipeline pnpm audit --json 社内チャットシステム 導入後に報告された既知の問題も継続して確認します。未知の不正コードを解析する検査 ではありません。 株式会社デジタルバリュー 12 / 14
インストール時の制限と、継続的な検査 ① pnpmで公開時期・スクリプト・公開元の信頼情報を制限します。 ② PRで既知マルウェアを照合し、重大な脆弱性も検査します。 ③ 週次のpnpm auditで、導入後に報告された問題を確認・共有します。 悪意ある依存の取り込みを抑え、既知の問題も継続して追います。 株式会社デジタルバリュー 13 / 14
仲間募集中です 金融サービスをエンジニアリングでより良くする仲間を募 集しています。 フロントエンドではVue・Nuxtを使用。フルリモートで勤 務できます。 採用情報は右のQRコードからご覧ください。 採用情報 digitalvalue.co.jp/recruit 株式会社デジタルバリュー 14 / 14