OWASP Benchmark 52.8점이 77.8점이 된 이유: AI 검증층이 거짓 양성을 줄이면 점수가 움직이는 산술
TL;DR 비드래프트의 보안 점검 엔진 치토스(Chitos) 를 OWASP Benchmark에 올린 자체 측정 결과, 기반 코드 스캐너 단독은 52.8, 치토스 전체는 온라인 판단 엔진 77.2, 온프레미스 판단 엔진 77.8(Youden 지수, 0~100)이었습니다. 올라간 25.0점의 정체는 단순합니다. Youden 지수는 참 양성률 - 거짓 양성률이므로, 진짜 취약점을 놓치지 않은
TL;DR
- 비드래프트의 보안 점검 엔진 치토스(Chitos) 를 OWASP Benchmark에 올린 자체 측정 결과, 기반 코드 스캐너 단독은 52.8, 치토스 전체는 온라인 판단 엔진 77.2, 온프레미스 판단 엔진 77.8(Youden 지수, 0~100)이었습니다.
- 올라간 25.0점의 정체는 단순합니다. Youden 지수는
참 양성률 - 거짓 양성률이므로, 진짜 취약점을 놓치지 않은 채 거짓 양성만 줄이면 그 감소분이 그대로 점수가 됩니다. 거짓 양성을 60% 이상 걸러냈다는 말은 기반 스캐너의 거짓 양성률이 25.0%에서 41.7% 사이였다는 뜻이 됩니다(아래 계산). - 외부 API 판단 엔진과 내부망 전용 판단 엔진의 차이는 0.6점입니다. 사실상 같은 수준이므로 데이터를 밖으로 내보내지 않는 구성에서도 정확도를 잃지 않았습니다.
- 한계도 분명히 적습니다. 이 수치는 저희가 저희 제품을 직접 잰 값이고, 공식 채점 도구를 통한 교차 확인은 진행 중입니다. 벤치마크 점수는 버전, 평균 방식, 범주 선택, 일치 규칙에 따라 크게 달라지므로 숫자 하나만 보고 판단하지 마세요.
- 금융보안원이 2026년 10월 발표한 AI 에이전트 보안 평가기준 17개 항목에 대해서는 치토스의 대응 범위를 자체 정리했습니다(자동 10, 부분자동 6, 통제 1). 외부 평가나 인증 결과가 아닙니다.
왜 하필 거짓 양성을 줄이는 것이 핵심인가요?
보안 점검 도구가 현장에서 버려지는 가장 흔한 이유는 못 찾아서가 아니라 너무 많이 찾아서입니다. 경고 수백 건 중 실제 취약점이 몇 건인지 사람이 하나씩 열어 봐야 한다면, 개발팀은 어느 순간 경고 자체를 읽지 않게 됩니다.
한국에서는 올가을 이 문제가 현실적인 무게를 얻었습니다. 보도에 따르면 2026년 9월 말부터 10월 초 사이 금융사 일곱 곳이 오픈소스로 공개된 AI 침투 도구에 뚫렸고, 6만~7만 명 안팎의 개인정보가 유출된 것으로 알려졌습니다(서울신문, 유출 규모는 보도마다 차이가 있습니다). 공격이 AI로 자동화되었다면 방어 쪽 점검도 같은 속도로 돌아야 하는데, 경고 홍수는 그 속도를 가장 먼저 무너뜨립니다.
그래서 치토스는 탐지 엔진 위에 AI 2단 검증층을 둡니다. 1차 탐지 결과를 AI가 다시 읽고, 재현되지 않는 항목을 걸러낸 뒤에 사람에게 넘깁니다.
치토스는 어떤 구조인가요?
세 겹으로 동작합니다.
- 자율 점검 에이전트: 정찰 결과를 보고 스스로 점검 가설을 세우고, 한 경로가 막히면 다른 경로를 찾습니다.
- 비파괴 탐지 엔진: 주입, 인증, 접근제어, 노출 같은 웹 취약점과 공급망, 시크릿, 설정을 점검합니다. 검증된 오픈 도구를 통합하고 그 위에 자체 프로브를 얹었습니다.
- AI 2단 검증: 1차 결과를 다시 읽어 거짓 양성을 제거합니다.
입력은 소스 코드와 승인된 점검 대상 URL이고, 출력은 재현 가능한 증거 리포트입니다. 점검 대상을 손상시키지 않는 비파괴 방식이므로 운영 중인 시스템에도 쓸 수 있습니다. (학습 방법이나 내부 임계값 같은 세부 구현은 공개하지 않습니다.)
OWASP Benchmark 점수는 어떻게 계산되나요?
OWASP Benchmark는 보안 점검 도구의 정확도를 재기 위한 오픈소스 평가 앱입니다. 최신 v1.2는 2,740개의 테스트 케이스(자바 서블릿)로 이루어져 있고, 케이스마다 진짜 취약점이거나 가짜 취약점이며 11개 범주로 나뉩니다. 점수는 Youden 지수로 계산합니다.
점수 = (참 양성률 - 거짓 양성률) x 100
찾을 것은 다 찾고(참 양성률 100%) 아무것도 오탐하지 않으면(거짓 양성률 0%) 100점이고, 아무 때나 경고를 띄우는 도구는 참 양성률과 거짓 양성률이 함께 올라가 0점 근처에 머뭅니다. 점수 하나로 탐지 폭과 소음을 동시에 보도록 만든 지표입니다.
저희 자체 측정 결과는 다음과 같습니다.
| 구성 | Youden 지수 |
|---|---|
| 기반 코드 스캐너 단독 | 52.8 |
| 치토스 전체, 온라인 판단 엔진 | 77.2 |
| 치토스 전체, 온프레미스 판단 엔진 | 77.8 |
25.0점 상승을 산술로 풀면 무엇이 보이나요?
Youden 지수가 참 양성률 - 거짓 양성률이라는 사실만으로 몇 가지를 역산할 수 있습니다. 조건은 하나, 진짜 취약점은 하나도 놓치지 않았다는 것입니다(참 양성률 불변). 이 가정이 맞다면 점수 상승분은 곧 거짓 양성률 하락분(퍼센트포인트)입니다.
base, full_onprem, full_online = 52.8, 77.8, 77.2
gain = round(full_onprem - base, 1) # 25.0
print(gain, round(full_online - base, 1), round(full_onprem - full_online, 1))
# 25.0 24.4 0.6
# TPR 불변이면 점수 상승분 = FPR 하락분(%p).
# FPR 감소 비율 r = gain / FPR_base. r >= 0.6 이면 FPR_base <= gain / 0.6
lo, hi = gain, round(gain / 0.6, 1)
print(lo, hi)
# 25.0 41.7
for f in (25.0, 30.0, 35.0, 40.0, 41.7):
print(f, round(gain / f * 100, 1))
# 25.0 100.0 / 30.0 83.3 / 35.0 71.4 / 40.0 62.5 / 41.7 60.0
이 표에서 읽을 수 있는 것은 세 가지입니다.
- 거짓 양성을 "60% 이상" 걸러냈다는 설명과 +25.0점은 서로 모순이 없습니다. 기반 스캐너의 거짓 양성률이 25.0~41.7% 범위에 있어야 둘이 동시에 성립합니다. 이 범위 밖이었다면 둘 중 하나는 틀린 수치입니다.
- 기반 거짓 양성률이 25.0%였다면 감소율은 100%, 즉 오탐을 전부 제거했어야 합니다. 범위의 위쪽으로 갈수록 필요한 감소율은 60%에 가까워집니다.
- 기반 거짓 양성률의 정확한 값은 이 글에서 공개하지 않습니다. 위 표는 산술적 제약이지 측정값이 아닙니다.
한 가지 더 있습니다. 두 판단 엔진의 점수 차이 0.6점은 작지만, 오차 범위를 따로 재지 않았으므로 "온프레미스가 더 낫다"고 주장하지 않습니다. 말할 수 있는 것은 "비슷하다" 까지입니다.
77.8점이라는 숫자, 어디까지 믿어야 하나요?
벤치마크 점수는 읽는 방법에 따라 놀라울 만큼 달라집니다. 한 개발자가 쓴 분석 글은 같은 탐지기가 OWASP Benchmark에서 45.5점도, 100점도 나올 수 있다고 보였습니다. 이유는 네 가지입니다.
- 벤치마크 버전: v1.1은 21,041개, v1.2는 2,740개 케이스입니다.
- 평균 방식: 범주마다 같은 비중을 주는 매크로 평균과 케이스 수에 비례하는 가중 평균은 값이 다릅니다.
- 범주 선택: 11개 범주 전체로 보느냐, 인젝션 계열만 보느냐에 따라 점수가 갈립니다.
- 일치 규칙: 줄 단위, 메서드 단위, 파일 단위 중 무엇으로 맞는지를 판정하느냐가 다릅니다.
평균 방식 하나만으로도 얼마나 달라지는지 가상의 숫자로 직접 계산해 보면 이렇습니다.
# illustrative: 가상 3개 범주 (케이스 수, 참 양성률, 거짓 양성률)
cats = {"A": (1000, 0.95, 0.10), "B": (200, 0.60, 0.40), "C": (50, 0.30, 0.50)}
tot = sum(n for n, _, _ in cats.values())
case_w = sum(n * (t - f) for n, t, f in cats.values()) / tot * 100
macro = sum((t - f) for _, t, f in cats.values()) / len(cats) * 100
print(round(case_w, 1), round(macro, 1))
# 70.4 28.3
같은 결과가 70.4점도 28.3점도 됩니다(가상 데이터이며 실제 측정이 아닙니다). 그래서 어떤 벤치마크 점수든, 저희 점수를 포함해, 다음 네 가지를 함께 밝혀야 비교가 가능합니다: 버전, 평균 방식, 범주 범위, 일치 규칙. 저희는 이 글에서 점수의 맥락을 최대한 적었지만, 위 네 항목을 공식 채점 도구 기준으로 다시 맞추는 교차 확인은 아직 끝나지 않았습니다. 그 결과가 나오기 전까지 77.8은 저희가 저희 방식대로 잰 값으로 읽어 주세요.
온프레미스 구성이 정확도를 잃지 않았다는 말은 무슨 뜻인가요?
판단 엔진은 두 가지로 돌아갑니다. 외부 API 모델과, 고객사 내부망에 올리는 자체 대형 모델(Darwin-180B-RSI)입니다. 같은 측정에서 77.2와 77.8이 나왔습니다. 금융과 공공처럼 소스 코드와 점검 결과가 외부로 나가면 안 되는 환경에서, 판단 엔진을 내부망에 두고도 점수가 떨어지지 않는다는 뜻입니다. 모든 점검은 내부망 비파괴, 읽기 전용으로 수행되며 데이터 반출이 없습니다.
이해관계를 밝힙니다. 치토스와 Darwin 모델은 모두 비드래프트의 제품이며, 위 비교는 저희 구성 두 개끼리의 비교입니다. 제3자가 확인한 결과가 아닙니다.
금융보안원 AI 에이전트 평가기준에는 어떻게 대응하나요?
금융보안원은 2026년 10월 7일 「금융분야 AI 에이전트 보안 평가기준」을 발표했습니다. 6개 분야 17개 점검항목이며, 올해 말까지 금융권 시범 검증을 거쳐 2027년부터 정식 점검기준으로 확대 적용할 계획입니다(전자신문). 저희 정리로는 17개 중 8개가 기존 모델 계층 보안에 없던, 에이전트 실행 계층에서 새로 생긴 위협입니다. 목표 무결성, 연쇄적 실패, 취약한 도구 사용, 도구 권한 제어, 샌드박스, 에이전트 간 통신보안, 인적 승인, 인적 개입 과부하가 그것입니다.
치토스는 이 17개 항목 모두에 대응 모듈을 두고 있고, 수준은 다음과 같이 정리했습니다.
| 구분 | 자동 | 부분자동 | 통제 | 합계 |
|---|---|---|---|---|
| 에이전트 신규 위협 항목 | 3 | 4 | 1 | 8 |
| 기존 계층 항목 | 7 | 2 | 0 | 9 |
| 전체 | 10 | 6 | 1 | 17 |
- 자동: 자동 점검으로 대응합니다. 예: 도구 및 의존성 취약점 대조, 고위험 행위 차단, 킬스위치, 변경 불가 감사 로그.
- 부분자동: 부분 자동 점검에 설계와 운영 통제를 함께 씁니다. 예: 목표 무결성, 연쇄 실패 격리, 에이전트 간 통신.
- 통제: 설계와 운영으로 대응합니다. 예: 샌드박스(비파괴, 읽기 전용 격리 실행).
이 표는 치토스가 어디까지 대응하는지를 저희가 정리한 커버리지입니다. 금융보안원이나 제3자가 평가한 결과가 아니며, "인증"이나 "통과"를 뜻하지 않습니다. 정식 적용 전 시범 검증 단계라는 점도 함께 기억해 주세요. 치토스 자체가 자율 점검 에이전트라서 실행 계층 위협을 사후에 덧붙이지 않고 설계 단계부터 다룹니다.
직접 확인해 보려면 무엇부터 보면 되나요?
치토스를 쓰지 않더라도 같은 기준으로 아무 보안 점검 도구에나 적용할 수 있는 체크리스트입니다.
- 점수의 벤치마크 버전이 무엇인지 확인합니다.
- 평균 방식(매크로인지 가중인지)과 범주 범위를 확인합니다.
- 참 양성률과 거짓 양성률을 따로 요구합니다. Youden 지수만 보면 둘이 섞여 보입니다.
- 합성 벤치마크와 실제 코드베이스 결과가 같은 방향인지 확인합니다. OWASP Benchmark는 합성 케이스이므로 실제 프로젝트의 소음 수준을 대신하지 못합니다.
- 측정한 사람이 누구인지 확인합니다. 제품 제작사의 자체 측정인지, 제3자 측정인지에 따라 같은 숫자의 무게가 달라집니다.
자주 묻는 질문
Youden 지수가 77.8이면 상용 도구보다 좋은 건가요?
이 글은 그 비교를 하지 않습니다. 다른 도구의 점수는 버전, 평균 방식, 범주 범위가 다를 수 있어서 같은 조건으로 다시 재지 않으면 비교가 성립하지 않습니다.
거짓 양성을 줄이면 진짜 취약점도 놓치지 않나요?
이번 측정에서는 AI 검증층이 진짜 취약점을 놓치지 않았다는 것이 자체 측정 결과입니다. 다만 벤치마크는 합성 케이스이므로 실제 환경에서의 재현율은 별도로 확인해야 하고, 그 확인은 진행 중입니다.
온프레미스 구성은 외부 API 구성과 정말 같은 정확도인가요?
이번 측정에서는 77.8과 77.2로 0.6점 차이였습니다. 오차 범위를 따로 재지 않았기 때문에 "비슷하다"라고만 표현합니다.
금융보안원 17개 항목에 "대응한다"는 것은 인증을 받았다는 뜻인가요?
아닙니다. 치토스가 각 항목을 어떤 기능과 통제로 다루는지 정리한 커버리지입니다. 기준 자체가 2026년 시범 검증을 거쳐 2027년부터 정식 적용될 예정입니다.
치토스는 점검 대상에 피해를 주지 않나요?
비파괴, 읽기 전용 방식으로 점검하도록 설계되어 있습니다. 승인된 대상에만 쓰는 것을 전제로 합니다.
정리
AI 2단 검증으로 거짓 양성을 줄이면 Youden 지수가 올라가는 것은 지표의 정의상 자연스러운 결과이고, 저희 자체 측정에서는 52.8에서 77.8로 올랐습니다. 중요한 것은 그 숫자가 아니라 숫자를 읽는 방법입니다. 버전, 평균 방식, 범주, 일치 규칙을 밝히지 않은 점수는 비교할 수 없고, 제품 제작사가 직접 잰 점수는 교차 확인이 끝나기 전까지 그렇게 표시해야 합니다. 공식 채점 도구 기준의 교차 확인이 끝나면 결과를 그대로 공개하겠습니다.
도입 문의: vidraft.net
Further reading
Originally published by Dev.to Security. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.