Garak
garak(Generative AI Red-teaming & Assessment Kit)은 대형 언어 모델(LLM, Large Language Model)과 대화형 AI 시스템을 대상으로 프롬프트 인젝션, 탈옥(jailbreak), 데이터 유출, 환각, 유해 출력 등 실패 양상을 자동 탐색하는 오픈소스 LLM 취약점 스캐너이다.[1][2]
garak은 언어 모델 기반 기술에서 보안상 취약하거나 원치 않는 동작을 발견하기 위해 개발된 레드팀 및 평가 도구이다. 공식 문서에서는 garak을 “LLM vulnerability scanner”로 설명하며, 챗봇이나 모델을 스캔해 잘 동작하는 영역과 공격에 취약한 영역을 보고서로 확인할 수 있다고 설명한다.[3]
도구의 이름은 Generative AI Red-teaming & Assessment Kit의 약자이다. garak은 전통적인 보안 도구인 Nmap이나 Metasploit Framework가 네트워크·시스템 취약점을 탐색하는 것과 유사하게, LLM과 대화 시스템의 실패 가능성을 탐색한다는 점을 강조한다.[4]
LLM이 서비스, 애플리케이션, 에이전트, 검색 증강 생성(RAG) 시스템 등에 통합되면서 공격자가 자연어 입력만으로 모델의 정책 우회, 민감정보 노출, 허위정보 생성, 악성 코드 작성 보조 등을 유도할 가능성이 커졌다. garak 논문은 LLM 보안이 모델 업데이트, 출력의 비결정성, 공격자의 다양성, 서비스 맥락의 차이 때문에 고정된 단일 기준으로 평가하기 어렵다고 지적한다.[5]
garak은 이러한 문제에 대해 취약점의 “탐색과 발견”을 중심에 둔 실용적 평가 프레임워크를 지향한다. 논문은 garak이 대상 LLM 또는 대화 시스템을 구조적으로 질의하여 잠재 취약점을 찾고, 결과를 통해 대상 모델의 약점과 배포 정책 논의에 필요한 정보를 제공한다고 설명한다.[6]
- 자동화된 스캔: 여러 probe를 실행하고, 각 probe에 맞는 detector와 평가 절차를 자동으로 연결한다.
- LLM 보안 특화: 일반 머신러닝 보안보다 프롬프트 인젝션, 탈옥, 가드레일 우회, 텍스트 재생성, 데이터 유출 등 LLM 배포에서 발생하는 위험에 초점을 둔다.[7]
- 다양한 대상 연결: OpenAI, Hugging Face, Cohere, Replicate, AWS Bedrock, LiteLLM, REST 접근 가능한 엔드포인트, gguf 계열 로컬 모델 등 여러 모델 인터페이스를 지원한다.[8]
- 구조화된 보고: 화면 출력, 실행 보고 로그, 취약점이 관찰된 hit log, 디버그 로그를 생성한다.[9]
- 정적·동적·적응형 탐색: 공식 저장소는 garak이 정적, 동적, 적응형 probe를 결합해 LLM 또는 대화 시스템의 실패 양상을 탐색한다고 설명한다.[10]
garak의 내부 구조는 probe, generator, detector, harness, evaluator를 중심으로 구성된다.[11]
| 구성 요소 | 설명 |
|---|---|
| probe | 대상 모델에 입력을 보내 특정 취약점이나 실패 양상을 유도하는 테스트 모듈 |
| generator | 실제 질의를 받는 대상 모델 또는 시스템을 추상화한 인터페이스 |
| detector | 모델 출력이 특정 실패 조건에 해당하는지 판정하는 모듈 |
| harness | 어떤 probe와 detector를 어떤 방식으로 조합해 실행할지 결정하는 실행 구조 |
| evaluator | detector 점수를 바탕으로 통과 또는 실패 여부를 판단하는 평가 계층 |
probe는 garak의 핵심 테스트 모듈이다. 각 probe는 특정 유형의 취약점이나 실패 양상을 탐지하도록 설계되며, 경우에 따라 수천 개의 프롬프트를 생성해 generator에 전달한다.[12]
공식 PyPI 문서에 예시로 제시된 probe 범주에는 encoding 기반 프롬프트 인젝션, DAN 계열 탈옥, glitch token, 훈련 데이터 재생성(leak replay), 악성 코드 생성, 허위 주장 유도, 패키지 환각, XSS 관련 출력 탐색 등이 포함된다.[13]
generator는 입력을 받아 텍스트를 출력하는 대상 시스템을 의미한다. LLM, HTTP API, Python 함수, 로컬 모델 등이 generator로 연결될 수 있으며, garak은 “텍스트가 들어가고 텍스트가 나오는” 대상을 폭넓게 다룰 수 있도록 설계되어 있다.[14]
detector는 모델 출력이 실패 조건에 해당하는지 자동으로 판정한다. 일부 detector는 키워드나 패턴을 찾고, 일부는 머신러닝 분류기를 사용한다.[15]
평가 단계에서는 detector 결과를 점수로 정리하고, evaluator가 통과 또는 실패 여부를 결정한다. 공식 문서는 기본 evaluator인 ThresholdEvaluator가 0.5 이상의 점수를 hit로 간주한다고 설명한다.[16]
harness는 generator, probe, detector를 연결해 실제 스캔을 수행한다. 기본 harness인 probewise는 각 probe가 권장하는 detector를 사용하며, pxd는 지정된 probe와 detector의 조합을 교차 실행한다.[17]
garak은 Python 명령줄 도구로 배포된다. PyPI 기준 최신 안정 릴리스는 2026년 6월 5일 공개된 0.15.1이며, Python 3.10 이상을 요구한다.[18]
python -m pip install -U garak
garak --list_probes
대상 모델은 --target_type과 --target_name으로 지정한다. 예를 들어 Hugging Face 모델, OpenAI API 모델, AWS Bedrock 모델, REST 엔드포인트 등을 대상으로 지정할 수 있다.[19]
garak은 다음과 같은 상황에서 활용될 수 있다.
- LLM 기반 서비스 출시 전 보안성 점검
- 챗봇 또는 RAG 애플리케이션의 프롬프트 인젝션 저항성 평가
- 모델별 유해 출력, 허위정보, 데이터 유출 가능성 비교
- 가드레일, 모더레이션, 시스템 프롬프트 등 방어 기법 적용 전후의 효과 비교
- AI 레드팀 및 내부 보안 점검 자동화
NVIDIA NeMo Guardrails 문서도 garak을 가장 일반적인 LLM 취약점에 대한 오픈소스 스캐닝 도구로 소개하며, LLM 애플리케이션이 탈옥과 프롬프트 인젝션 등 다양한 공격에 취약할 수 있음을 전제로 guardrail 적용 전후 결과를 비교하는 예시를 제공한다.[20]
OECD.AI의 신뢰할 수 있는 AI 도구 카탈로그는 garak을 NVIDIA가 개발한 오픈소스 LLM 취약점 스캐너로 소개하며, prompt injection, jailbreak, hallucination, toxicity generation, data leakage, misinformation, encoding-based attack, malware generation, XSS, package hallucination 등을 포함한 다양한 공격 벡터와 취약점 범주를 탐색한다고 설명한다.[21]
garak의 결과는 사용한 probe, detector, generator 설정, 대상 모델 버전, 샘플링 파라미터, API 정책 변화에 따라 달라질 수 있다. LLM 출력은 비결정적일 수 있으므로 단일 실행 결과만으로 모델의 전체 보안성을 단정하기 어렵다.
또한 detector가 자동 판정한다는 특성상 오탐과 미탐 가능성이 있다. garak 논문은 LLM 보안이 맥락 의존적이며, 어떤 동작이 취약점인지 여부가 서비스 목적과 배포 환경에 따라 달라질 수 있음을 지적한다.[22]
따라서 garak은 보안 평가를 대체하는 단일 기준이라기보다, 수동 검토, 위협 모델링, 로그 분석, 정책 평가, 사용자 영향 분석과 함께 사용하는 자동화 레드팀 도구로 보는 것이 적절하다.
garak은 NVIDIA GitHub 조직의 공개 저장소에서 개발되고 있으며, NVIDIA와 커뮤니티가 함께 갱신하는 오픈소스 프로젝트로 소개된다.[23][24]
프로젝트의 pyproject.toml과 GitHub 라이선스 파일은 라이선스를 Apache License 2.0으로 명시한다.[25][26]
- ↑ “garak: LLM vulnerability scanner”, garak.ai, https://garak.ai/, 확인일: 2026-06-09
- ↑ “NVIDIA/garak: the LLM vulnerability scanner”, GitHub, https://github.com/NVIDIA/garak, 확인일: 2026-06-09
- ↑ “Welcome to garak!”, garak documentation, https://docs.garak.ai/garak, 확인일: 2026-06-09
- ↑ “garak · PyPI”, Python Package Index, https://pypi.org/project/garak/, 확인일: 2026-06-09
- ↑ Leon Derczynski 외, “garak: A Framework for Security Probing Large Language Models”, arXiv, https://arxiv.org/abs/2406.11036, 확인일: 2026-06-09
- ↑ Leon Derczynski 외, “garak: A Framework for Security Probing Large Language Models”, arXiv, https://arxiv.org/abs/2406.11036, 확인일: 2026-06-09
- ↑ “Our Features”, garak documentation, https://docs.garak.ai/garak/overview/our-features, 확인일: 2026-06-09
- ↑ “garak · PyPI”, Python Package Index, https://pypi.org/project/garak/, 확인일: 2026-06-09
- ↑ “Our Features”, garak documentation, https://docs.garak.ai/garak/overview/our-features, 확인일: 2026-06-09
- ↑ “NVIDIA/garak: the LLM vulnerability scanner”, GitHub, https://github.com/NVIDIA/garak, 확인일: 2026-06-09
- ↑ “garak · PyPI”, Python Package Index, https://pypi.org/project/garak/, 확인일: 2026-06-09
- ↑ “Vulnerability probes”, garak documentation, https://docs.garak.ai/garak/garak-components/vulnerability-probes, 확인일: 2026-06-09
- ↑ “garak · PyPI”, Python Package Index, https://pypi.org/project/garak/, 확인일: 2026-06-09
- ↑ “Using generators”, garak documentation, https://docs.garak.ai/garak/garak-components/using-generators, 확인일: 2026-06-09
- ↑ “Understanding detectors”, garak documentation, https://docs.garak.ai/garak/garak-components/understanding-detectors, 확인일: 2026-06-09
- ↑ “Scan evaluation”, garak documentation, https://docs.garak.ai/garak/garak-components/scan-evaluation, 확인일: 2026-06-09
- ↑ “Managing it: harnesses”, garak documentation, https://docs.garak.ai/garak/garak-components/managing-it-harnesses, 확인일: 2026-06-09
- ↑ “garak · PyPI”, Python Package Index, https://pypi.org/project/garak/, 확인일: 2026-06-09
- ↑ “garak · PyPI”, Python Package Index, https://pypi.org/project/garak/, 확인일: 2026-06-09
- ↑ “LLM Vulnerability Scanning”, NVIDIA NeMo Guardrails Library Developer Guide, https://docs.nvidia.com/nemo/guardrails/latest/evaluation/llm-vulnerability-scanning.html, 확인일: 2026-06-09
- ↑ “garak, LLM vulnerability scanner”, OECD.AI Catalogue of Tools & Metrics for Trustworthy AI, https://oecd.ai/en/catalogue/tools/garak%2C-llm-vulnerability-scanner, 확인일: 2026-06-09
- ↑ Leon Derczynski 외, “garak: A Framework for Security Probing Large Language Models”, arXiv, https://arxiv.org/abs/2406.11036, 확인일: 2026-06-09
- ↑ “garak: LLM vulnerability scanner”, garak.ai, https://garak.ai/, 확인일: 2026-06-09
- ↑ “NVIDIA/garak: the LLM vulnerability scanner”, GitHub, https://github.com/NVIDIA/garak, 확인일: 2026-06-09
- ↑ “garak/pyproject.toml”, GitHub, https://github.com/NVIDIA/garak/blob/main/pyproject.toml, 확인일: 2026-06-09
- ↑ “garak/LICENSE”, GitHub, https://github.com/NVIDIA/garak/blob/main/LICENSE, 확인일: 2026-06-09
