Overview

Safe Browsing API를 사용하면 클라이언트 애플리케이션이 Google에서 지속적으로 업데이트되는 안전하지 않은 웹 리소스 목록을 기준으로 실시간 또는 목록 기반 URL 검사를 실행할 수 있습니다. 안전하지 않은 웹 리소스의 예시로는 소셜 엔지니어링 사이트 (피싱 및 사기성 사이트)와 멀웨어 또는 원치 않는 소프트웨어를 호스팅하는 사이트가 있습니다. 세이프 브라우징 목록에 있는 URL은 안전하지 않은 것으로 간주됩니다.

클라이언트는 urls.search 또는 hashes.search을 사용하여 URL이 세이프 브라우징 목록에 있는지 확인할 수 있습니다.

새로운 기능

데이터 최신 상태

기존에는 세이프 브라우징 클라이언트가 잠재적 위협과 일치하는 데 사용되는 위협 목록을 주기적으로 다운로드했습니다. 시간이 지남에 따라 위협 볼륨과 속도가 모두 증가함에 따라 이러한 로컬 위협 목록은 최신 위협에 대해 효과가 떨어졌습니다.

이 격차를 해소하기 위해 이전에 V4에서 제공되던 기본적으로 허용 프로토콜 대신 프로토콜을 기본적으로 확인으로 전환하는 기능을 도입합니다. 이는 '전역 캐시'라고 하는 안전한 사이트 목록을 다운로드하는 기능을 도입하여 이루어집니다. URL이 전역 캐시에 없으면 클라이언트는 API를 사용하여 URL이 위협인지 확인해야 합니다.

서비스의 데이터 업데이트 개선과 더불어 기본적으로 검사를 실행할 수 있는 기능을 통해 새로운 위협에 대한 더 빠르고 거의 실시간에 가까운 보호를 제공합니다.

IP 개인 정보 보호

세이프 브라우징 API는 필수 네트워킹 요구사항과 DoS 방지 목적으로만 IP 주소를 사용합니다.

추가 개인 정보 보호 보장을 지원하기 위해 세이프 브라우징 Oblivious HTTP 게이트웨이 API라는 동반 API가 도입되었습니다. Oblivious HTTP를 사용하여 Google에서 최종 사용자의 IP 주소를 숨깁니다. 이 기능은 공모하지 않는 서드 파티가 암호화된 사용자 요청을 처리한 다음 Google에 전달하는 방식으로 작동합니다. 따라서 서드 파티는 IP 주소에만 액세스할 수 있고 Google은 요청의 콘텐츠에만 액세스할 수 있습니다. 서드 파티는 Oblivious HTTP Relay (예: Fastly의 이 서비스)를 운영하고 Google은 Oblivious HTTP Gateway를 운영합니다. 이는 선택사항인 컴패니언 API입니다. Google 세이프 브라우징과 함께 사용하면 최종 사용자의 IP 주소가 더 이상 Google에 전송되지 않습니다.

자세한 내용은 Safe Browsing Oblivious HTTP Gateway API 문서를 참고하세요.

검색 방법

URL의 실시간 검사를 실행하는 데 사용할 수 있는 다양한 방법을 살펴보겠습니다.

urls.search

클라이언트 애플리케이션이 URL과 관련된 위협이 있는지 확인하기 위해 세이프 브라우징 서비스에 URL을 전송할 수 있습니다.

장점
  • 단순 URL 검사: 실제 URL과 함께 요청을 전송하면 서버가 연결된 위협 (있는 경우)과 함께 URL로 응답합니다.
단점
  • URL 기밀성 없음: 요청에 확인 중인 원시 URL이 포함됩니다.

장단점이 요구사항에 적합하다면 사용하기 쉬운 urls.search를 사용하는 것이 좋습니다.

hashes.search와 다르므로 메서드 사용의 서비스 약관을 검토합니다.

hashes.search

클라이언트 애플리케이션이 서비스에 실제 URL을 공개하지 않고 URL 집합에 알려진 위협이 있는지 확인할 수 있습니다. 이는 URL의 해시 접두사만 제공하여 이루어집니다. 응답에는 샤드 해시 접두사가 있는 알려진 위협의 전체 해시가 포함됩니다.

장점
  • URL 기밀성: 해시된 URL의 4바이트 해시 접두사만 요청에 있습니다.
  • 호환성: 클라이언트가 URL 정규화 및 해싱을 처리하므로 이 메서드는 실시간 모드, 로컬 목록 모드와 같은 로컬 데이터베이스를 사용하는 모드와 원활하게 통합됩니다.
단점
  • 복잡한 URL 확인: URL을 표준화하고, 서픽스/프리픽스 표현식을 만들고, SHA256 해시를 계산하여 이 메서드에 요청하고 안전하지 않은 목록 또는 전역 캐시의 로컬 사본과 비교하는 방법을 알아야 합니다.

URL 기밀성을 우선시해야 하고 실시간 모드 또는 로컬 목록 모드를 사용하고 싶다면 hashes.search가 권장되는 접근 방식입니다.

HashList 메서드

이러한 메서드를 사용하면 클라이언트가 안전하지 않은 목록과 전역 캐시의 해시 버전을 다운로드하고 저장할 수 있습니다. 클라이언트는 이 정보를 사용하여 문제의 URL에 대한 실시간 검색을 실행해야 하는지 여부를 확인할 수 있습니다.

이러한 메서드는 실시간 모드로컬 목록 모드의 작동에 필수적입니다.

이러한 메서드를 활용하는 방법에 관한 자세한 내용은 로컬 데이터베이스 페이지를 참고하세요.

예시 요청

이 섹션에서는 HTTP API를 직접 사용하여 세이프 브라우징에 액세스하는 몇 가지 예를 설명합니다. 생성된 언어 바인딩을 사용하는 것이 좋습니다. 언어 바인딩은 인코딩과 디코딩을 편리한 방식으로 자동으로 처리하기 때문입니다. 해당 바인딩에 관한 문서를 참고하세요.

urls.search을 사용하는 HTTP 요청의 예:

GET https://safebrowsing.googleapis.com/v5alpha1/urls:search?key=INSERT_YOUR_API_KEY_HERE&urls=testsafebrowsing.appspot.com/

hashes.search을 사용하는 HTTP 요청의 예:

GET https://safebrowsing.googleapis.com/v5/hashes:search?key=INSERT_YOUR_API_KEY_HERE&hashPrefixes=WwuJdQ

hashLists.batchGet을 사용하는 HTTP 요청의 예:

GET https://safebrowsing.googleapis.com/v5/hashLists:batchGet?key=INSERT_YOUR_API_KEY_HERE&names=se&names=mw-4b

모든 응답 본문은 디코딩할 수 있는 프로토콜 버퍼 형식 페이로드입니다.