- Authors

- Name
- 오늘의 바이브
GhostScript에 20년 넘게 숨어 있던 버그

2026년 2월 20일, Anthropic이 Claude Code Security를 공개했다. Opus 4.6 모델에 보안 분석 능력을 탑재한 도구다. 이 도구가 오픈소스 코드베이스를 스캔한 결과, 500개 이상의 고위험 제로데이 취약점이 쏟아져 나왔다. 수십 년간 수백만 시간의 퍼징(fuzzing)과 전문가 코드 리뷰를 거친 프로젝트들에서다.
가장 인상적인 사례는 GhostScript다. PostScript와 PDF를 처리하는 유틸리티로, 거의 모든 리눅스 배포판에 포함되어 있다. Claude는 이 프로젝트의 git 커밋 히스토리를 훑다가 한 가지를 발견했다. 누군가 gstype1.c 파일에 폰트 처리 관련 스택 경계 검사를 추가한 커밋이 있었다. 그런데 같은 로직을 사용하는 다른 코드 경로(gdevpsfx.c의 292번째 줄)에는 그 검사가 빠져 있었다. 패치가 불완전했던 것이다.
Claude는 이 사실을 포착한 뒤, 해당 취약점을 유발하는 PostScript 파일을 직접 생성해 크래시를 재현했다. 인간 보안 연구원이 하는 것과 동일한 과정을 거친 셈이다. 다만 속도가 달랐다. 인간이 며칠에서 수 주가 걸릴 분석을 Claude는 몇 분 만에 끝냈다.
주목할 점은 Claude가 이 버그를 찾은 방식이다. 기존 보안 도구는 코드를 현재 상태에서만 분석한다. Claude는 달랐다. git 히스토리를 시간 순서대로 읽으면서, 과거에 어떤 보안 패치가 적용되었고, 그 패치가 어디까지 적용되었는지를 추적했다. 마치 탐정이 범죄 현장의 과거 기록을 뒤지듯, 코드의 역사 속에서 불완전한 수정의 흔적을 찾아낸 것이다. GhostScript 같은 프로젝트는 30년이 넘는 커밋 히스토리를 가지고 있다. 인간이 이 모든 히스토리를 읽고 패턴을 파악하는 것은 사실상 불가능하다.
퍼저가 수백만 시간 돌려도 못 잡은 것

기존 보안 도구의 주력은 퍼저(fuzzer)다. 무작위 입력을 대량으로 쏟아부어 프로그램이 비정상 동작하는 지점을 찾는 방식이다. AFL, libFuzzer 같은 도구가 대표적이며, 실제로 수많은 취약점을 발견해왔다. 문제는 퍼저가 잡지 못하는 영역이 있다는 것이다.
OpenSC 사례가 이를 잘 보여준다. 스마트카드 데이터를 처리하는 커맨드라인 유틸리티인 OpenSC에서, Claude는 strcat 함수가 연속으로 호출되는 코드를 발견했다. 4096바이트 크기의 filename 버퍼에 문자열을 이어 붙이는데, 길이 검증이 없었다. 전형적인 버퍼 오버플로우 취약점이다.
퍼저가 이 코드를 거의 테스트하지 못한 이유가 있다. 해당 코드에 도달하려면 특정 스마트카드 설정, 특정 드라이버 로드, 특정 데이터 구조가 모두 갖춰져야 한다. 전제 조건이 너무 많아서 무작위 입력으로는 해당 경로에 도달할 확률이 극히 낮다. Claude는 코드를 읽고 맥락을 이해하기 때문에, 전제 조건과 무관하게 취약한 패턴 자체를 식별할 수 있었다.
세 번째 사례는 더 흥미롭다. GIF 파일을 처리하는 라이브러리 CGIF에서, Claude는 LZW 압축 알고리즘의 동작 원리를 이해한 뒤 취약점을 찾아냈다. LZW 압축은 심볼 테이블을 유지하면서 데이터를 압축한다. 심볼 테이블이 최대 크기에 도달하면 "clear" 토큰을 삽입해 테이블을 초기화한다. 이때 압축된 출력이 원본보다 커질 수 있는데, CGIF는 압축 데이터가 항상 원본보다 작을 것이라고 가정하고 있었다. 힙 버퍼 오버플로우가 발생하는 조건이다.
이 취약점을 발견하려면 LZW 알고리즘의 개념적 이해가 필요하다. 퍼저는 알고리즘을 이해하지 못한다. 패턴 매칭 기반의 정적 분석 도구도 마찬가지다. Claude가 잡아낸 것은 규칙이 아니라 맥락이었다. CGIF의 이 취약점은 0.5.1 버전에서 수정되었지만, 그 전까지 GIF를 처리하는 모든 애플리케이션이 영향권에 있었다.
세 사례에서 공통적으로 드러나는 패턴이 있다. Claude는 처음에 퍼징을 시도하지만, 그것만으로 결과가 나오지 않으면 코드 자체를 읽기 시작한다. 취약하다고 알려진 함수 호출(strrchr, strcat, memcpy 등)을 검색하고, 해당 호출이 안전하게 사용되는지를 주변 맥락과 함께 판단한다. 단순한 grep 검색이 아니라, 변수의 생명주기와 데이터 흐름을 추적하는 추론이다.
기존 보안 도구와 무엇이 다른가
Claude Code Security의 작동 방식은 기존 SAST(정적 분석) 도구와 근본적으로 다르다. SAST 도구는 알려진 취약 패턴을 규칙으로 정의하고, 코드에서 그 패턴과 일치하는 부분을 찾는다. 노출된 비밀번호, 오래된 암호화 알고리즘, SQL 인젝션 가능 코드 같은 것들이다. 효과적이지만, 규칙에 없는 취약점은 잡지 못한다.
Claude는 다르게 접근한다. Anthropic의 표현을 빌리면, "인간 보안 연구원처럼 코드를 읽고 추론한다." 컴포넌트 간 상호작용을 이해하고, 데이터가 애플리케이션을 통해 어떻게 흐르는지 추적한다. 복잡한 비즈니스 로직 결함이나 접근 제어 우회 같은, 규칙 기반 도구가 구조적으로 탐지할 수 없는 취약점을 잡아낸다.
| 항목 | 기존 SAST 도구 | Claude Code Security |
|---|---|---|
| 분석 방식 | 패턴 매칭, 규칙 기반 | 코드 추론, 맥락 이해 |
| 발견 대상 | 알려진 취약 패턴 | 미지의 제로데이 포함 |
| 거짓 양성 | 높음 | 다단계 자기 검증으로 필터링 |
| 알고리즘 이해 | 불가 | LZW, 메모리 관리 등 개념적 이해 |
| git 히스토리 분석 | 불가 | 패치 이력에서 불완전한 수정 추적 |
| 수정 제안 | 제한적 | 패치 코드 생성 (인간 승인 필수) |
검증 과정도 독특하다. Claude는 자신이 발견한 취약점을 스스로 반증하려고 시도한다. 각 발견 사항을 여러 라운드에 걸쳐 재검토하고, 자기 발견을 증명하거나 반증하려 한다. 거짓 양성을 필터링하고, 심각도를 평가하며, 복잡한 취약점에는 신뢰도 점수까지 부여한다. 최종적으로 인간 개발자의 승인 없이는 아무것도 적용되지 않는다.
이 자기 검증 루프가 중요한 이유가 있다. 기존 SAST 도구의 가장 큰 문제는 거짓 양성(false positive) 비율이다. SonarQube, Checkmarx 같은 도구를 써본 개발자라면 알 것이다. 수백 개의 경고 중 실제 위험한 것은 소수이고, 나머지는 노이즈다. 이 노이즈 때문에 개발팀이 보안 경고 자체를 무시하는 **"경고 피로(alert fatigue)"**가 발생한다. Claude의 다단계 자기 검증은 이 문제를 직접적으로 해결하려는 시도다. 발견 후 스스로 "이것이 진짜 위험한가?"를 다시 묻고, 확신이 부족하면 신뢰도 점수로 표시한다.
보안주가 하루 만에 폭락한 이유

Claude Code Security 발표 직후, 사이버보안 섹터 주가가 일제히 하락했다. CrowdStrike(CRWD)는 9.9% 하락, Zscaler(ZS)와 Cloudflare(NET)는 8~11% 하락했다. JFrog(FROG)는 4거래일 만에 최대 25% 빠졌다. 사이버보안 ETF인 Global X Cybersecurity ETF(BUG)는 7% 하락하며 수년 만에 가장 큰 단일 하락폭을 기록했다. Microsoft조차 3.2% 하락했다.
투자자들이 공포에 빠진 이유는 단순하다. AI가 보안 분석을 자동화하면, 기존 보안 업체의 핵심 경쟁력인 **"전문 인력이 축적한 위협 탐지 노하우"**가 상품화(commoditize)된다. 고급 보안 분석의 진입 장벽이 자율 추론 모델에 의해 영구적으로 낮아진다는 것이 시장의 판단이었다.
시장 분석가들은 보안 산업이 **이분화(bifurcation)**될 것으로 전망했다. 상류(upstream)인 개발 단계 보안은 AI 연구소가 지배하고, 기존 보안 업체는 런타임 보호와 인시던트 대응 쪽으로 밀려날 것이라는 분석이다. "AI 보안 보험"이나 "AI 검증 서비스" 같은 새로운 시장이 생겨날 수 있다는 전망도 나왔다.
Bloomberg은 이 상황을 **"AI가 산업의 해자(moat)를 무너뜨리고 있다"**고 표현했다. 보안 업체가 수십 년에 걸쳐 쌓아온 위협 인텔리전스 데이터베이스, 전문 인력, 탐지 규칙의 가치가 한 순간에 재평가되고 있다는 것이다.
물론 과잉 반응이라는 시각도 있다. CrowdStrike의 핵심 사업은 엔드포인트 탐지 및 대응(EDR)이지, 코드 수준 취약점 분석이 아니다. Claude Code Security가 아무리 뛰어나도, 런타임에서 벌어지는 공격을 실시간으로 차단하는 것은 다른 문제다. 하지만 시장은 뉘앙스를 구분하지 않는다. "AI가 보안을 대체한다"는 내러티브가 형성되는 순간, 보안 섹터 전체가 재평가 대상이 된다.
방패가 되려다 창이 될 수 있는 양날의 검
Anthropic 스스로도 이 기술의 양면성을 인정했다. Claude Code Security의 능력은 본질적으로 **"이중 용도(dual-use)"**다. 기업이 취약점을 찾아 수정하는 데 쓸 수 있지만, 공격자가 취약점을 찾아 악용하는 데도 동일하게 쓸 수 있다. "방어자가 버그를 찾기 전에 공격자가 먼저 찾으면" 상황이 역전된다.
이미 현실에서 이런 일이 벌어졌다. 2025년 12월부터 2026년 1월까지, 한 해커가 Claude AI를 탈옥(jailbreak)해 멕시코 정부 기관의 데이터를 탈취하는 데 사용했다. 취약점을 찾고, 익스플로잇 코드를 생성하고, 민감한 데이터를 빼돌리는 전 과정에 Claude를 활용했다. 1.9억 명의 개인정보가 노출된 사건이었다.
Anthropic의 대응 전략은 크게 세 가지다. 첫째, Claude의 내부 활동을 실시간으로 감시하는 "프로브(probe)" 시스템을 배치했다. 둘째, 악의적 트래픽을 차단하는 집행 역량을 확대했다. 셋째, 제품을 Enterprise와 Team 고객에게만 제한적으로 공개하고, 오픈소스 유지보수자에게는 무료 우선 접근권을 부여했다. 방어자가 공격자보다 먼저 이 도구를 쓸 수 있게 하겠다는 것이다.
OpenAI는 더 신중한 전략을 택했다. 경쟁 모델인 GPT-5.3 Codex의 보안 기능은 유료 사용자에게만 제한적으로 공개하고, 민감한 보안 분석 기능은 "검증된 보안 전문가를 위한 신뢰 접근 프로그램" 뒤에 두었다. "모델이 사이버 공격을 완전히 자동화한다는 결정적 증거는 없지만, 예방적 조치를 취한다"는 입장이다.
두 회사의 전략 차이가 흥미롭다. Anthropic은 방어자에게 먼저 무기를 주는 전략, OpenAI는 무기 자체의 유통을 통제하는 전략이다. 어느 쪽이 옳은지는 아직 알 수 없다. 확실한 것은 두 전략 모두 완벽하지 않다는 것이다. 방어자에게 먼저 줘도 공격자가 독자적으로 같은 능력을 개발할 수 있고, 유통을 통제해도 탈옥이나 오픈소스 대안이 등장할 수 있다.
Frontier Red Team, 15명이 1년간 한 일
Claude Code Security는 하루아침에 나온 제품이 아니다. Anthropic의 Frontier Red Team 약 15명의 연구원이 1년 이상 연구한 결과물이다. 이 팀의 본래 임무는 Anthropic의 AI 모델을 스트레스 테스트하고, 오용 시나리오를 탐색하는 것이다. 모델이 위험한 일에 사용될 수 있는지를 미리 파악하는 공격자 역할이다.

팀 리더 Logan Graham은 이렇게 말했다. "이것은 사이버 보안의 방어를 강화하겠다는 회사의 다음 단계다." 그리고 이 도구를 **"보안 팀을 위한 포스 멀티플라이어(force multiplier)"**라고 표현했다. 군사 용어를 빌린 것이다. 병력을 늘리지 않고도 전투력을 배가시키는 무기라는 의미다.
연구 과정에서 Frontier Red Team은 경쟁적 CTF(Capture the Flag) 대회에 참가하고, 태평양 북서부 국립연구소(Pacific Northwest National Laboratory)와 협력해 핵심 인프라 방어를 테스트했다. 500개 이상의 취약점을 발견한 것은 이 연구의 부산물이었다.
발견 과정도 인간 연구원과 병행됐다. 초기에는 인간 보안 연구원이 Claude의 발견을 검증하고 패치를 작성했다. 발견 볼륨이 커지면서 외부 연구원을 추가로 투입했다. 메모리 손상(memory corruption) 취약점에 집중한 이유도 있다. 논리 오류보다 검증이 용이하기 때문이다. 주소 새니타이저(address sanitizer)로 크래시가 나지 않는 메모리 오류까지 포착했다.
중요한 것은 이 모든 과정이 "특화된 도구, 커스텀 스캐폴딩, 전문 프롬프팅 없이" 이루어졌다는 점이다. Opus 4.6의 범용 추론 능력만으로 보안 분석을 수행했다는 뜻이다. 보안 전용 모델이 아니라 범용 모델이 보안 전문가 수준의 분석을 해냈다는 것이 핵심 주장이다. Claude에게 주어진 것은 시뮬레이션된 컴퓨팅 환경, 표준 유틸리티, 디버거, 퍼저 정도였다. 보안 분석을 위한 특별한 파인튜닝이나 전용 프롬프트 체인은 없었다.
버그를 잡는 AI, 보안 업계를 잡다
이 사건의 진짜 의미는 500개의 버그 자체가 아니다. 버그는 패치되면 사라진다. 남는 것은 구조적 변화다.
첫째, 보안 분석의 비용 구조가 변했다. 기존에 보안 감사(audit)는 전문 인력이 수 주에서 수 개월을 투입하는 고비용 작업이었다. 전문 보안 감사 업체에 의뢰하면 수천만 원에서 수억 원이 든다. Claude Code Security는 이 작업을 시간 단위로 압축한다. 오픈소스 유지보수자에게 무료로 제공한다는 것은, 그동안 보안 감사 비용을 감당할 수 없었던 프로젝트들도 고품질 보안 점검을 받을 수 있다는 의미다.
둘째, 보안 전문가의 역할이 달라진다. Claude가 초급 보안 연구원 수준의 분석을 자동화한다면, 인간 전문가는 더 복잡한 판단, 위협 모델링, 조직 차원의 보안 전략에 집중하게 된다. 코드를 읽고 패턴을 찾는 반복 작업이 아니라, 어떤 위협이 중요하고 어떤 순서로 대응할지를 결정하는 일이다. Logan Graham이 "포스 멀티플라이어"라는 군사 용어를 쓴 것은 정확한 비유다. 보안 인력을 대체하는 것이 아니라, 소수의 전문가가 훨씬 넓은 범위를 커버할 수 있게 만든다는 의미다.
셋째, 그리고 가장 불편한 사실은 이 기술이 멈추지 않는다는 것이다. Opus 4.0은 제대로 된 보안 분석을 하지 못했다. Opus 4.5에서 가능성이 보이기 시작했다. Opus 4.6에서 500개의 제로데이를 찾아냈다. 모델이 한 세대 진화할 때마다 능력의 범위가 급격히 확장되고 있다. 다음 세대가 나오면 무엇을 찾아낼지는 아무도 모른다.
Anthropic은 **"방어자의 손에 이 힘을 확실히 쥐어주겠다"**고 말한다. 그 의도를 의심할 이유는 없다. 하지만 의도와 결과가 항상 일치하지는 않는다. 멕시코 사건이 보여주듯, 같은 모델이 방패로도 창으로도 쓰일 수 있다.
한 가지 생각해볼 점이 있다. 오픈소스 프로젝트에 발견된 500개의 취약점은 현재 패치 작업이 진행 중이다. 하지만 세상에는 오픈소스보다 훨씬 많은 클로즈드소스 코드가 있다. 기업 내부 코드, 레거시 시스템, 국방 소프트웨어. Claude가 오픈소스에서 500개를 찾았다면, 보안 감사가 훨씬 덜 이루어진 클로즈드소스에서는 얼마나 많은 취약점이 숨어 있을까. 이 도구가 진짜 게임 체인저가 되는 순간은 오픈소스가 아니라 엔터프라이즈 환경에 본격 투입될 때일 것이다.
보안 업계가 진짜 직면한 질문은 "AI가 버그를 잡을 수 있느냐"가 아니다. **"AI가 잡은 버그를 누가 먼저 보느냐"**다.
출처:
- Anthropic rolls out AI tool that can hunt software bugs on its own - Fortune
- Claude Code Security: 0-Days - Anthropic Red Team
- Claude Code Security - Anthropic
- Claude Code Security Triggers Cybersecurity Flash Crash - MarketMinute
- Anthropic Claude Code Security Reasoning Vulnerability Hunting - VentureBeat
- Claude Opus 4.6 Finds 500+ High-Severity Flaws - The Hacker News