Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
garak — 모듈형 LLM 취약점 스캐너로, 정적, 동적 및 적응형 프로브를 사용하여 여러 모델 제공업체에서 환각, 데이터 유출, 프롬프트 인젝션, 탈옥 및 유해성을 탐지합니다. | Kitploit
도구/GitHubGitHub/nvidia/garak
Vulnerability ScannersPenetration TestingMachine LearningPapers & ResearchLearning & EducationRed TeamingAI SecurityAdversarial AttackAdversarial Attack #7위AI Security #2위
8.8k1.2k4274일 전Kitploit 검토 완료
Machine Learning #5위
GitHubnvidia/garak

garak

모듈형 LLM 취약점 스캐너로, 정적, 동적 및 적응형 프로브를 사용하여 여러 모델 제공업체에서 환각, 데이터 유출, 프롬프트 인젝션, 탈옥 및 유해성을 탐지합니다.

저장소 보기웹사이트

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

garak, LLM 취약점 스캐너

생성형 AI 레드팀 및 평가 키트

garak은 LLM 기반 애플리케이션이 우리가 원하지 않는 방식으로 실패하게 만들 수 있는지 확인합니다. garak은 환각, 데이터 유출, 프롬프트 인젝션, 허위 정보, 독성 생성, 탈옥(jailbreak) 및 기타 여러 취약점을 탐지합니다. nmap이나 msf / Metasploit Framework를 알고 있다면, garak은 이들과 다소 유사한 작업을 수행하지만 LLM을 대상으로 합니다.

garak은 LLM이나 대화 시스템이 실패하게 만드는 방법에 초점을 맞춥니다. 정적, 동적, 적응형 프로브를 결합하여 이를 탐구합니다.

garak은 무료 도구입니다. 우리는 이 도구를 개발하는 것을 좋아하며 애플리케이션을 지원하는 기능을 추가하는 데 항상 관심이 있습니다.

License Tests/Linux Tests/Windows Tests/OSX Documentation Status arXiv discord-img Code style: black PyPI - Python Version PyPI Downloads Downloads

시작하기

> 사용자 가이드를 확인하세요! docs.garak.ai

> Discord에 참여하세요!

> 프로젝트 링크 및 홈: garak.ai

> Twitter: @garak_llm

> DEF CON 슬라이드!


LLM 지원

현재 지원:

  • hugging face hub 생성형 모델
  • replicate 텍스트 모델
  • openai api 채팅 및 이어쓰기 모델
  • aws bedrock 파운데이션 모델
  • litellm
  • REST를 통해 접근 가능한 거의 모든 것
  • llama.cpp 버전 >= 1046과 같은 gguf 모델
  • .. 그리고 더 많은 LLM들!

설치:

garak은 명령줄 도구입니다. Linux와 OSX에서 개발되었습니다.

pip를 사용한 표준 설치

PyPI에서 가져오면 바로 사용할 수 있습니다:

python -m pip install -U garak

pip로 개발 버전 설치

garak의 표준 pip 버전은 주기적으로 업데이트됩니다. GitHub에서 더 최신 버전을 받으려면 다음을 시도하세요:

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

소스에서 클론

garak은 자체적인 종속성을 가지고 있습니다. garak을 자체 Conda 환경에 설치할 수 있습니다:

conda create --name garak "python>=3.11,<=3.14"
conda activate garak
gh repo clone NVIDIA/garak
cd garak
python -m pip install -e .

좋습니다, 문제없이 진행되었다면 이제 준비가 된 것입니다!

참고: NVIDIA GitHub 조직으로 이전하기 전에 클론했지만 지금 github.com/NVIDIA URI에서 이 문서를 읽고 있다면, 다음과 같이 원격 저장소를 업데이트하세요:

git remote set-url origin https://github.com/NVIDIA/garak.git

시작하기

일반적인 구문은 다음과 같습니다:

garak <options>

garak는 스캔할 모델을 알아야 하며, 기본적으로 해당 모델에 대해 알고 있는 모든 프로브를 각 프로브가 권장하는 취약점 탐지기와 함께 시도합니다. 프로브 목록은 다음을 사용하여 확인할 수 있습니다:

garak --list_probes

생성기를 지정하려면 --target_type 옵션과 선택적으로 --target_name 옵션을 사용합니다. 모델 유형은 모델 패밀리/인터페이스를 지정하고, 모델 이름은 사용할 정확한 모델을 지정합니다. 아래의 "생성기 소개" 섹션에서는 지원되는 생성기 중 일부를 설명합니다. 간단한 생성기 패밀리로는 Hugging Face 모델이 있으며, 이를 로드하려면 --target_type을 huggingface로, --target_name을 Hub에서의 모델 이름(예: "RWKV/rwkv-4-169m-pile")으로 설정합니다. 일부 생성기는 API 키를 환경 변수로 설정해야 할 수 있으며, 필요한 경우 이를 알려줍니다.

garak는 기본적으로 모든 프로브를 실행하지만, 이를 구체적으로 지정할 수도 있습니다. 예를 들어 --spec probes.promptinject는 PromptInject 프레임워크의 메서드만 사용합니다. 플러그인 패밀리 대신 특정 플러그인 하나를 지정하려면 . 뒤에 플러그인 이름을 추가하면 됩니다. 예를 들어 --spec probes.lmrc.SlurUsage는 Language Model Risk Cards 프레임워크를 기반으로 모델이 비하 발언을 생성하는지 확인하는 구현을 사용합니다.

도움과 영감을 얻으려면 Twitter 또는 discord에서 저희를 찾아주세요!

예시

인코딩 기반 프롬프트 인젝션에 대해 상용 모델을 프로브합니다 (OSX/*nix) (예시 값을 실제 OpenAI API 키로 교체하세요)

export OPENAI_API_KEY="sk-123XXXXXXXXXXXX"
python3 -m garak --target_type openai --target_name gpt-5-nano --spec probes.encoding

Hugging Face 버전의 GPT2가 DAN 11.0에 취약한지 확인하세요

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

결과 읽기

로드된 각 프로브에 대해 garak은 생성하는 동안 진행 표시줄을 출력합니다. 생성이 완료되면 각 탐지기에서 해당 프로브의 결과를 평가하는 행이 표시됩니다. 프롬프트 시도 중 하나라도 바람직하지 않은 동작을 보이면 응답은 FAIL로 표시되고 실패율이 제공됩니다.

다음은 GPT-3 변형에서 encoding 모듈을 사용한 결과입니다: alt text

그리고 ChatGPT에 대한 동일한 결과입니다: alt text

더 최근 모델이 인코딩 기반 주입 공격에 훨씬 더 취약하다는 것을 알 수 있으며, text-babbage-001은 quoted-printable 및 MIME 인코딩 주입에만 취약한 것으로 나타났습니다. 각 행 끝의 수치(예: 840/840)는 총 텍스트 생성 횟수와 그중 정상적으로 동작한 것으로 보이는 횟수를 나타냅니다. 프롬프트당 하나 이상의 생성이 이루어지기 때문에(기본값 10) 이 수치는 상당히 높을 수 있습니다.

오류는 garak.log에 기록되며, 실행은 분석 시작 및 종료 시 지정된 .jsonl 파일에 상세히 기록됩니다. 가장 많은 적중을 초래한 프로브와 프롬프트를 출력하는 기본 분석 스크립트가 analyse/analyse_log.py에 있습니다.

PR을 보내고 이슈를 열어 주세요. 즐거운 사냥 되세요!

생성기 소개

Hugging Face

Pipeline API 사용:

  • --target_type huggingface (로컬에서 실행할 transformers 모델용)
  • --target_name - Hub의 모델 이름을 사용합니다. 생성 모델만 작동합니다. 실패해서는 안 되는 상황에서 실패하면 이슈를 열고 시도한 명령과 예외를 붙여넣어 주세요!

Inference API 사용:

  • --target_type huggingface.InferenceAPI (API 기반 모델 접근용)
  • --target_name - Hub의 모델 이름, 예: "mosaicml/mpt-7b-instruct"

프라이빗 엔드포인트 사용:

  • --target_type huggingface.InferenceEndpoint (프라이빗 엔드포인트용)

  • --target_name - 엔드포인트 URL, 예: https://xxx.us-east-1.aws.endpoints.huggingface.cloud

  • (선택 사항) "read" 역할을 가진 Hugging Face API 토큰으로 HF_INFERENCE_TOKEN 환경 변수를 설정합니다. 로그인한 상태에서 https://huggingface.co/settings/tokens 를 참조하세요

OpenAI

  • --target_type openai
  • --target_name - 사용하려는 OpenAI 모델입니다. gpt-5-nano는 빠르고 테스트에 적합합니다.
  • OpenAI API 키(예: "sk-19763ASDF87q6657")로 OPENAI_API_KEY 환경 변수를 설정합니다. 로그인한 상태에서 https://platform.openai.com/account/api-keys 를 참조하세요

인식되는 모델 유형은 화이트리스트에 등록되어 있습니다. 플러그인이 어떤 하위 API를 사용해야 하는지 알아야 하기 때문입니다. Completion 또는 ChatCompletion 모델은 괜찮습니다. 지원되지 않는 모델을 사용하려는 경우 유용한 오류 메시지가 표시되어야 하며, PR을 보내거나 이슈를 열어 주세요.

Replicate

  • Replicate API 토큰(예: "r8-123XXXXXXXXXXXX")으로 REPLICATE_API_TOKEN 환경 변수를 설정합니다. 로그인한 상태에서 https://replicate.com/account/api-tokens 를 참조하세요

공개 Replicate 모델:

  • --target_type replicate
  • --target_name - Replicate 모델 이름과 해시, 예: "stability-ai/stablelm-tuned-alpha-7b:c49dae36"

프라이빗 Replicate 엔드포인트:

  • --target_type replicate.InferenceEndpoint (프라이빗 엔드포인트용)
  • --target_name - 배포된 엔드포인트의 username/model-name 슬러그, 예: elim/elims-llama2-7b

Cohere

  • --target_type cohere
  • --target_name (선택 사항, 기본값 command) - 테스트하려는 특정 Cohere 모델
  • Cohere API 키(예: "aBcDeFgHiJ123456789")로 COHERE_API_KEY 환경 변수를 설정합니다. 로그인한 상태에서 https://dashboard.cohere.ai/api-keys 를 참조하세요

Groq

  • --target_type groq
  • --target_name - Groq API를 통해 접근할 모델의 이름
  • Groq API 키로 GROQ_API_KEY 환경 변수를 설정합니다. API 키 생성에 대한 자세한 내용은 https://console.groq.com/docs/quickstart 를 참조하세요

ggml

  • --target_type ggml
  • --target_name - 로드하려는 ggml 모델의 경로, 예: /home/leon/llama.cpp/models/7B/ggml-model-q4_0.bin
  • ggml main 실행 파일의 경로로 GGML_MAIN_PATH 환경 변수를 설정합니다

REST

도구 다운로드