Anthropic, Claude로 코드 공격 표면 축소 연구 공개

Anthropic RED2026년 10월 21일 (수)
Anthropic, Claude로 코드 공격 표면 축소 연구 공개
  • •Anthropic, Claude로 25개 오픈소스 프로젝트 분석해 493개 문제 발견
  • •Claude, 보안에 민감한 설정 조합 162개 찾아내 그중 94개는 보안 제어를 조용히 비활성화
  • •OpenSSH 10.4에서 약 4,500줄의 인증 전 접근 가능 ML-DSA-44 코드 발견, 10.6에서 수정

Anthropic은 Claude를 활용해 소프트웨어의 공격 표면을 줄이는 연구를 발표했다. 회사는 개별 취약점을 일일이 찾아 고치는 방식은 확장성이 떨어지는 반면, 코드 접근 가능성을 줄이면 아직 발견되지 않았거나 실제 공격이 진행 중인 취약점의 심각도도 낮출 수 있다고 설명했다.

Anthropic은 C, C++, Java, PHP, Python 등 다양한 언어로 작성된 25개 오픈소스 프로젝트, 500만 줄 이상의 코드에 Claude를 적용했다. Claude는 493개의 문제를 발견했고, 1만 7,000개 이상의 설정 옵션 목록을 만들었으며, 그중 3,842개가 보안 관련 제어 또는 기능과 연관돼 있었다. 연구진은 프로젝트를 공개(인증 없이 접근 가능한 사용자 대상) 10개, 제한(인증 사용자 대상) 11개, 비공개(운영자 내부 환경) 4개로 분류했다.

연구는 세 가지 방법을 사용했다. 기본 설정에서 의도되지 않은 코드가 접근 가능한지 찾는 기본 설정 분석, 개별로는 합리적이지만 함께 쓰면 문제가 되는 옵션 쌍을 찾는 설정 상호작용 분석, 인증이나 프로토콜 상태 전이 이전에 실행되는 보안 민감 코드를 찾는 조기 접근성 분석이다. 제한 프로젝트 11개 모두에서 의도치 않게 접근 가능한 코드가 발견됐으며, 기본 설정에서 인증 전 불필요한 공격 표면 93개, 인증 전 코드 실행 또는 상태 기록 37곳, 인증 전 제어를 조용히 약화시키는 설정 조합 61개가 확인됐다.

설정 상호작용 분석에서 Claude는 경고나 오류 없이 수용된 보안 민감 조합 162개를 찾았다. 94건은 보안 제어를 조용히 끄는 조합이었고, 68건은 같은 메커니즘 내의 불일치였다. 네 개의 무관한 프로젝트에서는 역방향 DNS 조회가 꺼져 있을 때 호스트명이나 와일드카드 패턴으로 작성된 접근 규칙이 IP 주소와 절대 일치하지 않아 거부 규칙이 작동하지 않고 목록이 열린 상태로 실패하는 패턴이 나타났다. 한 프로젝트에서는 충돌하는 옵션 때문에 인증서 기반 신원 확인이 조용히 누락돼 인증되지 않은 클라이언트가 요청 처리 코드에 도달할 수 있었으며, 해당 옵션은 21년간 존재해 왔다.

OpenSSH 사례 연구에서 Claude는 10.4 버전의 SSH 데몬을 추적해, 알고리즘이 기본적으로 활성화되지 않았고 관리자가 명시적으로 비활성화하면 제외되는데도 인증되지 않은 클라이언트가 기본 설정에서 도달할 수 있는 실험적 ML-DSA-44 양자 내성 서명 코드 약 4,500줄을 발견했다. Anthropic에 따르면 이 코드는 기본 설정 sshd의 인증 전 코드 약 16%에 해당했다. 팀이 문제를 패치와 함께 보고했고, 10.5 버전에서 검사가 파싱 이전으로 옮겨졌다. 이후 Claude는 광고된 알고리즘 이름과 실제 파싱된 키 타입의 불일치, 제어되지 않은 인증서 CA 서명 경로 등 두 가지 추가 결함을 찾아냈으며, 10.6 버전에서 검사가 파서 내부로 옮겨지며 인증되지 않은 클라이언트가 기본 빌드에서 도달할 수 있던 코드의 약 5분의 1이 제거됐다.

Anthropic은 세 가지 방법을 재사용 가능한 Claude 스킬로 패키징했으며, 이를 OSS-Scanner에 통합하는 작업을 진행 중이다. 이 스킬은 세 번의 패스를 실행하며, 각 패스는 이전 패스의 짧은 맥락을 제외하고 빈 컨텍스트 창에서 시작한다. 또한 각 발견을 프로그램의 동적 추적으로 확인하고, 기본 설정 발견에 대해서는 게이트를 설계·구현한 뒤 프로젝트 자체 테스트를 통해 프로그램의 기본 동작이 변하지 않았는지 검증한다.