Socket - Hoja de Referencia de Detección de Cadena de Suministro y Paquetes Maliciosos
Socket es una herramienta de seguridad de cadena de suministro de software enfocada en detectar paquetes maliciosos conductualmente en lugar de solo hacer coincidir CVEs conocidos. Inspecciona lo que una dependencia realmente hace — scripts de instalación, acceso a red y sistema de archivos, código ofuscado y otras capacidades riesgosas — para capturar typosquats y versiones comprometidas que los escáneres basados en firmas pierden. Cubre ecosistemas incluyendo npm, PyPI, Go, Maven y otros, e se integra en el flujo de trabajo del desarrollador via CLI, app de GitHub y CI.
Instalación
| Método | Comando |
|---|
| npm (CLI) | npm install -g @socketsecurity/cli |
| npx (sin instalación) | npx @socketsecurity/cli --help |
| Homebrew | brew install socket |
| pip (CLI de Python) | pip install socketsecurity |
| App de GitHub | Instala la app Socket desde GitHub Marketplace |
| Autenticación | socket login (configura un token API) |
Comandos CLI Principales
| Comando | Descripción |
|---|
socket scan create . | Crea un nuevo escaneo de cadena de suministro del proyecto actual |
socket scan list | Enumera escaneos anteriores de la organización |
socket scan view <ID> | Ve resultados de un escaneo específico |
socket package score npm react | Obtiene la puntuación de cadena de suministro para un paquete |
socket npm install <pkg> | Envoltorio alrededor de npm que verifica paquetes antes de instalar |
socket npx <pkg> | npx seguro que evalúa el paquete primero |
socket ci | Ejecuta un escaneo adaptado para CI (salida no cero en problemas) |
socket --help | Referencia de comando completa |
Lo que Socket Detecta
| Capacidad/Señal | Por qué importa |
|---|
| Scripts de instalación | Los hooks postinstall son un vector de malware común |
| Acceso a red | Conexiones salientes inesperadas en instalación/tiempo de ejecución |
| Acceso al sistema de archivos | Lectura de rutas sensibles (claves SSH, archivos env) |
| Shell / ejecución de procesos | Generación de shells o procesos secundarios |
| Código ofuscado | Payloads minificados/codificados que ocultan comportamiento |
| Typosquats | Nombres que imitan paquetes populares |
| Telemetría / exfiltración | Patrones de recopilación de datos y exfiltración |
Puntuaciones de Paquetes
# Inspecciona una dependencia única antes de añadirla
socket package score npm left-pad
socket package score pypi requests
# Compara riesgo en un candidato vs una alternativa
socket package score npm chalk
Las puntuaciones resumen el riesgo de cadena de suministro, calidad, mantenimiento y dimensiones de vulnerabilidad para que puedas evaluar una dependencia rápidamente.
Integración con CI / GitHub
| Integración | Comportamiento |
|---|
| App de GitHub | Comenta en PRs que introducen cambios de dependencia riesgosos |
socket ci | Falla el pipeline cuando un escaneo excede umbrales |
| Archivo de configuración | socket.yml ajusta qué tipos de problema bloquean vs advierten |
| Consciente de diffs | Se enfoca en lo que un PR añade, reduciendo ruido |
Configuración (socket.yml)
version: 2
issueRules:
installScripts: error
networkAccess: warn
telemetry: warn
obfuscatedCode: error
| Campo | Propósito |
|---|
issueRules | Establece cada capacidad/problema en error, warn o ignore |
projectIgnorePaths | Excluye rutas del escaneo |
Flujos de Trabajo Comunes
# Evalúa una dependencia antes de que entre en package.json
socket npm install some-package
# Controla un pull request en CI
socket ci
# Audita el árbol de dependencias completo de un repo existente
socket scan create . && socket scan list
Socket vs SCA Tradicional
| Aspecto | Socket | SCA Tradicional (ej. CVE matchers) |
|---|
| Señal primaria | Comportamiento/capacidades | Coincidencias de base de datos CVE conocida |
| Captura malware zero-day | Sí (conductualmente) | No (requiere CVE conocido) |
| Detección de typosquat | Sí | Limitada |
| Mejor emparejado con | Syft/Grype, Sigstore | Socket para cobertura de malware |
Recursos