メインコンテンツまでスキップ

PyPI 向け Takumi Guard に3日間の検疫期間を導入しました

· 約4分
Deividas Turskis
Software Engineer @ GMO Flatt Security Inc.

PyPI 向け Takumi Guard に、新しく公開されたパッケージに対する 3日間の検疫期間 を導入しました。

PyPI に新しいバージョンが公開されると、72時間の検疫期間を経てから Takumi Guard 経由で利用可能になります。この待機期間により、悪意あるパッケージがプロジェクトにインストールされる前にセキュリティ分析で検知できるようになります。

背景

PyPI を標的としたサプライチェーン攻撃は増加の一途をたどっています。攻撃者は悪意あるパッケージを公開し、自動化されたツールによって数分以内にプロジェクトに取り込まれることを狙います。

悪意あるパッケージの大半は、公開から数日以内に検知・削除されます。短い待機期間を設けることで、攻撃に晒される期間を大幅に短縮できます。

このアプローチは 依存関係クールダウン と呼ばれ、JavaScript エコシステム(npm、pnpm、yarn、Bun)では広く採用されています。Takumi Guard は同等の保護を Python にもたらし、すべてのパッケージマネージャで透過的に動作します。

仕組み

開発者から見ると、pip install は従来どおり動作します。検疫期間を通過した最新バージョンがインストールされます。

# 例: パッケージに 1.0.0(5日前)と 1.1.0(1日前)のバージョンがある場合
$ pip install --index-url https://pypi.flatt.tech/simple/ example-package

# pip は 1.0.0 をインストール(検疫通過済み)
# 1.1.0 はまだ利用できない(公開から72時間未満)

72時間が経過すると、バージョン 1.1.0 は自動的に利用可能になります。追加の操作は不要です。

ケース動作
古いバージョンと新しいバージョンが存在新しいバージョン(72時間未満)は非表示。pip は利用可能な最新バージョンをインストール
すべてのバージョンが72時間未満パッケージは一時的に利用不可
古いバージョンのみ存在変更なし。すべてのバージョンが利用可能

設定不要

すでに PyPI 向け Takumi Guard(https://pypi.flatt.tech/simple/)をご利用の場合、検疫は自動的に適用されます。設定の変更は必要ありません。

export PIP_INDEX_URL=https://pypi.flatt.tech/simple/
pip install requests # 従来どおり動作します

pip、uv、poetry など、PEP 503 互換のすべてのパッケージマネージャで動作します。ツールごとの設定は不要です。