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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
AGAS — LLM 기반 에이전트 집단 어그로 공격 프레임워크로, 적응형 다중 역할 전략을 사용하여 블랙박스 협업 필터링 추천 순위를 조작하면서 탐지를 회피합니다. | Kitploit
도구/GitHubGitHub/phkhanhtrinh23/agas
Machine LearningPapers & ResearchLearning & EducationAI SecurityAdversarial Attack
GitHubphkhanhtrinh23/agas

AGAS

LLM 기반 에이전트 집단 어그로 공격 프레임워크로, 적응형 다중 역할 전략을 사용하여 블랙박스 협업 필터링 추천 순위를 조작하면서 탐지를 회피합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

추천 시스템에 대한 효율적이고 효과적인 에이전트 그룹 셸링 공격

arXiv visitors

이것은 논문 "추천 시스템에 대한 효율적이고 효과적인 에이전트 그룹 셸링 공격"의 공식 코드입니다. 이 논문은 블랙박스 협업 필터링 추천 시스템에 대한 LLM 기반 셸링 공격인 AGAS를 소개합니다. 하나의 Coordinator가 여러 라운드에 걸쳐 가짜 사용자 worker 풀을 조정합니다. 각 라운드에서 Coordinator는 여덟 가지 전략 중 하나를 선택하고 모든 worker에게 역할을 할당합니다. 그런 다음 worker는 자체적인 ReAct 스타일 추론 루프를 사용하여 어떤 항목을 평가할지 결정합니다.

AGAS pipeline


1. Repo overview

agent_attack_rs/
  bash/                           # Reviewer-friendly shell scripts (RQ1–RQ5)
  prompts/                        # Coordinator + per-role prompt templates
  scripts/run_agas.py             # Single entry point (--dataset --victim ...)
  src/agas/
    roles.py                      # Role enum {PR, SN, CA, IN} (paper symbols)
    signals.py                    # WorkerSignals (τ, γ, φ) + EnvSignals (ρ, Δρ, η, ξ, a)
    strategies.py                 # 8-strategy enum
    agents/                       # Coordinator + Worker policies
    simulation/                   # Episode runner (= AGAS algorithm outer loop)
    llm/                          # OpenAI / Ollama
    recsys/                       # Surrogate + 11-victim backends
    data/                         # Dataset loaders + preprocessing pipeline
  tests/                          # Pytest suite

2. 방법 요약

AGAS는 네 가지 워커 역할을 인스턴스화합니다 (roles.py의 논문 기호):

기호긴 이름수행하는 작업
PRProfiler플랫폼을 탐색하고 브리지 풀을 구축하기 위한 안전한 필러 항목 평점.
SNSniper페이로드 역할; 직접 대상 푸시 또는 브리지 항목 승격.
CACamouflageur은밀 역할; 무해해 보이는 활동으로 신뢰를 재구축.
INInactive이번 라운드에는 행동 없음 (쿨다운 또는 격리).

각 라운드마다 Coordinator는 strategies.py의 여덟 가지 전략 중 정확히 하나를 선택합니다 (method_strategies.tex 참조):

  1. Victim Probe (S1_VICTIM_PROBE)
  2. Bridge Building (S2_BRIDGE_BUILDING, 그래프 희생자만)
  3. Warm-up (S3_WARM_UP)
  4. First Push (S4_FIRST_PUSH)
  5. Silent Slowdown (S5_SILENT_SLOWDOWN)
  6. Profile Cleanup (S6_PROFILE_CLEANUP)
  7. Safe Replacement (S7_SAFE_REPLACEMENT)
  8. Main Attack (S8_MAIN_ATTACK)

Coordinator는 두 신호 그룹(signals.py)으로부터 이러한 결정을 이끌어냅니다:

  • 워커 신호 τ_{t,w}, γ_{t,w}, φ_{t,w} — 신뢰, 위험, 그리고 구조적 검증기. 업데이트 방정식은 method_coordinator.tex와 정확히 일치합니다 (eq:trust_update, eq:risk_update, eq:risk_decay, eq:profile_validator).
  • 환경 신호 ρ^{(t)}, Δρ^{(t)}, η_t, ξ_t = (q_t, s_t), a_t — 순위, 순위 이동, 수용률, 억제 신호, 경보 플래그. 의심 점수 q_t는 eq:round_suppression_terms와 eq:round_suppression_score의 다섯 정규화 항 (d̂_t, δ̂_t, m̂_t, ŝ_t, g_t)의 0.2 가중 합입니다.

라운드 루프 (ASCII)

                ┌─────────────────────────────────────────────────┐
   t=0…T-1 ──►  │ 1. Observe ρ^{(t)}, update memory m_t           │
                │ 2. Update τ, γ, φ, η, ξ, a                       │
                │ 3. Coordinator picks Strategy ∈ {S1…S8}          │
                │    and assigns Role ∈ {PR, SN, CA, IN} per worker│
                │ 4. Workers act (filler / bridge / target items)  │
                │ 5. Validate + accept actions → ΔR̃^{(t+1)}        │
                │ 6. Refit / query victim → ρ^{(t+1)}              │
                └─────────────────────────────────────────────────┘
                          │
                          ▼
                   t* = argmin_t ρ^{(t)}, return R* = [R ; R̃^{(≤t*)}]

외부 루프는 src/agas/simulation/episode.py에 구현되어 있으며 algorithms/agas_end_to_end.tex를 반영합니다.

3. 환경

구성 요소요구 사항테스트 환경
Python≥ 3.103.13.5
PyTorch≥ 2.1 (targets 전용)2.11.0+cu128
CUDA선택 사항12.8
NumPy≥ 1.242.4.2
Pandas≥ 2.03.0.1
SciPy≥ 1.101.17.0
scikit-learn≥ 1.31.8.0
openai SDK≥ 1.122.21.0

PyTorch와 CUDA는 딥러닝 피해자 모델([targets] 추가 항목)에만 필요합니다. 핵심 AGAS 루프와 규칙 기반 / 대리 모델 경로는 GPU 의존성 없이 CPU에서 실행됩니다.

4. 설치

pip install -e .
# If you want to use the deep-learning victim models (LightGCN, NeuMF, …)
pip install -e '.[targets]'

필수 환경 변수:

변수용도기본값
OPENAI_API_KEYCoordinator / worker LLM용 OpenAI Responses API 키.(미설정 → 폴백)
OPENAI_MODELOpenAI에 전달되는 모델 이름.gpt-5.1

4. 데이터셋

논문은 여섯 개의 공개 CF 벤치마크에서 평가한다 (experiment.tex 참조):

약칭출처사용자아이템상호작용다운로드원본 파일 위치
ML-100KMovieLens 100K9431,682100,000GroupLensdata/ml-100k/
ML-1MMovieLens 1M6,0403,7061,000,209GroupLensdata/ml-1m/
Genome 2021MovieLens Tag Genome 202137,94184,6612,000,000 (capped)GroupLensdata/genome2021/
NetflixNetflix Prize342,44517,4342,000,000 (capped)Kaggledata/netflix/
DoubanDouban Movie28,05749,1768,085,679HKUSTdata/douban/
AmazonAmazon Reviews 2018998,65330,9642,000,000 (capped)UCSDdata/amazon/

원본 다운로드 파일을 data/<dataset>/에 넣은 후, 다음을 실행한다:

python scripts/preprocess_all.py --data-root data --output-root processed

각 데이터셋은 processed/<dataset>/ 아래의 표준 interactions.csv + items.csv 파일로 재작성됩니다. 스모크 테스트는 MovieLens와 함께 제공되는 훨씬 작은 ml-latest-small 샘플을 사용합니다.

학습 / 테스트 분할 프로토콜

전처리 파이프라인은 분할 파일을 저장하지 않습니다 — 전체 상호작용 로그를 내보냅니다. 분할은 런타임에 적용됩니다:

단계사용 데이터세부 사항
학습interactions.csv의 모든 상호작용대리 모델(및 모든 대상 모델)은 전체 과거 평점 집합에 대해 적합됩니다.
공격 평가세그먼트 사용자에 대한 순위각 라운드 후, 대상 아이템의 평균 순위는 최소 하나의 대상 클러스터 아이템에 ≥ 4.0을 평가한 실제 선량한 사용자(최대 2,000명)에 걸쳐 측정됩니다. 홀드아웃 테스트 세트는 디스크에 기록되지 않습니다.
가짜 주입메모리 내에서 추가됨가짜 사용자 상호작용이 추가되고 각 라운드마다 모델이 점진적으로 재적합됩니다. 이들은 표준 CSV 파일에 절대 혼합되지 않습니다.

이는 표준 쉴링 공격 평가 프로토콜을 따릅니다: 공격자는 학습 세트 사용자에 대한 피해자의 순위를 관찰하고 그에 따라 최적화하여 블랙박스 배포 시나리오를 모방합니다.

5. 실행 방법

도구 다운로드