Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
shai-scan — Scanner CLI sem dependências para comprometimentos da cadeia de suprimentos npm/PyPI. Detecta pacotes comprometidos em lockfiles e IOCs de nível de sistema de ataques como Mini Shai-Hulud (CVE-2026-45321). | Kitploit
Ferramentas/GitHubGitHub/digi4care/shai-scan
Gerenciamento de Indicadores de Comprometimento (IOC)Análise EstáticaScanners de VulnerabilidadesAnálise de CódigoDevSecOpsDetecção de SegredosInteligência de AmeaçasSegurança da Cadeia de SuprimentosResposta a Incidentes
GitHubdigi4care/shai-scan

shai-scan

Scanner CLI sem dependências para comprometimentos da cadeia de suprimentos npm/PyPI. Detecta pacotes comprometidos em lockfiles e IOCs de nível de sistema de ataques como Mini Shai-Hulud (CVE-2026-45321).

7há 3 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Ver Repositório
Compartilhar

shai-scan

Scanner CLI sem dependências para comprometimentos na cadeia de suprimentos do npm e PyPI.

npm version License: MIT Node.js

Por quê?

Em 11 de maio de 2026, um worm de cadeia de suprimentos autopropagante apelidado de Mini Shai-Hulud (CVE-2026-45321, GHSA-g7cv-rxg3-hmpx) comprometeu o ecossistema npm. Atribuído ao TeamPCP (também conhecido como DeadCatx3, PCPcat, ShellForce, CipherForce), o malware sequestrava tokens OIDC do GitHub Actions para publicar pacotes maliciosos com proveniência válida do SLSA Build Level 3. Ele roubava credenciais de pipelines de CI/CD, provedores de nuvem e carteiras de criptomoedas, e instalava hooks de persistência no Claude Code e no VS Code. Um dead-man switch embutido ameaçava apagar o diretório inicial do usuário se os tokens do npm fossem revogados.

Os pacotes afetados incluíram os pacotes router e start do TanStack, SDKs da Mistral AI, cliente OpenSearch, ferramentas da UiPath e dezenas de outros. Como os ataques à cadeia de suprimentos se espalham rápido, as organizações precisam de um scanner leve e confiável que possam executar em qualquer lugar sem adicionar novas dependências à sua própria superfície de ataque.

Recursos

  • Varredura de lockfiles — Detecta pacotes npm e PyPI comprometidos em package-lock.json, pnpm-lock.yaml, yarn.lock, bun.lock, bun.lockb, poetry.lock, Pipfile.lock e requirements.txt
  • Verificações de IOC do sistema — Examina processos em execução, artefatos do sistema de arquivos, conexões de rede e caminhos de persistência conhecidos em busca de indicadores de comprometimento
  • Zero dependências em tempo de execução — Usa apenas módulos nativos do Node.js/Bun (fs, path, child_process, os). O scanner não aumenta o risco da sua cadeia de suprimentos
  • Múltiplos formatos de saída — Texto legível por humanos, JSON legível por máquina e SARIF para o GitHub Code Scanning
  • Nativo para CI/CD — Códigos de saída projetados para automação (0 = limpo, 1 = descobertas, 2 = erro)
  • Independente de caminho — Aceita qualquer diretório; o padrão é o diretório de trabalho atual
  • Banco de dados baseado em campanhas — Novas ondas de ataque são adicionadas como campanhas distintas em src/db.ts; atualize o arquivo e execute novamente

Instalação

Nenhuma instalação necessária. Execute diretamente com o executor de pacotes de sua preferência:

root@kitploit:~
# npx
npx @digi4care/shai-scan

# bunx
bunx @digi4care/shai-scan

# pnpm dlx
pnpm dlx @digi4care/shai-scan

Instalação global (opcional):

root@kitploit:~
npm install -g @digi4care/shai-scan
# or
pnpm add -g @digi4care/shai-scan

A partir do código-fonte:

root@kitploit:~
git clone https://github.com/digi4care/shai-scan.git
cd shai-scan
pnpm install
bun run src/cli.ts --help   # Bun (recommended for development)
# or build and run with Node.js:
pnpm run build && node dist/cli.js --help

Uso

Escanear o projeto atual

root@kitploit:~
npx @digi4care/shai-scan

Escanear um caminho específico

root@kitploit:~
npx @digi4care/shai-scan ~/projects/my-app

Saída JSON para automação

root@kitploit:~
npx @digi4care/shai-scan --json .

Saída SARIF para o GitHub Code Scanning

root@kitploit:~
npx @digi4care/shai-scan --sarif --sarif-file results.sarif .

Códigos de saída para CI/CD

root@kitploit:~
#!/bin/bash
npx @digi4care/shai-scan --severity high . || {
  code=$?
  if [ "$code" -eq 1 ]; then
    echo "Supply chain findings detected"
    exit 1
  elif [ "$code" -eq 2 ]; then
    echo "Scanner error"
    exit 2
  fi
}

Integração com CI/CD

GitHub Actions (saída de texto)

root@kitploit:~
name: Supply Chain Scan
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
      - run: pnpm install --frozen-lockfile
      - run: npx @digi4care/shai-scan --severity high .

GitHub Actions (upload SARIF)

root@kitploit:~
name: Supply Chain Scan SARIF
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
  schedule:
    - cron: '0 6 * * 1'

jobs:
  scan:
    runs-on: ubuntu-latest
    permissions:
      security-events: write
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
      - run: pnpm install --frozen-lockfile
      - run: npx @digi4care/shai-scan --sarif --sarif-file results.sarif .
      - uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: results.sarif

Formatos de Saída

FormatoOpçãoDescrição
Texto(padrão)Tabela legível por humanos com as descobertas, incluindo severidade, nome do pacote, versão e detalhes da campanha
JSON--jsonArray JSON estruturado de descobertas, adequado para ingestão em SIEMs ou painéis personalizados
SARIF--sarifFormato OASIS SARIF 2.1.0 para upload no GitHub Code Scanning, GitLab Secure ou outros consumidores de SARIF

Exemplo de JSON:

root@kitploit:~
[
  {
    "package": "@tanstack/react-router",
    "version": "1.169.5",
    "ecosystem": "npm",
    "severity": "critical",
    "campaign": "mini-shai-hulud-wave4",
    "cve": "CVE-2026-45321",
    "reference": "https://github.com/TanStack/router/security/advisories/GHSA-g7cv-rxg3-hmpx"
  }
]

Códigos de Saída

CódigoSignificado
0Nenhum pacote comprometido ou IOC detectado
1Uma ou mais descobertas detectadas
2Erro em tempo de execução (caminho inválido, lockfile ilegível, etc.)

Adicionando Novas Campanhas

Quando um novo ataque à cadeia de suprimentos for descoberto, atualize src/db.ts:

  1. Adicione uma nova matriz CompromisedVersion[] com os pacotes e versões afetados
  2. Acrescente um novo objeto Campaign ao array CAMPAIGNS, incluindo identificadores CVE/GHSA, severidade, descrição, URLs de referência e indicadores IOC
  3. A função buildLookup() reconstrói automaticamente o mapa de consulta na próxima execução

Nenhuma etapa de rebuild é necessária ao usar Bun. Alterações em src/db.ts entram em vigor imediatamente com bun run src/cli.ts. Para o pacote npm, execute pnpm run build após editar.

Considerações de Segurança

  • Zero dependências em tempo de execução: O scanner usa apenas módulos nativos do Node.js/Bun. Ele não baixa nem executa código de terceiros em tempo de execução, eliminando o risco de o próprio scanner se tornar um vetor de comprometimento.

  • pnpm como gerenciador de pacotes: o pnpm usa lockfiles estritos, não executa scripts de ciclo de vida por padrão e suporta armazenamento endereçável por conteúdo. Essas propriedades reduzem a superfície de ataque em comparação com outros gerenciadores de pacotes.

  • Configurações recomendadas do .npmrc: Para proteção máxima ao instalar pacotes, adicione o seguinte ao seu projeto ou ao .npmrc global:

    root@kitploit:~
    ignore-scripts=true
    engine-strict=true
    
  • Sem chamadas de rede: shai-scan não faz "phone home", não baixa assinaturas nem exige chave de API. Todos os dados de campanha acompanham o pacote.

Pacotes Afetados (Campanha Atual)

Os seguintes pacotes e versões são conhecidos por estar comprometidos na CVE-2026-45321 (Mini Shai-Hulud Wave 4). Esta é uma subamostra representativa; a lista completa é mantida em src/db.ts.

PacoteEcossistemaVersões Comprometidas
@tanstack/react-routernpm1.169.5, 1.169.8
@tanstack/vue-routernpm1.169.5, 1.169.8
@tanstack/solid-routernpm1.169.5, 1.169.8
@tanstack/router-corenpm1.169.5, 1.169.8
@tanstack/react-startnpm1.167.68, 1.167.71
@mistralai/mistralainpm2.2.2, 2.2.3, 2.2.4
@mistralai/mistralai-azurenpm1.7.2, 1.7.3
mistralaipypi2.4.6
@opensearch-project/opensearchnpm3.5.3, 3.6.2, 3.7.0, 3.8.0
@uipath/robotnpm1.3.4
@squawk/airwaysnpm0.4.2, 0.4.3, 0.4.5
@draftauth/corenpm0.13.1, 0.13.2
@tallyui/corenpm0.2.1, 0.2.2, 0.2.3
safe-actionnpm0.8.3, 0.8.4
cmux-agent-mcpnpm0.1.3 - 0.1.8
nextmove-mcpnpm0.1.3, 0.1.4, 0.1.5, 0.1.7
ts-dnanpm3.0.1, 3.0.2, 3.0.4
cross-stitchnpm1.1.3, 1.1.4, 1.1.6
git-git-gitnpm1.0.8 - 1.0.12
git-branch-selectornpm1.3.3 - 1.3.7
agentwork-clinpm0.1.4, 0.1.5
wot-apinpm

Licença

MIT. Consulte LICENSE para obter detalhes.

Aviso Legal

shai-scan é um auxílio de detecção, não um substituto para auditorias de segurança abrangentes, revisão de dependências ou plataformas de inteligência de ameaças. Ele identifica versões comprometidas conhecidas com base no banco de dados fornecido; ataques à cadeia de suprimentos novos ou zero-day podem não ser detectados até que uma campanha seja adicionada. Sempre pratique defesa em profundidade: audite dependências, fixe versões, verifique a proveniência e monitore pipelines de CI/CD.

Baixar ferramenta
0.8.1, 0.8.2, 0.8.4
ml-toolkit-tsnpm1.0.4, 1.0.5
@beproduct/nestjs-authnpm0.1.2 - 0.1.19
@dirigible-ai/sdknpm0.6.2, 0.6.3
@taskflow-corp/clinpm0.1.24 - 0.1.29
@tolka/clinpm1.0.2, 1.0.3, 1.0.4, 1.0.6
@supersurkhet/clinpm0.0.2 - 0.0.7
guardrails-aipypi0.10.1