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.2k26712일 전Kitploit 검토 완료
Machine Learning #5위
GitHubnvidia/garak

garak

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

저장소 보기웹사이트

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

garak, LLM 취약점 스캐너

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

garak은 LLM이 우리가 원하지 않는 방식으로 실패하도록 만들 수 있는지 확인합니다. garak은 환각(hallucination), 데이터 유출(data leakage), 프롬프트 인젝션(prompt injection), 허위 정보(misinformation), 유해 콘텐츠 생성(toxicity generation), 탈옥(jailbreaks) 및 기타 많은 취약점을 탐지합니다. 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

> 트위터: @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`를 사용한 개발 버전 설치하기

표준 pip 버전의 `garak`은 주기적으로 업데이트됩니다. GitHub에서 더 최신 버전을 얻으려면 다음을 시도하세요:```
python -m pip install -U git+https://github.com/NVIDIA/garak.git@main

소스에서 클론하기

garak에는 자체 의존성이 있습니다. garak을 자체 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 .

좋습니다, 그게 잘 되었다면 아마 잘 진행될 것입니다!

**참고**: `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은 기본적으로 모든 프로브를 실행하지만, 특정 프로브만 지정할 수도 있습니다. 예를 들어 --probes promptinject는 PromptInject 프레임워크의 메서드만 사용합니다. 또한 플러그인 제품군 대신 . 뒤에 플러그인 이름을 추가하여 특정 플러그인 하나를 지정할 수 있습니다. 예를 들어, --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 --probes encoding

Hugging Face 버전의 GPT2가 DAN 11.0에 취약한지 확인하세요.```
python3 -m garak --target_type huggingface --target_name gpt2 --probes dan.Dan_11_0

결과 읽기

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

다음은 GPT-3 변종에서 encoding 모듈을 사용한 결과입니다. 대체 텍스트

그리고 ChatGPT에 대한 동일한 결과입니다: 대체 텍스트

최신 모델이 인코딩 기반 인젝션 공격에 훨씬 더 취약하다는 것을 알 수 있습니다. 반면 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

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

OpenAI

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

인식된 모델 유형은 화이트리스트에 등록되어 있습니다. 플러그인이 사용할 하위 API를 알아야 하기 때문입니다. Completion 또는 ChatCompletion 모델 모두 사용 가능합니다. 지원되지 않는 모델을 사용하려고 하면 정보성 오류 메시지가 표시됩니다. PR을 보내거나 이슈를 열어주세요.

Replicate

  • REPLICATE_API_TOKEN 환경 변수를 Replicate API 토큰(예: "r8-123XXXXXXXXXXXX")으로 설정합니다. 로그인한 후 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 - 배포된 엔드포인트의 사용자 이름/모델 이름 슬러그, 예: elim/elims-llama2-7b

Cohere

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

Groq

  • --target_type groq
  • --target_name - Groq API를 통해 액세스할 모델의 이름
  • GROQ_API_KEY 환경 변수를 Groq API 키로 설정합니다. 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_PATH 환경 변수를 ggml main 실행 파일의 경로로 설정합니다.

REST

도구 다운로드