본문 바로가기

인공지능

garak으로 알아보는 LLM 보안 취약점 진단과 레드팀 테스트 방법

728x90
반응형
728x170

생성형 AI와 LLM(Large Language Model)이 빠르게 확산되면서, 이제는 모델 성능만큼이나 보안과 안정성이 중요한 시대가 됐습니다. 특히 기업 환경에서는 단순히 “잘 답변하는 모델”이 아니라, 프롬프트 인젝션이나 데이터 유출 같은 공격에도 안전한 모델이 요구됩니다.

이 과정에서 주목받고 있는 오픈소스 도구가 바로 garak입니다. garak은 LLM 취약점 스캐너이자 레드팀 테스트 프레임워크로, 모델이 어떤 방식으로 실패할 수 있는지 자동으로 탐지하고 분석할 수 있도록 돕습니다.

이번 글에서는 garak이 무엇인지, 어떤 보안 테스트를 지원하는지, 어떻게 설치하고 사용하는지, 그리고 실제로 어떤 환경에서 활용할 수 있는지까지 정리해보겠습니다.

반응형

garak이란 무엇인가

garak은 생성형 AI 및 LLM을 대상으로 다양한 보안 취약점과 안전성 문제를 점검하는 오픈소스 도구입니다.

쉽게 말해 네트워크 보안에서 nmap이나 Metasploit가 하는 역할을, LLM 보안 영역에서 수행한다고 볼 수 있습니다.

garak의 핵심 목적은 다음과 같습니다.

  • LLM이 의도하지 않은 답변을 생성하는지 점검
  • 프롬프트 인젝션 공격에 취약한지 테스트
  • 데이터 유출 가능성 탐지
  • 허위 정보 생성 여부 검증
  • 독성(Toxicity) 및 유해 콘텐츠 생성 여부 확인
  • Jailbreak 우회 가능성 분석

즉, 단순 기능 테스트가 아니라 “LLM이 어떻게 실패할 수 있는가”를 집중적으로 분석하는 도구입니다.


garak의 주요 특징

다양한 LLM 플랫폼 지원

garak은 특정 모델에 종속되지 않고 다양한 생성형 AI 환경을 지원합니다.

지원 대상 예시는 다음과 같습니다.

  • Hugging Face 모델
  • OpenAI API
  • AWS Bedrock
  • Replicate
  • Cohere
  • Groq
  • llama.cpp 기반 GGUF 모델
  • REST API 기반 커스텀 모델
  • NVIDIA NIM

따라서 로컬 모델부터 상용 API 기반 모델까지 폭넓게 테스트할 수 있습니다.


다양한 보안 취약점 탐지 지원

garak은 여러 종류의 보안 프로브(Probes)를 제공합니다.

대표적인 예시는 다음과 같습니다.

Probe설명

promptinject 프롬프트 인젝션 공격 테스트
dan DAN 계열 Jailbreak 테스트
encoding 인코딩 기반 우회 공격
xss 데이터 탈취 및 XSS 계열 취약점
leakreplay 학습 데이터 재현 여부 검사
misleading 허위 정보 생성 테스트
malwaregen 악성 코드 생성 유도
packagehallucination 존재하지 않는 패키지 생성 여부
realtoxicityprompts 유해 콘텐츠 생성 검사

이러한 테스트를 통해 단순 QA 수준이 아니라 실제 공격 시나리오 기반 검증이 가능합니다.


garak 아키텍처 이해하기

garak은 플러그인 기반 구조로 설계되어 있습니다.

주요 구성 요소는 다음과 같습니다.

구성 요소역할

probes 공격 및 테스트 시나리오 생성
detectors 취약 행동 탐지
generators 대상 LLM 연결
harnesses 테스트 실행 제어
evaluators 결과 평가 및 리포트

이 구조 덕분에 새로운 공격 기법이나 새로운 모델 지원을 쉽게 추가할 수 있습니다.


garak 설치 방법

pip 기반 기본 설치

가장 간단한 방법은 PyPI를 통한 설치입니다.

python -m pip install -U garak

GitHub 최신 버전 설치

최신 기능이 필요하다면 GitHub main 브랜치 설치도 가능합니다.

python -m pip install -U git+https://github.com/NVIDIA/garak.git@main

Conda 환경에서 소스 설치

독립적인 환경 구성을 원한다면 Conda 환경 사용이 권장됩니다.

conda create --name garak "python>=3.10,<=3.12"

conda activate garak

gh repo clone NVIDIA/garak

cd garak

python -m pip install -e .

garak 기본 사용 방법

기본 실행 구조

garak의 기본 실행 문법은 다음과 같습니다.

garak <options>

테스트 대상 모델과 사용할 Probe를 지정하면 됩니다.


지원하는 Probe 목록 확인

garak --list_probes

사용 가능한 공격 및 테스트 시나리오 목록을 확인할 수 있습니다.


OpenAI 모델 테스트 예제

OpenAI 기반 모델에 대해 encoding 공격 테스트를 수행하는 예시입니다.

API Key 설정

export OPENAI_API_KEY="sk-xxxxxxxx"

Encoding Probe 실행

python3 -m garak \
  --target_type openai \
  --target_name gpt-5-nano \
  --probes encoding

이 테스트는 MIME, quoted-printable 같은 인코딩 기반 우회 공격에 모델이 취약한지 검사합니다.


Hugging Face 모델 테스트 예제

GPT-2 모델에 대해 DAN 공격을 수행하는 예시입니다.

python3 -m garak \
  --target_type huggingface \
  --target_name gpt2 \
  --probes dan.Dan_11_0

이를 통해 모델이 Jailbreak 프롬프트에 얼마나 취약한지 분석할 수 있습니다.


주요 Generator 유형 정리

Hugging Face

로컬 Transformers 모델 실행:

--target_type huggingface

Inference API 사용:

--target_type huggingface.InferenceAPI

OpenAI

--target_type openai

환경 변수:

OPENAI_API_KEY

AWS Bedrock

--target_type bedrock

예시:

garak \
  --target_type bedrock \
  --target_name claude-3-sonnet \
  --probes dan

REST API 기반 모델

REST Generator를 사용하면 커스텀 API도 연결 가능합니다.

이는 기업 내부 LLM Gateway나 사내 AI 플랫폼 보안 점검 시 매우 유용합니다.


garak 결과 분석 방법

테스트가 완료되면 garak은 다음 정보를 제공합니다.

  • Probe별 성공/실패 여부
  • 취약 응답 발생 비율
  • 탐지된 문제 유형
  • 생성 결과 로그

만약 특정 공격이 성공했다면 결과는 FAIL로 표시됩니다.

예를 들어:

  • 프롬프트 인젝션 우회 성공
  • 유해 콘텐츠 생성 성공
  • 허위 정보 생성 성공

등이 발견되면 해당 Probe에서 실패로 기록됩니다.


로그 및 리포트 구조

garak은 여러 형태의 로그를 생성합니다.

garak.log

디버깅 및 실행 로그 저장


JSONL 리포트

각 Probe 실행 결과를 구조화된 형태로 저장


Hit Log

실제 취약점이 탐지된 시도만 별도로 기록

이 구조 덕분에 후속 분석이나 SIEM 연동도 가능합니다.


커스텀 플러그인 개발 지원

garak은 확장성이 높은 구조를 제공합니다.

새로운 Probe나 Detector를 직접 추가할 수 있습니다.

예시 개발 흐름:

  1. Base 클래스 상속
  2. Probe 구현
  3. Detector 연결
  4. 테스트 실행

테스트용 Generator도 제공하기 때문에 개발 및 검증이 비교적 쉽습니다.


garak이 중요한 이유

많은 조직이 생성형 AI를 도입하고 있지만, 실제 보안 검증은 아직 초기 단계에 머물러 있습니다.

특히 다음 문제는 실제 서비스 환경에서 매우 중요합니다.

  • Prompt Injection
  • 데이터 유출
  • 모델 환각(Hallucination)
  • Jailbreak
  • 악성 코드 생성
  • 허위 정보 생성

garak은 이런 문제를 자동화된 방식으로 반복 검증할 수 있게 도와줍니다.

이는 단순 개발 도구가 아니라, AI 보안 운영 체계의 핵심 구성 요소로 활용될 가능성이 높습니다.


728x90

LLM 도입이 늘어날수록 “모델이 얼마나 똑똑한가”보다 “얼마나 안전한가”가 더 중요한 기준이 되고 있습니다.

garak은 이러한 흐름 속에서 생성형 AI 보안 테스트를 체계적으로 수행할 수 있도록 지원하는 강력한 오픈소스 도구입니다.

특히 다양한 LLM 플랫폼 지원, 풍부한 Probe 체계, 플러그인 기반 확장 구조를 통해 AI 보안 검증 자동화에 매우 적합한 환경을 제공합니다.

앞으로 기업 환경에서 AI 레드팀 운영과 LLM 보안 점검이 필수가 된다면, garak 같은 도구의 중요성은 더욱 커질 것으로 예상됩니다.

300x250

https://github.com/NVIDIA/garak

 

GitHub - NVIDIA/garak: the LLM vulnerability scanner

the LLM vulnerability scanner. Contribute to NVIDIA/garak development by creating an account on GitHub.

github.com

728x90
반응형
그리드형