Trail of Bits가 AI 패치의 회귀 검증을 자동화하는 플러그인을 내놨다

Hacker News10일 전

보안 연구 조직 Trail of Bits가 AI 에이전트에 패치 개발과 회귀 검사를 맡기는 두 개의 플러그인을 공개했다. patching-bugs는 보고된 버그를 재현하고 수정안을 만들어 테스트하는 역할을, regression-hunt는 어떤 변경이 이전에 정상 동작하던 기능을 깨뜨렸는지 확인하는 역할을 맡는다. 두 도구 모두 엔지니어가 작업 방향을 지시하고 결과를 검토하는 구조이며, 메인테이너는 프로젝트 고유의 보안 가정과 패치 요건을 입력해 에이전트가 해당 규칙 안에서 움직이도록 할 수 있다.

patching-bugs의 핵심은 '3단 증명'이다. 같은 재현 절차를 원본 코드, 패치된 코드, 패치를 완전히 되돌린 코드에 차례로 적용해 원본은 실패하고 패치본은 통과하며 리버트하면 다시 실패하는지 확인한다. 패치를 걷어냈을 때 버그가 되살아난다는 사실이 곧 수정이 실제로 효과가 있었다는 증거가 된다는 발상이다. 여기에 더해 특정 버그 하나를 덮는 대신 위반된 보안 불변식을 고치는 방향으로 수정을 유도하고, 패치가 만들어지면 regression-hunt를 반드시 통과하도록 파이프라인에 묶어 두었다.

regression-hunt는 변경된 코드(diff)에서 출발해 호출자를 따라가며 실제 사용자 인터페이스까지 추적하는 방식으로 회귀 후보를 열거한다. 각 후보는 실제로 빌드되어 돌아가는 배포 환경에서 재현되고, 별도의 새 컨텍스트를 가진 에이전트가 같은 재현 절차를 다시 실행해 결과를 검증한다. 마지막 단계에서는 앞선 증거들을 종합해 이것이 진짜 회귀인지 판정하는데, 거짓 양성이나 불완전한 수정, 잠복 버그, 원래부터 있던 결함은 아닌지를 에이전트가 스스로 입증해야 한다. 프로젝트에 위협 모델 문서가 있으면 각 단계의 에이전트에게 전역 컨텍스트로 전달해 결론을 내리기 전에 참조하도록 한다.

성과 지표도 함께 공개됐다. 회귀 탐지에서는 'PR을 회귀 관점에서 리뷰하라'는 프롬프트만 준 기준 Codex 에이전트와 비교해 오탐이 25% 적었고, 95% 신뢰구간은 14%에서 38% 사이다. 회귀 판정의 근거 자료로는 상류에 머지된 130개 이상의 PR을 전수 검토해 확인한 21건의 회귀가 쓰였다. 기능 회귀 16건, 성능 회귀 1건, 빌드·테스트 회귀 4건이었고 보안 보호 조치가 깨진 사례는 없었다. 한 번의 실행에서 58개 후보 중 21건을 확인해 정밀도는 약 36% 수준이었다.

배경에는 OpenAI와 함께 진행하는 공동 이니셔티브 'Patch the Planet'이 있다. 이들은 널리 쓰이는 오픈소스 프로젝트를 대상으로 수백 건의 보안 패치를 공동 작성해 왔고, Scapy 같은 프로젝트에서의 성과가 플러그인 개발의 동기가 됐다. 설계에는 머지된 패치 분석 결과와 엔지니어들이 사용한 수천 건의 Codex 세션이 반영됐다. 앞서 공개한 9월 글에서 자사 패치가 일으킨 회귀를 보고한 뒤, 머지된 패치 전수를 재검토하는 과정에서 나온 교훈이 도구의 형태로 정리된 셈이다.

설계 원칙은 네 가지로 요약된다. 에이전트에게 폭넓은 재량을 주되 '좋은 패치'와 '진짜 회귀'에 대한 판단 기준만 최소한의 문장으로 기록하고, 두 플러그인을 반드시 끝까지 실행할 필요 없이 필요한 기능만 골라 쓸 수 있게 모듈화했으며, 모든 단계가 주장·코드 리비전·필요한 검사·원시 증거·미해결 질문을 담은 고정 스키마를 주고받게 해 실행 간 변동성을 줄였다. 그리고 모든 결론은 실제 배포 환경에서의 재현 결과에 의존한다. 재현에 실패한 단계의 결과는 결론으로 인정되지 않는다.

실무적으로 달라지는 지점은 패치 리뷰의 기준이 문서화되고 반복 가능해진다는 것이다. 같은 검사가 매번 같은 방식으로 적용되므로 실행 결과를 서로 비교할 수 있고, 에이전트가 어떤 경로로 결론에 도달했는지 추적할 수 있다. 버그 공개 속도와 규모가 감당하기 어려운 수준으로 커진 상황에서 리뷰의 신호 대 잡음비를 끌어올리는 것이 목표라는 설명이다.

한계도 분명하다. 오탐을 줄인 대가로 일부 알려진 회귀가 '경계선'으로 분류됐다. 가능성은 감지했지만 확정할 만큼의 증거를 모으지 못한 경우다. 엄격한 증거 요건이 탐지율과 맞바꿈 관계에 있다는 뜻이며, 이들은 왜 이런 사례가 경계선에 남는지 분석해 증거 수집 전략을 개선하고, 증거가 불충분할 때는 메인테이너에게 그 사실을 더 명확히 알리는 방향으로 발전시킬 계획이라고 밝혔다. 두 플러그인은 현재 Patch the Planet 작업에 실제로 투입되고 있다.