Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
shai-scan — Befehlszeilen-Scanner ohne Abhängigkeiten für npm/PyPI-Lieferkettenkompromittierungen. Erkennt kompromittierte Pakete in Lockfiles und systemweite IOCs von Angriffen wie Mini Shai-Hulud (CVE-2026-45321). | Kitploit
Tools/GitHubGitHub/digi4care/shai-scan
Management von Indicators of Compromise (IOC)Statische AnalyseSchwachstellenscannerCode-AnalyseDevSecOpsSecret-ErkennungBedrohungsanalyseLieferkettensicherheitIncident Response
GitHubdigi4care/shai-scan

shai-scan

Befehlszeilen-Scanner ohne Abhängigkeiten für npm/PyPI-Lieferkettenkompromittierungen. Erkennt kompromittierte Pakete in Lockfiles und systemweite IOCs von Angriffen wie Mini Shai-Hulud (CVE-2026-45321).

15vor 4 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Repository anzeigen
Teilen
# shai-scan

> Zero-Dependency-CLI-Scanner für npm- und PyPI-Lieferkettenkompromittierungen.

[![npm version](https://img.shields.io/npm/v/@digi4care/shai-scan)](https://www.npmjs.com/package/@digi4care/shai-scan)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![Node.js](https://img.shields.io/badge/node-%3E=22-brightgreen)](https://nodejs.org/)

## Warum?

Am 11. Mai 2026 kompromittierte ein sich selbst verbreitender Lieferkettenwurm namens **Mini Shai-Hulud** (CVE-2026-45321, GHSA-g7cv-rxg3-hmpx) das npm-Ökosystem. Der Malware wurde **TeamPCP** (auch bekannt als DeadCatx3, PCPcat, ShellForce, CipherForce) zugeschrieben. Er kaperte GitHub Actions OIDC-Tokens, um bösartige Pakete mit gültiger SLSA Build Level 3-Provenienz zu veröffentlichen. Er stahl Anmeldeinformationen aus CI/CD-Pipelines, Cloud-Anbietern und Kryptowährungs-Wallets und installierte Persistenz-Hooks in Claude Code und VS Code. Ein eingebauter Dead-Man-Switch drohte, das Home-Verzeichnis des Benutzers zu löschen, wenn npm-Tokens widerrufen wurden.

Betroffene Pakete umfassten TanStack Router und Start-Pakete, Mistral AI SDKs, OpenSearch-Client, UiPath-Tooling und Dutzende andere. Da Lieferkettenangriffe schnell ablaufen, benötigen Organisationen einen leichten, vertrauenswürdigen Scanner, den sie überall ausführen können, ohne ihrer eigenen Angriffsfläche neue Abhängigkeiten hinzuzufügen.

## Funktionen

- **Lockfile-Scanning** — Erkennt kompromittierte npm- und PyPI-Pakete in `package-lock.json`, `pnpm-lock.yaml`, `yarn.lock`, `bun.lock`, `bun.lockb`, `poetry.lock`, `Pipfile.lock` und `requirements.txt`
- **System-IOC-Prüfungen** — Durchsucht laufende Prozesse, Dateisystem-Artefakte, Netzwerkverbindungen und bekannte Persistenzpfade auf Indikatoren einer Kompromittierung
- **Null Laufzeitabhängigkeiten** — Verwendet nur Node.js/Bun-Built-ins (`fs`, `path`, `child_process`, `os`). Der Scanner erhöht Ihr Lieferkettenrisiko nicht
- **Mehrere Ausgabeformate** — Menschenlesbarer Text, maschinenlesbares JSON und SARIF für GitHub Code Scanning
- **CI/CD-nativ** — Exit-Codes für die Automatisierung ausgelegt (`0` = sauber, `1` = Funde, `2` = Fehler)
- **Pfadagnostisch** — Akzeptiert jedes Verzeichnis; standardmäßig das aktuelle Arbeitsverzeichnis
- **Kampagnenbasierte Datenbank** — Neue Angriffswellen werden als einzelne Kampagnen in `src/db.ts` hinzugefügt; die Datei aktualisieren und erneut ausführen

## Installation

Keine Installation erforderlich. Direkt mit Ihrem bevorzugten Paket-Runner ausführen:

```bash
# npx
npx @digi4care/shai-scan

# bunx
bunx @digi4care/shai-scan

# pnpm dlx
pnpm dlx @digi4care/shai-scan
```

Globale Installation (optional):

```bash
npm install -g @digi4care/shai-scan
# oder
pnpm add -g @digi4care/shai-scan
```

Aus dem Quellcode:

```bash
git clone https://github.com/digi4care/shai-scan.git
cd shai-scan
pnpm install
bun run src/cli.ts --help   # Bun (für die Entwicklung empfohlen)
# oder bauen und mit Node.js ausführen:
pnpm run build && node dist/cli.js --help
```

## Verwendung

### Aktuelles Projekt scannen

```bash
npx @digi4care/shai-scan
```

### Bestimmten Pfad scannen

```bash
npx @digi4care/shai-scan ~/projects/my-app
```

### JSON-Ausgabe für die Automatisierung

```bash
npx @digi4care/shai-scan --json .
```

### SARIF-Ausgabe für GitHub Code Scanning

```bash
npx @digi4care/shai-scan --sarif --sarif-file results.sarif .
```

### CI/CD-Exit-Codes

```bash
#!/bin/bash
npx @digi4care/shai-scan --severity high . || {
  code=$?
  if [ "$code" -eq 1 ]; then
    echo "Lieferketten-Funde erkannt"
    exit 1
  elif [ "$code" -eq 2 ]; then
    echo "Scanner-Fehler"
    exit 2
  fi
}
```

## CI/CD-Integration

### GitHub Actions (Textausgabe)

```yaml
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 (SARIF-Upload)

```yaml
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
```

## Ausgabeformate

| Format | Flag | Beschreibung |
|--------|------|-------------|
| Text   | (Standard) | Menschenlesbare Tabelle der Funde mit Schweregrad, Paketname, Version und Kampagnendetails |
| JSON   | `--json` | Strukturiertes JSON-Array der Funde, geeignet für die Aufnahme in SIEMs oder benutzerdefinierte Dashboards |
| SARIF  | `--sarif` | OASIS SARIF 2.1.0-Format für den Upload zu GitHub Code Scanning, GitLab Secure oder anderen SARIF-Konsumenten |

Beispiel-JSON-Auszug:

```json
[
  {
    "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"
  }
]
```

## Exit-Codes

| Code | Bedeutung |
|------|---------|
| 0    | Keine kompromittierten Pakete oder IOCs erkannt |
| 1    | Ein oder mehrere Funde erkannt |
| 2    | Laufzeitfehler (ungültiger Pfad, nicht lesbare Lockfile usw.) |

## Hinzufügen neuer Kampagnen

Wenn ein neuer Lieferkettenangriff entdeckt wird, aktualisieren Sie `src/db.ts`:

1. Fügen Sie ein neues `CompromisedVersion[]`-Array mit den betroffenen Paketen und Versionen hinzu
2. Hängen Sie ein neues `Campaign`-Objekt an das `CAMPAIGNS`-Array an, einschließlich CVE/GHSA-Identifikatoren, Schweregrad, Beschreibung, Referenz-URLs und IOC-Indikatoren
3. Die Funktion `buildLookup()` erstellt die Nachschlagetabelle beim nächsten Lauf automatisch neu

Bei Verwendung von Bun ist kein Neubauschritt erforderlich. Änderungen an `src/db.ts` werden mit `bun run src/cli.ts` sofort wirksam. Für das npm-Paket führen Sie nach der Bearbeitung `pnpm run build` aus.

## Sicherheitshinweise

- **Null Laufzeitabhängigkeiten**: Der Scanner verwendet nur Node.js/Bun-Built-in-Module. Er lädt zur Laufzeit keinen Drittanbieter-Code herunter oder führt ihn aus, wodurch das Risiko eliminiert wird, dass der Scanner selbst zu einem Kompromittierungsvektor wird.
- **pnpm als Paketmanager**: pnpm verwendet strikte Lockfiles, führt standardmäßig keine Lebenszyklus-Skripte aus und unterstützt inhaltsadressierbaren Speicher. Diese Eigenschaften verringern die Angriffsfläche im Vergleich zu anderen Paketmanagern.
- **Empfohlene `.npmrc`-Einstellungen**: Für maximalen Schutz bei der Installation von Paketen fügen Sie Folgendes zu Ihrer Projekt- oder globalen `.npmrc` hinzu:

  ```ini
  ignore-scripts=true
  engine-strict=true
  ```

- **Keine Netzwerkaufrufe**: `shai-scan` telefoniert nicht nach Hause, lädt keine Signaturen herunter und benötigt keinen API-Schlüssel. Alle Kampagnendaten werden mit dem Paket ausgeliefert.

## Betroffene Pakete (Aktuelle Kampagne)

Die folgenden Pakete und Versionen sind bekanntermaßen in **CVE-2026-45321** (Mini Shai-Hulud Wave 4) kompromittiert. Dies ist eine repräsentative Teilmenge; die vollständige Liste wird in `src/db.ts` gepflegt.

| Paket | Ökosystem | Kompromittierte Versionen |
|---------|-----------|---------------------|
| `@tanstack/react-router` | npm | 1.169.5, 1.169.8 |
| `@tanstack/vue-router` | npm | 1.169.5, 1.169.8 |
| `@tanstack/solid-router` | npm | 1.169.5, 1.169.8 |
| `@tanstack/router-core` | npm | 1.169.5, 1.169.8 |
| `@tanstack/react-start` | npm | 1.167.68, 1.167.71 |
| `@mistralai/mistralai` | npm | 2.2.2, 2.2.3, 2.2.4 |
| `@mistralai/mistralai-azure` | npm | 1.7.2, 1.7.3 |
| `mistralai` | pypi | 2.4.6 |
| `@opensearch-project/opensearch` | npm | 3.5.3, 3.6.2, 3.7.0, 3.8.0 |
| `@uipath/robot` | npm | 1.3.4 |
| `@squawk/airways` | npm | 0.4.2, 0.4.3, 0.4.5 |
| `@draftauth/core` | npm | 0.13.1, 0.13.2 |
| `@tallyui/core` | npm | 0.2.1, 0.2.2, 0.2.3 |
| `safe-action` | npm | 0.8.3, 0.8.4 |
| `cmux-agent-mcp` | npm | 0.1.3 - 0.1.8 |
| `nextmove-mcp` | npm | 0.1.3, 0.1.4, 0.1.5, 0.1.7 |
| `ts-dna` | npm | 3.0.1, 3.0.2, 3.0.4 |
| `cross-stitch` | npm | 1.1.3, 1.1.4, 1.1.6 |
| `git-git-git` | npm | 1.0.8 - 1.0.12 |
| `git-branch-selector` | npm | 1.3.3 - 1.3.7 |
| `agentwork-cli` | npm | 0.1.4, 0.1.5 |
| `wot-api` | npm | 0.8.1, 0.8.2, 0.8.4 |
| `ml-toolkit-ts` | npm | 1.0.4, 1.0.5 |
| `@beproduct/nestjs-auth` | npm | 0.1.2 - 0.1.19 |
| `@dirigible-ai/sdk` | npm | 0.6.2, 0.6.3 |
| `@taskflow-corp/cli` | npm | 0.1.24 - 0.1.29 |
| `@tolka/cli` | npm | 1.0.2, 1.0.3, 1.0.4, 1.0.6 |
| `@supersurkhet/cli` | npm | 0.0.2 - 0.0.7 |
| `guardrails-ai` | pypi | 0.10.1 |

## Lizenz

MIT. Siehe [LICENSE](https://github.com/digi4care/shai-scan/blob/main/LICENSE) für Details.

## Haftungsausschluss

`shai-scan` ist eine Erkennungshilfe, kein Ersatz für umfassende Sicherheitsaudits, Abhängigkeitsüberprüfungen oder Bedrohungsanalyseplattformen. Es identifiziert bekannte kompromittierte Versionen basierend auf der mitgelieferten Datenbank; neue oder Zero-Day-Lieferkettenangriffe werden möglicherweise erst erkannt, wenn eine Kampagne hinzugefügt wird. Praktizieren Sie stets verteidigungsorientierte Tiefe: Prüfen Sie Abhängigkeiten, fixieren Sie Versionen, verifizieren Sie die Provenienz und überwachen Sie CI/CD-Pipelines.
Tool herunterladen