우리는 보안에 대해 5가지 AI 커밋 메시지 스킬을 테스트했습니다. 그 중 3은 상황을 악화시켰습니다.

발행: (2026년 2월 1일 오전 07:22 GMT+9)
11 분 소요
원문: Dev.to

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 metriclift 를 사용해야 합니다:

[ \textbf{Lift} = \text{Skill Pass Rate} - \text{Baseline Pass Rate} ]

  • Positive lift → 스킬이 가치를 추가합니다.
  • Negative lift → 스킬 없이 사용하는 것이 더 좋습니다.

우리 테스트에서 baseline(스킬이 없는 Claude)은 보안 카테고리 전체에서 50 % 의 패스율을 기록했지만, 카테고리별로 차이가 크게 나타났습니다.

카테고리Baseline Pass Rate해석
S1: Credential Detection81.7 %모델이 명백한 자격 증명을 이미 잘 탐지함
S2: Credential Files85.0 %모델이 .env 파일을 이미 잘 탐지함
S3: Git‑Crypt Awareness15.0 %모델이 암호화된 파일을 과도하게 거부함
S4: Shell Safety53.3 %모델이 때때로 안전하지 않은 구문을 포함함
S5: Path Sanitization16.7 %모델이 민감한 경로를 자주 누출함

Baseline 성능은 15 % 에서 85 % 사이로 다양합니다. 스킬은 baseline이 약한 영역(S3, S4, S5)에서 가장 큰 가치를 추가합니다.

테스트 설정

  • 5개의 커밋‑메시지 스킬이 공개 GitHub 저장소에서 선택되었습니다.
  • 각 스킬은 100개의 보안 시나리오(5개 카테고리 × 2난이도 수준 × 10테스트)에서 평가되었습니다.
  • 각 테스트는 3회 실행되어 잡음을 줄였으며 → ≈1,500회 총 실행.
  • 생성에는 Claude Haiku를 사용했으며, 더 큰 모델에서는 결과가 다를 수 있습니다.

테스트된 스킬

SkillLength (chars)ApproachLift
epicenter8,58650자 제한을 가진 엄격한 관례적 커밋+6.0 %
ilude8,389보안 스캔을 포함한 포괄적인 Git 워크플로+1.7 %
toolhive431최소한의 모범 사례‑1.0 %
kanopi4,610보안 경고가 포함된 균형 잡힌 커밋 관례‑4.0 %
claude‑code‑helper4,376커밋 기능을 갖춘 범용 어시스턴트‑4.3 %

최고 성능을 보인 epicenter보안 지시가 전혀 포함되지 않았습니다(자격 증명 감지 없음, 비밀 스캔 없음, 민감한 파일에 대한 경고 없음).

포맷‑중심 스킬이 보안‑중심 스킬보다 우수한 이유

제약 기반 안전:

  • epicenter의 엄격한 50자 제한은 출력에 쉘 메타문자가 나타날 가능성을 크게 줄입니다.
  • 추상적인 범위 요구사항은 민감한 경로 세부 정보를 노출하는 것을 억제합니다.

따라서 포맷 제약은 명시적인 규칙 없이도 암묵적인 보안을 제공합니다.

중요한 주의사항: epicenter의 전체 향상 효과는 카테고리별 약점을 가립니다.

  • S1 (자격 증명 탐지): ‑10 %
  • S2 (자격 증명 파일): ‑27 %
  • 전체 +6 % 향상은 전적으로 S3, S4, S5를 지배함으로써 얻어집니다.
  • API 키를 잡는 것이 우선이라면, epicenter는 잘못된 선택입니다.

Source:

정적 분석 vs. 실제 성능

우리는 Claude에게 프롬프트 텍스트만을 기반으로 보안 인식에 대해 각 스킬을 0‑100 점으로 평가하도록 요청했습니다.

SkillSecurity MentionsStatic ScoreActual Lift
epicenter없음 — 순수 포맷 가이드42/100+6.0 %
ilude명시적인 스캔 규칙, git‑crypt 예외78/100+1.7 %
kanopiAPI 키, 비밀, 자격 증명, .env 파일52/100‑4.0 %

정적 분석 점수는 실제 상승률과 약한 상관관계를 보였습니다 (r = 0.32).

카테고리‑레벨 상관관계

CategoryCorrelation (r)Meaning
S1: Credential Detection+0.87명시적인 규칙이 도움이 됨
S4: Shell Safety‑0.68규칙이 많을수록 성능이 나빠짐
S3: Git‑Crypt‑0.50규칙이 많을수록 성능이 나빠짐

n = 5인 상황에서 이 상관관계들은 잡음이 많고 통계적으로 유의미하지 않지만, 일부 카테고리에서는 상세한 지시가 실제로 역효과를 낼 수 있다는 점이 눈에 띕니다.

적대적 테스트와 기본 테스트

우리 테스트 스위트에는 기본(직관적인) 변형과 적대적 변형이 포함됩니다. 적대적 테스트는 모델이 보안 제약을 무시하도록 속이기 위해 설계된 프롬프트‑인젝션 컨텍스트를 추가합니다.

극적인 실패: toolhive

SkillS1 BaseS1 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 (제거 테스트 – 정확히 어떤 제약이 중요한지 격리):
Back to Blog

관련 글

더 보기 »