アップデート一覧に戻る
New releaseAug 5, 2026

safe-chain v1.5.15

Aikido Safe Chain を使用して、npm、yarn、pnpm、npx、pnpx、pip、uv、poetry を介してインストールされた悪意のあるコードから保護します。無料で使用でき、トークンは不要です。

共有

Aikido Safe Chain

Aikido Safe Chain

NPM Version NPM Downloads

  • ✅ 開発者のラップトップと CI/CD 上でマルウェアをブロック
  • ✅ npm と PyPI をサポート その他のパッケージマネージャーも近日対応予定
  • ✅ ビルドを壊すことなく、48時間より新しいパッケージをブロック
  • ✅ トークン不要、無料、ビルドデータは共有されません

npm と PyPI を超えた保護が必要ですか?

Aikido Device Protection は Safe Chain を基盤として構築されており、パッケージと拡張機能のセキュリティをより多くのエコシステムに拡張します: npm、PyPI、VS Code、Open VSX - (Cursor、Windsurf、Kiro、Vs Codium、...)、Maven、NuGet、Chrome 拡張機能、Go、Skills.sh AI スキル、Ruby、Rust など。

一元化されたポリシー管理、リクエストと承認のワークフロー、そして組織内のすべての開発者ワークステーションにわたる可視性を実現します。同じ Aikido Intel フィードによって提供されます。手動でデプロイするか、MDM ツール (Jamf、Fleet、または Iru) を通じて管理できます。


Aikido Safe Chain は以下のパッケージマネージャーをサポートしています:

  • 📦 npm
  • 📦 npx
  • 📦 yarn
  • 📦 pnpm
  • 📦 pnpx
  • 📦 rush
  • 📦 rushx
  • 📦 bun
  • 📦 bunx
  • 📦 pip
  • 📦 pip3
  • 📦 uv
  • 📦 poetry
  • 📦 uvx
  • 📦 pipx
  • 📦 pdm

使用方法

Aikido Safe Chain demo

インストール

Aikido Safe Chain はインストールスクリプトを使って簡単にインストールできます。

Unix/Linux/macOS

curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.26/install-safe-chain.sh -o /tmp/install-safe-chain.sh \
  && echo "9e4af7107f06d9c0d758cb08fb36804c2af88e24972f3a9d3f8c2bd0ca002adf  /tmp/install-safe-chain.sh" | sha256sum -c - \
  && sh /tmp/install-safe-chain.sh \
  && rm /tmp/install-safe-chain.sh

Windows (PowerShell)

$installer = Join-Path $env:TEMP "install-safe-chain.ps1"
Invoke-WebRequest "https://github.com/AikidoSec/safe-chain/releases/download/1.5.26/install-safe-chain.ps1" -OutFile $installer -UseBasicParsing
$expectedHash = "D44601889FB241D8775C01CA6C45768548839F7B5A3A017BE4633D16364A0AE0"
if ((Get-FileHash $installer -Algorithm SHA256).Hash -ne $expectedHash) {
    Remove-Item $installer -ErrorAction SilentlyContinue
    throw "Checksum verification failed for install-safe-chain.ps1"
}
& $installer
Remove-Item $installer

上記のインストールコマンドは常に特定のリリースを参照しています。別のバージョンをインストールするには、バージョンをご希望のバージョン番号に置き換えてください。利用可能なすべてのバージョンはリリースページにあります。

ダウンロードの完全性

インストールスクリプトはバージョン付きのリリースURL(releases/download/1.5.26/...)から配信されます。GitHubのリリースは不変です — バージョン付きURLで公開されたアーティファクトは変更も置き換えもできないため、ダウンロードするファイルはリリースされたものと正確に同一であることが保証されます。

インストールの確認

  1. ❗ターミナルを再起動して、Aikido Safe Chainの使用を開始します。

    • この手順は、npm、npx、yarn、pnpm、pnpx、rush、rushx、bun、bunx、pip、pip3、poetry、uv、uvx、pipx、pdmのシェルエイリアスが正しく読み込まれることを保証するため、非常に重要です。ターミナルを再起動しないと、エイリアスは利用できません。
  2. インストールを確認するには、次の確認コマンドを実行します:

    npm safe-chain-verify
    pnpm safe-chain-verify
    pip safe-chain-verify
    uv safe-chain-verify
    
    # Any other supported package manager: {packagemanager} safe-chain-verify
    
    • 出力には「OK: Safe-chain works!」と表示され、Aikido Safe Chain が正しくインストールされ実行されていることが確認できるはずです。
  3. (オプション) マルウェアのブロックをテストするには、テストパッケージのインストールを試みます:

    JavaScript/Node.js の場合:

    npm install safe-chain-test
    

    Pythonの場合:

    pip3 install safe-chain-pi-test
    
    • 出力には、Aikido Safe Chain がこれらのテストパッケージをマルウェアとしてフラグ付けし、インストールをブロックしていることが表示されるはずです。

npm、npx、yarn、pnpm、pnpx、rush、rushx、bun、bunx、pip、pip3、uv、uvx、poetry、pipx、pdm の各コマンドを実行すると、Aikido Safe Chain はインストールしようとしているパッケージ内のマルウェアを自動的にチェックします。また、利用可能な場合は pip の Python モジュール呼び出し(例: python -m pip install ...、python3 -m pip download ...)もインターセプトします。マルウェアが検出された場合、コマンドを終了するよう促すプロンプトが表示されます。

インストールされているバージョンは、次のコマンドを実行して確認できます:

safe-chain --version

仕組み

マルウェアのブロック

Aikido Safe Chain は、npm レジストリや PyPI からのパッケージダウンロードをインターセプトする軽量プロキシサーバーを実行することで機能します。npm、npx、yarn、pnpm、pnpx、rush、rushx、bun、bunx、pip、pip3、uv、uvx、poetry、pipx、pdm の各コマンドを実行すると、すべてのパッケージダウンロードがこのローカルプロキシを経由してルーティングされ、Aikido Intel - Open Sources Threat Intelligence に対してリアルタイムでパッケージが検証されます。いずれかのパッケージ(深い依存関係を含む)でマルウェアが検出された場合、悪意のあるコードがマシンに到達する前にプロキシがダウンロードをブロックします。

パッケージの最小経過時間

Safe Chain は、サポート対象のエコシステムに対してパッケージの最小経過時間チェックを適用します。

現在の適用方法はエコシステムによって異なります:

  • npm ベースのパッケージマネージャー:
    • 通常のパッケージ解決時には、Safe Chain はレジストリから返されるパッケージメタデータから、設定された最小経過時間より新しいバージョンを除外します
    • そのメタデータフローをバイパスする直接的なパッケージダウンロードリクエストに対しては、Safe Chain は新しくリリースされたパッケージのキャッシュ済みリストを使用してリクエスト自体をブロックできます
  • Python パッケージマネージャー:
    • パッケージ解決時には、Safe Chain は PyPI のメタデータレスポンスから、経過時間が短すぎるファイルやリリースを除外します
    • そのメタデータフローをバイパスする直接的なパッケージダウンロードリクエストに対しては、Safe Chain は新しくリリースされたパッケージのキャッシュ済みリストを使用してリクエスト自体をブロックできます

デフォルトでは、パッケージの最小経過時間は 48 時間です。これにより、新しく公開されたパッケージが未検出の脅威を含む可能性が最も高い重要な期間において、追加のセキュリティレイヤーを提供します。このしきい値を設定したり、この保護を完全にバイパスしたりできます。詳細は以下の Minimum Package Age Configuration セクションを参照してください。

緊急の CVE 修正については、Aikido がパッチリリースにマルウェアが含まれていないことを確認し、Safe Chain はそのリリースを最小経過時間チェックの対象外とします。これにより、待機期間中に修正対象の脆弱性にさらされたままになることはありません。

シェル統合

Aikido Safe Chain はシェルと統合し、npm、npx、yarn、pnpm、pnpx、rush、rushx、bun、bunx、および Python パッケージマネージャー(pip、uv、uvx、poetry、pipx、pdm)を使用する際にシームレスな体験を提供します。これらのコマンドのエイリアスを設定し、Aikido Safe Chain のコマンドでラップされるようにします。これらのコマンドは、元のコマンドを実行する前にプロキシサーバーを管理します。現在サポートしているシェルは以下のとおりです:

  • ✅ Bash
  • ✅ Zsh
  • ✅ Fish
  • ✅ PowerShell
  • ✅ PowerShell Core

シェル統合の詳細については、シェル統合ドキュメントを参照してください。

アンインストール

Aikido Safe Chain をアンインストールするには、ワンラインのアンインストーラーを使用してください:

Unix/Linux/macOS

curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.26/uninstall-safe-chain.sh | sh

Windows (PowerShell)

iex (iwr "https://github.com/AikidoSec/safe-chain/releases/download/1.5.26/uninstall-safe-chain.ps1" -UseBasicParsing)

❗アンインストール後は、すべてのエイリアスが削除されていることを確認するため、ターミナルを再起動してください。

設定

ログ出力

Aikido Safe Chain の出力は、--safe-chain-logging フラグまたは SAFE_CHAIN_LOGGING 環境変数を使用して制御できます。

設定オプション

ログレベルは複数のソースから設定できます(優先順位順):

  1. CLI 引数(最優先):

    • --safe-chain-logging=silent - マルウェアがブロックされた場合を除き、Aikido Safe Chain のすべての出力を抑制します。パッケージマネージャーの出力は通常どおり stdout に書き込まれ、Safe Chain はマルウェアをブロックしてプロセスを終了させた場合にのみ短いメッセージを書き込みます。

      npm install express --safe-chain-logging=silent
      
    • --safe-chain-logging=verbose - Aikido Safe Chain からの詳細な診断出力を有効にします。問題のトラブルシューティングや、Safe Chain が内部で何を行っているかを理解するのに役立ちます。

      npm install express --safe-chain-logging=verbose
      
  2. 環境変数:

    export SAFE_CHAIN_LOGGING=verbose
    npm install express
    

    有効な値: silent、normal、verbose

これは、ターミナルセッションや CI/CD 環境において、すべてのパッケージマネージャーコマンドのデフォルトのログレベルを設定するのに役立ちます。

ファイルログ

--safe-chain-log-file フラグまたは SAFE_CHAIN_LOG_FILE 環境変数を使用して、Aikido Safe Chain の出力をログファイルにミラーリングできます。ファイルログはデフォルトで無効になっており、パスが設定されると有効になります。ファイル形式 (--safe-chain-log-file-format) と詳細度 (--safe-chain-log-file-verbosity) は、ターミナル出力とは独立して制御されます。

設定オプション

以下のいずれかで設定します (優先順位順):

  1. CLI 引数 (最優先):

    npm install express \
      --safe-chain-log-file=~/safe-chain.log \
      --safe-chain-log-file-format=plain \
      --safe-chain-log-file-verbosity=normal
    
  2. 環境変数:

    export SAFE_CHAIN_LOG_FILE=~/safe-chain.log
    export SAFE_CHAIN_LOG_FILE_FORMAT=plain
    export SAFE_CHAIN_LOG_FILE_VERBOSITY=normal
    
  3. 設定ファイル (~/.safe-chain/config.json):

    {
      "logFile": "~/safe-chain.log",
      "logFileFormat": "plain",
      "logFileVerbosity": "normal"
    }
    

カテゴリ