Google Cloud Platform 취약점 발견 및 포상금 수령 분석 예시
다음은 정보 보안에 관심이 있었던 우루과이의 17세 고등학생에 대한 이야기입니다. 그는 연구와 연구를 통해 독자적으로 Google Cloud Platform의 취약점을 발견하고 $7,500를 받았습니다. $10,000 상당의 Google 호스트 헤더 유출 취약점). 이 취약점에 대해 자세히 설명하기 전에 독자가 Google Cloud 서비스 및 API 메커니즘의 개념을 숙지하는 것이 좋습니다.
Pilot 개념
Google은 Google Service Management라는 관리 서비스를 운영하며, 이를 통해 Google은 사용자가 만든 다양한 애플리케이션 Google 시스템 및 클라우드 서비스의 내부 및 외부 인터페이스를 관리합니다. Google 서비스 관리에서는 사용자가 클라우드 플랫폼 프로젝트에서 Maps API, Gmail API, Private API 등 개인 인터페이스 서비스를 개별적으로 활성화 및 비활성화할 수 있으며, 인터페이스 구성 파일 제어를 통해 다양한 서비스를 실시간으로 관리할 수 있습니다.
일반적으로 우리는 개발자로서 Google 서비스 관리 서비스를 직접 사용하지 않습니다. 대부분의 대화형 작업은 클라우드 콘솔 Google Cloud Console 또는 명령줄(예: 서비스 활성화/종료) 또는 API 관리 인터페이스를 통해 이루어집니다. Google Cloud Endpoints를 사용하여 이를 완료할 수 있지만 Google Service Management 서비스의 흥미로운 API 인터페이스가 있다는 점을 언급할 가치가 있습니다.
이 API 인터페이스는 위의 서비스 관리 기능을 실현할 수 있을 뿐만 아니라 이 API 인터페이스를 사용하여 Google 서비스의 일부 숨겨진 기능에 액세스할 수 있다는 사실이 Google 공식 문서에 기록되어 있습니다.
이러한 숨겨진 기능은 여러 가지 방법으로 찾을 수 있지만 가장 간단하고 쉬운 방법은 사용자의 Google Cloud Platform 프로젝트에서 Service Management API 인터페이스를 활성화하고 프로젝트 트래픽 필터링 콤보 상자를 활성화하는 것입니다. 단계는 다음과 같습니다.
위의 마지막 그림에는 빨간색 상자로 표시된 숨겨진 메소드를 포함하여 API를 사용하여 기능을 구현하는 다양한 방법이 있습니다. 소위 숨겨진 방법은 Google이 아닌 클라이언트가 액세스를 허용하지 않는 것입니다. Google이 아닌 클라이언트가 액세스를 시도하면 404 오류가 반환됩니다. 매우 흥미로운 점은 이 404 오류가 일반적인 HTML 페이지처럼 "여기에 오류가 있습니다" 프롬프트로 표시되지 않고 JSON 모드에서 제공되어 메소드가 존재하지 않는다는 메시지를 표시한다는 것입니다.
마찬가지로 API 자체에도 숨겨진 메소드가 있는데, 이는 일부 공개 메소드에서 수신된 숨겨진 매개변수이지만 상대적으로 이러한 숨겨진 메소드는 발견하기가 더 어렵습니다.
숨겨진 메소드와 숨겨진 매개변수의 경우 모두 '가시성'이라는 Google 서비스 기능을 사용합니다. 이 기능 기록은 공개 문서에서 쿼리할 수 있지만 Google에서만 내부적으로 사용됩니다.
팁: Google 자체 API의 숨겨진 부분은 다양한 방법으로 발견될 수 있으며, 대부분의 경우 숨겨진 문서도 있습니다. 또한 Google은 이러한 숨겨진 API 기능이 유출되거나 숨겨진 API로 간주하지 않습니다. 문서 보안 취약점이 있습니다. (한번은 Google에 이 내용을 보고한 적이 있습니다.)
그러나 몇 가지 숨겨진 기능도 악용될 수 있다면 보안 취약점으로 간주됩니다. 예를 들어, 제가 1년 전에 발견한 숨겨진 매개변수는 악용에 성공한 후 취약성을 형성했습니다. 5,000달러로. 아직 취약점은 복구 단계에 있기 때문에 현시점에서는 공개하기가 쉽지 않습니다.
사전 분석
위의 지식을 이해한 후 Google의 숨겨진 기능에 액세스하는 방법을 사용해 보았습니다. Google Cloud Console에 액세스할 때 생성된 기능을 주의 깊게 분석하면 된다는 것입니다. 요구.
Google Cloud Console은 여러 공개 및 비공개 Google API, 자체 클라이언트 프로그램, API 키 AIzaSyCI-zsRP85UVOi0DjtiCwWBwQ1djDy741g를 사용하여 클라우드 프로젝트에 대한 정보 액세스를 달성합니다.
Google Cloud Console 클라이언트의 일반적인 요청은 다음과 같습니다.
GET /v1/services?key=AIzaSyCI-zsRP85UVOi0DjtiCwWBwQ1djDy741g HTTP/1.1 Host: servicemanagement.clients6.google.com Authorization: SAPISIDHASH <sapisidhash> X-Origin: https://console.cloud.google.com Cookie: <google></google></sapisidhash>
첫 번째 부분의 의미를 살펴보겠습니다.
"clients6.google.com": "googleapis.com"에 대한 요청입니다. 방법, 쿠키는 google.com의 하위 도메인 이름에만 액세스할 수 있으므로 이 방법이 필요합니다.
"SAPISIDHASH": StackOverflow 포럼에 따르면 "TIMESTAMP_HASH"(timestamp_ha(Hish) 값이며 다른 많은 방법이 있습니다. 이 취약점과 관련이 없는 포럼에서 SAPISIDHASH를 생성하는 방법
"X-Origin": "Origin"이라고도 알려져 있으며 여기 SAPISIDHASH 부분과 클라이언트가 웹 사이트에 액세스하기 위해 신뢰할 수 있는 확인을 수행하는 데 필수적입니다. 헤더 정보,
쿠키: SID, HSID, SSID, APISID, SAPISID 등을 포함합니다. Google 사용자는 이 쿠키 정보를 얻으려면 로그인해야 합니다.
由此看来,要伪造谷歌云端控制台(Google Cloud Console)的请求非常简单,而且由于它是谷歌自身的客户端程序,因此它可以访问到多个Google API,甚至是一些私有Google API的某些内部功能,其中就包括Service Management的API。
谷歌云端控制台(Google Cloud Console)客户端的多个功能之一就是,创建一个从一开始就附加了配置项的服务(一般的客户端通常会忽略 "serviceConfig"参数,因为该参数是隐藏的,而且在创建服务时不产生初始配置操作),其简单的配置请求如下:
POST /v1/services?key=AIzaSyCI-zsRP85UVOi0DjtiCwWBwQ1djDy741g HTTP/1.1 Host: servicemanagement.clients6.google.com Authorization: SAPISIDHASH <sapisidhash> X-Origin: https://console.cloud.google.com Cookie: <google> Content-Length: <content-length> { "serviceName": "<service>", "producerProjectId": "<project>", "serviceConfig": { "name": "<service>", "producerProjectId": "<project>", "configVersion": 3 }</project></service></project></service></content-length></google></sapisidhash>
漏洞分析
通常来说,参数"serviceName"和"serviceConfig.name"必须与指定了两者的请求发生匹配,但在实际的服务创建过程中,当 "configVersion" 变量值被设置为1或2,或者是2147483648至4294967295之间的值时(相当于后端发生了一个整型溢出),这种匹配的受限条件并不会被检查实行,因此,任意用户都可以使用真实的名称(如“the-expanse.appspot.com”)来创建服务,只需在其配置文件中声明它其中还存在另一个不同的服务,如"my-private-secure-api.appspot.com"。Due to a certain compatibility setting, this vulnerability will not affect some older versions of Google services.。
该漏洞的出现会对谷歌服务产生重要影响,一些重要的流程使用服务配置中的服务名称来执行除权限检查之外的任意操作,所以,如果配置中加入了不同的服务名称后,攻击者就可以在不同的服务中执行一些重要的操作。这些操作包括:
1#启用其它服务
如果我拥有服务"the-expanse.appspot.com" ,和其在配置项中对应的"very-important-api.example.com" ,当启用 "the-expanse.appspot.com"运行某项谷歌的云端项目时,谷歌服务会继续运行,因为我拥有启用"the-expanse.appspot.com" 的权限,但是,最终操作会实现在"very-important-api.example.com"的执行上,因此,最终可以启用"very-important-api.example.com"。
如果用户设置了具备Google API 密钥或Google认证令牌的API,来对合法客户进行认证,那么,攻击者可以绕过这种身份验证机制。
由于谷歌本身使用了这种方法来认证合法客户端,因此,攻击者可以使用一些用于开发的私有Google API,获取到一些仅供白名单用户(可信测试人员、Google My Business API等)才能访问的内部信息。
2#访问隐藏功能
Service Management API中的一个隐藏方法是“PatchProjectSettings”,这允许服务的所有者配置针对特定服务项目的某些隐藏设置,在这些设置中,可以选择配置可见性标签来对隐藏功能的访问进行管理。
例如,如果我有服务“the-expanse.appspot.com”,和其配置项中的“cloudresourcemanager.googleapis.com”,我可以发送以下请求访问我的云端项目(the-expanse)中,由少数可信测试人员测试的功能。
PATCH /v1/services/the-expanse.appspot.com/projectSettings/the-expanse?updateMask=visibilitySettings&key=AIzaSyCI-zsRP85UVOi0DjtiCwWBwQ1djDy741g HTTP/1.1 <..same> { "visibilitySettings": { "visibilityLabels": [ "TRUSTED_TESTER" ] }}</..same>
3#关闭他人云端项目的服务功能
利用上述同样的方法,我们可以对某云端项目是否启用或关闭某项服务进行控制,但是,要注意的是,这种方法只能禁用其他人项目中的服务,不能执行服务启用操作。
比如,如果我有服务"the-expanse.appspot.com" ,以及配置项中的"cloudresourcemanager.googleapis.com" ,我可以发送以下请求去禁用位于Cloud SDK中的谷歌云端资源管理API:
PATCH /v1/services/the-expanse.appspot.com/projectSettings/google.com:cloudsdktool?updateMask=usageSettings&key=AIzaSyCI-zsRP85UVOi0DjtiCwWBwQ1djDy741g HTTP/1.1 <..same> { "usageSettings": { "consumerEnableStatus": "DISABLED" } }</..same>
漏洞影响
该漏洞可导致很多问题,如启用私有API、访问隐藏功能、禁用其他人项目中的服务,进而导致客户对谷歌云端服务的使用问题。我没一一进行过验证,但我可以肯定的是,该漏洞可以实现以下操作,对客户服务造成影响:
访问各种处于开发阶段尚未公开的Google API和其中的内置功能;
免费使用一些收费的Google API功能;
访问那些使用谷歌云端服务来进行开发的私有API;
访问一些谷歌自身未向公众开放的API隐藏功能;
绕过一些特殊限制条件;
在该漏洞基础上,对其它潜在漏洞形成威胁利用;
对关键API的禁用导致的重要服务中断(如Cloud SDK无法访问项目,Android的YouTube应用无法检索视频的元数据等等)
漏洞上报进程
2018-01-27 发现漏洞
2018-01-27 漏洞初报
2018-01-29 谷歌开发团队修复了服务创建过程的漏洞
2018-01-29 漏洞报告分类
2018-01-30 serviceName/serviceConfig.name과 일치하지 않는 모든 서비스는 Google 시스템에서 삭제되었으며 더 이상 취약점을 악용할 수 없습니다.
2018-01-30 Google 보안 팀은 세 번째 위협을 재현할 수 없지만, 테스트 엔지니어들은 여전히 401 오류를 받을 수 있습니다
2018-01-30 구글 보안팀은 이 취약점과 관련이 있는 것으로 의심되는 침입을 발견하고 긴급히 복구 패치를 출시했습니다
2018-01-31 구글이 이를 알려왔습니다 개발팀 취약점을 보고한 지 1시간 후에 독립적으로 취약점을 발견했지만 내 취약점 보고서는 현상금 평가를 위해 Google 보안 팀에 계속 전송되었습니다
2018-02-14 Google은 취약점 현상금에 대해 7500달러를 지급했습니다
위 내용은 Google Cloud Platform 취약점 발견 및 포상금 수령 분석 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











현재 올 가을에는 4개의 새로운 Pixel 스마트폰이 출시될 것으로 예상됩니다. 요약하자면, 이 시리즈에는 출시 시 Pixel 9와 Pixel 9 Pro가 탑재될 것이라는 소문이 있습니다. 그러나 Pixel 9 Pro는 Pixel 8 Pro가 아닌 iPhone 16 Pro의 경쟁자가 될 것입니다.

Google은 Pixel 8 시리즈에 DisplayPort 대체 모드를 도입했으며 새로 출시된 Pixel 9 라인업에 포함되어 있습니다. 주로 연결된 화면으로 스마트폰 디스플레이를 미러링할 수 있도록 하기 위해 존재하지만 데스크탑에서도 사용할 수 있습니다.

Google은 최근 Pixel 9 라인의 Tensor G4에 대한 성능 문제에 대응했습니다. 회사는 SoC가 벤치마크를 이길 수 있도록 설계되지 않았다고 말했습니다. 대신 팀은 Google이 C를 원하는 영역에서 좋은 성능을 발휘하도록 집중했습니다.

Google AI는 Gemini 1.5 Pro LLM(대형 언어 모델)부터 개발자에게 확장된 컨텍스트 창과 비용 절감 기능에 대한 액세스를 제공하기 시작했습니다. 이전에는 대기자 명단을 통해 제공되었으며 전체 200만 개의 토큰 컨텍스트 창

최신 업데이트(v15.29.34.29 베타)의 APK 분해를 고려하면 Google의 AI 비서인 Gemini가 더욱 강력해질 예정입니다. 거대 기술 기업의 새로운 AI 비서는 몇 가지 새로운 확장 기능을 얻을 수 있는 것으로 알려졌습니다. 이러한 확장 기능은

Pixel 9 시리즈는 8월 13일 출시로 예정되어 거의 다가왔습니다. 최근 소문에 따르면 Pixel 9, Pixel 9 Pro 및 Pixel 9 Pro XL은 128GB의 스토리지부터 시작하여 Pixel 8 및 Pixel 8 Pro(Amazon에서 현재 $749)를 미러링할 예정입니다.

Android Authority가 Google이 Android 14 QPR3 베타 2.1에 숨겨둔 새로운 Android 데스크톱 모드를 시연한 지 몇 달이 지났습니다. Pixel 8 및 Pixel 8에 대한 DisplayPort Alt 모드 지원을 추가하는 Google의 뒤를 이어 뜨거워졌습니다.

Pixel 9 시리즈와 관련된 더 많은 홍보 자료가 온라인에 유출되었습니다. 참고로 새로운 유출은 91mobiles가 Pixel Buds Pro 2와 Pixel Watch 3 또는 Pixel Watch 3 XL을 선보인 여러 이미지를 공유한 직후에 발생했습니다. 이 시간
