Anthropic의 레드팀이 Firefox를 보안 강화한 방법: Claude Opus 4.6으로 2주 만에 취약점 22개 발견
Hardening Firefox with Anthropic's Red Team
TL;DR Highlight
Anthropic이 Mozilla와 협력해 Claude Opus 4.6으로 Firefox에서 고위험 취약점 14개를 포함한 22개 취약점을 2주 만에 발견했다. 이는 2025년 한 해 동안 수정된 Firefox 고위험 취약점의 약 1/5에 해당하는 규모다.
Who Should Read
오픈소스 프로젝트를 유지보수하거나 보안 감사를 담당하는 개발자. AI를 활용한 자동화된 취약점 탐색 도구 도입을 고민하는 보안 엔지니어.
Core Mechanics
- Claude Opus 4.6이 Firefox 코드베이스 분석을 시작한 지 단 20분 만에 JavaScript 엔진에서 Use After Free(UAF) 취약점을 발견했다. UAF는 메모리에서 해제된 객체를 다시 참조해 공격자가 악성 데이터를 덮어쓸 수 있는 심각한 메모리 취약점이다.
- 총 2주 동안 C++ 파일 약 6,000개를 스캔해 112개의 고유 보고서를 제출했고, 이 중 Mozilla가 22개를 실제 취약점으로 확인했다. 14개는 고위험(high-severity)으로 분류됐는데, 이는 2025년 한 해 전체 고위험 Firefox 취약점의 약 20%에 해당한다.
- Firefox를 테스트 대상으로 선택한 이유는 단순히 보안이 취약해서가 아니라, 수억 명이 사용하는 복잡하고 잘 검증된 오픈소스 프로젝트이기 때문이다. '어려운 시험'으로 AI 능력을 검증하기 위한 의도적 선택이었다.
- Claude는 기존에 알려진 CVE(공개 취약점)를 이전 버전 코드에서 재현하는 데도 높은 성공률을 보였다. 다만 일부 CVE가 학습 데이터에 포함됐을 가능성을 배제할 수 없어, 신뢰도에 의문이 남는다고 Anthropic 스스로 인정했다.
- 현재 Claude Opus 4.6은 취약점을 발견하고 수정하는 능력이 '직접 악용(exploitation)'하는 능력보다 훨씬 앞서 있다. 이 격차가 방어자에게 유리한 창을 제공하지만, Anthropic은 이 격차가 오래 지속되지 않을 수 있다고 경고했다.
- Anthropic은 이번 협업에서 CVD(Coordinated Vulnerability Disclosure, 조율된 취약점 공개) 절차를 따랐다. Claude가 제안한 패치도 함께 제출해 Mozilla가 근본 원인을 파악하고 수정하는 데 도움을 줬고, 대부분의 수정사항은 Firefox 148.0에 반영됐다.
- Claude가 작성한 익스플로잇 코드는 샌드박스와 같은 실제 브라우저 보안 기능을 제거한 테스트 환경에서만 작동했다. 즉, 현실의 Firefox는 '다층 방어(defense in depth)' 덕분에 이 취약점들의 직접적인 피해를 막을 수 있는 상태였다.
Evidence
- Zulip 프로젝트 유지보수자는 Claude Code로 직접 보안 감사를 해봤는데, Claude에게 각 발견 사항을 스스로 재검토하도록 시키자 대부분의 false positive가 제거됐다고 공유했다. 그 후 두 번째 감사에서는 이미 주석으로 보안 의도를 명시한 코드에서는 중복 경고가 나오지 않았다는 실용적인 팁도 덧붙였다.
- 한 개발자가 오픈소스 프로젝트를 공개했더니 Reddit 유저가 Claude로 보안 감사를 실행해 FTS 인젝션, LIKE 와일드카드 인젝션, API 인증 누락 등 15개 이슈를 발견했다고 공유했다. 특히 '문서가 약속한 보안 기능이 실제 코드에 구현되어 있는지'를 검증하는 '스펙 vs 실제' 분석이 가장 유용했다는 평가가 주목받았다.
- LLM의 보안 감사 한계에 대한 냉정한 지적도 있었다. 한 경험자는 Claude가 실제로는 불충분한 보안 경계를 '극도로 안전하다'고 잘못 판단한 사례를 여러 번 겪었다고 했다. 특히 여러 기능이 조합될 때 나타나는 취약점(non-local vulnerability)은 현재 AI가 잡아내기 매우 어렵다는 한계를 지적했다.
- 취약점이 발견됐지만 구체적인 버그 내용이 공개되지 않은 점을 지적하는 댓글도 있었다. '실제로 위험한 케이스인지, 아니면 현실에서 발생하기 어려운 엣지 케이스인지' 알 수 없어 발표의 실질적 의미를 판단하기 어렵다는 비판이었다.
- Anthropic 보고서가 '취약점 발견 능력이 악용 능력보다 현재 앞서 있지만 이 격차는 오래 못 갈 것'이라고 경고한 부분이 특히 주목받았다. 한 보안 전문가는 'AI 사이버 역량 레이스가 아직 냉전 상태처럼 보이지만, 올해 안에 그 상태가 끝날 것'이라고 전망했다.
How to Apply
- 오픈소스 프로젝트를 관리한다면 Claude Code로 보안 감사를 시도해볼 수 있다. 토큰 비용이 대략 $3 수준이므로, '악의적인 행위자가 이미 내 코드를 스캔했을 것'이라는 가정 하에 먼저 직접 스캔하는 것이 현실적인 방어 전략이다.
- Claude로 보안 감사를 할 때 false positive를 줄이려면, 각 발견 사항에 대해 Claude 스스로 재검토하도록 프롬프트를 추가하라. 남은 false positive 항목은 코드에 보안 의도를 설명하는 주석을 추가하면 다음 감사에서 반복 경고를 방지할 수 있다.
- LLM 보안 감사는 로컬한 패턴 버그(포인터 역참조, 배열 접근 등)에는 효과적이지만, 여러 기능이 결합될 때 생기는 복합 취약점은 여전히 수동 검토가 필요하다. AI 감사 결과를 100% 신뢰하지 말고, AI가 '안전하다'고 판단한 경계도 사람이 한 번 더 확인하는 프로세스를 유지하라.
- Anthropic이 CVD 절차를 따른 것처럼, AI로 외부 오픈소스 프로젝트의 취약점을 발견했을 경우 즉시 공개하거나 악용하지 말고 해당 프로젝트 메인테이너에게 먼저 보고하는 책임 있는 공개 절차를 지켜야 한다.
Terminology
Use After Free (UAF)메모리에서 이미 해제(free)된 객체를 다시 사용(use)하는 버그. 공격자가 해제된 메모리 공간을 악성 데이터로 채운 뒤 프로그램이 그것을 신뢰된 데이터로 오인하게 만들 수 있어 심각한 보안 취약점이 된다.
CVECommon Vulnerabilities and Exposures의 약자로, 공개적으로 알려진 보안 취약점에 부여하는 고유 식별 번호. CVE-2025-XXXX 같은 형식으로 표기된다.
CVDCoordinated Vulnerability Disclosure(조율된 취약점 공개)의 약자. 취약점을 발견하면 즉시 공개하지 않고, 소프트웨어 제작사에 먼저 통보해 수정할 시간을 준 뒤 공개하는 책임 있는 보안 공개 절차.
Zero-day소프트웨어 개발사나 담당자가 아직 인지하지 못한 보안 취약점. 개발사가 패치를 만들 '0일'의 시간도 없다는 의미에서 붙여진 이름으로, 공격자 입장에서는 가장 가치 있는 취약점이다.
Defense in depth단일 보안 장치에 의존하지 않고 샌드박스, 메모리 보호, 권한 분리 등 여러 겹의 보안 레이어를 쌓는 전략. 하나가 뚫려도 다음 레이어가 피해를 막는다.
Fuzzing프로그램에 무작위 또는 반무작위 입력값을 대량으로 던져 예기치 못한 충돌이나 오류를 유발시키는 자동화 테스트 기법. 사람이 직접 생각하기 어려운 엣지 케이스를 발견하는 데 효과적이다.