CodeMender 개요

고급 AI 모델이 출시되면서 코드 취약점에 대한 우려가 널리 퍼졌습니다. 공격자가 익스플로잇을 생성하는 새로운 기능을 이용할 수 있게 되면서 보안팀은 익스플로잇이 악용되기 전에 취약점을 선제적으로 찾아 수정해야 한다는 엄청난 시간적 압박을 받고 있습니다.

CodeMender는 코드베이스에서 심층적인 취약점을 찾아 확인하고 수정할 수 있는 AI 코드 보안 에이전트입니다. CodeMender는 Google DeepMind에서 설계한 프롬프트, 기술, 오케스트레이션 로직을 사용하여 LLM을 코드 보안에 특화된 에이전트 시스템으로 전환하는 미세 조정된 하네스를 LLM에 래핑합니다.

작동 방식

CodeMender는 코드가 여러 언어와 시스템 유형에 걸쳐 있는 최신 기업 환경의 규모와 다양성을 처리하도록 설계되었습니다.

  • 에이전트가 안내하는 LLM을 사용하여 코드베이스를 스캔하고, 특수 도구와 프롬프트 엔지니어링을 활용하여 모델이 보안 결함에 집중하도록 함으로써 취약점을 찾습니다. 또는 외부 보안 스캔 도구에서 취약점 목록을 가져올 수 있습니다.
  • 코드를 빌드하고 발견된 취약점을 악용하여 악용 가능한지 확인하여 취약점을 확인합니다. 이를 통해 확인된 취약점의 우선순위를 지정하고 거짓양성률을 줄일 수 있습니다.
  • 코드베이스의 언어와 호환되는 패치를 생성하고 테스트하여 취약점을 수정합니다.

세 단계 모두에서 CodeMender에 컨텍스트를 제공하여 애플리케이션과 위협 모델의 미묘한 차이를 고려하도록 할 수 있습니다. LLM과 CodeMender의 미세 조정된 하네스를 결합하면 LLM만 사용하여 취약점을 찾아 수정하는 것보다 고품질 결과를 얻을 수 있습니다.

시스템 아키텍처

사용자 관점에서 CodeMender 시스템은 다음 두 가지 구성요소로 구성됩니다.

  • 에이전트: 핵심 비즈니스 로직과 추론을 실행하는 호스팅 멀티 에이전트 시스템입니다.
  • 클라이언트: 머신에서 실행되며 CLI (명령어를 실행하고 출력을 확인)와 데몬 (코드베이스 탐색, 취약점 및 패치 확인 등 에이전트를 대신하여 명령어 실행) 역할을 모두 수행하는 클라이언트입니다.

지원되는 언어 및 프레임워크

CodeMender는 C/C++, Go, Java, Python, TypeScript / JavaScript, Rust, Ruby 등 모든 주요 프로그래밍 언어에서 가장 많이 발생하는 취약점 유형을 지원합니다. 또한 이러한 언어 내의 표준 라이브러리와 일반적인 엔터프라이즈 프레임워크 (예: HTML/CSS, Django, Flask, React, Spring Boot, Express)를 광범위하게 지원합니다.

지원되는 취약점 유형은 애플리케이션 로직, 데이터 처리, 메모리 관리, 인증 제어 흐름 전반의 다양한 소프트웨어 보안 결함을 포괄합니다.

지원되는 모델

CodeMender는 다음 모델을 지원합니다.

클릭하여 지원되는 모델 펼치기

CodeMender CLI 명령어를 실행할 때 모델을 지정하려면 모델 지정을 참고하세요.

보안 및 데이터 개인 정보 보호

다음 섹션에서는 CodeMender의 보안 모델, 데이터 보관 정책, 액세스 제어를 간략하게 설명합니다.

클라우드로 전송되는 데이터는 무엇인가요?

CodeMender를 사용하면 로컬 CLI 도구가 코드에 대한 액세스를 중재하여 전체 소스 코드 저장소가 Google 서버에 업로드되지 않고 호스팅된 에이전트에 의해 독립적으로 클론되지 않습니다.

대신 Google 호스팅 에이전트로 전송되는 데이터는 엄격하게 현지화되어 있으며 다음으로 구성됩니다.

  • 타겟팅된 파일 콘텐츠 또는 코드 스니펫, 취약점 정보, 제안된 패치, 명령 실행 결과
  • 메타데이터, 진단, 오류, 사용량 원격 분석 (예: 사용된 토큰 및 명령 지속 시간)

고객 소스 코드는 기본 모델 가중치를 학습시키는 데 사용되지 않습니다.

보관 정책은 무엇인가요?

CodeMender는 엄격한 단기 데이터 보관 정책을 사용합니다.

  • 최대 7일 보관: 사용자가 중단된 스캔을 원활하게 재개할 수 있도록 코드 스니펫과 추적 상태를 포함한 세션 데이터가 Gemini Enterprise Agent Platform 스토리지에 최대 7일 동안 보관됩니다. 7일이 지나면 자동으로 삭제됩니다 (데이터 보관 기간 0일 참고).
  • 명시적 삭제: 고객은 7일을 기다릴 필요가 없습니다. DeleteInteraction를 호출하여 모든 세션 데이터를 즉시 정리할 수 있습니다.
  • 일시적인 발견 항목: 취약점 발견 항목과 패치는 장기 데이터베이스에 저장되지 않고 파이프라인 중에 메모리에 누적됩니다.

데이터에 액세스할 수 있는 사용자

CodeMender는 사람의 가시성과 관련하여 '데이터 액세스 제로' 접근 방식으로 설계되었습니다.

  • 인간 액세스 없음: 인간 그룹이나 Google 엔지니어가 프로덕션 환경에서 고객 데이터를 읽을 수 없습니다.
  • 운영자 가시성 없음: 프로덕션 디버깅 및 오류 추적의 경우에도 Google 운영자는 제한되며 고객 소스 코드 컨텍스트 또는 일시적인 세션 상태를 볼 수 없습니다.
  • 엄격한 격리: 모든 데이터는 조직 및 고객 결제 프로젝트별로 논리적으로 격리되고 액세스 제어되어 공유 인프라 내에서 테넌트 개인 정보를 보호합니다.
  • VPC 서비스 제어 (VPC-SC): 환경을 추가로 보호하기 위해 CodeMender의 아키텍처는 VPC 서비스 제어 (VPC-SC)를 완전히 지원합니다. 이를 통해 Google Cloud 리소스 주위에 안전한 보안 경계를 정의하여 현지화된 데이터가 클라우드 추론 엔진으로 전송되는 동안 데이터 무단 반출 위험을 완화할 수 있습니다.

CLI 시작하기

CLI 도구를 설정하고 작업공간을 초기화하여 스캔을 시작합니다.

기본 요건

CodeMender CLI를 초기화하기 전에 환경이 올바르게 준비되었는지 확인하세요.

  • CodeMender CLI 다운로드: 운영체제에 맞는 CodeMender CLI 바이너리를 다운로드하고 설치합니다.
  • Google Cloud 사용자 인증 정보 구성: CLI를 인증하도록 Google Cloud 애플리케이션 기본 사용자 인증 정보 (ADC)를 구성합니다.
  • 소스 코드 프로비저닝: 스캔할 프로젝트의 소스 코드를 작업공간에 클론하거나 복사합니다.

모델 지정

기본적으로 CodeMender는 Gemini 3.5 Flash를 사용합니다. 기본 모델을 재정의하려면 해당 모델 식별자와 함께 --model 플래그를 전달합니다.

  • Gemini 3.5 Flash (기본값): --model gemini-3.5-flash
  • Gemini 3.1 Pro 프리뷰: --model gemini-3.1-pro-preview
  • Gemini 3 Flash 프리뷰: --model gemini-3-flash-preview

--model 플래그는 다음 명령어에서 지원됩니다.

  • cm find
  • cm verify
  • cm fix

이러한 명령어를 실행할 때 모델을 지정하려면 다음 구문을 사용하세요.

cm COMMAND TARGET --model MODEL_NAME

다음 단계

자세한 안내는 다음 가이드를 참고하세요.