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
22vor 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

    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

    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:

    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