Назад к обновлениям
New releaseAug 5, 2026

safe-chain v1.5.15

Защититесь от вредоносного кода, устанавливаемого через npm, yarn, pnpm, npx, pnpx, pip, uv и poetry, с помощью Aikido Safe Chain. Бесплатно, токены не требуются.

Поделиться

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, AI-навыки Skills.sh, 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 автоматически проверяет пакеты, которые вы пытаетесь установить, на наличие вредоносного ПО. Он также перехватывает вызовы модулей Python для pip, когда это возможно (например, 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

Категории