Zum Inhalt springen

API-Keys gehören nicht ins Repository

nosecrets prüft staged Dateien vor dem Commit auf Secrets, Tokens und auffällige High-Entropy-Strings – lokal, schnell und ohne Cloud-Abhängigkeit.

Pre-commit Offline Entropy Detection 100+ Regeln Git-Integration Konfigurierbar Rust Open Source

Worum es geht

nosecrets ist kein allgemeiner Security-Scanner für alles, sondern ein bewusst fokussiertes Werkzeug für einen kritischen Moment: den lokalen Commit.

Statt Git-History zu durchforsten oder Daten an einen externen Dienst zu schicken, prüft nosecrets genau dort, wo versehentliche Leaks meistens entstehen: in staged Dateien kurz vor dem Commit.

Das Tool kombiniert signaturbasierte Erkennung mit konfigurierbarer Entropy-Analyse, Fingerprint-Ignores und klaren Exit-Codes. Genau deshalb passt es gut in Pre-commit-Hooks, lokale Workflows und CI/CD-Pipelines.

Installation

curl -fsSL https://raw.githubusercontent.com/casoon/nosecrets/main/install.sh | sh

Wie es arbeitet

Staged Dateien einsammeln

nosecrets scannt gezielt das, was wirklich committed werden soll.

Regeln und Entropy prüfen

Bekannte Secret-Muster plus unbekannte auffällige Tokens werden erkannt.

Ignores und Allowlists anwenden

False Positives lassen sich sauber begrenzen statt pauschal abzuschalten.

Commit blockieren oder freigeben

Nur Findings mit relevanter Severity stoppen den Vorgang.

CLI im Alltag

# Staged Files prüfen (Pre-commit)
nosecrets scan --staged

# Verzeichnis scannen
nosecrets scan src/

# Interaktiv: Ignores hinzufügen
nosecrets scan --staged --interactive

# Einzelnen Fund ignorieren
nosecrets ignore nsi_abcdef123456
Exit 0 — keine kritischen Funde
Exit 1 — kritische/hohe/mittlere Funde

Konfiguration

`.nosecrets.toml`

Pfad-Ignores, Allowlists und Entropy-Verhalten lassen sich zentral konfigurieren.

[ignore]
paths = ["vendor/", "node_modules/", "*.lock"]

[allow]
patterns = ["EXAMPLE", "changeme", "YOUR_.*_HERE"]

[entropy]
enabled = true
min_length = 20
threshold = 4.2
require_context = true

`.nosecretsignore` und Inline-Ignores

Einzelne Findings können per Fingerprint oder direkt im Code unterdrückt werden, ohne den Scanner insgesamt stumpf zu schalten.

nsi_a1b2c3d4e5f6
nsi_b2c3d4e5f6a7:src/config.py

api_key = "sk_test_xxx"  # @nosecrets-ignore

Was technisch wichtig ist

Signaturbasierte Erkennung

Über 100 Regeln für AWS, GitHub, Stripe, PostgreSQL, Twilio und viele weitere Dienste.

Entropy Detection

Erkennt unbekannte Secrets und proprietäre Tokens durch Shannon-Entropy-Analyse — auch ohne bekannte Signatur.

Vollständig offline

Keine API-Aufrufe, keine Datenübertragung. Alles läuft lokal auf deiner Maschine.

Pre-commit fokussiert

Gebaut für den Einsatz als Git-Hook. Schnell, kein History-Scan, kein Overhead.

Wenig False Positives

UUID-, Hex-, Platzhalter- und CSS-Guards reduzieren Fehlalarme gezielt.

Flexible Konfiguration

.nosecrets.toml, Inline-Ignores, Fingerprint-Ignores und globale Allowlists.

Integration

Pre-commit Hook

#!/bin/sh
nosecrets scan --staged

GitHub Actions

- name: Install nosecrets
  run: npm install -g @casoon/nosecrets

- name: Scan for secrets
  run: nosecrets scan src/ --format json

Perfekt für

Solo-Entwickler
Open-Source-Projekte
Teams & Agenturen
CI/CD-Pipelines
Security-Reviews

Mehr Kontext zur Motivation und zur Einordnung des Tools gibt es im begleitenden Artikel.

Zum Artikel