Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ソフトウェアサプライチェーン攻撃対策として今からサクッとできること

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

 ソフトウェアサプライチェーン攻撃対策として今からサクッとできること

セキュリティLT会~全エンジニアが知っておきたいセキュリティの話~( https://supporterz-seminar.connpass.com/event/391338/ )におけるセキュリティエンジニア 石川の講演資料です。

Avatar for GMO Flatt Security

GMO Flatt Security

May 21, 2026

More Decks by GMO Flatt Security

Other Decks in Technology

Transcript

  1. 自己紹介 Ryusei Ishikawa id: xryuseix / twitter: @ryusei_ishika GMO Flatt

    Security(株) プロフェッショナルサービス部 脆弱性診断や、
 セキュリティAIエージェントの”Takumi”を提供する会社です 私はWebの脆弱性診断やペネトレーションテストをしています 好きな脆弱性はXSS © 2026 GMO Flatt Security Inc. All Rights Reserved.
  2. 最近のソフトウェアサプライチェーン事情 ※一部のみ掲載 3/19
 Trivy Action 侵害 (GitHub Actions) 3/31 axios

    侵害 (npm) axios ソフ ト ウ ェ アサプラ イ チ ェ ー ン攻撃 概要と対応指針 4/23 @bitwarden/cli 侵害 (npm) 3/24 LiteLLM 侵害 (PyPI) 5/12 TanStack Router を含む 200超の侵害 (npm) 3/27 Telnyx 侵害 (PyPI) © 2026 GMO Flatt Security Inc. All Rights Reserved.
  3. ソフトウェアサプライチェーン攻撃対策って何をすればいいの? A. 正直、一言では言えない。 A. 攻撃対象も、それぞれに対する対策観点も無限にある。 攻撃経路の例 対策観点: 「Dockerイメージ内にSHA Pinningを行う」「GitHub Workflow

    fileでのenvの取り扱いを気を付ける」 「Workflow fileで適切なpermissionsを設定する」「Workflow fileで${{}}によるscript injectionを防止する」「GitHubのレ ポジトリ設定でPinningされていないアクションを実行しないようにする」「Trusted Publishingを使用し ていないパッケー ジ」「公開直後のパッケージ」「issue_commentトリガーの実行者制限」「ライフサイクルスクリプトの使用を制限する」「リ ポジトリのdefault workflow permissionsを設定する」「信頼できないartifactsは検証し てから使用する」「GITHUB_TOKEN のスコープを適切に設定する」「actions/checkoutのpersist-credentialsを無効化する」...... (サプライチェーン攻撃対策って200種類あんねん) © 2026 GMO Flatt Security Inc. All Rights Reserved.
  4. フェーズ1: 依存を「追加する」時の対策 .lockファイルをレポジトリにコミットする .lockファイルとは、package-lock.json, yarn.lock, Pipfile.lockなど チーム内でバージョンを固定できるだけでなく、改ざんされたパッケージのインストールを防げる 特にpipの場合はハッシュ付きのrequirements.txt等を生成しておく レジストリの設定ファイルにセキュリティ系の設定を追加する npm:

    .npmrc に追記 min-release-age=<日数> : 公開直後の改ざんパッケージを回避 ignore-scripts=true : ライフサイクルスクリプト経由のマルウェア実行を遮断 「Takumi Guard」を導入する(無料) 悪性パッケージのインストール直前にブロックしてくれる npm, pnpm, yarn, bun, deno, pip, bundler 対応 (crates.io等にも対応予定) Takumi Guardのインストールコマンドはこれだけ © 2026 GMO Flatt Security Inc. All Rights Reserved.
  5. フェーズ2: 依存を「使う」時の対策 .lockファイルを元にインストールする 各種インストールコマンド npm ci (注: npm installではない) yarn

    --frozen-lockfile pip install --require-hashes 開発やOSSの実行はSandbox環境で行う DockerやDev Containersなどを使用する これらの設定ファイルはLLMに生成させてもOK Docker内でprettierを実行する例 (docker compose run --rm app --write . で実行できる) © 2026 GMO Flatt Security Inc. All Rights Reserved.
  6. フェーズ3: 依存を「運用する」時の対策 SHA Pinningをする 後から改ざんされたアクションやイメージをインストールしないようにする suzuki-shunsuke/pinact 使うと一括変更できて便利! GitHubの設定でPinningされていないアクションを禁止する Settings >

    Actions > General > Require actions to be pinned to a full-length commit SHA flatt-security/setup-takumi-guard-* アクションを使用する(無料) setup-takumi-guard-npm, setup-takumi-guard-pypi, setup-takumi-guard-rubygems GitHub Actions上でTakumi Guardが使える SHA Pinningとはこれのこと © 2026 GMO Flatt Security Inc. All Rights Reserved.