Socket - Folha de Dicas de Segurança da Cadeia de Suprimentos e Detecção de Pacotes Maliciosos
Socket é uma ferramenta de segurança de cadeia de suprimentos de software focada em detectar pacotes maliciosos behavioralmente em vez de apenas corresponder a CVEs conhecidos. Inspeciona o que uma dependência realmente faz — scripts de instalação, acesso à rede e sistema de arquivos, código ofuscado e outras capacidades arriscadas — para capturar typosquats e releases comprometidas que scanners baseados em assinatura perdem. Cobre ecossistemas incluindo npm, PyPI, Go, Maven e outros, e integra-se ao fluxo de trabalho do desenvolvedor através de CLI, app GitHub e CI.
Instalação
| Método | Comando |
|---|
| npm (CLI) | npm install -g @socketsecurity/cli |
| npx (sem instalação) | npx @socketsecurity/cli --help |
| Homebrew | brew install socket |
| pip (Python CLI) | pip install socketsecurity |
| App GitHub | Instale o app Socket do GitHub Marketplace |
| Auth | socket login (configure um token de API) |
Comandos Principais da CLI
| Comando | Descrição |
|---|
socket scan create . | Crie um novo scan de cadeia de suprimentos do projeto atual |
socket scan list | Liste scans anteriores para a organização |
socket scan view <ID> | Visualize resultados de um scan específico |
socket package score npm react | Obtenha a pontuação de cadeia de suprimentos para um pacote |
socket npm install <pkg> | Wrapper em torno do npm que verifica pacotes antes de instalar |
socket npx <pkg> | npx seguro que valida o pacote primeiro |
socket ci | Execute um scan ajustado para CI (saída diferente de zero em problemas) |
socket --help | Referência de comando completa |
O Que o Socket Marca
| Capacidade/Sinal | Por que importa |
|---|
| Scripts de instalação | Hooks postinstall são um vetor malware comum |
| Acesso à rede | Conexões de saída inesperadas em instalação/tempo de execução |
| Acesso ao sistema de arquivos | Leitura de caminhos sensíveis (chaves SSH, arquivos env) |
| Shell / process exec | Germinação de shells ou processos filhos |
| Código ofuscado | Payloads minificados/codificados ocultando comportamento |
| Typosquats | Nomes que imitam pacotes populares |
| Telemetria / exfil | Padrões de coleta de dados e exfiltração |
Pontuações de Pacotes
# Inspecione uma única dependência antes de adicioná-la
socket package score npm left-pad
socket package score pypi requests
# Compare risco em um candidato vs uma alternativa
socket package score npm chalk
As pontuações resumem a cadeia de suprimentos, qualidade, manutenção e dimensões de vulnerabilidade para que você possa avaliar uma dependência rapidamente.
Integração de CI / GitHub
| Integração | Comportamento |
|---|
| App GitHub | Comenta em PRs que introduzem mudanças de dependência arriscadas |
socket ci | Falha no pipeline quando um scan excede limites |
| Arquivo de config | socket.yml ajusta quais tipos de problemas bloqueiam vs avisam |
| Diff-aware | Foca no que um PR adiciona, reduzindo ruído |
Configuração (socket.yml)
version: 2
issueRules:
installScripts: error
networkAccess: warn
telemetry: warn
obfuscatedCode: error
| Campo | Propósito |
|---|
issueRules | Defina cada capacidade/problema como error, warn ou ignore |
projectIgnorePaths | Exclua caminhos da varredura |
Fluxos de Trabalho Comuns
# Valide uma dependência antes de ela entrar em package.json
socket npm install some-package
# Controle um pull request em CI
socket ci
# Audite a árvore de dependência completa de um repo existente
socket scan create . && socket scan list
Socket vs SCA Tradicional
| Aspecto | Socket | SCA Tradicional (por exemplo, matchers CVE) |
|---|
| Sinal primário | Comportamento/capacidades | Correspondências de banco de dados CVE conhecido |
| Captura malware zero-day | Sim (comportamental) | Não (precisa de um CVE conhecido) |
| Detecção de typosquat | Sim | Limitado |
| Melhor pareado com | Syft/Grype, Sigstore | Socket para cobertura de malware |
Recursos