Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
JoySafety — JoySafety | Kitploit
도구/GitHubGitHub/joysafety/joysafety
Container SecurityCloud SecurityDevSecOpsMachine LearningLearning & EducationAPI SecurityAI Security
GitHubjoysafety/joysafety

JoySafety

JoySafety

저장소 보기
1.3k943개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

JoySafety —— 대형 언어 모델 보안 프레임워크


📋 목차

  • 프로젝트 소개
  • ✨ 특징
  • 🚀 빠른 시작
  • 📖 사용 가이드
  • 🏆 모범 사례
  • 🏗️ 아키텍처 설계
  • 🛠️ 개발
  • 📄 라이선스
  • 📅 계획
  • Star History

new release

  • ✅ 프롬프트 인젝션 탐지 모델 전면 업그레이드: 레드팀-블루팀 대항 메커니즘 기반 훈련 체계 재구축, 공격 식별 정확도와 응답 속도 이중 돌파; 최신 프롬프트 인젝션 탐지 모델이 3분류 아키텍처로 업그레이드되어 정상 요청, 명확한 프롬프트 인젝션 공격(악성), 의심스러운 프롬프트 인젝션 공격(잠재적 위험)을 정밀하게 구분할 수 있습니다. 모델 주소: (https://huggingface.co/jdopensource/JoySafety/tree/main)

프로젝트 소개

생성형 AI 애플리케이션이 널리 보급됨에 따라 콘텐츠 안전, 데이터 유출, 프롬프트 공격 등의 위험이 점점 더 부각되고 있습니다. 대형 언어 모델의 출력이 법규 요구사항을 준수하고 보안 취약점을 방지하는 방법은 기업이 반드시 해결해야 할 핵심 과제가 되었습니다. 이에 JD.com에서 대형 언어 모델 보안 프레임워크인 JoySafety를 정식 오픈소스로 공개합니다. 이 프레임워크는 JD.com 내부에서 널리 사용되며 AI 쇼핑 가이드, 물류 고객센터, 영업 어시스턴트, 의료 문진, 판매자 작업대, 법률 상담, 보안 Q&A 등 다양한 시나리오를 포괄합니다. 일일 수억 건의 호출과 95% 이상의 공격 차단율을 지원하며, 기업에 성숙하고 신뢰할 수 있으며 무료인 대형 언어 모델 보안 솔루션을 제공하는 것을 목표로 합니다.


✨ 특징

🚀 프로덕션 레벨

엔터프라이즈급 실전 검증

  • ✅ JD.com의 여러 프로덕션 AI 애플리케이션 안정적 운영 보장
  • ✅ 복잡한 비즈니스 시나리오 검증, 지속적인 반복 최적화
  • ✅ 서비스 배포 시 수평 확장 지원, 높은 동시성 비즈니스 요구 충족
  • ✅ 비즈니스 연동 제로 장벽, 정책 변경 시 핫 업데이트 분 단위 지원

고신뢰성 보장

  • 🔄 원자적 기능 핫 플러그 앤 플레이, 비즈니스 중단 없음
  • ⚡ 동적 구성 적용, 비즈니스 변화에 신속 대응
  • 📊 프로덕션 환경 장기 안정성 검증

📈 높은 확장성

유연한 아키텍처 설계

  • 🧩 다양한 원자적 기능 모듈 지원 (BERT/FastText/Transformer 등 주요 모델)
  • 🔌 표준화된 원자적 기능 인터페이스, 새로운 모델 확장 용이
  • 🏗️ 독립 배포 또는 집중 배포 두 가지 모드 지원
  • ⚙️ 경량 오케스트레이션 엔진, 필요에 따라 유연하게 구성

지능형 로드 밸런싱

  • 🌐 클러스터 배포로 수평 확장 지원
  • ⚡ 비동기 탐지 메커니즘, 동시 처리 성능 향상
  • 🎯 윈도우 기반 탐지 전략, 성능과 정확성 균형

💡 사용 편의성

설치 즉시 사용

  • 🐳 원클릭 Docker Compose 시작, 구성 필요 없음
  • 📱 DAG 오케스트레이션
  • 🔧 표준화된 API 인터페이스, 기존 시스템에 빠르게 통합

🎯 핵심 기술 하이라이트

혁신적인 기능

1. 대형 언어 모델 다중 턴 대화 지능형 인식

2. Free-Taxi 비동기 출력 모드 도입으로 탐지 응답 대폭 향상, 사용자 경험과 보안의 완벽한 균형 실현

3. 다차원 응답 전략 매트릭스

  • 🎯 정밀 차단 - 고위험 콘텐츠 즉시 차단
  • ⏸️ 레드라인 대체 응답 - 레드라인 지식 베이스 응답
  • 🔄 지능형 수정 - 자동으로 긍정적 답변 유도

🚀 빠른 시작

환경 의존성

다음 소프트웨어가 설치되어 있는지 확인하세요:

  • git
  • git-lfs (모델 파일 다운로드용)
  • docker
  • docker compose

0. 프로젝트 클론

root@kitploit:~
  #1.
  git clone https://github.com/jd-opensource/JoySafety.git
  
  #2. 프로젝트 경로로 이동
  cd JoySafety
  
  #3. 환경 변수 설정 (복사하여 실행 권장, 이후 스크립트/서비스에서 자동 인식)
  export SAFETY_ROOT_PATH=`pwd`
  #일반적으로 JoySafety 루트 경로
  echo ${SAFETY_ROOT_PATH}

=======

1. 모델 파일 다운로드 (Huggingface)

  • 모델 설명
  • git-lfs 사용하여 대용량 모델 파일 가져오기 권장
root@kitploit:~

  #프로젝트 경로로 이동
  cd $SAFETY_ROOT_PATH

  #
  git lfs install

  #방법1
  git clone https://huggingface.co/jdopensource/JoySafety ${SAFETY_ROOT_PATH}/data/models

  #방법2
  #네트워크 문제로 인해 [ModelScope](https://modelscope.cn/models/syf20240814/joysafety/files)에서도 다운로드 가능
  

2. .env 파일 구성

  • 【프로젝트 루트 경로】에서 .env.example을 복사하거나 수동으로 .env 생성:
root@kitploit:~
   # 참고: Shell 창 전환 시 SAFETY_ROOT_PATH 재설정
   cd $SAFETY_ROOT_PATH
   
   cp -f .env.example .env
    
   # 테스트 시 .env 파일에서 변수 SAFETY_MODEL_DIR만 수정, 경로는 실제 모델 다운로드 경로와 일치해야 함【절대 경로】
   SAFETY_MODEL_DIR=

3. 원클릭 시작 (Docker Compose)

root@kitploit:~
   docker-compose --env-file .env up

4. API 테스트

자세한 API 테스트 사례 및 사용 설명은 quickstart/README.md를 참조하세요.

quickstart 디렉토리의 문서를 참조하여 최신 API 테스트 스크립트와 사례 설명을 확인하세요.


📖 사용 가이드

비즈니스 연동 방법

이 프로젝트는 여러 비즈니스를 동시에 지원하며, 각 비즈니스를 동적으로 추가할 수 있고 분 단위로 적용됩니다.

  1. 원자적 기능 등록 (사용하려는 원자적 기능이 등록되지 않은 경우), 원자적 기능 관리 참조: function_api.md
  2. 비즈니스 추가 (참조: business_api.md)
  3. 비즈니스에 정책 추가 (참조: dag_api.md, 정책 예시)

완전한 코드 예제: example.py

정책 구성 방법 (DAG)

인식 정책은 전체적으로 DAG이며, rootId에 해당하는 node에서 시작하여 계층적으로 인식 정책을 실행합니다. 정책의 각 node는 function과 router로 구성됩니다. function은 현재 노드에서 실행되는 구체적인 기능이고, router는 현재 노드의 인식 결과를 기반으로 다음에 실행할 노드를 결정합니다.

function 유형에는 single_label_pred (즉시 사용 가능한 두 가지 구현 제공), keyword, kb_search, rag_answer, multi_turn_detect가 포함되며, 구성 방식과 의미는 위의 비즈니스 연동 방법의 전체 예제를 참조하세요. 또한, 단일 노드 내에서 여러 function을 병렬로 실행할 수 있도록 가상 유형 parallel을 지원합니다.

일반적인 router 유형으로는 stupid_end와 groovy가 있습니다. 전자는 직접 종료를 의미하며, 후자는 groovy 스크립트가 인식 결과를 기반으로 다음 node_id를 반환합니다. groovy 스크립트의 내장 변수는 ctx이며, 그 구조는 객체 SessionContext.java를 참조하세요.

전형적인 정책 오케스트레이션 예시는 README.md를 참조하세요.

민감 단어 관리 방법

그룹+비즈니스별로 민감 단어를 관리할 수 있으며, all 비즈니스의 민감 단어는 모든 비즈니스에 적용됩니다.

민감 단어 관리 방법은 sensitive_words_api.md를 참조하세요.

지식 베이스 관리 방법

이 프로젝트는 지식을 두 계층으로 관리합니다. 첫 번째 계층: 데이터 영속성을 위해 MySQL 데이터베이스 사용; 두 번째 계층: safety_knowledge+vearch를 사용하여 지식의 벡터화 및 의미 검색 구현.

데이터베이스에서 지식 관리 방법은 knowledge_api.md를 참조하세요. 지식 벡터화 및 vearch 저장은 index_all.py를 참조하세요.

API 인터페이스 호출

API 문서 참조

다국어 호출:

  • Python: python/demo.py
  • Go: golang/main.go
  • Java: java demo

FAQ

자주 묻는 질문과 해결 방법은 FAQ를 참조하세요.

제품 특성 상, 프로젝트 내 예제는 제품 기능 설명 용도로만 사용되며 다른 분야에 사용할 수 없으며, 프로젝트 개발자의 견해가 아닙니다.


🏆 모범 사례

모범 사례는 best_practice.md를 참조하세요.


🏗️ 아키텍처 설계

프로젝트 디렉토리 구조

root@kitploit:~
.
├── README.md
├── deploy
│         ├── docker-compose.yml    // 패키지 시작 서비스 (각 모듈은 개별 시작 가능)
│         └── thirdparty            // 타사 종속성 관련 구성 및 문서
│             ├── mysql
│             ├── redis
│             └── vearch
├── safety
│         ├── safety-admin           // 구성 및 데이터 관리를 위한 백엔드 서비스
│         ├── safety-api             // 외부에 기능을 제공하는 API 서비스
│         ├── safety-basic            // 핵심 jar 패키지, safety-admin, safety-basic 및 safety-demo의 Java 부분 서비스
│         ├── safety-demo            // safety-api를 사용하는 다국어 예제
│         │         ├── golang
│         │         ├── java
│         │         └── python
│         └── safety-skills          // safety-api가 지원하는 각종 스킬 구현 및 배포
│             ├── safety-bert        // bert 모델 배포 서비스
│             ├── safety-fasttext    // fasttext 모델 배포 서비스
│             ├── safety-keywords    // 민감 단어 기능 구현
│             └── safety-knowledge   // 지식 검색, 지식 기반 대체 응답 및 다중 턴 대화 탐지 지원
└── quickstart                      // 사용자 빠른 체험 용

기술 아키텍처 설명

1. 구성 시점 흐름도

백엔드 관리, 원자적 기능 등록, 정책/비즈니스 시나리오 구성, 데이터 쓰기만 포함됩니다. 사용자/비즈니스 시스템은 참여하지 않으며, 모든 구성 데이터는 최종적으로 데이터베이스에 기록되어 실행 시점에 로드됩니다.

root@kitploit:~
flowchart TD
    Quickstart[quickstart/스크립트]
    Admin[safety-admin<br/>백엔드 관리]
    Bert[safety-bert<br/>독립 서비스]
    FastText[safety-fasttext<br/>독립 서비스]
    Keywords[safety-keywords<br/>독립 서비스]
    Knowledge[safety-knowledge<br/>독립 서비스]
    DB[(MySQL/Redis)]
    Vearch[(Vearch 벡터 DB)]
    Strategy[방어 정책 오케스트레이션]
    Business[비즈니스 시나리오 구성]

    Quickstart-->|초기화/등록|Admin
    Admin-->|원자적 기능 등록|Bert
    Admin-->|원자적 기능 등록|FastText
    Admin-->|원자적 기능 등록|Keywords
    Admin-->|원자적 기능 등록|Knowledge
    Admin-->|민감 단어 관리|Keywords
    Admin-->|지식 베이스 관리|Knowledge
    Admin-->|구성 쓰기|DB
    Admin-->|정책 오케스트레이션|Strategy
    Admin-->|비즈니스 시나리오 구성|Business
    Bert-->|모델/구성|DB
    FastText-->|모델/구성|DB
    Keywords-->|민감 단어 데이터|DB
    Knowledge-->|지식/구성|DB
    Knowledge-->|벡터 검색|Vearch

2. 실행 시점 흐름도

사용자/비즈니스 시스템이 요청을 보내면 API 서비스가 데이터베이스 구성과 정책을 로드하고 각 Skill 서비스를 호출하여 탐지/처리를 수행합니다. safety-admin은 실행 링크에 참여하지 않으며 구성 시점에만 데이터를 기록합니다.

root@kitploit:~
flowchart TD
    User[사용자/비즈니스 시스템]
    API[safety-api<br/>API 서비스]
    Core[safety-basic<br/>Java lib]
    Bert[safety-bert<br/>독립 서비스]
    FastText[safety-fasttext<br/>독립 서비스]
    Keywords[safety-keywords<br/>독립 서비스]
    Knowledge[safety-knowledge<br/>독립 서비스]
    DB[(MySQL/Redis)]
    Vearch[(Vearch 벡터 DB)]

    User-->|HTTP/SDK|API
    API-->|의존|Core
    API-->|정책/구성 읽기|DB
    API-->|HTTP/RESTful|Bert
    API-->|HTTP/RESTful|FastText
    API-->|HTTP/RESTful|Keywords
    API-->|HTTP/RESTful|Knowledge
    Bert-->|모델/데이터|DB
    FastText-->|모델/데이터|DB
    Keywords-->|민감 단어 데이터|DB
    Knowledge-->|지식/구성|DB
    Knowledge-->|벡터 검색|Vearch

모듈 의존 관계 설명:

  • safety-api는 safety-basic(Java lib)에만 의존하며, 데이터베이스를 통해 정책/구성을 얻고 safety-admin에 의존하지 않습니다.
  • safety-admin은 백엔드 관리 및 데이터베이스 구성 쓰기만 담당하며 사용자 요청 링크에 참여하지 않습니다.
  • 각 Skill(safety-bert, safety-fasttext, safety-keywords, safety-knowledge)은 독립 서비스이며, safety-api가 HTTP/RESTful 인터페이스를 통해 호출합니다.
  • 데이터베이스(MySQL/Redis)와 벡터 DB(Vearch)는 각 서비스에 영속성 및 검색 기능을 제공합니다.

모듈 의존 관계 설명:

  • safety-basic은 Java lib로만 사용되며 safety-api, safety-admin 등 주요 서비스 모듈이 의존하고 독립 서비스로 실행되지 않습니다.
  • 각 Skill(safety-bert, safety-fasttext, safety-keywords, safety-knowledge)은 독립 서비스로, 각각 HTTP/RESTful 인터페이스를 통해 주요 서비스가 호출하며 서비스 간 직접 의존 관계는 없습니다.
  • 주요 서비스(safety-api, safety-admin)는 safety-basic을 통해 통합 기능 오케스트레이션 및 정책 관리를 수행하고, Skill 서비스는 원자적 기능 구현에 집중합니다.
  • 데이터베이스(MySQL/Redis)와 벡터 DB(Vearch)는 각 서비스에 영속성 및 검색 기능을 제공합니다.

주요 모듈 설명


🛠️ 개발

각 모듈의 README 문서를 참조하세요.


🤝 기여

모든 좋은 아이디어와 제안을 환영합니다! 프로젝트 공동 구축자가 되고 싶다면 언제든지 Pull Request를 제출하고 기여자 라이선스 계약(CLA)에 서명해 주세요. 문의 사항은 이메일로 연락 주세요: [email protected].

프로젝트 공동 구축자

  • JD.com 그룹
  • 기여자 목록은 CONTRIBUTORS.md를 참조하세요 (추가 예정)

📄 라이선스

본 프로젝트는 Apache License 2.0 오픈소스 라이선스를 따릅니다. 기업 및 개인은 자유롭게 사용, 수정 및 2차 개발할 수 있습니다.


📅 계획

JoySafety는 완전한 대형 언어 모델 보안 솔루션 구축을 목표로 합니다. 이번 오픈소스는 주로 대형 언어 모델 보호 기능에 초점을 맞추며, 향후 순차적으로 다음을 출시할 예정입니다:

보안 검증 대형 언어 모델 Huggingface 플랫폼에서 일부 보안 검증 대형 언어 모델을 오픈소스로 공개합니다. 이후 Joysafety는 이 시리즈 모델을 통합하여 대형 언어 모델 위험 규정 준수 감사 기능을 구현합니다.

대형 언어 모델 보안 평가: 대형 언어 모델 애플리케이션 출시 전 보안 위험 탐지를 위해 《생성형 AI 서비스 보안 기본 요구사항》의 5대 카테고리 31개 소분류 위험 유형을 포괄합니다.

Agent 보안 보호: 신원 및 권한 관리, 데이터 및 메모리 보호, 도구 및 실행 보안, MCP 코드 보안 탐지, 공급망 및 프로토콜 보안 등 기능을 포함합니다.

JoySafety 공식 위챗 교류 그룹에 가입하세요:

공식 위챗 교류 그룹

Star History

Star History Chart

도구 다운로드
모듈언어주요 기능
safety-adminJava구성 및 데이터 관리
safety-apiJava외부 API 서비스, 정책 오케스트레이션, 스트림 탐지
safety-basicJava핵심 라이브러리, 주요 서비스 및 demo 서비스
safety-skills/safety-bertPythonBERT 분류 모델 서비스
safety-skills/safety-fasttextPythonFastText 분류 모델 서비스
safety-skills/safety-keywordsJava민감 단어 탐지 서비스
safety-skills/safety-knowledgePython지식 검색, RAG, 다중 턴 대화 탐지
quickstartPython/YAML빠른 체험 스크립트 및 샘플
deployDocker컨테이너화 배포 및 의존성 관리