
safe-chain v1.5.15
Protégez-vous contre les codes malveillants installés via npm, yarn, pnpm, npx, pnpx, pip, uv et poetry avec Aikido Safe Chain. Gratuit à utiliser, aucun jeton requis.
Aikido Safe Chain
- ✅ Bloquez les malwares sur les ordinateurs portables des développeurs et dans les pipelines CI/CD
- ✅ Prend en charge npm et PyPI d'autres gestionnaires de paquets arrivent bientôt
- ✅ Bloque les paquets datant de moins de 48 heures sans casser votre build
- ✅ Sans jeton, gratuit, aucune donnée de build partagée
Besoin d'une protection au-delà de npm et PyPI ?
Aikido Device Protection s'appuie sur Safe Chain et étend la sécurité des paquets et des extensions à davantage d'écosystèmes : npm, PyPI, VS Code, Open VSX - (Cursor, Windsurf, Kiro, Vs Codium, ...), Maven, NuGet, extensions Chrome, Go, compétences IA Skills.sh, Ruby, Rust, et plus encore.
Bénéficiez d'une gestion centralisée des politiques, de workflows de demande et d'approbation, et d'une visibilité sur chaque poste de développeur de votre organisation. Propulsé par le même flux Aikido Intel. Déployez-le manuellement ou gérez-le via votre outil MDM (Jamf, Fleet ou Iru).
Aikido Safe Chain prend en charge les gestionnaires de paquets suivants :
- 📦 npm
- 📦 npx
- 📦 yarn
- 📦 pnpm
- 📦 pnpx
- 📦 rush
- 📦 rushx
- 📦 bun
- 📦 bunx
- 📦 pip
- 📦 pip3
- 📦 uv
- 📦 poetry
- 📦 uvx
- 📦 pipx
- 📦 pdm
Utilisation

Installation
L'installation d'Aikido Safe Chain est simple grâce au script d'installation.
Unix/Linux/macOS```shell
curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.20/install-safe-chain.sh -o /tmp/install-safe-chain.sh
&& echo "0ad25efe15d1fa56105157a454d647223e78eb0c53d1f85e3d10afcd722e7bfd /tmp/install-safe-chain.sh" | sha256sum -c -
&& sh /tmp/install-safe-chain.sh
&& rm /tmp/install-safe-chain.sh
### Windows (PowerShell)```powershell
$installer = Join-Path $env:TEMP "install-safe-chain.ps1"
Invoke-WebRequest "https://github.com/AikidoSec/safe-chain/releases/download/1.5.20/install-safe-chain.ps1" -OutFile $installer -UseBasicParsing
$expectedHash = "468C342C5AABB71200B0BD19950984EDD5C4B39811B653B13A5AD15E0FBA4DFA"
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
Les commandes d'installation ci-dessus font toujours référence à une version spécifique. Pour installer une version différente, remplacez la version par le numéro de version souhaité. Toutes les versions disponibles se trouvent sur la page des releases.
Intégrité du téléchargement
Les scripts d'installation sont servis depuis une URL de release versionnée (releases/download/1.5.20/...). Les releases GitHub sont immuables — une fois qu'un artefact est publié à une URL versionnée, il ne peut être ni modifié ni remplacé, le fichier que vous téléchargez est donc garanti d'être exactement ce qui a été publié.
Vérifier l'installation
-
❗Redémarrez votre terminal pour commencer à utiliser Aikido Safe Chain.
- Cette étape est cruciale car elle garantit que les alias de shell pour npm, npx, yarn, pnpm, pnpx, rush, rushx, bun, bunx, pip, pip3, poetry, uv, uvx, pipx et pdm sont correctement chargés. Si vous ne redémarrez pas votre terminal, les alias ne seront pas disponibles.
-
Vérifiez l'installation en exécutant la commande de vérification : ```shell 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
- La sortie doit afficher « OK: Safe-chain works! » confirmant qu'Aikido Safe Chain est correctement installé et fonctionnel.
-
(Facultatif) Tester le blocage de logiciels malveillants en tentant d'installer un paquet de test :
Pour JavaScript/Node.js : ```shell npm install safe-chain-test
Pour Python : ```shell pip3 install safe-chain-pi-test
- La sortie doit montrer qu'Aikido Safe Chain bloque l'installation de ces paquets de test car ils sont signalés comme malveillants.
Lors de l'exécution des commandes `npm`, `npx`, `yarn`, `pnpm`, `pnpx`, `rush`, `rushx`, `bun`, `bunx`, `pip`, `pip3`, `uv`, `uvx`, `poetry`, `pipx` et `pdm`, Aikido Safe Chain vérifie automatiquement la présence de malwares dans les paquets que vous essayez d'installer. Il intercepte également les invocations de modules Python pour pip lorsqu'elles sont disponibles (par exemple, `python -m pip install ...`, `python3 -m pip download ...`). Si un malware est détecté, il vous invite à quitter la commande.
Vous pouvez vérifier la version installée en exécutant :```shell
safe-chain --version
Comment ça fonctionne
Blocage des malwares
L'Aikido Safe Chain fonctionne en exécutant un serveur proxy léger qui intercepte les téléchargements de paquets depuis le registre npm et PyPI. Lorsque vous exécutez les commandes npm, npx, yarn, pnpm, pnpx, rush, rushx, bun, bunx, pip, pip3, uv, uvx, poetry, pipx ou pdm, tous les téléchargements de paquets sont acheminés via ce proxy local, qui vérifie les paquets en temps réel par rapport à Aikido Intel - Open Sources Threat Intelligence. Si un malware est détecté dans un paquet (y compris les dépendances profondes), le proxy bloque le téléchargement avant que le code malveillant n'atteigne votre machine.
Âge minimum des paquets
Safe Chain applique des vérifications d'âge minimum des paquets aux écosystèmes pris en charge.
L'application actuelle diffère selon l'écosystème :
- gestionnaires de paquets basés sur npm :
- lors de la résolution normale des paquets, Safe Chain supprime les versions plus récentes que l'âge minimum configuré des métadonnées de paquets renvoyées par le registre
- pour les requêtes de téléchargement direct de paquets qui contournent ce flux de métadonnées, Safe Chain peut bloquer la requête elle-même à l'aide d'une liste mise en cache des paquets récemment publiés
- gestionnaires de paquets Python :
- lors de la résolution des paquets, Safe Chain supprime les fichiers et versions trop récents des réponses de métadonnées PyPI
- pour les requêtes de téléchargement direct de paquets qui contournent ce flux de métadonnées, Safe Chain peut bloquer la requête elle-même à l'aide d'une liste mise en cache des paquets récemment publiés
Par défaut, l'âge minimum des paquets est de 48 heures. Cela fournit une couche de sécurité supplémentaire pendant la période critique où les paquets nouvellement publiés sont les plus susceptibles de contenir des menaces non détectées. Vous pouvez configurer ce seuil ou contourner entièrement cette protection - consultez la section Minimum Package Age Configuration ci-dessous.