Aller au contenu

Socket - Supply Chain & Malicious Package Detection Cheatsheet

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

MethodCommand
npm (CLI)npm install -g @socketsecurity/cli
npx (no install)npx @socketsecurity/cli --help
Homebrewbrew install socket
pip (Python CLI)pip install socketsecurity
GitHub AppInstall the Socket app from the GitHub Marketplace
Authsocket login (set up an API token)

Commandes CLI Principales

CommandDescription
socket scan create .Créer une nouvelle analyse supply-chain du projet actuel
socket scan listLister 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 reactObtenir 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 ciExécuter une analyse ajustée pour CI (sortie non-zéro sur problèmes)
socket --helpRéférence de commande complète

Ce Que Socket Signale

Capability/SignalWhy it matters
Install scriptsLes hooks postinstall sont un vecteur de malware courant
Network accessConnexions sortantes inattendues à l’installation/runtime
Filesystem accessLecture de chemins sensibles (clés SSH, fichiers env)
Shell / process execSpawn shells ou processus enfants
Obfuscated codePayloads minifiés/encodés cachant le comportement
TyposquatsNoms qui imitent les packages populaires
Telemetry / exfilPatterns 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

IntegrationBehavior
GitHub AppCommente les PRs qui introduisent des changements de dépendance risqués
socket ciÉchoue le pipeline quand une analyse dépasse les seuils
Config filesocket.yml ajuste les types de problèmes qui bloquent vs avertissent
Diff-awareSe 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
FieldPurpose
issueRulesDéfinir chaque capacité/problème à error, warn ou ignore
projectIgnorePathsExclure 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

AspectSocketTraditional SCA (e.g. CVE matchers)
Primary signalComportement/capacitésCorrespondances de base de données CVE connues
Catches zero-day malwareOui (comportemental)Non (nécessite un CVE connu)
Typosquat detectionOuiLimité
Best paired withSyft/Grype, SigstoreSocket pour la couverture de malware

Ressources