0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

"OSS開発者は今何をするべきか?ソフトウェアサプライチェーン侵害対策を考える"に参加して勉強した事_vol.1/3

0
Posted at

侵害された3つのライブラリから学ぶ、サプライチェーン攻撃の「経路」

GMO Flatt Security様 主催の勉強会「OSS開発者は今何をするべきか? ソフトウェアサプライチェーン侵害対策を考える」(2026年6月23日)に参加しました。とても濃い会かつ、皆さんの熱気を感じてとても楽しい時間でした。

これから全部で3つの記事を出したいと思います。

1本目の記事は、Hono の開発者である 和田祐介(yusukebe)さんの

2本目の記事は、pdfme の開発者である福田京平(@labelmake)さんの

3本目の記事は、textlint / secretlint などの開発者である azu(@azu_re)さんの

の登壇資料から当日にお伺いした話と、自分なりにまとめたいと思います。

Honoでのサプライチェーン侵害対策〜3つのライブラリに学ぶ

目次

  1. 最近OSS界隈の治安が悪い
  2. Hono がどれだけ使われているか
  3. 攻撃を受けた3つのライブラリ
  4. 3つの経路
  5. Honoの対策

1. 最近OSS界隈の治安が悪い

[最近OSS界隈の治安が悪い]
↑
このキーワードから始まった講談
掴み最高!!!

本題としては、

  • AIスロップ問題
  • サプライチェーン攻撃
    が大きな物としてあげられる

このような問題に対処する必要がある

  • OSSの開発者(ライブラリサイド)
  • OSSを使う開発者
    の2面性が存在する

今回は、OSSの開発者にフォーカスして学んでいこうという事

テーマ:いかにHono(ライブラリ側)がサプライチェーン攻撃を行わないようにするか?

2. Hono がどれだけ使われているか

Honoの現状に関しても話してくださいました。(P9~10)

  • スター数
  • npmダウンロード数

特に印象的だったのは、依存関係について、、、

週間でのダウンロード数や、スター数などは特に多くてそれだけですごいのだが、依存されている先が特に印象的でした。

MastraなどのAI関連の開発、それだけではなく、近年注目されているようなライブラリなど(MCP SDK)
↑
これらのに依存されている
Honoを叩けば、依存されている先からごっそりと資源が抜かれる可能性
Honoを踏み台に利用者に対する攻撃が行われてしまう。

責任が重大である

3. 攻撃を受けた3つのライブラリ

  • axios
  • Tanstack
  • Mastra
    上記だけではなく他にも様々なライブラリがある

上記の3つのライブラリ事例から3つの経路が存在する事が見えてきた

4. 3つの経路

  • ソーシャルエンジニアリング

    • 北朝鮮系のアクターからか、axiosのメンテナーへソーシャルエンジニアリングが大規模にしっかりとされた
      • ミーティング中にメンテナの端末へマルウェアをインストールさせる事を成功
        • 各種必要なクレデンシャル情報を取得
  • その後、axiosに直接マルウェアを埋め込むのではなく、axiosをnpm installした時にlife sicle scriptとして実行される依存関係をPRとして追加

    • 追加されらscriptを実行する事でマルウェアを配った

覚えておくべき事
↓
この例は、システム側がやられていないが、攻撃が成立してしまった。

  • pull_request_target(Pwn Request)
    • TanStackの侵害事例
      • pull_request_targetを使ったキャッシュポイズニング
        • 衝撃的な事はPRのマージすらしていないのにも関わらず攻撃が成立していまったという点
    • 詳細
      • GitHub actionsにはワークフローを実行するためのトリガーが設定出来る
        • 例:リポジトリにPushした時に実行する
          • トリガー => Push
      • その中に今回のトリガーを存在していた(この)
        • pull_request
          • fork先のレポジトリの設定で動く
        • pull_request_target
          • fork元の設定で動く
            • より強い権限で実行される
      • axiosにはpull_request_targetが存在していた
        • bundle.size
        • labeler.yaml
          • キャッシュをマルウェアを実行して汚染
            • 他のPRがマージされた時に汚染
              • その後、諸々あったが、npm publishを実行した
                スクリーンショット 2026-06-25 15.42.19.png
      • npm pubish時
        • どうやら、一度、テストで引っかかり失敗しているっぽい??
          • CLI経由でOICD Tokenを抜き取ってnpm publishしている
            • プロべナンスの出所も保証される
    • 公式レファレンス
      • Pwn Requestは使わない方が良いと一応、公式レファレンスには載っている
        • 避けようとしたら避けれたかも、、、

注目点

  • アカウントの乗っ取りがない事
  • OIDCトークンを使ってnpm publishしている事でプロべナンスの出所も保証されるという事

  • アカウント乗っ取り
    • 以前、Mastraのメンテナであったnpmアカウントを乗っ取り管理者権限を奪取する事でマルウェア埋め込み
      • また、メールアドレスも変更する事で該当のnpmアカウントを取り返せないようにしている
        • 埋め込んだマルウェアはeasy-day-js
          • 最初にクリーンな1.11.21をリリース
            • しかし、その後、1.11.21^を実行 => キャレット指定なので、1.11.21ではない、、、 => 毒入りのバージョンを実行してしまう事になる

注目点

  • 権限管理の整備不備による攻撃

5. Honoの対策

実際の対策

  • axios

    • npm publishingの部分に対策
  • TanStack

    • GitHub actionsの悪用、キャッシュの汚染
  • Mastra

    • メンテナ権限の利用、依存関係汚染
  • npm publishの方法

    • Before
      • ローカルマシンから直に実行
        • npパッケージ
          • タグ打ちなども含めて
      • changesetを使っていない
        • バージョン管理を細かに管理する
    • After
      • OIDC trusted publishingに移行
        • リリースはGitHub actionsから
          • タグを打つ事でGitHub actionsからリリースされる
  • GitHub actionsについて

    • pull_request_targetは使わない
      • 範囲の限定
      • 最終的なPRの実行を全自動ではなく、最終的な許可をメンテナがする必要がある構成へ
      • アクションにpinを打つ
        • 環境を固定する
  • メンテナ権限の管理

    • Honoに関しては、メンテナは和田さんのみ
      • だから、和田さんこそ大丈夫であれば大丈夫
      • 逆に和田さんが倒れてしまうと一発でアウト、、、
  • Honoの依存関係

    • Honoは外部ライブラリへの依存(dependencies)がゼロになっている
  • プロジェクトレベルで実行する事が出来る事を減らす

    • Dev Containers
    • Gitpod
      • これらの設定を消す
  • PRの取り扱いについて

    • 悪意のあるPR
    • 貢献したいだけのPR
    • バウンティを取りたいPR
      • これらの共通点はAIでもコードを書く事が出来るという事
  • 面白かったのはモノレポであるHonoを適切に切り分ける可能性

    • アダプター機能をコアから外す,,,

まとめ

[最近OSS界隈の治安が悪い]
↑
この言葉と下記のXのポストから実際に今回のセミナーは開催された

スクリーンショット 2026-06-25 16.37.07.png

ここ最近の風潮や、実際に起きた侵害事象を検証すると攻撃者の攻撃対象は現在、開発者に向いている可能性が高い、特にOSSなどの開発者は当たった時の攻撃者のメリットがは大きいという事がわかる。

今後もどんどん今回の一連の攻撃より、大きい攻撃が成功してしまう可能性を秘めている
だから、必要な事にて学ぶ姿勢が重要になる

[最近OSS界隈の治安が悪い]

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?