AI가 찾아낸 암호학 라이브러리의 보안 취약점 7종
zkSecurity의 AI 보안 감사 에이전트(zkao)가 Cloudflare의 실험적 암호학 라이브러리(CIRCL)를 분석해 7개의 실제 보안 버그를 발견했습니다. 이 사례는 AI가 오픈소스 보안 취약점 탐지에 얼마나 효과적으로 활용될 수 있는지를 보여줍니다. 발견된 모든 취약점은 현재 상류 저장소(upstream)에서 수정되었으며 해커원(HackerOne)을 통해 포상금도 지급받았습니다.
우리는 AI 감사 파이프라인을 Cloudflare의 실험적인 암호학 라이브러리인 CIRCL에 투입하여, 임계값 RSA(threshold RSA)에서 발생하는 치명적인 float64 정밀도 손실 문제부터 속성 기반 암호화(ABE)의 접근 제어가 완전히 우회되는 문제까지 총 7개의 실제 버그를 확인했습니다. 현재 이 7개의 버그는 모두 상류 저장소(upstream)에서 수정되었습니다. 이 글은 우리의 AI 에이전트가 오픈소스 암호학 전반에서 발견한 버그에 대한 시리즈의 첫 번째 게시물입니다.
zkSecurity에서 우리는 AI 감사 에이전트인 zkao를 구축하고 있습니다. 목표는 설명하기는 간단하지만 실행하기는 어렵습니다. 바로 다른 AI 도구들이 찾을 수 있는 버그가 남아있지 않을 때까지 AI가 코드를 지속적으로 들여다보게 하는 것입니다. 우리는 이러한 접근 방식이 중요한 이유에 대해 'zkao: 보안의 복리 효과(Security That Compounds)'라는 글에서 다룬 바 있습니다. zkao 구축은 AI가 탐지할 수 있는 모든 버그를 찾아낼 수 있는 자동화된 감사자를 만드는 것을 최종 목표로 하는 반복적인 과정이었습니다. 이를 위해서는 새로운 아이디어와 기술에 대한 브레인스토밍, zkSecurity 보안 연구원들의 전문 지식을 zkao에 체계적으로 인코딩하여 벤치마크에 편향되지 않고 최신의 가장 심각한 취약점을 탐지하도록 만드는 작업이 포함되었습니다. 그리고 무엇보다도 모델이 어떻게 진화하는지, 무엇이 작동하고 무엇이 작동하지 않는지 이해하고 AI를 활용한 버그 탐지에 대한 이해를 높이기 위해 지속적으로 실험을 수행했습니다.
이러한 실험 중 일부는 제품과 무관하게 그 자체로 공유할 가치가 있는 결과물을 만들어냈으며, 이것이 이 시리즈의 주제입니다. 두 번째 동기도 있습니다. 이 실험들은 우리가 zkao를 위한 벤치마크 제품군을 구축하는 방식이며, 그 과정에서 대규모 언어 모델(LLM)이 실제로 암호학을 어떻게 추론하는지에 대한 통찰력을 끊임없이 제공합니다. AI가 날카로운 부분은 어디이고 맹점은 어디인지, 전자를 어떻게 증폭하고 후자를 어떻게 통제할 수 있는지 말입니다. 버그가 눈에 보이는 결과물이지만, 우리가 가장 관심을 두는 부분은 AI의 추론 패턴입니다.
몇 달 전, 우리는 선별된 코드베이스에 대한 실험을 시작했습니다. 우리는 두 가지 구성으로 오픈소스 암호학 프로젝트 몇 개를 스캔하기 위해 LLM을 사용했습니다. 첫 번째는 단순한 프롬프트를 사용하는 'LLM 전용'이고, 두 번째는 우리 팀 전문가가 관리하는 기술을 제공한 '기술이 탑재된 LLM'입니다. 그런 다음 LLM이 실제 취약점을 발견한 중요 프로젝트의 경우, zkao가 동일한 문제를 자체적으로 감지할 수 있는지 확인하기 위해 실행했습니다. 대부분의 경우 zkao는 이 모든 문제를 찾았을 뿐만 아니라 더 복잡하고 심각한 문제도 식별했습니다. 결과가 충분히 좋았기 때문에 이를 글로 작성하기로 결정했습니다.
우리는 고급 및 양자 내성 암호학 라이브러리인 Cloudflare의 CIRCL로 이 시리즈를 시작합니다. CIRCL에서 우리의 파이프라인은 수많은 잠재적 취약점을 도출했으며, 그중 7개는 보고할 가치가 있습니다. 이 7개는 현재 모두 상류 저장소에서 수정되었습니다. 이 중 대부분은 HackerOne의 Cloudflare 프로그램을 통해 확인되었으며 포상금도 받았습니다.
참고로, AI는 최종 보고서가 아닌 잠재적 취약점 결과물을 생성했습니다. 우리 팀의 인간 전문가가 여전히 각 문제를 검증하고, 악용 가능성을 확인하며, 필요한 경우 개념 증명(POC)을 최소화하고 취약점 제보를 처리했습니다. AI가 도출한 잠재적 결과는 얻기 쉽지만 신뢰할 수 있는 보고서는 그렇지 않기 때문에 이러한 인간의 개입(Human-in-the-loop) 과정은 여전히 매우 중요합니다. 이 단계를 최소화하는 것이 zkao를 구축한 주요 목표 중 하나이며, 여전히 작업 중이지만 현재 버전은 이미 이 검증 작업의 상당 부분을 스스로 수행하고 있습니다.
심각도 및 수정 사항 한눈에 보기
세부 내용을 설명하기 전에 짚고 넘어갈 점이 있습니다. AI가 자신이 발견한 취약점에 부여하는 심각도는 다소 들쭉날쭉할 수 있습니다. 다음은 AI가 평가한 각 버그의 심각도와 수정 후 Cloudflare가 확인한 심각도를 보여줍니다. 또한 현재 버전의 zkao가 이 7가지 모두를 일관되게 재현할 수 있는지 확인했습니다.
| 번호 | 버그 (취약점) | AI 심각도 | Cloudflare 심각도 | 수정 커밋 | 발견 주체 |
|---|---|---|---|---|---|
| 1 | TSS/RSA 다항식 평가에서의 float64 정밀도 손실 | 치명적(Critical) | 낮음(Low) | f7d2180 | Opus 4.6 + 기술 |
| 2 | 증명자가 제어하는 SecParam을 통한 qndleq 위조 | 높음(High) | 낮음(Low) | 757dde4 | Opus 4.6 + 기술 |
| 3 | BLS 집계 시 메시지 고유성 누락 | 중간(Medium) | 높음(High) | 9798df7 | Opus 4.6 + 기술 |
| 4 | FillBytes 부호 충돌을 통한 DLEQ 건전성 파괴 | 높음(High) | 낮음(Low) | 19848a5 | Opus 4.6 + 기술 |
| 5 | 비트별 OR 스위치를 통한 HPKE PSK 검증 우회 | 중간(Medium) | 중간(Medium) (중복) | a3b4fa3 | GPT-5.3 + 기술 |
| 6 | TSS/RSA Lagrang... |