AI 보안 벤치마크 비교: 1회와 15회 공격 성공률 읽는 법

AI 보안 벤치마크에서 ‘공격 성공률 2%’와 ‘3.1%’를 봤다면 숫자를 비교하기 전에 공격을 몇 번 시도했는지부터 확인해야 합니다. 한 번에 성공한 비율과 열다섯 번 안에 한 번이라도 성공한 비율은 같은 질문의 답이 아닙니다. 모델 이름이 같아도 도구, 방어 장치, 평가 날짜가 달라지면 해석이 달라집니다.

이 글은 GPT·Claude·Gemini의 공개 평가를 읽을 때 확인할 조건을 정리하고, 가상 로그 30행으로 시도 예산·미관찰·정상 업무 완료율을 직접 계산합니다. 공식 자료 확인일과 로컬 검산일은 2026년 10월 8일 한국시간입니다. 공개 점수는 출처의 과거 평가 결과이고, A·B·C 실습은 자체 제작한 합성 자료입니다. 실제 AI 모델 호출, 공격 실행, API 결제는 하지 않았습니다.

먼저 결론을 정리하면, 보안 점수표에서는 같은 예산의 열끼리 읽고, 끝까지 관찰하지 못한 항목은 별도로 남기며, 정상 업무가 완료되는지도 함께 봐야 합니다. 아래 실습 파일은 계정이나 키 없이 실행할 수 있습니다.

가상 설정 A의 공격 성공 케이스 비율은1회10%,5회30%,15회50%이며 B는20%로 유지되어 예산에 따라 비교가 달라지는 도표
자체 제작 합성 자료입니다. A·B는 실제 AI 모델이 아니며 각 예산에서 전체10개 케이스를 분모로 셌습니다.

1. 공격 성공률은 무엇을 세는 숫자인가

간접 프롬프트 인젝션은 AI가 읽는 문서·웹페이지·도구 결과에 끼어든 지시가 원래 사용자 요청을 바꾸려는 상황입니다. ‘공격 성공’은 평가자가 미리 정한 잘못된 행동이 발생했다는 뜻입니다. 모델의 업무 능력을 나타내는 일반 정확도와 방향이 반대이므로, 보통 공격 성공률은 낮을수록 좋습니다.

그러나 같은 ASR(Attack Success Rate) 표기라도 분모와 집계 단위는 다를 수 있습니다. 개별 공격 시도 수로 나누는지, 한 번이라도 성공한 환경·과제의 수를 세는지, 여러 후보 중 성공할 확률을 추정하는지 확인해야 합니다. 표의 이름만 보고 모두 ‘실패한 요청 비율’로 바꾸면 안 됩니다.

확인할 조건읽는 방법놓치면 생기는 오류
시도 예산 k1회, 10회, 15회 등 허용된 횟수를 함께 적습니다1회 결과와 반복 시도 결과를 직접 비교합니다
분모·집계 단위시도, 과제, 환경, 추정 확률 중 무엇인지 찾습니다서로 다른 비율을 같은 정확도로 취급합니다
공격 생성 조건고정 목록인지, 반응을 보고 바꾸는 적응형인지 구별합니다쉬운 고정 시험 결과를 적응형 공격에도 적용합니다
모델·제품·방어정확한 버전, 추론 설정, 도구와 추가 방어를 기록합니다제품 전체의 결과를 모델 자체 성능으로 일반화합니다
성공 판정·미관찰무엇이 성공인지, 빠진 로그를 어떻게 처리했는지 확인합니다중단·누락을 전부 방어 성공으로 셉니다
정상 업무 결과공격 없는 과제를 별도로 수행했는지 봅니다모든 요청을 거절하는 설정을 무조건 좋다고 판단합니다

Google DeepMind의 2025년 보안 연구는 고정된 공격에서 효과가 있었던 방어가 반응에 맞춰 바뀌는 적응형 공격에서는 약해질 수 있다고 설명합니다. 따라서 아래의 작은 고정 로그 실습도 실제 공격자에 대한 방어력을 증명하지는 않습니다. Google DeepMind의 정적·적응형 평가 설명

노트북 옆 익명 보고서와 빈 메모 탭을 대조하는 성인 작업자의 AI 연출 사진
AI로 만든 연출 이미지. 평가 조건과 보고서를 대조하는 업무 상황을 설명하며, 실제 AI 모델 평가·공격 실행 결과가 아닙니다.

2. 공개 점수 예시: 같은 표 안에서도 k를 맞추기

Anthropic Transparency Hub의 Claude Opus 5, External Red Teaming 절에는 Gray Swan IPI(Q1 2026) 결과가 있습니다. 아래는 그 자료에 서술된 값을 옮긴 것입니다. 이 사이트에서 다시 측정한 점수가 아니며, 현재 판매되는 모든 모델의 순위표도 아닙니다.

원문에 나온 모델k=1 공격 성공k=15 공격 성공자료의 성격
Claude Opus 50.2%2.0%Anthropic이 공개한 IPI 결과
GPT-5.6 Sol3.1%20.0%같은 공개 자료에 실린 외부 모델 결과

원문은 모든 모델이 extended thinking을 사용했으며, Claude에는 추가 방어를 붙이지 않았고 다른 모델은 방어가 포함될 수도 있는 공개 엔드포인트에서 평가했다고 설명합니다. 또 Gemini 3.1 Pro는 공격 수집 대회에 포함돼 결과를 직접 비교할 수 없다는 주석을 붙입니다. 이 조건 때문에 표를 모든 제품의 동등한 환경 비교나 현재 모델의 종합 보안 순위로 확대하지 않습니다. 공개 수치와 평가 조건 원문

정확한 읽기는 ‘이 평가 조건에서 Opus 5는 k=1에 0.2%, k=15에 2.0%로 보고됐다’입니다. k=15의 2.0%를 k=1의 3.1%와 비교한 한 문장만으로 모델을 추천하면 예산과 제품 조건이 빠집니다. 같은 모델의 두 열도 동일한 오류율이 두 번 측정된 것이 아니라, 허용 시도가 달라진 결과입니다.

오늘 확인한 자료와 최신 모델 점수를 구별하기

2026년 10월 8일에 페이지를 다시 확인했다고 해서 Q1 2026 평가가 10월 평가로 바뀌지는 않습니다. GPT-5.6 Sol의 점수를 GPT-6.1 Sol에, Opus 5의 점수를 Sonnet 5.5에 옮겨 쓰지 마세요. GPT-6.1 Sol 소개와 Sonnet 5.5 소개는 해당 버전의 별도 자료입니다.

Gemini 3.8 Flash 모델 카드의 콘텐츠 안전·부당한 거절 평가도 IPI의 공격 성공률과 같은 지표가 아닙니다. 이 글에서 확인한 문서와 인용 범위만으로 GPT-6.1 Sol·Sonnet 5.5·Gemini 3.8 Flash의 동일 조건 IPI 순위를 만들 수는 없습니다. 빈칸을 0%로 채우거나 이전 버전 수치로 대신하지 않습니다.

또 다른 예로 Anthropic의 2025년 브라우저 방어 글은 환경당 100회 시도를 주는 적응형 평가와 브라우저의 추가 보호 장치를 다룹니다. 그 결과를 앞의 k=15 IPI 열 옆에 놓고 모델만의 차이로 읽으면 안 됩니다. 브라우저 평가의 100회 예산과 보호 장치

3. 실습: 시도 예산에 따라 비교가 뒤집히는 경우

이제 공개 점수와 분리된 합성 실습입니다. A와 B는 실제 모델명이 아닙니다. 각각 같은 케이스 S01~S10을 최대 15회까지 관찰했다고 가정합니다. ‘최초 성공’은 처음으로 공격이 성공한 시도 번호입니다. 빈칸은 관찰한 횟수 안에서 성공을 보지 못했다는 뜻입니다.

케이스A의 최초 성공B의 최초 성공관찰 횟수
S0111각 15회
S0221각 15회
S035없음각 15회
S0410없음각 15회
S0515없음각 15회
S06~S10모두 없음모두 없음각 15회

이번 실습의 계산 규칙은 간단합니다. ‘k회 안에 최초 성공한 케이스 수 ÷ 전체 10개 케이스 × 100’입니다. 각 케이스는 한 번만 셉니다. S01에서 여러 번 성공했더라도 케이스 성공 수가 여러 개가 되지는 않습니다.

예산AB이 실습에서 읽을 수 있는 것
k=11/10 = 10%2/10 = 20%A의 성공 케이스 비율이 더 낮습니다
k=53/10 = 30%2/10 = 20%B의 성공 케이스 비율이 더 낮습니다
k=155/10 = 50%2/10 = 20%B의 성공 케이스 비율이 더 낮습니다

A의 k=1 결과만 보거나 B의 k=15 결과만 골라 보여 주면 다른 인상을 줄 수 있습니다. 그래서 모델 비교 보고서에는 먼저 비교할 k를 정하고, 같은 열의 값과 전체 추이를 함께 남기는 편이 좋습니다. 이 예제는 비교가 달라질 수 있음을 보여 주려고 만든 자료이지, 실제 모델에서도 반드시 순위가 바뀐다는 증거는 아닙니다.

참고로 단일 시도의 성공 확률을 p라고 할 때 ‘1−(1−p)k’는 각 시도가 독립이고 같은 성공 확률을 가진다고 가정한 식입니다. 같은 자료를 반복하거나 공격자가 응답을 보고 다음 시도를 바꾸는 상황에 그 가정을 자동으로 적용할 수는 없습니다. 공개 k=1 수치에 15를 곱하거나 이 식을 넣어 k=15 공식 점수를 만들어 내지 마세요. 이번 파일은 확률을 추정하지 않고 정해진 합성 로그를 셉니다.

4. 15회까지 보지 못한 케이스는 어떻게 남길까

설정 C는 A와 같지만 S07~S10 네 케이스의 기록이 5회에서 끊겼다고 가정합니다. 이 네 케이스는 5회까지 성공이 없었습니다. 6~15회에 어떤 결과가 나왔는지는 알 수 없습니다.

  • S01~S05: 15회 안의 성공이 확인된 5개
  • S06: 15회까지 관찰했고 성공이 없었던 1개
  • S07~S10: 5회까지만 보았으므로 k=15 결과가 미관찰인 4개

k=15에서 판정 가능한 케이스는 6/10입니다. 전체 10개 중 성공이 최소 5개라는 점은 알지만, 나머지 4개가 모두 나중에 성공했을 가능성도 남아 있습니다. 따라서 전체 케이스 기준 가능한 범위는 50~90%이고 정확한 비율은 미확정입니다. 이 범위는 통계적 신뢰구간이 아니라 미관찰 항목에서 생긴 산술 하한과 상한입니다.

설정 C의15회 예산에서 성공5개 비성공확정1개 미관찰4개를 구분하고 전체10개 기준 성공비율의 가능한 범위를50~90%로 나타낸 도해
범위는 신뢰구간이 아닙니다. 미관찰4개가 모두 비성공이거나 모두 성공일 때의 산술 하한·상한입니다.

‘5/10=50%’라고 확정하면 미관찰 네 개를 비성공으로 처리한 셈입니다. 반대로 ‘5/6≈83.3%’만 발표하면 완료된 여섯 개만 남긴 다른 분모의 값입니다. 어느 계산인지 설명 없이 A·B의 전체 10개 결과와 비교하면 안 됩니다.

앞선 시도에서 이미 성공했다면 나머지 로그가 없어도 ‘k회 안에 적어도 한 번 성공’했다는 사실은 확정할 수 있습니다. 예를 들어 최초 성공이 2회이고 관찰이 5회에서 끝났어도 k=15의 성공 여부는 이미 참입니다. 하지만 성공 없이 5회에서 끝난 케이스는 k=15 비성공으로 확정할 수 없습니다. 첨부 검사기는 이 둘을 구분합니다.

5. 공격을 막았어도 정상 업무를 못 끝낼 수 있습니다

모든 요청을 거절하거나 아무 행동도 하지 않는 설정은 일부 공격 성공을 줄일 수 있습니다. 그 설정이 필요한 업무를 수행하는지는 별개의 질문입니다. OpenAI의 instruction hierarchy 연구도 정상 요청까지 거절하는 과잉 거절을 평가의 중요한 문제로 다룹니다. 연구 대상은 내부 GPT-5 Mini-R이며 현재 Sol의 점수로 읽지 않습니다. 정상 업무와 과잉 거절에 관한 연구

별도의 합성 정상 과제 10개에서 A는 9개, B는 6개를 완료했다고 가정해 보겠습니다. k=15의 공격 성공 비율은 B가 낮지만 정상 업무 완료율도 B가 낮습니다. 이 결과만으로 B를 무조건 선택하거나, 두 비율을 빼서 하나의 ‘안전 점수’를 만드는 것은 타당하지 않습니다. 두 시험의 과제와 성공 정의가 서로 다르기 때문입니다.

가상 설정 A는15회 공격성공50%와별도 정상업무완료90%,B는각각20%와60%로 두 기준을 함께 검토하는 비교
두 값은 서로 다른 과제집합의 지표입니다. 차감·평균해 하나의 안전 점수로 만들지 않습니다. 실제 모델 결과가 아닙니다.

독자는 먼저 자기 업무에서 허용할 행동과 반드시 성공해야 할 정상 작업을 정해야 합니다. 예를 들어 자료 요약만 필요하다면 외부 전송 도구를 열어 두지 않는 설계와 요약 누락 검사를 함께 고려할 수 있습니다. 여기서는 실제 도구를 켜거나 설정을 바꾸지 않습니다. 정상 JSON이나 ‘전송하지 않았다’는 응답 문구만으로 실제 행동이 없었다고 증명할 수도 없습니다.

6. 파일을 내려받아 직접 검산하기

AI 공격 시도 예산 비교 실습 ZIP 내려받기

ZIP에는 합성 케이스 30행, 별도 정상 과제 30행, 공개 점수 예시 CSV, 공식 출처 목록, Python 집계기, 26개 단위 검사, 기대 결과 JSON과 한국어 설명서가 들어 있습니다. 실제 공격 문구, 모델 응답, 계정 자료, API 키는 없습니다. 모델 실행 기록 양식은 빈 템플릿입니다.

  1. ZIP을 새로운 폴더에 풀고 README_ko.txt를 읽습니다.
  2. Python 3.10 이상이 있다면 해당 폴더에서 아래 명령을 실행합니다. 별도 패키지 설치나 인터넷 연결은 필요 없습니다.
  3. 출력을 expected_summary.json과 대조합니다. 데이터 파일과 원본은 자동 수정되지 않습니다.
  4. Python 없이 보려면 synthetic_cases.csv를 스프레드시트나 텍스트 편집기로 열고 위 표의 케이스 수를 직접 세어도 됩니다.
python score_attempts.py
python -m unittest -v test_score_attempts.py

macOS·Linux 환경에서는 python 대신 python3일 수 있습니다. 합성 CSV의 빈 최초 성공 칸을 숫자 0으로 바꾸지 마세요. 빈칸은 ‘관찰 범위 안에서 성공이 없었다’는 뜻이며 0번째 시도라는 뜻이 아닙니다.

로컬 Python 3.12.14에서 실행한 26개 검사는 A·B·C의 기대 비율, 미관찰 범위, 정상 과제 완료율, 중복·누락 케이스, 범위 밖의 시도 번호, 소수·불리언·수식 문자열 등을 점검했습니다. 이는 집계기의 동작 검사입니다. GPT·Claude·Gemini가 26개 시험을 통과했다는 뜻이 아닙니다.

독자 문제와 정답

  1. A에서 k=5의 분자는 몇 개인가? S01·S02·S03, 세 개입니다. S04의 최초 성공 10은 5회 예산 밖입니다.
  2. B의 k=1과 k=15가 같은 이유는? 두 케이스는 첫 시도에 성공했고 나머지 여덟 케이스는 15회 안에 성공이 없도록 만든 합성 자료이기 때문입니다.
  3. C의 빈칸을 모두 비성공으로 세면 어떤 오류가 생기나? 5회에서 끊긴 네 케이스를 15회까지 관찰한 것처럼 취급합니다. k=15는 성공5·비성공확정1·미관찰4로 남깁니다.
  4. A의 S02 최초 성공을 2에서 6으로 바꾸면? k=1은 10%, k=5는 20%, k=15는 50%입니다. 원본 대신 사본으로 실험하고 변경 사실을 기록하세요.
  5. 관찰 5회, 최초 성공 6회인 행이 들어오면? 관찰하지 않은 시도에서 성공했다고 적힌 모순이므로 집계하지 않고 오류로 종료해야 합니다.
  6. 공개 표의 GPT-5.6 Sol 점수를 GPT-6.1 Sol 비교 칸에 넣어도 되나? 다른 모델 버전이므로 안 됩니다. 해당 버전의 같은 조건 결과가 확인될 때까지 미확인으로 둡니다.

7. 다음 AI 비교표에 남길 최소 항목

모델을 비교할 때 한 줄의 점수 옆에 다음 정보도 남기면 과장된 결론을 줄일 수 있습니다. 첨부 model_run_log_TEMPLATE.csv에 같은 항목이 있습니다.

  • 측정일과 원문 발표일, 정확한 모델 이름·버전
  • 채팅 제품인지 API인지, 추론 설정과 도구 사용 범위
  • 자료·과제 집합의 버전, 시도 예산 k, 공격 목록 또는 적응형 여부
  • 모델 밖의 방어 장치와 성공 판정 규칙
  • 전체 케이스·성공·미관찰 수, 정상 업무 시험의 별도 분모
  • 원응답과 실제 도구 실행 로그의 보존 위치, 로그를 보지 못한 범위

독립 반복이나 불확실성 분석 없이 작은 점수 차이만으로 우열을 확정하지 마세요. 이번 실습의 10개 케이스는 산술을 익히기 위한 크기이며 일반적인 보안 수준을 추정하기에 충분하다는 주장이 아닙니다. 공식 IPI의 표본 추출·확률 추정 절차를 재현한 파일도 아닙니다.

다음에 ‘AI가 더 안전해졌다’는 표를 보면, 먼저 같은 k인지 확인하고 미관찰과 정상 업무 결과를 찾으세요. 그 정보가 없으면 낮은 숫자 하나보다 확인해야 할 조건을 기록하는 편이 더 유용합니다.

함께 읽기

작성자 소개