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
autonoma — Erkennt und korrigiert automatisch hartcodierte Geheimnisse in Python-Repositories – lehnt ab, wenn die Korrektur Ihren Code beschädigen könnte | Kitploit
Tools/GitHubGitHub/vihaaninnovations/autonoma
Statische AnalyseSchwachstellenanalyseCode-AnalyseDevSecOpsSecret-ErkennungLieferkettensicherheit
GitHubvihaaninnovations/autonoma

autonoma

Erkennt und korrigiert automatisch hartcodierte Geheimnisse in Python-Repositories – lehnt ab, wenn die Korrektur Ihren Code beschädigen könnte

Repository anzeigen
218vor 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 →
Teilen

Autonoma

Python License Platform Edition PyPI Version

Autonoma erkennt hartcodierte Secrets und ersetzt sie mit os.environ[...]-Referenzen mittels AST-Umschreibungen. Änderungen werden nur angewendet, wenn die Umschreibung deterministisch und semantisch erhaltend ist.

Umschreibungen verwenden den geparsten Syntaxbaum – nicht Regex auf rohem Text.
Läuft lokal ohne Netzwerkaufrufe. Funktioniert in CI mit idempotenten, minimalen Diffs.

Autonoma Demo


Welches Problem dies löst

Hartcodierte Secrets in Codebasen:

  • Secrets werden committet und bleiben in der Git-Historie
  • manuelle Behebung bricht Code oder übersieht Randfälle
  • Teams erkennen Leaks, vermeiden aber Auto-Fix-Werkzeuge, weil diese unsicher sind

Die meisten Werkzeuge erkennen sie.
Autonoma berührt nur, was es als sicher zu ändern nachweisen kann.


Kurzbeispiel

autonoma scan .
autonoma fix .
git diff

Installation

pip install autonoma-cli

Pre-Commit-Integration

Fügen Sie dies zu Ihrer .pre-commit-config.yaml hinzu, um zu verhindern, dass Secrets in Ihre Historie gelangen:

- repo: local
  hooks:
    - id: autonoma
      name: Autonoma Scan
      entry: autonoma scan
      language: system
      types: [python]

Probieren Sie es in 60 Sekunden aus

# 1. Erstellen Sie eine Testdatei mit hartcodierten Secrets
cat > test_secrets.py << 'EOF'
SENDGRID_API_KEY = "sg-live-abc123xyz789"
DB_PASSWORD = "Pr0dAccess2024!"
EOF

# Erstellen Sie auch die Umgebungsvertragsdatei (erforderlich für sichere Behebung)
printf 'SENDGRID_API_KEY=\nDB_PASSWORD=\n' > .env.example

# 2. Scannen – gibt JSON-Ergebnisse an stdout aus
autonoma scan test_secrets.py

# 3. Beheben – schreibt die Datei direkt um
autonoma fix test_secrets.py

# 4. Erneut scannen – sollte jetzt sauber sein (Exit 0)
autonoma scan test_secrets.py

# 5. Ergebnis anzeigen
cat test_secrets.py

Erwartete Ausgabe nach der Behebung:

import os
SENDGRID_API_KEY = os.environ["SENDGRID_API_KEY"]
DB_PASSWORD = os.environ["DB_PASSWORD"]

Befehle

scan

Erkennungsmodus. Gibt JSON an stdout und eine menschenlesbare Zusammenfassung an stderr aus. Nicht ändernd – modifiziert niemals Dateien.

# Ein Verzeichnis scannen (JSON-Ergebnisse an stdout)
autonoma scan src/

# JSON-Ergebnisse in eine Datei speichern
autonoma scan src/ > findings.json

Exit-Codes für scan:

CodeBedeutung
0Keine Funde
1Funde erkannt
3Werkzeugfehler

fix

Behebt hartcodierte Secrets durch AST-Umschreibungen. Ändert Dateien direkt.

# Korrekturen anwenden
autonoma fix src/

# Patches vor dem Schreiben anzeigen
autonoma fix src/ --diff

# Prüfbericht schreiben
autonoma fix src/ --report-out audit.json

Exit-Codes für fix:

CodeBedeutung
0Keine Funde – Repository war bereits sauber
1Funde vor der Behebung vorhanden (Behebung kann erfolgreich gewesen sein – Ausgabe auf FIXED/REFUSED-Zählungen prüfen)
3Werkzeugfehler

Der Befehl fix beendet sich mit 1, sobald vor dem Versuch der Behebung Secrets gefunden wurden, unabhängig davon, ob die Umschreibung erfolgreich war. Dies ist beabsichtigt: CI-Pipelines sollen den Commit markieren, in dem Secrets eingeführt wurden, auch nach Auto-Fix. Führen Sie anschließend autonoma scan aus, um zu bestätigen, dass das Repository sauber ist.

history-scan

Durchsucht die Git-Historie nach Secrets, die committet und später entfernt oder geändert wurden.

[!NOTE] Nur Erkennung. Dieser Befehl schreibt die Git-Historie nicht um und ändert keine Commits.

autonoma history-scan .

Vorher / Nachher

Dies sind die Muster, die Autonoma heute tatsächlich behebt.

Vorher

# settings.py
SENDGRID_API_KEY = "sg-live-abc123xyz789"
DB_PASSWORD = "Pr0dAccess2024!"

Nachher (autonoma fix .)

# settings.py
import os
SENDGRID_API_KEY = os.environ["SENDGRID_API_KEY"]
DB_PASSWORD = os.environ["DB_PASSWORD"]

Abgelehnt (Ablehnungs-zuerst-Sicherheit)

# f-string – abgelehnt, da die Umschreibung die Semantik ändern würde
api_key = f"prefix_{BASE_KEY}"
# → REFUSED: refuse_fstring_mixed_expression

# Dict/Verschachtelter Wert – abgelehnt, da das Ziel keine einfache Zuweisung ist
DATABASES = {
    "default": {"PASSWORD": "Pr0d@ccess2024!"}
}
# → REFUSED: unsupported assignment target type

Abgelehnte Funde werden im JSON-Output gemeldet und verursachen einen Non-Zero-Exit in CI. Dateien mit abgelehnten Funden werden niemals modifiziert.


Was Autonoma behebt vs. ablehnt

MusterBeispielVerhaltenGrund
Einfache Zuweisungapi_key = "sk-abc123"BehobenDeterministische AST-Umschreibung
Klassenattributclass C: SECRET = "abc"BehobenDeterministische AST-Umschreibung
Keyword-Argumentconnect(password="abc")BehobenDeterministische AST-Umschreibung
f-stringkey = f"prefix_{v}"AbgelehntUmschreibung würde Laufzeitverhalten ändern
Verkettungkey = "sk-" + suffixAbgelehntUmschreibung würde Laufzeitverhalten ändern
Dict/Verschachtelter Wertcfg = {"pass": "abc"}AbgelehntKein einfaches Zuweisungsziel
MehrfachzuweisungA = B = "secret"AbgelehntMehrdeutiges Ziel
Bereits sicherkey = os.getenv("KEY")ÜbersprungenKeine Änderung erforderlich
Fehlendes .env.examplebeliebiges MusterAbgelehntKein Umgebungsvertrag zur Ableitung des Variablennamens

CI/CD-Funktionen

Eine erneute Ausführung auf einer sauberen Datei nimmt keine Änderungen vor. Umschreibungen behalten die ursprüngliche Einrückung und Kommentare bei. import os wird nur hinzugefügt, wenn es fehlt.

Integration & CI/CD

GitHub Actions (Nur Scannen)

Um Ihren Build fehlschlagen zu lassen, wenn Secrets erkannt werden:

- name: Scan for secrets
  run: autonoma scan .

Legacy-Befehle

analyze wird aus Gründen der Abwärtskompatibilität beibehalten. Migrieren Sie zu scan oder fix.

# Entspricht 'autonoma scan'
autonoma analyze src/ --detect-only

# Entspricht 'autonoma fix'
autonoma analyze src/ --auto-fix

Einschränkungen & Verhalten

Was es behebt

  • Einfache Zuweisungen: API_KEY = "secret"
  • Klassenattribute: class Config: PASS = "secret"
  • Keyword-Argumente: connect(password="secret")

Was es ablehnt (absichtlich)

  • Komplexe Ausdrücke: f-Strings, Verkettungen oder Funktionsaufrufe auf der rechten Seite.
  • Mehrdeutige Ziele: Mehrfachzuweisungen (A = B = "secret") oder Tupel-Entpackung.
  • Verschachtelte/Dict-Werte: Werte innerhalb von Dicts, Listen oder Tupeln.
  • Fehlender Kontext: Wenn im Repository kein .env.example oder Umgebungsvertrag gefunden wird.

Abgelehnte Fälle werden im JSON-Output gemeldet und verursachen Non-Zero-Exit-Codes in CI. Die Datei wird niemals modifiziert, wenn ein darin enthaltenes Problem abgelehnt wird.

Was es nicht tut

  • Es verwendet keine Entropie/Raten (es verwendet heuristischen Namensabgleich).
  • Es ändert in der Community Edition keine Nicht-Python-Dateien.
  • Es löscht Ihren Code nicht; vor der Änderung werden Backups als <datei>.bak erstellt.

Aktuelle Einschränkungen

Tool herunterladen