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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
MEA-Bench — 블랙박스 LLM 추출 공격, 방어 및 적응형 공격을 위한 수명 주기 벤치마크입니다. | Kitploit
도구/GitHubGitHub/sliu11-byte/mea-bench
Vulnerability AnalysisMachine LearningPapers & ResearchLearning & EducationAI SecurityAdversarial Attack
GitHubsliu11-byte/mea-bench

MEA-Bench

블랙박스 LLM 추출 공격, 방어 및 적응형 공격을 위한 수명 주기 벤치마크입니다.

저장소 보기
41일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

MEA-Bench: 모델 추출 공격을 위한 벤치마크

이 저장소는 모델 추출 공격, 방어, 적응형 공격, 평가를 위한 통합 벤치마크를 제공합니다. 공개 인터페이스는 소수의 이식 가능한 명령을 중심으로 구성되어 있습니다. 메서드별 Python 모듈과 레거시 실행 스크립트는 사용자 대상 진입점이 아니라 구현 세부 사항입니다.

아래 네 가지 이식 가능한 진입점은 공개 인자를 검증한 후 메서드 구현으로 디스패치합니다. Slurm 리소스 래퍼는 의도적으로 제외되었습니다. 메서드가 소유한 매니페스트는 재개 동작과 아티팩트 출처에 대해 계속 권위 있는 정보원입니다.

논문 및 저자

Do Defenses Against LLM Extraction Work Across Attacks? A Lifecycle Benchmark of Black-Box Model Extraction

Shuze Liu (Florida State University), Kaixiang Zhao (Brigham Young University), Runyang Xu (University of Michigan, Ann Arbor), Jingzhi Chen (State University of New York at Buffalo), Nathan Wu (Wake Forest University), Yu Wang (University of Georgia), Yushun Dong (Florida State University).

논문 소스: https://github.com/sliu11-byte/MEA_benchmark_arXiv

이 저장소는 논문의 구현과 재현 인터페이스를 제공합니다. 쿼리 풀은 저자들의 Hugging Face 프로젝트에서 호스팅됩니다: https://huggingface.co/datasets/watermarkproject/lord-mea-benchmark

저장소 레이아웃```text

attacks/ attack implementations and shared attack pipeline defenses/ defense implementations and detector adapters countermeasures/ adaptive-attack pipeline evaluation/ shared tasks, rollout code, and metrics infra/ portable model-serving helpers runs/ canonical public entry points

## 표준 공용 인터페이스

벤치마크는 네 가지 최상위 명령을 제공합니다:

| 실험 | 진입점 | 필수 실험 인자 |
|---|---|---|
| 공격 | `runs/run_attack.sh` | `--attack`, `--budget` |
| 방어 | `runs/run_defense.sh` | 방어된 추출: `--defense`, `--attack`, `--budget`; 결과 기반 방어: `--defense`, `--attack-run` |
| 적응형 공격 | `runs/run_adaptive_attack.sh` | `--adaptive-attack`, `--defense`, `--attack`, `--budget` |
| 평가 | `runs/run_evaluation.sh` | `--manifest` |

네 명령 모두:

- Slurm 없이 일반 셸 명령으로 동작합니다;
- `--help`와 `--dry-run`을 지원합니다;
- 시작 전에 요청된 실험을 검증합니다;
- 모든 필수 사전 아티팩트를 자동으로 생성, 탐색, 검증, 재사용합니다;
- `--profile paper` 아래에서 결정론적 벤치마크 기본값을 사용합니다;
- 각 메서드의 기존 재개 및 아티팩트 재사용 동작을 유지합니다;
- 기계 판독 가능한 실행 메타데이터와 입력 출처를 기록하거나 보존합니다;
- 내장된 사용자 이름, 클러스터 계정, 이메일 주소, 사이트별 경로를 피합니다.

러너는 현재 셸 프로세스에서 실험 로직을 조정합니다. 클러스터 작업을 제출하거나
스케줄러 파티션을 선택하지 않습니다. 호출자는 러너를 호출하기 전에 충분한 CPU,
메모리, GPU를 할당할 책임이 있습니다. 사용자는 이미 실행 중인 OpenAI 호환
교사 및 학생 엔드포인트를 제공할 수 있습니다; 공격 디스패처는 기존의
메서드 로컬 vLLM 서비스를 시작할 수도 있습니다.

아래에 표시된 명령은 완전한 공용 재현 인터페이스입니다. 독자는 전사본,
워밍업 체크포인트, 적응형 베이스라인, 홀드아웃 교사 출력, 체크포인트 번들을
수동으로 준비할 필요가 없습니다. 이들은 러너가 소유한 내부 의존성입니다.
수동 구성은 GPU 할당, 게이트된 Hugging Face 모델 접근, 선택적 외부 모델
엔드포인트와 같이 추론할 수 없는 리소스나 자격 증명으로 제한됩니다.

## 지원되는 메서드

### 공격

공격 레지스트리에는 여섯 가지 메서드가 포함되어 있습니다:```text
seqkd
lord
soda
qedks
model_leeching
gad

논문 프로토콜은 공격 예산 100, 1000, 10000을 사용한다. 공개된 쿼리 데이터셋에는 결정론적 부분집합과 홀드아웃 구성을 위한 50,000개 및 100,000개 레코드 풀도 포함되어 있지만, 이들은 주요 공격 예산으로 명시되지는 않는다.

방어 기법

방어 기법은 요구되는 아티팩트에 따라 구분된다.

방어된 추출(defended-extraction) 방어 기법은 응답, 학습, 또는 추출 과정을 수정하며, 따라서 방어 기법 하에서 선택된 공격을 실행한다:```text ads doge trace_rewriting adfp ginsew radioactivity

**결과 기반 방어 및 탐지기**는 완료된 공격 실행에서 생성된 아티팩트를 소비합니다:```text
duffin
mmd
prada
seat

MMD, PRADA, SEAT는 주로 공격 쿼리 트래픽을 소비합니다. DuFFin은 탐지기에 필요한 완성된 공격 아티팩트를 소비합니다. 셸 래퍼가 아니라 방어 레지스트리가 각 메서드의 정확한 아티팩트 요구사항을 정의합니다.

적응형 공격

적응형 공격 레지스트리에는 다음이 포함됩니다:```text dipper translation

`translation`은 벤치마크의 역번역 적응형 공격을 나타냅니다. 레지스트리는
구현되지 않았거나 벤치마크 프로토콜의 일부가 아닌 공격-방어-적응 조합을
거부합니다.

## 설정

Python 3.10과 논문에 기록된 버전과 호환되는 CUDA/PyTorch 환경을 사용하십시오.
통합 벤치마크 환경은 다음과 같습니다:```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

리포지토리 루트에서 아래 명령을 실행하십시오. 스크립트는 해당 루트를 기준으로 메서드 구현을 찾고 모든 기본 아티팩트를 그곳에 기록합니다.

단일 최상위 requirements 파일은 공격, 방어, 적응형 공격, 로컬 vLLM 서빙, 평가를 모두 포함합니다. 이 파일은 논문 환경에 기록된 CUDA 12.8 PyTorch 휠 인덱스를 사용합니다. CUDA 스택이 다른 머신에서는 먼저 일치하는 PyTorch 빌드를 설치한 다음 나머지 requirements를 설치하십시오. 러너를 호출하기 전에 원하는 환경을 활성화하십시오. 이식 가능한 스크립트는 환경 모듈을 로드하거나 Conda를 자동으로 활성화하지 않습니다.

전체 실행 전에 설치를 검증하십시오:```bash python3 attacks/scripts/check_attack_env.py
--require-trl --require-vllm --strict-versions

공격, 적응형 공격, 그리고 그 평가에 사용되는 Llama 모델은 Hugging Face에서 게이트되어 있습니다. 두 Llama 모델 저장소 모두에 대한 접근을 요청한 후, 벤치마크를 실행하기 전에 한 번 인증하세요:```bash
hf auth login

비대화형 머신에서는 대신 HF_TOKEN을 설정하세요. 이 토큰은 Hugging Face 라이브러리에서 읽으며, 매니페스트, 스크립트 또는 공개된 저장소에 절대 기록해서는 안 됩니다. 쿼리 풀 데이터셋 자체는 공개되어 있습니다.

논문에서 사용된 모델

실험역할Hugging Face 모델 ID
클린 공격victim/teachermeta-llama/Llama-3.3-70B-Instruct
클린 공격surrogate/studentmeta-llama/Llama-3.1-8B-Instruct
방어victim/teacherQwen/Qwen2.5-72B-Instruct
방어base surrogate/studentQwen/Qwen2.5-7B
적응형 공격victim/teachermeta-llama/Llama-3.3-70B-Instruct
적응형 공격surrogate/studentmeta-llama/Llama-3.1-8B-Instruct
DIPPER 적응형 공격응답 재작성기kalpeshk2011/dipper-paraphraser-xxl
DIPPER 적응형 공격토크나이저google/t5-v1_1-xxl
역번역 적응형 공격번역 모델facebook/seamless-m4t-v2-large

공격 실행기는 대형 모델을 로컬 OpenAI 호환 vLLM 엔드포인트를 통해 서빙할 수 있습니다. 이식 가능한 기본값은 다음과 같습니다:```text teacher endpoint: http://127.0.0.1:8000/v1 student endpoint: http://127.0.0.1:8001/v1

`runs/run_attack.sh`의 경우, 서빙 모드가 서버 프로세스의 소유권을 결정합니다:

| 모드 | 서버 수명 주기 |
|---|---|
| `local` (기본값) | 스크립트가 현재 할당 내에서 vLLM을 시작하고, 정상 상태가 될 때까지 기다린 후, 자신이 시작한 프로세스만 중지합니다. |
| `external` | 사용자가 스크립트를 실행하기 전에 OpenAI 호환 엔드포인트를 시작합니다. 스크립트는 해당 엔드포인트에 연결하며 절대 중지하지 않습니다. |

방어 및 적응형 공격 진입점은 각각의 메서드별 러너를 사용하며, 필요한 모델 ID는 위에 나열되어 있습니다. GPU 할당, 분산 실행, 클러스터 스케줄링은 호출자의 책임으로 남습니다. 샘플링, 학습, 평가 기본값은 개별 셸 스크립트에 중복되지 않고 논문 프로필에서 로드됩니다.

### 아티팩트 위치

모든 실행 명령은 `--output-root`를 공통 아티팩트 루트로 해석하고 실험 유형 디렉터리를 자동으로 추가합니다:

| 명령 | 기본 기본 출력 | 평가에 전달되는 매니페스트 |
|---|---|---|
| `run_attack.sh` | `outputs/attacks/<attack>/<run-id>/` | `attack_manifest.json` |
| `run_defense.sh` (방어된 추출) | `outputs/defenses/<defense>/<attack>/b<budget>/` | `defense_run_manifest.json` |
| `run_defense.sh` (결과 기반) | `outputs/defenses/<defense>/<attack>/b<budget>/` | 생성된 `detector_manifest.json` |
| `run_adaptive_attack.sh` | `outputs/adaptive/<adaptive>/<defense>/<attack>/b<budget>/` | `defense_run_manifest.json` |
| `run_evaluation.sh` | `outputs/evaluation/<run-type>/<source-run-id>/` | 해당 없음 |

예를 들어, 공격 명령에 `--output-root /data/mea-runs`를 추가하면 `outputs/attacks/...`가 `/data/mea-runs/attacks/...`로 변경됩니다. 동일한 규칙이 `defenses/`와 `adaptive/`에도 적용됩니다. 평가는 `--manifest`로 선택된 소스를 읽은 다음, 해당 로컬 체크포인트와 관련 아티팩트를 자동으로 검색합니다. 평가 자체의 `--output-root`는 메트릭의 대상 위치만 제어합니다.

권장 워크플로는 다음과 같습니다:

1. `--dry-run`과 함께 원하는 명령을 한 번 실행하여 인수를 검증합니다;
2. `--dry-run` 없이 실행하고 종료 상태가 0이 될 때까지 기다립니다;
3. 최종 명령 출력에 표시된 매니페스트를 찾습니다; 그리고
4. 해당 매니페스트를 정확히 `runs/run_evaluation.sh`에 전달합니다.

## 1. 공격 실행

호출당 정확히 하나의 공격과 하나의 예산을 실행합니다:```bash
bash runs/run_attack.sh \
  --attack seqkd \
  --budget 1000 \
  --profile paper

일반적인 선택적 인수는 다음과 같습니다:```text --output-root outputs --seed 20260701 --resume --dry-run

The paper profile은 쿼리 풀, 모델 ID, 생성 설정, 로컬 서빙 모드를 제공합니다. 기존 OpenAI 호환 엔드포인트는 `--teacher-serving external`, `--teacher-endpoint`, `--student-serving external`, `--student-endpoint`를 사용한 고급 오버라이드로 선택할 수 있습니다.

러너는 다음을 담당합니다:

1. 정확한 쿼리 풀 티어와 결정적 순서를 해석합니다;
2. 교사 및 학생 구성을 검증합니다;
3. 프로토콜 호환 교사 트랜스크립트를 생성하거나 재사용합니다;
4. SODA에 필요한 매칭된 SeqKD 초기화와 같은 메서드별 전제 조건을 생성합니다;
5. 정의된 획득 또는 훈련 절차를 변경하지 않고 선택된 메서드를 실행합니다;
6. 완료된 `attack_manifest.json`을 작성합니다.

SeqKD, LoRD, SODA, GAD는 paper profile 아래에서 공유 오프라인 교사 트랜스크립트를 재사용합니다. QEDKS와 Model Leeching은 메서드별 획득 절차를 유지합니다. 트랜스크립트 재사용은 예산, 쿼리 풀 해시, 순서 해시, 피해자 모델, 생성 설정이 일치할 때만 허용됩니다.

서빙은 기본적으로 `local`로 설정되며, 호출자의 할당 내에서 이전 Slurm 오케스트레이터의 수명 주기를 복원합니다. 오프라인 공격의 경우 러너는 교사 vLLM을 시작하고, 트랜스크립트를 빌드하고, vLLM을 중지한 다음 훈련합니다; QEDKS와 Model Leeching의 경우 획득을 위해 메서드 로컬 교사를 유지합니다. SODA는 또한 필요한 학생 서비스를 자동으로 시작합니다. 이미 실행 중인 엔드포인트를 재사용하려는 경우에만 `--teacher-serving external` 또는 `--student-serving external`을 전달하세요. GPU 배치와 용량은 호출자의 책임으로 남습니다.
도구 다운로드