Role-Specific Evaluation of LLMs for Security Vulnerability Detection
논문 · 문서 · 빠른 시작 · 결과
SecLens는 오픈 소스 프로젝트에서 확인된 CVE를 사용하여 실제 환경의 취약점 탐지에 대해 LLM을 평가하는 벤치마크입니다. 단일 리더보드 점수를 산출하는 기존 벤치마크와 달리, SecLens는 **다섯 가지 이해관계자 관점(stakeholder lenses)**을 통해 각 모델에 점수를 매겨, 어떤 사람이 질문하느냐에 따라 최고의 모델이 달라진다는 것을 보여줍니다.
주요 발견: 동일한 모델이라도 결정 점수가 최대 31점에 달할 정도로 차이가 납니다. Qwen3-Coder는 엔지니어링 책임자(Head of Engineering)에게는 A를 받지만, CISO에게는 D를 받습니다. 리더보드에서 8위에 랭크된 Claude Haiku 4.5는 CISO에게는 2위를 차지했습니다.
기존 보안 벤치마크(CyberSecEval, PrimeVul, SecVulEval)들은 모델의 성능을 하나의 숫자로 축소합니다. 이 숫자는 다음 질문에 답할 수 없습니다:
| 이해관계자 | 질문 | 필요한 것 |
|---|
| CISO | 내 보안 프로그램에서 이 모델을 신뢰할 수 있을까? | 심각도 가중치 회상률(Severity-weighted recall), 사각지대 없음 |
| 최고 AI 책임자 (Chief AI Officer) | 비용과 역량을 균형 있게 갖춘 모델은 무엇일까? | 달러당 MCC, 자율 완료(autonomous completion) |
| 보안 연구원 (Security Researcher) | 이 모델이 취약점 메커니즘을 이해하는가? | CWE 정확도, 증거 사슬(evidence chains) |
| 엔지니어링 책임자 (Head of Engineering) | 이것이 우리 팀의 속도를 높일까, 낮출까? | 정밀도(Precision), 낮은 비용, 빠른 작업 시간(fast wall times) |
| AI 액터 (AI as Actor) | 이 에이전트가 감독 없이 작동할 수 있을까? | 구문 분석 신뢰성(Parse reliability), 우아한 저하(graceful degradation) |
SecLens는 단일 평가 실행만으로 위 다섯 가지 질문 모두에 답합니다.
작업 (Tasks) | 93개 오픈 소스 프로젝트에서 가져온 406개의 CVE 기반 작업 |
언어 (Languages) | Python, JavaScript, Go, Ruby, Rust, Java, PHP, C, C++, C# |
카테고리 (Categories) | OWASP에 맞춰진 8가지 취약점 카테고리 |
차원 (Dimensions) | 7가지 측정 범주에 걸친 35가지 공유 메트릭 |
역할 (Roles) | 고유한 가중치 프로필을 가진 5가지 이해관계자 관점 |
레이어 (Layers) | 코드-인-프롬프트(Code-in-Prompt, 추론) + 도구 사용(Tool-Use, 실제 감사)|
테스트 모델 (Models tested) | Anthropic, Google, OpenAI 및 기타의 12개 최첨단 모델
동일한 12개 모델을 5가지 다른 관점(lenses)으로 평가했습니다. 등급 기준: A >= 75, B >= 60, C >= 50, D >= 40.
| Model | Leaderboard | CISO | CAIO | Researcher | Head Eng. | AI Actor |
|---|
| Gemini 3 Flash Preview | 49.6% | B (73.3) | B (68.1) | B (71.0) | B (66.2) | A (87.5) |
| ... | | | | | | |
| 단일 모델이 압도적이지 않습니다. 여섯 가지 다른 모델이 적어도 한 가지 카테고리에서 선두를 차지합니다. | | | | | | |
보수적인 예측 전략(높은 정밀도, 낮은 재현율)을 가진 모델은 엔지니어링 분야에서는 최고 등급을 받지만 CISO 역할에서는 실패합니다. 이 격차는 Role Divergence Index로 정량화됩니다.
더 많이 지출한다고 해서 더 나은 결과를 보장하지 않습니다. GPT-5.4가 $0.007/task에서 최고의 MCC-per-dollar를 제공합니다.
SecLens는 모델을 두 계층(layers)에서 평가한 다음, 역할별 가중치 프로파일을 통해 점수를 매깁니다:
┌─────────────────────────────────┐
│ Dataset (406 CVE tasks) │
└──────────┬──────────────────────┘
...
각 역할은 7가지 차원 카테고리에 다르게 가중치를 부여합니다:
# Install
uv venv --python 3.13
uv sync
...
| Command | Purpose |
|---|
seclens run | 모델을 CVE 작업으로 평가 |
seclens summary | 실행된 종합 메트릭 보기 |
seclens report --role <name> | 역할별 분석 생성 |
seclens report --all-roles | 5가지 모든 역할 보고서 생성 |
seclens compare | 역할 관점을 통해 모델 비교 |
각 취약점 작업은 세 가지 차원에서 점수를 받습니다:
| Dimension | Points | What It Measures |
|---|---|
Verdict | 1 | 코드가 취약한지 여부를 올바르게 식별 |
CWE | +1 | 정확한 취약점 유형을 식별 (예: CWE-89) |
Location | +1 | 취약한 코드 지점을 특정 (연속 IoU 점수) |
35개의 종합 차원이 작업별 결과로부터 계산되며, 네 가지 전략(비율, MCC, lower-is-better, higher-is-better)을 사용하여 [0, 1]로 정규화되고, 역할별로 가중치가 부여되어 결정 점수(Decision Score) (0-100)와 등급 A부터 F를 산출합니다.
| 등급 (Grade) | 점수 (Score) | 의미 (Meaning) |
|---|
| A | $\ge 75$ | 이 역할에 매우 우수함 (Excellent for this role) |
| B | $\ge 60$ | 좋음; 약한 차원 검토 필요 (Good; review weak dimensions) |
| C | $\ge 50$ | 보통; 인간의 감독 필요 (Fair; requires human oversight) |
| D | $\ge 40$ | 미흡; 상당한 격차 존재 (Poor; significant gaps) |
| F | $< 40$ | 이 역할에 부적합함 (Not suitable for this role) |
| 카테고리 (Category) | 차원 (Dimensions) | 포함 범위 (What It Covers) |
|---|
| Detection | D1-D8 | MCC, Recall, Precision, F1, TNR, CWE Accuracy, Location IoU, Actionable Finding Rate |
| Coverage | D9-D13 | CWE 폭(breadth), 최악 카테고리 하한선(worst-category floor), 교차 언어 일관성(cross-language consistency), SAST FP 필터링 (SAST FP filtering) |
| Reasoning | D14-D17 | 증거 완전성(Evidence completeness), 추론 존재 여부(reasoning presence), 추론 + 정확한 판정(reasoning + correct verdict), FP 추론 (FP reasoning) |
| Efficiency | D18-D23 | 비용/작업(Cost/task), TP당 비용(cost/TP), MCC/$, 대기 시간(wall time), 처리량(throughput), 작업당 토큰(tokens/task) |
| Tool-Use | D24-D27 | 도구 호출(Tool calls), 턴 수(turns), 탐색 효율성(navigation efficiency), 도구 효과성(tool effectiveness) |
| Risk | D28-D30 | 심각도 가중치 재현율(Severity-weighted recall), 치명적 누락률(critical miss rate), 심각도 커버리지(severity coverage) |
| Robustness | D31-D35 | 파싱 성공(Parse success), 형식 준수(format compliance), 오류율(error rate), 자율 완료(autonomous completion), 우아한 저하(graceful degradation) |
| 속성 (Property) | 값 (Value) |
|---|
| 총 작업 수 (Total tasks) | 406 (203 true positive + 203 post-patch) |
| ... | |
| 취약점 카테고리 (Vulnerability Categories) (OWASP Top 10:2021 기반): | |
| 카테고리 (Category) | 작업 수 (Tasks) | OWASP 매핑 (OWASP Mapping) |
|---|---|
| Broken Access Control | 82 | A01:2021 |
| ... |
| 문서 (Document) | 설명 (Description) |
|---|
| 개요 (Overview) | SecLens가 무엇이며 어떻게 작동하는지 (What SecLens is and how it works) |
| ... | |
| SecLens: LLM의 역할별 보안 취약점 탐지 평가 (Role-Specific Evaluation of LLMs for Security Vulnerability Detection) | |
| Subho Halder, Siddharth Saxena, Kashinath Kadaba Shrish, Thiyagarajan M | |
# 설정 (Setup)
uv venv --python 3.13
uv sync --extra dev
...
seclens/
cli/ CLI 명령어 (run, summary, report, compare)
dataset/ HuggingFace 및 로컬 JSONL 로딩
...
Appknox
모바일 애플리케이션 보안 (Mobile Application Security) |
Kalmantic Labs
AI 보안 연구 (AI Security Research) |
자세한 내용은 LICENSE를 참조하십시오.
SecLens를 연구에 사용하는 경우, 다음을 인용해 주십시오:
자세한 내용은 LICENSE를 참조하십시오.
SecLens를 연구에 사용하는 경우, 다음을 인용해 주십시오:
@article{halder2026seclens,
title={SecLens: Role-Specific Evaluation of LLMs for Security Vulnerability Detection},
author={Halder, Subho and Saxena, Siddharth and Shrish, Kashinath Kadaba and M, Thiyagarajan},
...