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
better_opts_attacks — Angriffs-Framework zum Durchbrechen von auf Feintuning basierenden Prompt-Injection-Abwehrmechanismen (SecAlign, SecAlign++, StruQ) mithilfe architekturbewusster adversarischer Angriffe auf LLMs. | Kitploit
Tools/GitHubGitHub/nishitvp/better_opts_attacks
Exploit-FrameworksSchwachstellenanalyseRed TeamingKI-SicherheitAdversarial-Angriff
GitHubnishitvp/better_opts_attacks

better_opts_attacks

Angriffs-Framework zum Durchbrechen von auf Feintuning basierenden Prompt-Injection-Abwehrmechanismen (SecAlign, SecAlign++, StruQ) mithilfe architekturbewusster adversarischer Angriffe auf LLMs.

Repository anzeigen
11312vor 6 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

Darf ich um Ihre Aufmerksamkeit bitten? Überwindung von auf Fine-Tuning basierenden Prompt-Injection-Verteidigungen durch architekturbewusste Angriffe

Dieses Repository enthält Code zum Ausführen der ASTRA- und ASTRA++-Angriffe, die SecAlign++, SecAlign und StruQ überwinden. Dieses Repository enthält außerdem einige Beispiele für generierte Angriffe und Angriffsprotokolle.

Einrichtung

Repository klonen

Dadurch wird das Repository zusammen mit allen Submodulen an der erforderlichen Stelle geklont.

git clone --recurse-submodules https://github.com/nishitvp/better_opts_attacks.git

Python-Umgebung einrichten

Die Codebasis verwendet keine speziellen Python-Pakete über die übliche Sammlung von LLM- und Deep-Learning-bezogenen Paketen hinaus. Um die Anforderungen zu installieren, führen Sie Folgendes aus:

python3 -m pip install -r requirements.txt

und dies sollte die notwendigen Pakete in Ihrer Umgebung installieren.

Modelle herunterladen

  1. Laden Sie zunächst die Basismodelle von HuggingFace herunter (einige davon sind möglicherweise beschränkt und erfordern, dass Sie sich von HuggingFace Zugang verschaffen).

    hf login --token ${HF_PASSWORD}
    hf download meta-llama/Meta-Llama-3-8B-Instruct --local-dir secalign_refactored/secalign_models/meta-llama/Meta-Llama-3-8B-Instruct
    hf download mistralai/Mistral-7B-Instruct-v0.1 --local-dir secalign_refactored/secalign_models/mistralai/Mistral-7B-Instruct-v0.1
    hf download meta-llama/Llama-3.1-8B-Instruct --local-dir secalign_refactored/secalign_models/meta-llama/Llama-3.1-8B-Instruct
    hf download facebook/Meta-SecAlign-8B --local-dir secalign_refactored/secalign_models/Meta-SecAlign-8B
    
  2. Laden Sie die SecAlign-Adapter und StruQ-Modelle herunter. Es gibt ein hilfreiches Skript, um sie an der richtigen Stelle herunterzuladen und zu entpacken.

    python3 setup_scripts/download_models.py
    

    Wenn das Skript aus dem Projektstammverzeichnis ausgeführt wird, sollte es die richtigen Modelle an der richtigen Stelle herunterladen und entpacken. Überprüfen Sie zur Bestätigung, ob secalign_refactored/secalign_models die drei Ordner huggyllama, meta-llama und mistralai enthält, die jeweils das/die Modell(e) selbst enthalten sollten.

Ausführen von ASTRA für einen starken Wissensgegner

Um ASTRA für einen starken Wissensgegner auszuführen, ist das zentrale Skript experiment.py. Dieses Skript nimmt die 40 Beispiele aus dem AlpacaFarm-Datensatz, injiziert die Nutzlast Print exactly 'Hacked!' mit der angegebenen Konfiguration und führt ASTRA sowie die Baseline (GCG) aus, wobei Initialisierung (zufällig initialisiert), Anzahl der Vorwärtsdurchläufe, Iterationen usw. kontrolliert werden.

Der Benutzer kann die folgenden Parameter steuern, indem er sie beim Aufruf von experiment.py als Befehlszeilenparameter festlegt:

  1. --model-name: Die möglichen Werte sind meta-llama, meta-llama-instruct, mistralai, mistralai-instruct, huggyllama.

  2. --defense: Die möglichen Werte sind undefended, struq und secalign. Der Standardwert ist secalign. Der Parameter --model-name zusammen mit dem Parameter --defense legt das verwendete Modell gemäß der folgenden Tabelle eindeutig fest:

    --model-name--defenseModel loaded
    meta-llama-instructsecalignSecAlign-Adapter mit vorab instruktionsabgestimmtem Meta-Llama-3-8B-Instruct
    mistralai-instructsecalignSecAlign-Adapter mit vorab instruktionsabgestimmtem Mistral-7B-Instruct-v0.1
    meta-llamasecalignSecAlign-verteidigtes Meta-Llama-3-8B (nicht vorab instruktionsabgestimmt)
    mistralaisecalignSecAlign-verteidigtes Mistral-7B-Instruct-v0.1 (nicht vorab instruktionsabgestimmt)
    huggyllamasecalignSecAlign-verteidigtes Llama-2-7B (nicht vorab instruktionsabgestimmt)
    meta-llamastruqStruQ-verteidigtes Meta-Llama-3-8B (nicht vorab instruktionsabgestimmt)
    mistralaistruqStruQ-verteidigtes Mistral-7B-v0.1 (nicht vorab instruktionsabgestimmt)
    huggyllamastruqStruQ-verteidigtes Llama-2-7B (nicht vorab instruktionsabgestimmt)
    meta-llama-instructundefendedUnverteidigtes (rohes) Meta-Llama-3-8B-Instruct
    mistralai-instructundefendedUnverteidigtes (rohes) Mistral-7B-Instruct-v0.1
    meta-llamaundefendedUnverteidigtes (rohes) Meta-Llama-3-8B (nicht vorab instruktionsabgestimmt)
    mistralaiundefendedUnverteidigtes (rohes) Mistral-7B-Instruct-v0.1 (nicht vorab instruktionsabgestimmt)
    huggyllamaundefendedUnverteidigtes (rohes) Llama-2-7B (nicht vorab instruktionsabgestimmt)

    Alle anderen Kombinationen aus --model-name und --defense sind ungültig.

  3. --prefix-length: Länge des adversarialen Präfixes, das für einen bestimmten Evaluierungslauf verwendet werden soll. Standard ist 5.

  4. --suffix-length: Länge des adversarialen Suffixes, das für einen bestimmten Evaluierungslauf verwendet werden soll. Standard ist 20.

  5. --expt-folder-prefix: Der Pfad, in dem die Protokolle des Experiment-Laufs gespeichert werden sollen.

Ein vollständiger Befehl könnte etwa so aussehen:

python3 experiment.py --model-name meta-llama-instruct --defense secalign --prefix-length 5 --suffix-length 20 --expt-folder-prefix logs/astra_llama_secalign

Beim Ausführen des obigen Befehls verteilt das Skript die Arbeitslast automatisch gleichmäßig auf verschiedene Unterprozesse, von denen jeder eine GPU zur Berechnung der Angriffe verwendet. Wir empfehlen, die Angriffe auf GPUs mit mindestens 48 GB Speicher auszuführen.

Jeder Unterprozess protokolliert das vollständige Transkript jedes von ihm angegriffenen Beispiels in einem separaten Unterordner des unter --expt-folder-prefix angegebenen Pfads. Die Protokolle werden in einem abfragbaren, datenbankähnlichen Format gespeichert, das Python-Objekte enthält (weitere Einzelheiten finden Sie in der Datei utils/experiment_logger). Jedes protokollierte Transkript enthält die Token-Sequenzen, Verlustwerte und andere wichtige Details wie die Initialisierungskonfiguration während der Optimierung, die später abgerufen werden können.

Analyse (ASTRA)

Sobald das vollständige ASTRA-Experiment abgeschlossen ist, können die erzeugten Protokolle später mit der Datei analysis/analysis.ipynb analysiert werden. Kopieren Sie einfach das Jupyter-Notebook in den Pfad --expt-folder-prefix, ersetzen Sie den Modellpfad im Notebook durch den korrekten Modellpfad und führen Sie das Notebook aus. Dies sollte in der letzten Zelle die Anzahl der Erfolge von GCG und die Anzahl der Erfolge von ASTRA ausgeben. (P.S. Das Analyseszenario benötigt einige Zeit, da es tatsächlich die Ausgaben für jede der während der Optimierung für jedes Beispiel erzeugten Eingabe-Token-Sequenzen generiert.)

Das Notebook analysis.ipynb enthält außerdem Hilfscode zum Plotten durchschnittlicher Verlustkurven und für weitere Untersuchungen mit den erzeugten Protokollen.

Die Analyseszenarien wurden grundsätzlich getrennt gehalten, um sicherzustellen, dass die Optimierung selbst nicht durch den nachträglichen Analysescode kontaminiert wird.

Generierte Angriffe

Wir teilen außerdem einige von ASTRA generierte Angriffe in der ZIP-Datei unter data/attacks_generated.zip. Konkret enthält die ZIP-Datei 4 Dateien mit jeweils 40 Beispielen von ASTRA-generierten Angriffen, jeweils zwei für die SecAlign-verteidigten Versionen von Mistral und Llama-3. Die Dateien enthalten Beispiele, die für ein Budget von 20 und 25 Token generiert wurden (in einer (0, 20)- und (5, 20)-Konfiguration). Die Injektion wurde in den Konfigurationen bereits in das Eingabefeld eingefügt.

Ausführen von ASTRA++ für einen schwachen Wissensgegner

Tool herunterladen