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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
BotLens — 대규모 리뷰 분석, LLM 라벨링, 31개 테마 분류 체계를 통해 타사 Discord 봇의 보안 및 개인정보 보호 문제를 감사하는 연구 아티팩트 겸 MCP 서버입니다. | Kitploit
도구/GitHubGitHub/ua-spectral/botlens
Vulnerability AnalysisInformation GatheringWeb SecurityPrivacyMachine LearningPapers & ResearchLearning & EducationCrawler
GitHubua-spectral/botlens

BotLens

대규모 리뷰 분석, LLM 라벨링, 31개 테마 분류 체계를 통해 타사 Discord 봇의 보안 및 개인정보 보호 문제를 감사하는 연구 아티팩트 겸 MCP 서버입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

BotLens: 소셜 플랫폼의 제3자 커뮤니티 기반 봇을 위한 보안 및 개인정보 감사 프레임워크

논문: Kofi Ampomah and Tu Le. Measuring Users' Security and Privacy Concerns About Third-Party Community Bots on Discord. Network and Distributed System Security (NDSS) Symposium 2027. https://dx.doi.org/10.14722/ndss.2027.230535

아티팩트 검토자 안내: ARTIFACT-EVALUATION.md부터 시작하십시오. 이 문서는 논문의 모든 주장을 이를 재현하는 정확한 명령에 매핑하고, 예상 출력과 실행 시간을 나열하며, 어떤 구성 요소가 범위 밖인지 설명합니다.

개요

이 저장소에는 BotLens 파이프라인의 소스 코드가 포함되어 있으며, 이 파이프라인은 대규모 리뷰 분석과 메타데이터 감사를 통해 Discord의 제3자 커뮤니티 기반 봇에서 보안 및 개인정보(S&P) 관련 우려를 분석합니다. 이 파이프라인은 Top.gg에서 스크레이핑한 23,102개 봇에 걸친 183,142개의 사용자 리뷰를 처리하고, 8,832개의 리뷰를 S&P 관련 리뷰로 식별하며 — 관측된 파이프라인 산출률은 4.82% — 이를 31개 테마의 S&P 분류 체계에 매핑합니다.

저장소 구조

BotLens/
├── README.md                          # This file
├── ARTIFACT-EVALUATION.md             # Claim → command → expected output
├── LICENSE                            # See License below
├── CITATION.cff                       # How to cite (also used by Zenodo)
├── botlens-ndss-data.zip              # The data; unpack to data/ (see Data below)
├── requirements-lock.txt              # Exact versions used for the paper
├── requirements.txt                   # Looser version bounds
│
├── config/                            # Pipeline configuration
│   ├── __init__.py
│   ├── settings.py                    # Paths, model params, thresholds
│   └── taxonomy.py                    # 31-theme S&P taxonomy (single source of truth)
│
├── scrapers/                          # Data collection scripts
│   ├── topgg_metadata_scraper.py      # Bot metadata scraper (Top.gg pages)
│   ├── topgg_reviews_scraper.py       # Bot review scraper (Top.gg reviews)
│   └── discord_server_scanner.py      # Server bot scanner — OUT OF SCOPE, see below
│
├── scripts/                           # Pipeline stages + analysis
│   ├── stage0_preprocess.py           # Merge, clean, detect language, translate
│   ├── stage1_llm_labeling.py         # Binary S&P classification via Ollama
│   ├── stage1b_active_learning.py     # Active learning loop
│   ├── stage2_prepare_data.py         # Train/val/test splits with balancing
│   ├── stage3_finetune_deberta.py     # Fine-tune DeBERTa-v3-large classifier
│   ├── stage4_classify_all.py         # Classify all 183K reviews
│   ├── stage5_theme_assignment.py     # Assign 31-theme taxonomy themes
│   ├── stage6_emotion_classification.py # GoEmotions → Ekman-style groups
│   ├── stage7_analysis.py             # Sec. IV-A: SPRR, TPR, per-tag/per-bot tables
│   ├── stage8_visualizations.py       # Figs. 2–9
│   ├── rq3_permissions_metadata.py    # RQ3 (Sec. IV-D): statistics + Figs. 10–14, 18
│   ├── language_affective_analysis.py # Appendix B: Fig. 17
│   ├── experiment_labeling_pct.py     # Labeling-budget experiment (10–45%)
│   ├── create_irr_sheets.py           # Inter-rater reliability labeling sheets
│   ├── compute_kappa.py               # Cohen's kappa (Sec. III-C3)
│   ├── check_langs.py                 # Language distribution (Table IV; needs raw crawl)
│   └── prep_30pct_for_al.py           # Prepare labels for active learning
│
├── tests/
│   └── test_smoke.py                  # Fast integrity checks, no data required
│
└── mcp_server/                        # BotLens MCP server (Sec. V)
    ├── server.py                      # The six tools of Sec. V-B2 (+ internal helpers)
    ├── example_client.py              # MCP SDK client reproducing Use Cases 1 and 2
    └── benchmark_latency.py           # Sec. V-D latency session

스크립트가 작성하는 모든 그림은 논문의 그림 번호를 따라 이름이 지정됩니다 (figures/fig02_sprr_over_time.png는 Fig. 2이며, 나머지도 마찬가지입니다). 스크립트는 논문에 있는 그림과 정확히 동일한 그림을 생성합니다: Figs. 2–14, 17, 18. Fig. 1은 파이프라인 개략도이며, Figs. 15–16은 BotLens 보고서 UI의 스크린샷입니다.

아티팩트 받기

아티팩트는 **https://github.com/ua-spectral/BotLens**에서 릴리스됩니다. 각 GitHub 릴리스는 DOI와 함께 Zenodo에 영구 보관되며, DOI는 논문의 아티팩트 부록과 저장소의 릴리스 페이지에 명시되어 있습니다.

데이터

데이터는 저장소에 botlens-ndss-data.zip(41 MB; 파일 하나가 압축 해제 시 515 MB로, GitHub의 파일당 제한을 초과함)으로 포함되어 배포됩니다. 저장소 루트에서 한 번 압축을 해제하십시오:

python -m zipfile -e botlens-ndss-data.zip .

이렇게 하면 config/ 옆에 data/가 생성되며, 그 외에 다운로드해야 할 것은 없습니다. 레이아웃은 다음과 같습니다:

BotLens/
└── data/
    ├── processed/
    │   ├── all_reviews_classified.csv    # 183,142 rows — required by the MCP server
    │   ├── privacy_reviews_full.csv      # 8,832 S&P reviews w/ themes + affect
    │   ├── bot_metadata_cleaned.csv      # 23,102 bots (Table I, MCP fallback)
    │   ├── train.csv / val.csv / test.csv
    │   └── label_map.json
    ├── results/                          # Tables behind the paper's numbers
    ├── reference_figures/                # Our output of every generated figure
    └── irr/                              # Annotator workbooks (Sec. III-C3)

data/ 안에서 sha256sum -c SHA256SUMS.txt로 무결성을 검증하세요. data/README.md는 모든 파일을 설명합니다.

파이프라인 아키텍처

단계스크립트설명주요 출력
0stage0_preprocess.py리뷰 + 메타데이터 병합, 언어 감지, Argos Translatedata/raw/reviews.csv
1stage1_llm_labeling.pyOllama/Llama 3 8B 이진 S&P 분류phase1_binary_labels.csv
1bstage1b_active_learning.py불확실성 샘플링 + 다수결 레이블개선된 훈련 세트
2stage2_prepare_data.py신뢰도 필터링, 5:1 다운샘플링, 계층적 분할train/val/test.csv
3stage3_finetune_deberta.pyDeBERTa-v3-large 미세 조정 (30% 레이블링에서 F1 = 0.938)best_model/
4stage4_classify_all.py전체 183,142개 리뷰에 대한 배치 추론all_reviews_classified.csv
5stage5_theme_assignment.pyOllama가 31개 테마 분류 체계의 테마를 할당privacy_reviews_themed.csv
6stage6_emotion_classification.pyGoEmotions (RoBERTa) → 8개 정서 그룹privacy_reviews_full.csv
7stage7_analysis.pySPRR, TPR, 태그별 및 봇별 SPRR, 테마별 정서data/results/analysis_summary.json
8stage8_visualizations.py그림 2–9, Fig. 2 OLS 추세 포함 (R² = 0.35)figures/fig02_* … fig09_*

주요 지표

  • SPRR (보안 및 프라이버시 리뷰 비율): 우리 파이프라인이 S&P 관련성이 있다고 식별하고 유지한 리뷰의 비율입니다. 전체 SPRR = 4.82%. 이는 파이프라인이 식별한 리뷰 비율이며, 검증된 취약점, 확인된 위법 행위, 또는 봇 수준의 위험을 측정한 값이 아닙니다.
  • TPR (테마 유병률): 31개 테마 분류 체계 전반에 걸친 S&P 리뷰의 분포로, unassigned로 레이블된 리뷰는 제외합니다.

분류 체계

31개 테마 S&P 분류 체계(논문 표 V)는 Akgul et al. (USENIX Security 2024)에서 계승한 20개 테마와 본 연구에서 귀납적으로 개발한 11개 테마 — 2개의 추가 보안 및 안전 테마와 9개의 Discord 특화 테마 — 로 구성됩니다. config/taxonomy.py가 단일 진실 공급원이며, stage8_visualizations.py는 여기서 그룹화를 도출합니다.

테마 그룹 1 — 데이터 관행 (7개, 모두 계승): 데이터 수집, 데이터 공유, 데이터 삭제, 개인 식별 정보 제거, 데이터 노출, 데이터 은닉, 위치 및 추적

테마 그룹 2 — 사용자 권리 및 제어 (7개, 모두 계승): 동의, 프라이버시 제어, 익명성 / 식별, 광고, 프라이버시 정책 및 법률, 프라이버시 침해, 긍정적 프라이버시

테마 그룹 3 — 보안 및 안전 (6개 계승 + 2개 신규): 데이터 보안, 비밀번호 문제, 데이터 정확성, 안전, 데이터 판매, 감시, 피싱 및 사기 (신규), 데이터 보존 (신규)

테마 그룹 4 — Discord 특화 위험 (9개, 모두 신규): 과도한 청취, 권한 범위 불일치, 메시지 콘텐츠 접근, DM 프라이버시, 게이트웨이 인텐트 남용, 웹훅 오용, 서버 프로파일링, 음성 프라이버시, 봇 모더레이션 투명성

데이터 수집

메타데이터 스크래퍼 (scrapers/topgg_metadata_scraper.py)

병렬 undetected-chromedriver 인스턴스를 사용하여 90개 이상의 카테고리 태그에 걸쳐 Top.gg에서 공개 봇 메타데이터를 수집하며, 자동 재시작과 진행 상황 지속성을 지원합니다.

리뷰 스크래퍼 (scrapers/topgg_reviews_scraper.py)

4개의 동시 브라우저 인스턴스를 사용하는 비동기 Playwright로 Top.gg 봇 페이지에서 공개 사용자 리뷰를 스크래핑합니다. 페이지네이션, 중복 제거, 봇별 JSON 내보내기를 처리합니다. 리뷰어 표시 이름은 공개 페이지에 표시되지만 의도적으로 읽거나 보관하지 않으며, 리뷰 콘텐츠와 공개 메타데이터만 수집됩니다.

Discord 서버 스캐너 (scrapers/discord_server_scanner.py) — 범위 외

이 스크립트는 실제 Discord 사용자 계정으로 로그인을 자동화하여 서버의 APP 배지 멤버를 열거하고, scan_server_bots(논문 사용 사례 2)를 시연하는 데 사용되는 봇 매니페스트를 생성합니다.

아티팩트 검토자는 이 스크립트를 실행해서는 안 됩니다. 사용자 계정을 자동화하는 것은 Discord의 서비스 약관에 위배되며, 실행하려면 실제 자격 증명을 .env에 넣어야 합니다. 이는 기록의 완전성을 위해서만 포함되었습니다. 이 스크립트 없이 scan_server_bots를 실행하려면 한 줄에 하나의 봇 이름이 담긴 텍스트 파일을 전달하십시오 — ARTIFACT-EVALUATION.md를 참조하십시오.

MCP 서버

mcp_server/server.py는 Model Context Protocol을 통해 다음 도구들을 노출하며, 모든 MCP 호환 클라이언트에서 온디맨드 S&P 의사결정 지원을 제공합니다.

논문에서 설명하는 여섯 가지 도구

도구 다운로드