색인
SafeBrowsing
(인터페이스)Checksum
(메시지)ClientInfo
(메시지)CompressionType
(열거형)FetchThreatListUpdatesRequest
(메시지)FetchThreatListUpdatesRequest.ListUpdateRequest
(메시지)FetchThreatListUpdatesRequest.ListUpdateRequest.Constraints
(메시지)FetchThreatListUpdatesResponse
(메시지)FetchThreatListUpdatesResponse.ListUpdateResponse
(메시지)FetchThreatListUpdatesResponse.ListUpdateResponse.ResponseType
(열거형)FindFullHashesRequest
(메시지)FindFullHashesResponse
(메시지)FindThreatMatchesRequest
(메시지)FindThreatMatchesResponse
(메시지)ListThreatListsResponse
(메시지)PlatformType
(열거형)RawHashes
(메시지)RawIndices
(메시지)RiceDeltaEncoding
(메시지)ThreatEntry
(메시지)ThreatEntryMetadata
(메시지)ThreatEntryMetadata.MetadataEntry
(메시지)ThreatEntrySet
(메시지)ThreatEntryType
(열거형)ThreatInfo
(메시지)ThreatListDescriptor
(메시지)ThreatMatch
(메시지)ThreatType
(열거형)
SafeBrowsing
Safe Browsing API를 사용하면 클라이언트가 웹 리소스 (가장 일반적으로는 URL)를 Google에서 지속적으로 업데이트하는 안전하지 않은 웹 리소스 목록과 비교하여 확인할 수 있습니다. 세이프 브라우징 API (v4)에는 Update API와 Lookup API가 있습니다.
Update API는 대규모 클라이언트를 위해 설계되었으며 FindFullHashes 및 FetchThreatListUpdates 메서드를 포함합니다 . Update API를 사용하려면 클라이언트가 다운로드한 위협 목록을 로컬 데이터베이스에 유지해야 합니다.
먼저 클라이언트는 로컬 목록과 일치시켜 특정 웹 리소스의 상태 (안전함 또는 안전하지 않음)를 확인합니다. 일반적으로 목록은 블랙리스트에 추가된 URL 표현식의 해시 접두사로 구성됩니다. URL을 확인하기 위해 클라이언트는 지정된 URL의 해시를 생성하고 로컬 목록에서 접두사 충돌을 확인합니다. 접두사 일치가 발견되면 클라이언트는 FindFullHashes 메서드를 통해 일치하는 해시 접두사와 연결된 전체 해시를 가져옵니다. 그런 다음 클라이언트는 로컬 전체 해시를 반환된 전체 해시와 비교합니다. 일치하면 URL이 안전하지 않다는 것을 나타냅니다.
두 번째로, 클라이언트는 FetchThreatListUpdates 메서드를 통해 로컬 데이터베이스의 업데이트를 가져옵니다. 이 메서드는 클라이언트의 현재 상태를 가져와 클라이언트가 로컬 위협 목록에 적용해야 하는 변경사항과 함께 업데이트된 클라이언트 상태를 반환합니다.
Lookup API는 소규모 클라이언트를 위해 설계되었으며, 클라이언트가 FindThreatMatches 메서드를 통해 리소스를 Safe Browsing 위협 목록과 직접 일치시킬 수 있습니다.
Update API 또는 Lookup API를 사용하는 클라이언트는 ListThreatLists 메서드를 통해 다운로드할 수 있는 세이프 브라우징 위협 목록의 목록을 가져올 수 있습니다.
{-- TRUSTED_THREAT_REPORTER: 신뢰할 수 있는 위협 클라이언트는 SubmitThreatReport 메서드를 통해 분석을 위해 Google에 보고서를 제출할 수 있습니다. --}
FetchThreatListUpdates |
---|
최신 위협 목록 업데이트를 가져옵니다. 클라이언트는 한 번에 여러 목록의 업데이트를 요청할 수 있습니다. |
FindFullHashes |
---|
요청된 해시 접두사와 일치하는 전체 해시를 찾습니다. |
FindThreatMatches |
---|
세이프 브라우징 목록과 일치하는 위협 항목을 찾습니다. |
ListThreatLists |
---|
다운로드할 수 있는 세이프 브라우징 위협 목록을 나열합니다. |
체크섬
클라이언트의 로컬 데이터베이스의 예상 상태입니다.
필드 | |
---|---|
sha256 |
클라이언트 상태의 SHA256 해시입니다. 즉, 데이터베이스에 있는 모든 해시의 정렬된 목록입니다. |
ClientInfo
세이프 브라우징 API 요청과 연결된 클라이언트 메타데이터입니다.
필드 | |
---|---|
client_id |
세이프 브라우징 API의 클라이언트 구현을 고유하게 식별하는 클라이언트 ID입니다. |
client_version |
클라이언트 구현 버전입니다. |
CompressionType
위협 항목 세트를 압축하는 방법입니다.
열거형 | |
---|---|
COMPRESSION_TYPE_UNSPECIFIED |
알 수 없음 |
RAW |
비압축 원시 데이터입니다. |
RICE |
Rice-Golomb로 인코딩된 데이터입니다. |
FetchThreatListUpdatesRequest
Safe Browsing API 업데이트 요청을 설명합니다. 클라이언트는 단일 요청으로 여러 목록의 업데이트를 요청할 수 있습니다. 서버에 해당 목록에 대한 업데이트가 없는 경우 서버가 일부 요청에 응답하지 않을 수 있습니다. 참고: 필드 색인 2는 사용되지 않습니다. 다음: 5
필드 | |
---|---|
client |
클라이언트 메타데이터입니다. |
list_update_requests[] |
요청된 위협 목록 업데이트입니다. |
ListUpdateRequest
단일 목록 업데이트 요청입니다.
필드 | |
---|---|
threat_type |
목록에 있는 항목으로 인해 발생하는 위협 유형입니다. |
platform_type |
목록에 있는 항목으로 인해 위험에 처한 플랫폼 유형입니다. |
threat_entry_type |
목록에 있는 항목 유형입니다. |
state |
요청된 목록의 클라이언트의 현재 상태 (마지막으로 성공적으로 업데이트된 목록에서 수신된 암호화된 클라이언트 상태)입니다. |
constraints |
이 요청과 연결된 제약 조건입니다. |
제약조건
이 업데이트의 제약 조건입니다.
필드 | |
---|---|
max_update_entries |
항목 수 기준 최대 크기입니다. 업데이트에는 이 값보다 많은 항목이 포함되지 않습니다. 2**10과 2**20 사이의 2의 거듭제여야 합니다. 0인 경우 업데이트 크기 제한이 설정되지 않은 것입니다. |
max_database_entries |
클라이언트가 지정된 목록의 로컬 데이터베이스에 보유할 최대 항목 수를 설정합니다. 2**10과 2**20 사이의 2의 거듭제여야 합니다. 0인 경우 데이터베이스 크기 제한이 설정되지 않은 것입니다. |
region |
특정 지리적 위치의 목록을 요청합니다. 설정하지 않으면 서버에서 사용자의 IP 주소를 기반으로 이 값을 선택할 수 있습니다. ISO 3166-1 alpha-2 형식이 예상됩니다. |
supported_compressions[] |
클라이언트에서 지원하는 압축 유형입니다. |
language |
특정 언어의 목록을 요청합니다. ISO 639 alpha-2 형식을 예상합니다. |
device_location |
ISO 31166-1 alpha-2 지역 코드로 표현되는 고객의 실제 위치입니다. |
FetchThreatListUpdatesResponse
필드 | |
---|---|
list_update_responses[] |
클라이언트가 요청한 목록 업데이트입니다. 여기서 응답 수는 클라이언트에서 전송한 요청 수보다 적을 수 있습니다. 예를 들어 서버에 특정 목록에 대한 업데이트가 없는 경우 이러한 상황이 발생합니다. |
minimum_wait_duration |
클라이언트가 업데이트 요청을 실행하기 전에 기다려야 하는 최소 시간입니다. 이 필드가 설정되지 않은 경우 클라이언트는 원하는 대로 업데이트할 수 있습니다. |
ListUpdateResponse
개별 목록 업데이트입니다.
필드 | |
---|---|
threat_type |
데이터가 반환되는 위협 유형입니다. |
threat_entry_type |
위협의 형식입니다. |
platform_type |
데이터가 반환되는 플랫폼 유형입니다. |
response_type |
응답 유형입니다. 이는 응답이 수신될 때 클라이언트에서 조치를 취해야 함을 나타낼 수 있습니다. |
additions[] |
로컬 위협 유형 목록에 추가할 항목 집합입니다. 압축된 데이터와 원시 데이터를 조합하여 단일 응답으로 전송할 수 있도록 반복됩니다. |
removals[] |
로컬 위협 유형 목록에서 삭제할 항목 집합입니다. 실제로 이 필드는 비어 있거나 ThreatEntrySet이 정확히 하나 포함되어 있습니다. |
new_client_state |
암호화된 형식의 새 클라이언트 상태입니다. 클라이언트에 불투명합니다. |
checksum |
클라이언트 상태의 예상 SHA256 해시입니다. 즉, 제공된 업데이트를 적용한 후 데이터베이스에 있는 모든 해시의 정렬된 목록입니다. 클라이언트 상태가 예상 상태와 일치하지 않으면 클라이언트는 이 업데이트를 무시하고 나중에 다시 시도해야 합니다. |
ResponseType
클라이언트로 전송되는 응답 유형입니다.
열거형 | |
---|---|
RESPONSE_TYPE_UNSPECIFIED |
알 수 없음 |
PARTIAL_UPDATE |
부분 업데이트는 클라이언트의 기존 로컬 데이터베이스에 적용됩니다. |
FULL_UPDATE |
전체 업데이트는 클라이언트의 전체 로컬 데이터베이스를 대체합니다. 이는 클라이언트가 심각하게 오래되었거나 클라이언트가 손상되었다고 간주된다는 의미입니다. |
FindFullHashesRequest
제공된 해시 접두사와 일치하는 전체 해시를 반환하도록 요청합니다.
필드 | |
---|---|
client |
클라이언트 메타데이터입니다. |
client_states[] |
각 클라이언트의 로컬 위협 목록에 대한 현재 클라이언트 상태입니다. |
threat_info |
확인할 목록 및 해시입니다. |
api_client |
클라이언트 구현 위에 빌드된 상위 수준 API 호출자와 연결된 클라이언트 메타데이터입니다. |
FindFullHashesResponse
필드 | |
---|---|
matches[] |
요청된 접두사와 일치하는 전체 해시입니다. |
minimum_wait_duration |
클라이언트가 해시 찾기 요청을 실행하기 전에 기다려야 하는 최소 시간입니다. 이 필드가 설정되지 않은 경우 클라이언트는 원하는 대로 즉시 요청을 보낼 수 있습니다. |
negative_cache_duration |
위협 목록과 일치하지 않는 요청된 항목의 경우 응답을 캐시하는 기간입니다. |
FindThreatMatchesRequest
목록을 기준으로 항목을 확인하도록 요청합니다.
필드 | |
---|---|
client |
클라이언트 메타데이터입니다. |
threat_info |
일치 여부를 확인할 목록 및 항목입니다. |
FindThreatMatchesResponse
필드 | |
---|---|
matches[] |
위협 목록이 일치합니다. |
ListThreatListsResponse
필드 | |
---|---|
threat_lists[] |
클라이언트가 다운로드할 수 있는 목록입니다. |
PlatformType
플랫폼 유형
열거형 | |
---|---|
PLATFORM_TYPE_UNSPECIFIED |
알 수 없는 플랫폼입니다. |
WINDOWS |
Windows에 대한 위협 |
LINUX |
Linux에 대한 위협 |
ANDROID |
Android에 대한 위협 |
OSX |
OS X에 대한 위협 |
IOS |
iOS에 대한 위협 |
ANY_PLATFORM |
정의된 플랫폼 중 하나 이상에 위협이 됩니다. |
ALL_PLATFORMS |
정의된 모든 플랫폼에 위협이 됩니다. |
CHROME |
Chrome에 위협이 됩니다. |
RawHashes
특정 접두사 길이의 해시 형식의 비압축 위협 항목입니다. 해시의 크기는 4~32바이트 사이여야 합니다. 대부분은 4바이트이지만 일부 해시는 인기 URL의 해시와 충돌하는 경우 길이가 늘어납니다.
압축을 지원하지 않는 클라이언트에 ThreatEntrySet을 전송하거나 압축을 지원하는 클라이언트에 4바이트가 아닌 해시를 전송할 때 사용됩니다.
필드 | |
---|---|
prefix_size |
아래에 인코딩된 각 접두사의 바이트 수입니다. 이 필드는 4 (가장 짧은 접두사)~32 (전체 SHA256 해시) 사이의 값이 될 수 있습니다. |
raw_hashes |
바이너리 형식의 해시를 하나의 긴 문자열로 연결합니다. 해시는 사전순으로 정렬됩니다. JSON API 사용자의 경우 해시는 base64로 인코딩됩니다. |
RawIndices
로컬 목록에서 삭제할 원시 색인 집합입니다.
필드 | |
---|---|
indices[] |
사전순으로 정렬된 로컬 목록에서 삭제할 색인입니다. |
RiceDeltaEncoding
Rice-Golomb로 인코딩된 데이터입니다. 압축된 4바이트 해시 또는 압축된 삭제 색인을 전송하는 데 사용됩니다.
필드 | |
---|---|
first_value |
인코딩된 데이터의 첫 번째 항목의 오프셋 또는 단일 정수만 인코딩된 경우 해당 정수의 값입니다. 필드가 비어 있거나 누락된 경우 0으로 가정합니다. |
rice_parameter |
Golomb-Rice 매개변수로, 2~28 사이의 숫자입니다. |
num_entries |
인코딩된 데이터에서 델타 인코딩된 항목의 수입니다. 정수가 하나만 인코딩된 경우 이 값은 0이 되고 단일 값이 |
encoded_data |
Golomb-Rice 코더를 사용하여 인코딩된 인코딩된 델타입니다. |
ThreatEntry
개별 위협(예: 악성 URL 또는 해시 표현) 이 필드 중 하나만 설정해야 합니다.
필드 | |
---|---|
hash |
SHA256 해시의 최상위 4~32바이트로 구성된 해시 접두사입니다. 이 필드는 바이너리 형식입니다. JSON 요청의 경우 해시는 base64로 인코딩됩니다. |
url |
URL |
digest |
SHA256 형식의 실행 파일 다이제스트입니다. 이 API는 바이너리 및 16진수 다이제스트를 모두 지원합니다. JSON 요청의 경우 다이제스트는 base64로 인코딩됩니다. |
ThreatEntryMetadata
특정 위협 항목과 연결된 메타데이터입니다. 클라이언트는 각 위협 유형과 연결된 메타데이터 키-값 쌍을 알고 있어야 합니다.
필드 | |
---|---|
entries[] |
메타데이터 항목 |
MetadataEntry
단일 메타데이터 항목입니다.
필드 | |
---|---|
key |
메타데이터 항목 키입니다. JSON 요청의 경우 키는 base64로 인코딩됩니다. |
value |
메타데이터 항목 값입니다. JSON 요청의 경우 값은 base64로 인코딩됩니다. |
ThreatEntrySet
클라이언트의 로컬 데이터베이스에서 추가하거나 삭제해야 하는 위협 집합입니다.
필드 | |
---|---|
compression_type |
이 세트의 항목에 적용되는 압축 유형입니다. |
raw_hashes |
원시 SHA256 형식 항목입니다. |
raw_indices |
로컬 목록의 원시 삭제 색인입니다. |
rice_hashes |
Golomb-Rice 인코딩을 사용하여 SHA256 형식 항목의 인코딩된 4바이트 접두사입니다. 해시는 uint32로 변환되고 오름차순으로 정렬된 후 델타 인코딩되어 encoded_data로 저장됩니다. |
rice_indices |
Golomb-Rice 인코딩을 사용하여 사전순으로 정렬된 인코딩된 로컬 목록 색인입니다. 압축된 삭제 색인을 전송하는 데 사용됩니다. 삭제 색인 (uint32)은 오름차순으로 정렬된 후 델타 인코딩되어 encoded_data로 저장됩니다. |
ThreatEntryType
위협이 되는 항목 유형입니다. 위협 목록은 단일 유형의 항목 모음입니다.
열거형 | |
---|---|
THREAT_ENTRY_TYPE_UNSPECIFIED |
지정되지 않음. |
URL |
URL |
EXECUTABLE |
실행 파일 프로그램 |
ThreatInfo
클라이언트가 위협 목록에서 일치를 확인할 때 제출하는 하나 이상의 위협에 관한 정보입니다.
필드 | |
---|---|
threat_types[] |
확인할 위협 유형입니다. |
platform_types[] |
확인할 플랫폼 유형입니다. |
threat_entry_types[] |
확인할 항목 유형입니다. |
threat_entries[] |
확인할 위협 항목입니다. |
ThreatListDescriptor
개별 위협 목록을 설명합니다. 목록은 세 가지 매개변수(위협 유형, 위협이 타겟팅하는 플랫폼 유형, 목록의 항목 유형)로 정의됩니다.
필드 | |
---|---|
threat_type |
목록 항목에서 발생하는 위협 유형입니다. |
platform_type |
목록 항목에서 타겟팅하는 플랫폼 유형입니다. |
threat_entry_type |
목록에 포함된 항목 유형입니다. |
ThreatMatch
세이프 브라우징 위협 목록에서 위협 항목을 확인할 때 일치하는 항목입니다.
필드 | |
---|---|
threat_type |
이 위협과 일치하는 위협 유형입니다. |
platform_type |
이 위협과 일치하는 플랫폼 유형입니다. |
threat_entry_type |
이 위협과 일치하는 위협 항목 유형입니다. |
threat |
이 위협과 일치하는 위협입니다. |
threat_entry_metadata |
이 위협과 관련된 선택적 메타데이터입니다. |
cache_duration |
반환된 일치 항목의 캐시 전체 기간입니다. 클라이언트는 거짓양성을 방지하기 위해 이 기간보다 더 오래 이 응답을 캐시해서는 안 됩니다. |
ThreatType
위협 유형
열거형 | |
---|---|
THREAT_TYPE_UNSPECIFIED |
알 수 없음 |
MALWARE |
멀웨어 위협 유형입니다. |
SOCIAL_ENGINEERING |
소셜 엔지니어링 위협 유형입니다. |
UNWANTED_SOFTWARE |
원치 않는 소프트웨어 위협 유형입니다. |
POTENTIALLY_HARMFUL_APPLICATION |
잠재적으로 위험한 애플리케이션 위협 유형입니다. |