Zum Inhalt

Garak

Garak ist ein Open-Source-KI-Red-Teaming-Framework, das entwickelt wurde, um die Sicherheit und Robustheit von Large Language Models (LLMs) und KI-Systemen durch adversarielle Tests zu prüfen und zu bewerten.

Installation & Setup

Befehl Beschreibung
pip install garak Installieren Sie Garak über pip
git clone https://github.com/leondz/garak.git Von GitHub klonen
cd garak && pip install -e . In Entwicklungsmodus installieren
garak --help Hilfe und verfügbare Optionen anzeigen
garak --list-probes Alle verfügbaren Probes auflisten
garak --list-detectors Alle verfügbaren Detektoren auflisten
garak --list-generators Alle verfügbaren Generatoren auflisten
## Grundlegende Nutzung
Befehl Beschreibung
garak --model-type openai --model-name gpt-3.5-turbo Test OpenAI GPT-3.5-turbo
garak --model-type huggingface --model-name microsoft/DialoGPT-medium HuggingFace Modell testen
garak --model-type replicate --model-name replicate/llama-2-70b-chat Test Replicate-Modell
garak --probes encoding Encoding-Schwachstellen-Sonden ausführen
garak --probes malwaregen Malware-Generierungssonden ausführen
garak --probes promptinject Prompt-Injection-Proben ausführen
## Probe-Kategorien

Sicherheits-Probes

Befehl Beschreibung
garak --probes encoding.InjectBase64 Test base64 Encoding Injection
garak --probes encoding.InjectHex Test hexadezimale Encoding-Injektion
garak --probes encoding.InjectMorse Test Morse-Code-Verschlüsselungs-Injektion
garak --probes encoding.InjectROT13 Test ROT13 Encoding Injection
garak --probes malwaregen.Evasion Test Malware Generation Evasion
garak --probes promptinject.AttackPrompt Test Prompt Injection Attacks
### Voreingenommenheits- und Toxizitäts-Probes
Befehl Beschreibung
--------- -------------
garak --probes bias.BiasProbe Test auf Voreingenommenheit in Modell-Antworten
garak --probes toxicity.ToxicityProbe Test auf toxische Inhaltsgenerierung
garak --probes hate.HateSpeechProbe Test zur Generierung von Hassrede
garak --probes discrimination.DiscriminationProbe Test auf diskriminierende Inhalte
### Datenlecks-Probes
Befehl Beschreibung
--------- -------------
garak --probes leakage.PIILeakage Test auf PII-Datenlecks
garak --probes leakage.TrainingDataLeakage Test auf Exposition von Trainingsdaten
garak --probes leakage.SystemPromptLeakage Test auf System-Prompt-Offenlegung
## Erweiterte Konfiguration
Befehl Beschreibung
garak --config config.yaml Benutzerdefinierte Konfigurationsdatei verwenden
garak --output-dir results/ Ausgabeverzeichnis angeben
garak --report-prefix test_run_ Präfix für Berichtsdatei festlegen
garak --parallel-requests 5 Anzahl paralleler Anfragen festlegen
garak --temperature 0.7 Modell-Temperatur festlegen
garak --max-tokens 150 Maximale Token pro Antwort festlegen
## Benutzerdefinierte Probes
Befehl Beschreibung
garak --probes myprobe.CustomProbe Benutzerdefinierten Probe ausführen
garak --probe-options '{"param": "value"}' Parameter an Probe übergeben
garak --probe-tags security,injection Proben nach Tags filtern
## Detektoren und Evaluierung
Befehl Beschreibung
garak --detectors always.Pass Verwende Always-Pass-Detektor
garak --detectors mitigation.MitigationBypass Verwende mitigation bypass detector
garak --detectors specialwords.SlursReclaimedSlurs Erkenne Beleidigungen und reklamierte Beleidigungen
garak --detectors toxicity.ToxicityClassifier Toxizitätsklassifikator verwenden
## Ausgabe und Berichterstattung
Befehl Beschreibung
garak --report-format json JSON-Bericht generieren
garak --report-format html HTML-Bericht generieren
garak --report-format csv CSV-Bericht generieren
garak --verbose Verbose-Ausgabe aktivieren
garak --log-level DEBUG Debug-Protokollierungsebene festlegen
## Modell-Integration

OpenAI-Modelle

Befehl Beschreibung
garak --model-type openai --model-name gpt-4 Test GPT-4
garak --model-type openai --model-name gpt-3.5-turbo-16k Test GPT-3.5-turbo mit 16k Kontext
export OPENAI_API_KEY=your_key OpenAI API-Schlüssel festlegen
### HuggingFace-Modelle
Befehl Beschreibung
--------- -------------
garak --model-type huggingface --model-name facebook/opt-1.3b Test OPT-Modell
garak --model-type huggingface --model-name EleutherAI/gpt-j-6B Test GPT-J Modell
export HF_TOKEN=your_token HuggingFace Token festlegen
### Lokale Modelle
Befehl Beschreibung
--------- -------------
garak --model-type ggml --model-name path/to/model.bin Test GGML Modell
garak --model-type llamacpp --model-name path/to/model.gguf Test llama.cpp Modell
## Batch-Testing
Befehl Beschreibung
garak --model-list models.txt Teste mehrere Modelle aus Datei
garak --probe-list probes.txt Mehrere Proben aus Datei ausführen
garak --generations 10 Anzahl der Generationen pro Probe festlegen
garak --seed 42 Setze zufälligen Seed für Reproduzierbarkeit
## Sicherheits-Testworkflows

Umfassender Sicherheits-Scan

Befehl Beschreibung
garak --model-type openai --model-name gpt-4 --probes encoding,malwaregen,promptinject --generations 20 Vollständige Security-Probe-Suite
### Voreingenommenheits- und Fairness-Testing
Befehl Beschreibung
--------- -------------
garak --model-type huggingface --model-name microsoft/DialoGPT-medium --probes bias,toxicity,hate --detectors specialwords Bias Testing Suite
### Datenschutz-Testing
Befehl Beschreibung
--------- -------------
garak --model-type openai --model-name gpt-3.5-turbo --probes leakage --detectors pii Privacy Testing Suite
## Konfigurationsdateien

Basis-Konfiguration (config.yaml)

model:
  type: openai
  name: gpt-3.5-turbo
  temperature: 0.7
  max_tokens: 150

probes:
  - encoding
  - promptinject
  - malwaregen

detectors:
  - always.Pass
  - mitigation.MitigationBypass

output:
  directory: results/
  format: json
  prefix: garak_test_

Erweiterte Konfiguration

parallel_requests: 5
generations: 10
seed: 42
log_level: INFO

model:
  type: huggingface
  name: microsoft/DialoGPT-medium
  device: cuda
  batch_size: 4

probe_options:
  encoding.InjectBase64:
    payload_count: 50
  promptinject.AttackPrompt:
    attack_types: ["jailbreak", "roleplay"]

Fehlerbehebung

Would you like me to continue with the remaining sections? | Befehl | Beschreibung | |---------|-------------| | garak --check-models | Modell-Konnektivität überprüfen | | garak --dry-run | Testkonfiguration ohne Ausführung von Proben | | garak --debug | Debug-Modus aktivieren | | garak --list-model-types | Unterstützte Modelltypen anzeigen | | pip install garak[dev] | Mit Entwicklungsabhängigkeiten installieren |

Integration mit CI/CD

Befehl Beschreibung
garak --model-type openai --model-name gpt-3.5-turbo --probes security --exit-on-fail Fail CI bei Sicherheitsproblemen
garak --config ci_config.yaml --report-format json > results.json Generiere CI-freundliche Ausgabe
## Best Practices
  • Teste Modelle immer vor der Produktivbereitstellung
  • Verwende mehrere Probenkategorien für umfassende Tests
  • Setze geeignete Generierungszählungen für statistische Signifikanz
  • Konfiguriere angemessene API-Ratenlimits, um Drosselung zu vermeiden
  • Speichere sensible API-Schlüssel als Umgebungsvariablen
  • Überprüfe und analysiere generierte Berichte gründlich
  • Implementiere kontinuierliche Tests in Entwicklungs-Pipelines
  • Dokumentiere und verfolge Sicherheits-Testergebnisse über die Zeit