一覧に戻る

サプライチェーン攻撃対策にTakumi Guardを導入した

昨今何かと話題になるサプライチェーン攻撃の対策として、Takumi Guardというレジストリプロキシ機能が無料で利用できることを知った。パッケージマネージャーの設定だけでは防げない、サプライチェーンに対する攻撃手法を拡張して防いでくれることを期待している。

Takumi Guard

例えば、以前よりtypesquattingと呼ばれる、有名パッケージとよく似た名前の悪意のあるパッケージをnpm等に公開することで、ミスを起点に開発環境に悪意のあるコードを侵入させる攻撃手法がある。個人的はCodexなどのコーディングエージェントによってコードを書く時間はほぼ0になったが、それでもちょっとしたnpm install といったパッケージインストールは手動で行うことも多く、多少気をつけているつもりではいるがtypoすることだってある。そのため若干不安を覚えながら利用していた背景がある。

また最近は、slopsquatting とよばれる、AIのハルシネーションによって生成されたあたかも実際にありそうなパッケージ名を狙った攻撃手法も確認されているとのこと。

typosquatting: パッケージ名の打ち間違いを狙った攻撃。cross-env に対する crossenvexpress に対する expresss のように、一文字違いの名前でパッケージを登録し、ミスタイプしたインストールを待ち構える。

slopsquatting: AI コーディングツールの普及で増加している新しい攻撃手法。LLMはハルシネーションによって存在しないパッケージ名を生成しインストールを提案することがある。攻撃者はそのあたかも存在しそうな架空のパッケージ名をあらかじめ登録しておき、開発者が AI の提案をそのまま承認してしまい、 npm install するのを狙う。UT San Antonio・Virginia Tech などの研究チームが57.6万件のコードサンプルで16モデルを調査したところ、オープンソースモデルが提案したパッケージ名の平均21.7% が実在しないものだったという。[1] [2]

Takumi Guard

Takumi Guard は GMO Flatt Security が提供するレジストリプロキシ。npm, pypi, rubygem, go へのインストールリクエストをFlattのセキュリティチームが構築してくれた独自のリアルタイムの脅威データベースと照合し、悪性パッケージのインストールをブロックしてくれる。詳細はドキュメントを参照されたし。

Takumi Guard ドキュメント

レジストリプロキシのブロック機能は匿名・無料で利用可能。マルウェア、typosquatting、侵害済みパッケージをブロックしてくれるとドキュメントには記載がある。おそらくだがslopsquattingにも多少効果はあるのではないかと思っている。

また、メールアドレスを登録しておくことで、侵害されたパッケージのインストールが後日確認された時に、メール通知を行ってくれる機能もある。こちらも無料。本当にありがたい。

クイックスタート

基本的には、npm, pnpm, pip, uvといったパッケージマネージャーの宛先レジストリを、設定ファイルや環境変数にて、 flatt.tech に向けることで利用可能。設定は必ずTakumi Guardのドキュメントを参照すること。この記事は概要のみで細かいコマンドや設定方法は記載しない。

npm

プロジェクトの .npmrc にレジストリに下記を記載。

registry=https://npm.flatt.tech/

グローバルに設定したい場合は次のコマンドで。

npm config set registry https://npm.flatt.tech/

pnpm・yarn なども同様に対応している。

# pnpm
pnpm config set registry https://npm.flatt.tech/

# yarn berry (.yarnrc.yml)
npmRegistryServer: "https://npm.flatt.tech/"

pypi

プロジェクトの pyproject.toml や、設定コマンド、環境変数で設定可能。

# pip
pip config set global.index-url https://pypi.flatt.tech/simple/

# uv(環境変数で設定)
export UV_DEFAULT_INDEX=https://pypi.flatt.tech/simple/

今回は一旦自分がよく利用している言語のパッケージマネージャーである、pnpm, uvについてプロキシ設定を行ってみた。メールアドレスも登録してるため、一ヶ月ほど個人開発で利用してみて、またはメール通知が来たタイミングで使用感やインストール・ネットワークエラーが発生しないか等をまた記事に反映する予定だ。

参考

  1. The Rise of Slopsquatting: How AI Hallucinations Are Fueling a New Class of Supply Chain Attacks — socket.dev(2025年4月)
  2. We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs — Spracklen et al.(2025年3月)