Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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
2vor 3 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

root@kitploit:~
autonoma scan .
autonoma fix .
git diff

Installation

root@kitploit:~
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:

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

Probieren Sie es in 60 Sekunden aus

root@kitploit:~
# 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:

root@kitploit:~
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.

root@kitploit:~
# 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.

root@kitploit:~
# 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.

root@kitploit:~
autonoma history-scan .

Vorher / Nachher

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

Vorher

root@kitploit:~
# settings.py
SENDGRID_API_KEY = "sg-live-abc123xyz789"
DB_PASSWORD = "Pr0dAccess2024!"

Nachher (autonoma fix .)

root@kitploit:~
# settings.py
import os
SENDGRID_API_KEY = os.environ["SENDGRID_API_KEY"]
DB_PASSWORD = os.environ["DB_PASSWORD"]

Abgelehnt (Ablehnungs-zuerst-Sicherheit)

root@kitploit:~
# 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


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:

root@kitploit:~
- 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.

root@kitploit:~
# 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

SEC002 kombiniert derzeit Credential-Wert-Muster mit keyword-konditionierter Routing-Logik. Credentials, die sehr untypischen Variablennamen zugewiesen sind, werden möglicherweise nicht erkannt.

Autonoma vermeidet bewusst eine breite, nur auf Entropie basierende Secret-Erkennung, sofern die Präzisionsauswirkung nicht anhand eines gekennzeichneten False-Positive-Korpus gemessen werden kann.


JSON-Schema

autonoma scan gibt einen detect-only-Bericht an stdout aus:

root@kitploit:~
{
  "schema_version": "1.0",
  "tool_name": "autonoma",
  "tool_version": "0.1.5",
  "generated_at": "2026-03-24T12:00:00Z",
  "mode": "detect-only",
  "summary": {
    "files_processed": 3,
    "total_findings": 2,
    "safe_to_fix": 1,
    "refused": 1
  },
  "findings": [
    {
      "file": "settings.py",
      "line": 4,
      "pattern_type": "api_key",
      "severity": "high",
      "rule_id": "SEC002",
      "safe_to_fix": true,
      "suggested_env_var": "SENDGRID_API_KEY",
      "refusal_reason": null,
      "fingerprint": "sha256:abc123..."
    }
  ]
}

Lizenz

MIT-Lizenz

Tool herunterladen
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