Jeśli nmap skanuje sieć, a Metasploit testuje aplikacje webowe, to Garak robi to samo dla modeli językowych.
Garak (Generative AI Red-teaming & Assessment Kit) to otwarty skaner podatności od NVIDIA. Automatyzuje testowanie LLM pod kątem prompt injection, jailbreakingu, wycieku danych i dziesiątek innych kategorii zagrożeń.
W tym artykule pokażę, jak zacząć z Garak i jak włączyć go do procesu bezpieczeństwa w twojej firmie.
- Instalacja i pierwsze kroki
- Podstawowe skanowanie
- Kategorie testów
- Skanowanie własnego API
- Interpretacja wyników
- Integracja z CI/CD
Instalacja i pierwsze kroki
Garak wymaga Pythona 3.10+. Instalacja przez pip:
pip install -U garakPo instalacji sprawdź dostępne testy:
garak --list_probesZobaczysz dziesiątki kategorii – od encoding (ataki przez kodowanie) przez dan (jailbreaki) po leakreplay (wycieki danych treningowych).
Garak działa z modelami lokalnymi i zdalnymi. Możesz skanować GPT-4 przez API, Llama na HuggingFace, albo własny model na lokalnym serwerze.
Podstawowe skanowanie
Najprostszy skan – testowanie modelu OpenAI na ataki przez kodowanie:
garak --target_type openai --target_name gpt-4o --probes encodingGarak wyśle serię promptów zakodowanych w Base64, hex, ROT13 i innych formatach, sprawdzając czy model wykonuje ukryte instrukcje.
Dla modeli HuggingFace:
garak --target_type huggingface --target_name meta-llama/Llama-2-7b --probes danTo uruchomi testy jailbreakingowe typu DAN ("Do Anything Now").
Kategorie testów
| Probe | Co testuje | Dla kogo |
| encoding | Obejście filtrów przez Base64, hex, Unicode | Każdy system z filtrami wejścia |
| dan | Jailbreaki DAN i podobne | Systemy z ograniczeniami treści |
| promptinject | Wstrzyknięcie instrukcji | Systemy przetwarzające zewnętrzne dane |
| leakreplay | Wyciek danych treningowych | Modele trenowane na wrażliwych danych |
| goodside | Techniki Riley Goodside | Zaawansowane testowanie injection |
| grandma | Manipulacja emocjonalna | Chatboty obsługi klienta |
| xss | Generowanie XSS przez LLM | Systemy renderujące odpowiedzi w HTML |
| continuation | Problematyczne kontynuacje tekstu | Systemy generujące treści |
Pełny skan (wszystkie dostępne testy):
garak --target_type openai --target_name gpt-4oPełny skan może trwać godziny i generować znaczące koszty API. Zacznij od wybranych kategorii istotnych dla twojego przypadku użycia.
Skanowanie własnego API
Masz własny endpoint z modelem? Garak obsługuje dowolne REST API:
garak --target_type rest \
--target_name "https://twoj-serwer.pl/api/chat" \
--probes promptinjectDla bardziej złożonych konfiguracji użyj pliku YAML:
# config.yaml
target:
type: rest
uri: https://twoj-serwer.pl/api/chat
headers:
Authorization: "Bearer ${API_KEY}"
request_template: |
{"message": "$INPUT"}
response_path: "$.response"Uruchom z konfiguracją:
garak --config config.yaml --probes encoding,danInterpretacja wyników
Garak generuje raport w formacie JSON i HTML. Kluczowe metryki:
Pass rate – procent testów, które model przeszedł (zablokował atak). Chcesz jak najwyżej.
Fail rate – procent udanych ataków. To jest twoje ASR (Attack Success Rate).
Przykładowy wynik:
encoding.InjectBase64: 85% passed (17/20)
dan.Dan_11_0: 95% passed (19/20)
promptinject.HijackHateHumansMini: 60% passed (12/20)W tym przykładzie prompt injection to problem – 40% ataków przechodzi. Czas na dodatkowe zabezpieczenia.
| Pass rate | Ocena | Działanie |
| 80-95% | Wymaga uwagi | Zidentyfikuj słabe kategorie |
| <80% | Krytyczny | Wstrzymaj deployment, napraw |
Integracja z CI/CD
Garak można uruchamiać automatycznie przy każdej zmianie promptu systemowego:
# .github/workflows/ai-security.yml
name: AI Security Scan
on:
push:
paths:
- "prompts/**"
- "config/ai/**"
jobs:
garak-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Garak
run: pip install -U garak
- name: Run security scan
run: |
garak --target_type rest \
--target_name $secrets.AI_ENDPOINT \
--probes encoding,promptinject \
--report_prefix security-scan
- name: Upload results
uses: actions/upload-artifact@v4
with:
name: garak-report
path: security-scan*Teraz każda zmiana w konfiguracji AI automatycznie uruchamia testy bezpieczeństwa.
Więcej o procesie testowania AI znajdziesz w przewodniku po testowaniu bezpieczeństwa. A jeśli interesują cię realne ataki, które Garak pomaga wykrywać – sprawdź przegląd incydentów 2023-2025.
Platformy takie jak OpenClaw implementują wiele zabezpieczeń domyślnie, ale niezależne testowanie narzędziami takimi jak Garak to najlepsza praktyka dla każdego wdrożenia produkcyjnego.

