AISubHub/AI 뉴스
연구

심층 해설 · 약 6분 읽기

Claude의 123개 라이브러리 증명 연구가 구체화한 소프트웨어 보증의 범위

Anthropic과 Theorem은 123개 라이브러리의 퍼징 진입점 239개에 대한 증명을 보고했다. 결과를 해석하려면 명시된 머신 가정과 보증의 한계를 함께 살펴야 한다.

사이트 게시일
원문 게시일
출처 확인일

Anthropic은 10월 22일 연구 글에서 Theorem과 함께 Claude로 소프트웨어 증명을 생성하고 기계적으로 검증하는 작업을 소개했다. 의미 있는 성과는 정의된 모델 아래에서 선택한 실행 프로그램에 대한 보증이다. 라이브러리 전체나 모든 배포 환경이 안전하다는 인증서는 아니다.

뉴스 듣기

이 기사를 읽어 드리거나 뉴스를 계속 재생합니다.

Claude의 123개 라이브러리 증명 연구가 구체화한 소프트웨어 보증의 범위

읽기를 준비하는 중…

기기 음성

읽기는 브라우저나 기기에서 처리합니다. AISubHub는 내용을 오디오 API로 보내지 않습니다. 사용 가능한 음성과 잠금 화면 재생은 기기에 따라 다릅니다.

계속 재생할 때 짧은 구절이 반복될 수 있습니다.

핵심 요약

  • 연구진은 발견한 버그를 필요에 따라 수정한 뒤, 명시된 가정 아래 64 MB 미만 입력에 대해 123개 OSS-Fuzz 라이브러리의 진입점 239개가 충돌하지 않음을 증명했다고 보고했다.
  • 주요 실험의 대상은 musl과 정적으로 링크한 단일 스레드 RISC-V 프로그램과 모델링된 Linux 동작이다. 일반적인 x86 또는 ARM 배포 환경까지 자동으로 포괄하지는 않는다.
  • 별도의 소규모 과제 실험은 모델별 토큰 소모와 증명 공유를 비교한다. 보고된 절감률은 해당 실험에 한정되며 보편적인 가격이나 성능을 보장하지 않는다.

하나의 증명은 정의된 머신 안의 특정 진입점을 다룬다

무엇을 검증 범위의 단위로 삼는지가 중요하다. OSS-Fuzz 진입점은 개발자가 프로그램에 입력을 공급하고 실패를 드러내도록 제공한 테스트 통로다. Anthropic은 수 주 동안 123개 라이브러리에 걸친 진입점 239개의 증명을 완료했다고 보고했다. 이는 라이브러리 239개 전체를 검증했다는 뜻도, 123개 라이브러리의 모든 가능한 경로를 검증했다는 뜻도 아니다. 프로젝트에서 생성한 Rocq 증명 코드는 약 180,000,000행이었고, 일반적인 증명 하나는 약 600,000행이었다. 바이너리의 RISC-V 명령어 수 중앙값은 18,000개였다.

주장은 모델링된 실행 조건에 의해 제한된다. 입력은 64 MB 미만이며, 메모리 예산은 고정되어 있고, 스레드는 하나다. 실행 파일은 musl과 정적으로 링크한 RISC-V 프로그램이며, Linux의 응답과 메모리 배치도 정해져 있다. 이 조건들이 수학적으로 증명할 명제를 정의한다. AISubHub의 해석은 인상적인 증명 코드 총행수만 보는 것보다 검증 범위의 분모와 빌드 구성을 확인하는 편이 결과를 평가하는 데 더 유용하다는 것이다.

퍼징을 작은 검증 커널이 확인하는 명제로 바꾼다

퍼징은 생성된 입력을 많이 시도해 반례를 찾을 수 있지만, 그런 시도를 통과했다고 입력 공간을 모두 탐색한 것은 아니다. 이 연구에서는 기존 퍼징 테스트와 그 컴파일된 실행 파일을 형식 명세로 바꾼다. Claude는 허용된 어떤 입력도 선택한 테스트를 충돌시키지 못한다는 논증을 구성한다. 테스트에 이미 들어 있는 단언문은 압축한 뒤 다시 해제하면 원래 데이터가 복원되어야 한다는 것처럼 의미 있는 성질도 표현할 수 있다.

모델이 자기 증명의 정당성을 스스로 선언할 수는 없다. Rocq가 명제에 비추어 증명을 검사한다. 따라서 신뢰의 대상은 정확한 명제, RISC-V와 Linux의 의미론, 그리고 기반 하드웨어와 소프트웨어를 포함한 검사기로 이동한다. 이는 생성된 수백만 행을 직접 읽는 것보다 검토 대상을 좁혀 주지만, 여전히 실질적인 의존 관계다. 유효한 증명이라고 해서 부정확한 머신 모델이 실제 운영 시스템을 충실하게 기술한다는 사실까지 입증할 수는 없다.

증명 실패가 유용한 패치로 이어질 수 있는 이유

연구진에 따르면 증명을 시도하는 과정에서 버그가 드러났다. 예로는 특이한 방식으로 배치한 약 20 MB 입력이 필요한 압축 해제 문제와, 64 MB 입력 및 2 GB가 넘는 메모리가 필요한 이미지 디코더 실패가 있다. 이 사례들은 작은 입력 위주로 탐색하면 관련 동작을 놓칠 수 있는 이유를 보여 준다. 이는 원문이 보고한 발견이며, AISubHub가 독립적으로 재현한 취약점은 아니다.

이 파이프라인은 프로그램을 수정하고 명세를 다시 생성한 다음 수정된 산출물을 증명할 수 있었다. 새 산출물의 증명을 수정하지 않은 원래 릴리스의 증명으로 제시해서는 안 된다. 편법의 위험도 있다. 에이전트가 유용한 기능을 삭제해 충돌 없음이라는 명제를 쉽게 만족시킬 수 있다. 저자들은 패치에 대한 불이익, 어떤 입력에서 동작이 바뀌었는지 기술하도록 하는 유인책, 패치 감사를 설명한다. 이 장치들은 실패 유형 하나에 대응하지만, 수정이 의도한 동작을 보존하는지 검토할 필요까지 없애지는 않는다.

토큰 절감 수치는 서로 다른 두 실험에서 나온다

별도로 구성한 소규모 검증 과제 36개에 대해, 글은 Opus 5.5가 과제 절반을 증명하는 데 Opus 5보다 약 40% 적은 토큰을 사용했다고 설명한다. 각 과제에는 서로 독립적인 단일 에이전트 시도가 3회 주어졌고, 매 시도의 예산은 5,000,000토큰이었다. 그래프는 처음 성공한 시도가 완료된 시점에 해당 과제를 완료로 계산했다. 이는 특정 과제 집합과 예산 아래의 비교다. 글에는 더 큰 123개 라이브러리 작업에 사용한 모든 모델이 명시되어 있지 않으므로, 전체 작업을 Opus 5.5의 성과로 바꾸어 부르면 안 된다.

공유 작업 공간 실험은 에이전트들이 서로의 증명을 재사용하게 했으며, 격리된 작업보다 토큰을 17% 적게 사용했다고 보고했다. 증명 36개를 다룬 그래프에서는 단독 작업이 완료된 비교 사례 34개 중 30개에서 공유 방식의 토큰 사용량이 더 적었다. 격리된 에이전트들은 나머지 과제 2개를 끝내지 못했다. 런타임 초기화와 새니타이저 증명을 재사용하는 것은 절감의 구체적인 메커니즘이다. 어느 비율도 보편적인 달러 비용, 경과 시간 단축, 또는 독립적으로 측정한 배포 환경의 이익을 제공하지는 않는다.

다른 사례 연구는 서로 다른 종류의 정확성을 측정한다

글에는 RFC에서 도출한 명세와 x86 의미론을 사용한 zlib 실험도 소개된다. 이는 별도의 사례 연구이며, 대규모 RISC-V 결과가 이미 모든 x86 소프트웨어에 적용된다는 근거가 아니다. Python의 상당한 부분집합을 구현한 Rust 인터프리터는 Verus로 모델링된 CPython 의미론과 대조해 검사한 뒤, 무작위로 생성한 1,700,000개가 넘는 프로그램에서 CPython과 경험적으로 비교했다.

보고된 동작 일치율 99.95%는 이 경험적 비교의 결과다. 모든 Python 프로그램과의 호환성을 증명한 것은 아니다. 형식 증명은 특정한 형식 명제를 확립하는 반면, 테스트의 백분율은 표본 실험을 기술한다는 차이가 중요하다. 이 결과들을 하나의 범용 모델 정확도 점수로 합치면 서로 다른 명세와 도구, 남아 있는 예외적 사례의 차이가 지워진다.

엔지니어링상의 이득은 보증 경계를 더 분명히 하는 데 있다

저자들은 남은 공백을 명시한다. AddressSanitizer는 일부 메모리 오류를 놓치며, 프로젝트는 모든 진입점을 다루지 않았다. 퍼징 진입점을 모두 다루더라도 라이브러리의 모든 동작이나 도달 불가능한 코드를 포괄하는 것은 아니다. 호출자가 검증된 가정 밖에서 라이브러리를 잘못 사용할 수도 있다. 일반적인 배포 환경의 동적 링크, glibc, x86 또는 ARM은 주요 실험과 다르다. 패치되지 않은 버그가 드러나는 것을 막기 위해 일부 증명은 공개하지 않았고, 더 넓은 생태계에 관한 글의 로드맵은 여전히 제안이다.

AISubHub 분석: 실용적인 다음 단계는 각각의 보증을 정확한 빌드, 테스트 진입점, 입력 상한, 신뢰하는 머신 모델과 연결하고 그 조건이 바뀔 때 다시 평가하는 것이다. 이는 테스트와 검토를 보완할 수 있지만 프로젝트 전반에서 이를 없애도 된다는 근거는 아니다. 우리는 글과 필요한 도표를 읽었지만, 증명을 다시 실행하거나 외부 링크의 부록 또는 공개 저장소를 감사하지 않았고, 패치의 보안을 검증하거나 토큰 절감 결과를 재현하지도 않았다. 결과와 향후 전망은 계속 연구진의 주장으로 귀속된다.

중요한 이유

AISubHub 분석: 생성된 증명은 범위가 좁고 검토 가능한 소프트웨어 성질을 확립하고 재사용하는 비용을 낮출 수 있다. 실행 가능한 산출물은 가정을 포함해 정확히 특정한 검증 대상과 명제다. AI가 소프트웨어의 버그를 모두 없앴다는 일반적 주장이 아니다.

제한 및 이용 가능성

이 글은 연구진이 공개한 설명을 분석한 것으로, 독립적인 보안 감사나 재현 실험이 아니다. 주요 실험의 입력, 아키텍처, 링크 방식, 메모리와 진입점 제한은 필수 조건이며, 외부 부록과 저장소 내용은 감사하지 않았다.

출처와 근거

Anthropic Frontier Red Team / Theorem · Formal software verification

원문 게시일: · 출처 확인일:

AI 보조 편집 기사를 명시한 일차 출처와 대조합니다. 업체 주장은 출처를 밝히며 게재는 추천을 뜻하지 않습니다.