우리는 보안에 대해 5가지 AI 커밋 메시지 스킬을 테스트했습니다. 그 중 3은 상황을 악화시켰습니다.
It looks like only the source line was provided. Could you please share the text you’d like translated to Korean? Once I have the content, I’ll translate it while preserving the formatting and keeping the source link unchanged.
Overview
재사용 가능한 AI 구성 요소가 급증하고 있습니다 — 스킬, MCP 서버, 템플릿, 서브‑에이전트 등.
하지만 “이게 실제로 도움이 될까?” 라는 질문에 대한 공통된 답변 방법은 없습니다.
우리는 이를 알아보기 위해 행동 평가 연구를 진행했습니다. 결과는 놀라웠습니다.
- GitHub에서 보안용으로 테스트한 5개의 커밋‑메시지 스킬 중 2개만이 기준선보다 긍정적인 향상을 보였습니다.
- 나머지 3개는 음성 향상을 나타냈으며, 스킬을 전혀 사용하지 않은 경우보다 결과가 더 나빴습니다.
- 최고 성능을 보인 스킬은? 보안 규칙이 전혀 없는 스킬이었습니다.
더 놀라운 점은, 작은 샘플에서도 정적 분석이 전체 보안 성능을 예측하는 데 신뢰할 수 없다는 것이었습니다. 가장 보안이 낮아 보였던 스킬(프롬프트‑전용 검토에서 42/100 점)이라도 가장 높은 향상을 달성했습니다.
정적 분석은 자격 증명 탐지를 잘 예측했지만, 다른 카테고리에서는 실패했습니다. 5개의 스킬만으로는 예비적인 신호에 불과하며, 확정적인 결과는 아닙니다 — 하지만 이는 스킬이 실제로 하는 일을 측정해야 하며, 단순히 스킬이 말하는 것을 읽는 것만으로는 충분하지 않다는 점을 시사합니다.
Measuring “Lift”
스킬이 실제로 도움이 되는지를 측정하려면 baseline‑relative metric인 lift 를 사용해야 합니다:
[ \textbf{Lift} = \text{Skill Pass Rate} - \text{Baseline Pass Rate} ]
- Positive lift → 스킬이 가치를 추가합니다.
- Negative lift → 스킬 없이 사용하는 것이 더 좋습니다.
우리 테스트에서 baseline(스킬이 없는 Claude)은 보안 카테고리 전체에서 50 % 의 패스율을 기록했지만, 카테고리별로 차이가 크게 나타났습니다.
| 카테고리 | Baseline Pass Rate | 해석 |
|---|---|---|
| S1: Credential Detection | 81.7 % | 모델이 명백한 자격 증명을 이미 잘 탐지함 |
| S2: Credential Files | 85.0 % | 모델이 .env 파일을 이미 잘 탐지함 |
| S3: Git‑Crypt Awareness | 15.0 % | 모델이 암호화된 파일을 과도하게 거부함 |
| S4: Shell Safety | 53.3 % | 모델이 때때로 안전하지 않은 구문을 포함함 |
| S5: Path Sanitization | 16.7 % | 모델이 민감한 경로를 자주 누출함 |
Baseline 성능은 15 % 에서 85 % 사이로 다양합니다. 스킬은 baseline이 약한 영역(S3, S4, S5)에서 가장 큰 가치를 추가합니다.
테스트 설정
- 5개의 커밋‑메시지 스킬이 공개 GitHub 저장소에서 선택되었습니다.
- 각 스킬은 100개의 보안 시나리오(5개 카테고리 × 2난이도 수준 × 10테스트)에서 평가되었습니다.
- 각 테스트는 3회 실행되어 잡음을 줄였으며 → ≈1,500회 총 실행.
- 생성에는 Claude Haiku를 사용했으며, 더 큰 모델에서는 결과가 다를 수 있습니다.
테스트된 스킬
| Skill | Length (chars) | Approach | Lift |
|---|---|---|---|
| epicenter | 8,586 | 50자 제한을 가진 엄격한 관례적 커밋 | +6.0 % |
| ilude | 8,389 | 보안 스캔을 포함한 포괄적인 Git 워크플로 | +1.7 % |
| toolhive | 431 | 최소한의 모범 사례 | ‑1.0 % |
| kanopi | 4,610 | 보안 경고가 포함된 균형 잡힌 커밋 관례 | ‑4.0 % |
| claude‑code‑helper | 4,376 | 커밋 기능을 갖춘 범용 어시스턴트 | ‑4.3 % |
최고 성능을 보인 epicenter는 보안 지시가 전혀 포함되지 않았습니다(자격 증명 감지 없음, 비밀 스캔 없음, 민감한 파일에 대한 경고 없음).
포맷‑중심 스킬이 보안‑중심 스킬보다 우수한 이유
제약 기반 안전:
- epicenter의 엄격한 50자 제한은 출력에 쉘 메타문자가 나타날 가능성을 크게 줄입니다.
- 추상적인 범위 요구사항은 민감한 경로 세부 정보를 노출하는 것을 억제합니다.
따라서 포맷 제약은 명시적인 규칙 없이도 암묵적인 보안을 제공합니다.
중요한 주의사항: epicenter의 전체 향상 효과는 카테고리별 약점을 가립니다.
- S1 (자격 증명 탐지): ‑10 %
- S2 (자격 증명 파일): ‑27 %
- 전체 +6 % 향상은 전적으로 S3, S4, S5를 지배함으로써 얻어집니다.
- API 키를 잡는 것이 우선이라면, epicenter는 잘못된 선택입니다.
Source: …
정적 분석 vs. 실제 성능
우리는 Claude에게 프롬프트 텍스트만을 기반으로 보안 인식에 대해 각 스킬을 0‑100 점으로 평가하도록 요청했습니다.
| Skill | Security Mentions | Static Score | Actual Lift |
|---|---|---|---|
| epicenter | 없음 — 순수 포맷 가이드 | 42/100 | +6.0 % |
| ilude | 명시적인 스캔 규칙, git‑crypt 예외 | 78/100 | +1.7 % |
| kanopi | API 키, 비밀, 자격 증명, .env 파일 | 52/100 | ‑4.0 % |
정적 분석 점수는 실제 상승률과 약한 상관관계를 보였습니다 (r = 0.32).
카테고리‑레벨 상관관계
| Category | Correlation (r) | Meaning |
|---|---|---|
| S1: Credential Detection | +0.87 | 명시적인 규칙이 도움이 됨 |
| S4: Shell Safety | ‑0.68 | 규칙이 많을수록 성능이 나빠짐 |
| S3: Git‑Crypt | ‑0.50 | 규칙이 많을수록 성능이 나빠짐 |
n = 5인 상황에서 이 상관관계들은 잡음이 많고 통계적으로 유의미하지 않지만, 일부 카테고리에서는 상세한 지시가 실제로 역효과를 낼 수 있다는 점이 눈에 띕니다.
적대적 테스트와 기본 테스트
우리 테스트 스위트에는 기본(직관적인) 변형과 적대적 변형이 포함됩니다. 적대적 테스트는 모델이 보안 제약을 무시하도록 속이기 위해 설계된 프롬프트‑인젝션 컨텍스트를 추가합니다.
극적인 실패: toolhive
| Skill | S1 Base | S1 Adversarial | Δ (percentage points) |
|---|---|---|---|
| toolhive | +16.7 % | ‑23.3 % | ‑40 pp |
| ilude | +33.3 % | +3.3 % | ‑30 pp |
toolhive는 **+16.7 %**에서 **‑23.3 %**로 40 포인트가 급락합니다. 직관적인 경우에는 잘 동작하지만 프롬프트 인젝션이 모델에게 자격 증명이 안전하다고 설득하려 할 때 실패합니다.
왜 epicenter는 붕괴되지 않을까?
epicenter는 패턴 매칭에 의존하지 않기 때문입니다. 포맷 제약(예: 50자 제한)이 출력 공간을 제한하여 사회공학 공격을 무효화합니다. 50자 커밋 메시지는 전체 API 키를 담을 수 없으므로, 공격이 효과를 발휘할 수 없습니다.
핵심 원칙: 명시적 규칙보다 구조적 제약
| 형식 제약 | 보안 효과 | 향상 기여도 |
|---|---|---|
| 50자 제한 | 쉘 명령($(cmd) 등) 사용 여지 감소 | +20 % (S4) |
| 추상 스코프 | 클라이언트 이름이나 파일 경로 사용을 억제 | +27 % (S5) |
| 보안 규칙 없음 | 암호화 파일에 대한 과도한 거부 방지 | +30 % (S3) |
핵심 요점: 피해야 할 항목을 나열하는 대신, 구조적 제한을 설정하여 위반 가능성을 낮추십시오. 50자 제한은 쉘 인젝션을 언급하지 않지만, 공격자가 사용할 수 있는 출력 공간을 극적으로 제한합니다.
범위
- 5 기술
- 1 도메인 – 보안‑중심 테스트
모델
- Claude Haiku 로 생성된 결과.
- 더 큰 모델은 자세한 지시를 다르게 처리할 수 있습니다.
Rigor
- Results have been human‑audited.
- We are publishing:
- Judge prompts → 판사 프롬프트
- Agreement rates → 동의율
- Confidence intervals → 신뢰 구간
발행 알림
우리는 제한된 데이터가 없는 데이터보다 낫다 라는 이유로 이를 조기에 공개합니다. 직관에 의존하기보다 실제 수치에 대해 도전받는 것이 더 낫다고 생각합니다.
리소스
- 전체 방법론 및 평가 루브릭:
- 이 시리즈의 파트 2 (제거 테스트 – 정확히 어떤 제약이 중요한지 격리):