Socket - Supply Chain & Malicious Package Detection Cheatsheet
Socket est un outil de sécurité de la chaîne d’approvisionnement logicielle axé sur la détection comportementale des packages malveillants plutôt que sur le simple appairage des CVE connues. Il inspecte ce qu’une dépendance fait réellement — scripts d’installation, accès réseau et système de fichiers, code obfusqué et d’autres capacités risquées — pour attraper les typosquats et les versions compromises que les scanners basés sur les signatures manquent. Il couvre les écosystèmes incluant npm, PyPI, Go, Maven et d’autres, et s’intègre dans le flux de travail du développeur via CLI, l’application GitHub et CI.
Installation
| Method | Command |
|---|
| npm (CLI) | npm install -g @socketsecurity/cli |
| npx (no install) | npx @socketsecurity/cli --help |
| Homebrew | brew install socket |
| pip (Python CLI) | pip install socketsecurity |
| GitHub App | Install the Socket app from the GitHub Marketplace |
| Auth | socket login (set up an API token) |
Commandes CLI Principales
| Command | Description |
|---|
socket scan create . | Créer une nouvelle analyse supply-chain du projet actuel |
socket scan list | Lister les analyses précédentes pour l’org |
socket scan view <ID> | Voir les résultats d’une analyse spécifique |
socket package score npm react | Obtenir le score supply-chain pour un package |
socket npm install <pkg> | Wrapper autour de npm qui vérifie les packages avant l’installation |
socket npx <pkg> | Safe npx qui vérifie le package d’abord |
socket ci | Exécuter une analyse ajustée pour CI (sortie non-zéro sur problèmes) |
socket --help | Référence de commande complète |
Ce Que Socket Signale
| Capability/Signal | Why it matters |
|---|
| Install scripts | Les hooks postinstall sont un vecteur de malware courant |
| Network access | Connexions sortantes inattendues à l’installation/runtime |
| Filesystem access | Lecture de chemins sensibles (clés SSH, fichiers env) |
| Shell / process exec | Spawn shells ou processus enfants |
| Obfuscated code | Payloads minifiés/encodés cachant le comportement |
| Typosquats | Noms qui imitent les packages populaires |
| Telemetry / exfil | Patterns de collecte et d’exfiltration de données |
Scores de Package
# Inspecter une seule dépendance avant de l'ajouter
socket package score npm left-pad
socket package score pypi requests
# Comparer les risques entre un candidat et une alternative
socket package score npm chalk
Les scores résument le risque supply-chain, la qualité, la maintenance et les dimensions de vulnérabilité pour que tu puisses juger une dépendance rapidement.
Intégration CI / GitHub
| Integration | Behavior |
|---|
| GitHub App | Commente les PRs qui introduisent des changements de dépendance risqués |
socket ci | Échoue le pipeline quand une analyse dépasse les seuils |
| Config file | socket.yml ajuste les types de problèmes qui bloquent vs avertissent |
| Diff-aware | Se concentre sur ce qu’une PR ajoute, réduisant le bruit |
Configuration (socket.yml)
version: 2
issueRules:
installScripts: error
networkAccess: warn
telemetry: warn
obfuscatedCode: error
| Field | Purpose |
|---|
issueRules | Définir chaque capacité/problème à error, warn ou ignore |
projectIgnorePaths | Exclure les chemins du scan |
Workflows Courants
# Vérifier une dépendance avant qu'elle n'entre dans package.json
socket npm install some-package
# Gater une pull request en CI
socket ci
# Audit de tout l'arbre de dépendance d'un repo existant
socket scan create . && socket scan list
Socket vs SCA Traditionnel
| Aspect | Socket | Traditional SCA (e.g. CVE matchers) |
|---|
| Primary signal | Comportement/capacités | Correspondances de base de données CVE connues |
| Catches zero-day malware | Oui (comportemental) | Non (nécessite un CVE connu) |
| Typosquat detection | Oui | Limité |
| Best paired with | Syft/Grype, Sigstore | Socket pour la couverture de malware |
Ressources