보안 연구원 Alvin Ferdiansyah가 Google의 Gemini Live API 참조 구현에서 'live connect constraints' 필드가 누락된 것을 발견했습니다. 해결 방법: 토큰 생성 시 'live connect constraints.bidi generate content setup' 필드에 의도한 모델, 시스템 프롬프트, 빈 도구 배열을 채워 넣는 것입니다.
연구 답변

Create a landscape editorial hero image for this Studio Global article: Search & fact-check with cited sources for What is the Gemini Live API flaw discovered by Alvin Ferdiansyah, how does it allow attackers to. Article summary: ## The Vulnerability. Topic tags: general, documentation, general web, user generated. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fake numbers, clickbait thumbnails, icons, and tiny thumbnail layouts. Make it useful as an illustrative visual, not as factual evidence.
2026년 6월 말, 보안 연구원 Alvin Ferdiansyah는 자신의 블로그를 통해 Google Gemini Live API의 에페메럴 토큰 시스템에서 심각한 설정 오류(misconfiguration)를 발견했다고 주장했습니다. 이 결함이 실제로 존재할 경우, 공격자는 단기간 유효한 WebSocket 토큰을 획득해 브라우저 기반 AI 음성 세션을 가로챌 수 있습니다. 세션을 장악한 공격자는 모델, 시스템 프롬프트, 심지어 세션이 실행할 수 있는 도구까지 마음대로 제어할 수 있습니다.
이 취약점의 핵심은 토큰 생성(minting) 과정에서 보안 필드 하나가 누락된 데 있습니다. 현재까지 확인된 사실과 아직 공식적으로 확인되지 않은 부분, 그리고 개발자가 지금 당장 자신의 배포 환경을 보호할 수 있는 방법을 알아보겠습니다.
Gemini Live API는 브라우저-서버 간 WebSocket 연결을 위해 에페메럴 토큰(ephemeral tokens) 을 지원합니다. 이는 수명이 짧고 특정 용도로만 사용을 제한할 수 있는 인증 토큰입니다 A. 이러한 토큰은 백엔드 서버에서 생성된 후 클라이언트에 전달되며, 클라이언트는 이 토큰을 사용해 실제 API 키를 노출하지 않고 Gemini API에 직접 연결할 수 있습니다.
Google 문서에 따르면, 에페메럴 토큰은 보안이 중요한 클라이언트-서버 구현 환경을 위해 설계되었습니다. 브라우저에서 추출되더라도 토큰의 수명이 짧아 피해를 제한할 수 있기 때문입니다 A. 이러한 제한된 연결을 위한 엔드포인트는 BidiGenerateContentConstrained이며, access_token 쿼리 매개변수를 통해 에페메럴 토큰을 전달받습니다 DS.
live_connect_constraints 필드Ferdiansyah의 글에 따르면, 토큰 생성을 위한 참조 구현(reference implementation)에서 live_connect_constraints 필드가 생략되었습니다 A. 이 필드는 bidi_generate_content_setup 객체를 포함하여 토큰을 특정 모델, 시스템 명령어, 도구 집합에 바인딩(binding)하는 역할을 합니다.
live_connect_constraints가 비어 있거나 아예 없으면 제약 조건이 적용되지 않습니다. 따라서 공격자가 에페메럴 토큰을 획득한 경우, 자신이 원하는 모델, 시스템 프롬프트, 도구를 지정하는 클라이언트 제어 설정 프레임(client-controlled setup frame) 을 서버로 보낼 수 있습니다. 서버는 토큰에 바인딩된 설정 값이 없으므로 이를 검증하지 않고 공격자의 구성을 그대로 수락하게 됩니다.
중요한 주의사항: 제공된 소스에는
live_connect_constraints에 대한 Google의 공식 문서, CVE, 또는 Google 보안 권고문이 포함되어 있지 않습니다. 이 주장은 Ferdiansyah의 Medium 게시물에 근거한 것이며, 아직 공식적으로 확인되지 않았지만 개연성은 높은 것으로 간주됩니다 A.
이 취약점이 실제로 존재한다면, 브라우저 환경에서 Gemini Live API를 사용하는 모든 애플리케이션에 심각한 영향을 미칠 수 있습니다.
Google AI 포럼의 개발자들은 에페메럴 토큰이 시스템 명령어를 무시하거나 제한된 엔드포인트에서 예상대로 작동하지 않는 문제를 보고하고 있어, 관련 생태계가 아직 성숙 단계에 있음을 시사합니다 DD.
Ferdiansyah가 제시한 해결 방법은 간단합니다. 토큰 생성 시 live_connect_constraints.bidi_generate_content_setup 필드에 다음 세 가지 값을 채워 넣으면 됩니다.
model — 사용할 정확한 Gemini 모델 (예: models/gemini-2.5-flash-native-audio-latest).system_instruction — 의도된 시스템 프롬프트. parts에 text를 포함하는 구조로 작성합니다.tools — 빈 배열 [] 또는 명시적으로 허용된 도구만 포함하여 클라이언트 측 주입을 방지합니다.다음은 Ferdiansyah의 글에 나온 예시 Python 코드입니다 A.
token = gemini_client.auth_tokens.create({
"uses": 1,
"expire_time": now + timedelta(seconds=60),
"new_session_expire_time": now + timedelta(seconds=60),
"live_connect_constraints": {
"bidi_generate_content_setup": {
"model": "models/gemini-2.5-flash-native-audio-latest",
"system_instruction": {
"parts": [{"text": "You are a customer support assistant..."}]
},
"tools": []
}
}
})
참고: 공식 Google API 참조 문서에는
live_connect_constraints가 아직 문서화되지 않았으므로, 이 예제는 Ferdiansyah의 설명을 바탕으로 한 것입니다. 프로덕션 환경에 적용하기 전에 실제 API로 반드시 테스트해야 합니다 A.
다음 주요 사항들은 제공된 소스에서 아직 확인되지 않았습니다.
live_connect_constraints의 존재나 스키마가 확인되지 않았습니다.BidiGenerateContentConstrained 엔드포인트의 정확한 동작 방식이 설명되어 있지 않습니다.Google이 공식 권고문을 발표할 때까지는 이 취약점이 실제로 존재할 가능성을 염두에 두고 사전에 조치를 취하는 것이 가장 안전한 방법입니다.
live_connect_constraints 또는 이에 해당하는 필드를 올바르게 채우고 있는지 확인하세요.newSessionExpireTime을 약 60초로 설정할 것을 권장합니다 G.Gemini Live API는 실시간 음성 및 비디오 경험을 구축하기 위한 강력한 도구입니다. 토큰 생성 과정에서 단 하나의 필드가 누락된 것이 이러한 역량을 약화시켜서는 안 됩니다. 개발자는 자신의 구현이 완전한지 반드시 확인해야 합니다.
이 기사는 공식 Google 문서, 커뮤니티 포럼 토론, 연구원의 원본 글을 포함한 27개의 제공된 소스를 기반으로 팩트체크 되었습니다. 연구원의 주요 주장은 게시 시점 기준으로 공식 소스를 통해 독립적으로 확인할 수 없었습니다.
Studio Global AI
이 페이지에는 Studio Global 내에서 계속할 수 있는 소스 기반 답변이 포함되어 있습니다.
보안 연구원 Alvin Ferdiansyah가 Google의 Gemini Live API 참조 구현에서 'live connect constraints' 필드가 누락된 것을 발견했습니다.
보안 연구원 Alvin Ferdiansyah가 Google의 Gemini Live API 참조 구현에서 'live connect constraints' 필드가 누락된 것을 발견했습니다. 해결 방법: 토큰 생성 시 'live connect constraints.bidi generate content setup' 필드에 의도한 모델, 시스템 프롬프트, 빈 도구 배열을 채워 넣는 것입니다.
아직 공식 Google 문서와 CVE가 발행되지 않았으므로, 개발자는 이 취약점이 실제로 존재할 가능성에 대비해 사전에 조치를 취하는 것이 좋습니다.