mimic-check
mimic-check は、requirements.txt に記載された Python パッケージの安全性を検証するためのツールです。
タイポスクワッティング(有名なパッケージに似た名前の悪意あるパッケージ)の検出や、ダウンロード数・GitHub スター数に基づいた信頼性の評価を行います。
特徴
- タイポ検出:
requestsをreqeustsと書き間違えているようなケースを検出し警告します。 - 信頼性評価: PyPI のダウンロード数(直近1ヶ月)と GitHub のスター数を確認し、閾値未満のパッケージを警告します。
- 効率的なキャッシュ: 検証結果を当日中のみ有効なキャッシュとして保存し、不要な API リクエストを削減します。
- PyPI 存在確認: パッケージが PyPI に存在しない場合、即座に警告し後続のチェックをスキップします。
- CI 対応:
--ciフラグを使用することで、問題検出時に非ゼロの終了コードで終了し、パイプラインを停止させることができます。
セットアップ
必要条件
- Python 3.x
requests,tomlパッケージ
インストール
PyPIからインストールする場合(公開後):
pip install mimic-check
ローカルで開発用にインストールする場合:
pip install -e .
これにより、mimi コマンドが使用可能になります。
使い方
基本的な実行
mimi --file requirements.txt
実行すると、パッケージごとに以下のチェックが行われます:
- 有名パッケージとの名前の類似性(タイポ)チェック
- PyPI での存在確認
- ダウンロード数とスター数の確認
問題が見つかった場合、警告が表示され、続行するかどうかを確認されます。y を入力すると、そのパッケージを含めた一時的な requirements ファイルで pip install が実行されます。
CI モードでの実行
CI/CD パイプラインなどで、問題検出時に自動的にエラーとしたい場合は --ci フラグを使用します。
mimi --file requirements.txt --ci
PyPIへの配布方法
- ビルドツールのインストール:
pip install build twine
- パッケージのビルド:
python -m build
- PyPIへのアップロード (テスト環境):
python -m twine upload --repository testpypi dist/*
- PyPIへのアップロード (本番環境):
python -m twine upload dist/*
設定 (config.toml)
プロジェクトのルートにある config.toml で動作をカスタマイズできます。
[mimi]
min_downloads = 1000 # 信頼できるとみなす最小ダウンロード数
min_stars = 10 # 信頼できるとみなす最小 GitHub スター数
famous_packages = ["requests", "numpy", "pandas", ...] # タイポチェック対象の有名パッケージ
trusted_packages = [] # チェックをスキップする信頼済みパッケージ
キャッシュ
package_cache.json に検証結果がキャッシュされます。
- キャッシュは日付ごとに管理され、翌日には自動的に再検証されます。
- 信頼性の基準を満たしたパッケージのみがキャッシュされ、警告対象のパッケージは毎回チェックされます。
Metadata
Release files for mimic-check 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| mimic_check-0.1.0.tar.gz | 6.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mimic_check-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.3 kB
Release files / mimic_check-0.1.0.tar.gz
| Download URL | mimic_check-0.1.0.tar.gz |
|---|---|
| Size | 6.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
42c714d9a4f44af7d64eb168d6218c83c7390b97e803ea654407f92924a260c3
|
|
BLAKE2b-256 checksum How to use checksums |
d156e76533d5666a403f0873fa1fa34bdad3b0d37de1e57d76fbe559b2a44e55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.1.dev37+g4f20c0dc3 CPython/3.11.9
|
Release files / mimic_check-0.1.0-py3-none-any.whl
| Download URL | mimic_check-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c6315fcf1c1ca8932edb7d96059f4b04761018fd8baa69c534c766c814e2cf1e
|
|
BLAKE2b-256 checksum How to use checksums |
c3f5386700f0b4219ce65e734bd33b1197fb1838c0c4c64ad2c3360f20d6b53b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.1.dev37+g4f20c0dc3 CPython/3.11.9
|
Security for mimic-check 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.