Package google.security.safebrowsing.v4

색인

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

rpc FetchThreatListUpdates(FetchThreatListUpdatesRequest) returns (FetchThreatListUpdatesResponse)

최신 위협 목록 업데이트를 가져옵니다. 클라이언트는 한 번에 여러 목록의 업데이트를 요청할 수 있습니다.

FindFullHashes

rpc FindFullHashes(FindFullHashesRequest) returns (FindFullHashesResponse)

요청된 해시 접두사와 일치하는 전체 해시를 찾습니다.

FindThreatMatches

rpc FindThreatMatches(FindThreatMatchesRequest) returns (FindThreatMatchesResponse)

세이프 브라우징 목록과 일치하는 위협 항목을 찾습니다.

ListThreatLists

rpc ListThreatLists(Empty) returns (ListThreatListsResponse)

다운로드할 수 있는 세이프 브라우징 위협 목록을 나열합니다.

체크섬

클라이언트의 로컬 데이터베이스의 예상 상태입니다.

필드
sha256

bytes

클라이언트 상태의 SHA256 해시입니다. 즉, 데이터베이스에 있는 모든 해시의 정렬된 목록입니다.

ClientInfo

세이프 브라우징 API 요청과 연결된 클라이언트 메타데이터입니다.

필드
client_id

string

세이프 브라우징 API의 클라이언트 구현을 고유하게 식별하는 클라이언트 ID입니다.

client_version

string

클라이언트 구현 버전입니다.

CompressionType

위협 항목 세트를 압축하는 방법입니다.

열거형
COMPRESSION_TYPE_UNSPECIFIED 알 수 없음
RAW 비압축 원시 데이터입니다.
RICE Rice-Golomb로 인코딩된 데이터입니다.

FetchThreatListUpdatesRequest

Safe Browsing API 업데이트 요청을 설명합니다. 클라이언트는 단일 요청으로 여러 목록의 업데이트를 요청할 수 있습니다. 서버에 해당 목록에 대한 업데이트가 없는 경우 서버가 일부 요청에 응답하지 않을 수 있습니다. 참고: 필드 색인 2는 사용되지 않습니다. 다음: 5

필드
client

ClientInfo

클라이언트 메타데이터입니다.

list_update_requests[]

ListUpdateRequest

요청된 위협 목록 업데이트입니다.

ListUpdateRequest

단일 목록 업데이트 요청입니다.

필드
threat_type

ThreatType

목록에 있는 항목으로 인해 발생하는 위협 유형입니다.

platform_type

PlatformType

목록에 있는 항목으로 인해 위험에 처한 플랫폼 유형입니다.

threat_entry_type

ThreatEntryType

목록에 있는 항목 유형입니다.

state

bytes

요청된 목록의 클라이언트의 현재 상태 (마지막으로 성공적으로 업데이트된 목록에서 수신된 암호화된 클라이언트 상태)입니다.

constraints

Constraints

이 요청과 연결된 제약 조건입니다.

제약조건

이 업데이트의 제약 조건입니다.

필드
max_update_entries

int32

항목 수 기준 최대 크기입니다. 업데이트에는 이 값보다 많은 항목이 포함되지 않습니다. 2**10과 2**20 사이의 2의 거듭제여야 합니다. 0인 경우 업데이트 크기 제한이 설정되지 않은 것입니다.

max_database_entries

int32

클라이언트가 지정된 목록의 로컬 데이터베이스에 보유할 최대 항목 수를 설정합니다. 2**10과 2**20 사이의 2의 거듭제여야 합니다. 0인 경우 데이터베이스 크기 제한이 설정되지 않은 것입니다.

region

string

특정 지리적 위치의 목록을 요청합니다. 설정하지 않으면 서버에서 사용자의 IP 주소를 기반으로 이 값을 선택할 수 있습니다. ISO 3166-1 alpha-2 형식이 예상됩니다.

supported_compressions[]

CompressionType

클라이언트에서 지원하는 압축 유형입니다.

language

string

특정 언어의 목록을 요청합니다. ISO 639 alpha-2 형식을 예상합니다.

device_location

string

ISO 31166-1 alpha-2 지역 코드로 표현되는 고객의 실제 위치입니다.

FetchThreatListUpdatesResponse

필드
list_update_responses[]

ListUpdateResponse

클라이언트가 요청한 목록 업데이트입니다. 여기서 응답 수는 클라이언트에서 전송한 요청 수보다 적을 수 있습니다. 예를 들어 서버에 특정 목록에 대한 업데이트가 없는 경우 이러한 상황이 발생합니다.

minimum_wait_duration

Duration

클라이언트가 업데이트 요청을 실행하기 전에 기다려야 하는 최소 시간입니다. 이 필드가 설정되지 않은 경우 클라이언트는 원하는 대로 업데이트할 수 있습니다.

ListUpdateResponse

개별 목록 업데이트입니다.

필드
threat_type

ThreatType

데이터가 반환되는 위협 유형입니다.

threat_entry_type

ThreatEntryType

위협의 형식입니다.

platform_type

PlatformType

데이터가 반환되는 플랫폼 유형입니다.

response_type

ResponseType

응답 유형입니다. 이는 응답이 수신될 때 클라이언트에서 조치를 취해야 함을 나타낼 수 있습니다.

additions[]

ThreatEntrySet

로컬 위협 유형 목록에 추가할 항목 집합입니다. 압축된 데이터와 원시 데이터를 조합하여 단일 응답으로 전송할 수 있도록 반복됩니다.

removals[]

ThreatEntrySet

로컬 위협 유형 목록에서 삭제할 항목 집합입니다. 실제로 이 필드는 비어 있거나 ThreatEntrySet이 정확히 하나 포함되어 있습니다.

new_client_state

bytes

암호화된 형식의 새 클라이언트 상태입니다. 클라이언트에 불투명합니다.

checksum

Checksum

클라이언트 상태의 예상 SHA256 해시입니다. 즉, 제공된 업데이트를 적용한 후 데이터베이스에 있는 모든 해시의 정렬된 목록입니다. 클라이언트 상태가 예상 상태와 일치하지 않으면 클라이언트는 이 업데이트를 무시하고 나중에 다시 시도해야 합니다.

ResponseType

클라이언트로 전송되는 응답 유형입니다.

열거형
RESPONSE_TYPE_UNSPECIFIED 알 수 없음
PARTIAL_UPDATE 부분 업데이트는 클라이언트의 기존 로컬 데이터베이스에 적용됩니다.
FULL_UPDATE 전체 업데이트는 클라이언트의 전체 로컬 데이터베이스를 대체합니다. 이는 클라이언트가 심각하게 오래되었거나 클라이언트가 손상되었다고 간주된다는 의미입니다.

FindFullHashesRequest

제공된 해시 접두사와 일치하는 전체 해시를 반환하도록 요청합니다.

필드
client

ClientInfo

클라이언트 메타데이터입니다.

client_states[]

bytes

각 클라이언트의 로컬 위협 목록에 대한 현재 클라이언트 상태입니다.

threat_info

ThreatInfo

확인할 목록 및 해시입니다.

api_client

ClientInfo

클라이언트 구현 위에 빌드된 상위 수준 API 호출자와 연결된 클라이언트 메타데이터입니다.

FindFullHashesResponse

필드
matches[]

ThreatMatch

요청된 접두사와 일치하는 전체 해시입니다.

minimum_wait_duration

Duration

클라이언트가 해시 찾기 요청을 실행하기 전에 기다려야 하는 최소 시간입니다. 이 필드가 설정되지 않은 경우 클라이언트는 원하는 대로 즉시 요청을 보낼 수 있습니다.

negative_cache_duration

Duration

위협 목록과 일치하지 않는 요청된 항목의 경우 응답을 캐시하는 기간입니다.

FindThreatMatchesRequest

목록을 기준으로 항목을 확인하도록 요청합니다.

필드
client

ClientInfo

클라이언트 메타데이터입니다.

threat_info

ThreatInfo

일치 여부를 확인할 목록 및 항목입니다.

FindThreatMatchesResponse

필드
matches[]

ThreatMatch

위협 목록이 일치합니다.

ListThreatListsResponse

필드
threat_lists[]

ThreatListDescriptor

클라이언트가 다운로드할 수 있는 목록입니다.

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

int32

아래에 인코딩된 각 접두사의 바이트 수입니다. 이 필드는 4 (가장 짧은 접두사)~32 (전체 SHA256 해시) 사이의 값이 될 수 있습니다.

raw_hashes

bytes

바이너리 형식의 해시를 하나의 긴 문자열로 연결합니다. 해시는 사전순으로 정렬됩니다. JSON API 사용자의 경우 해시는 base64로 인코딩됩니다.

RawIndices

로컬 목록에서 삭제할 원시 색인 집합입니다.

필드
indices[]

int32

사전순으로 정렬된 로컬 목록에서 삭제할 색인입니다.

RiceDeltaEncoding

Rice-Golomb로 인코딩된 데이터입니다. 압축된 4바이트 해시 또는 압축된 삭제 색인을 전송하는 데 사용됩니다.

필드
first_value

int64

인코딩된 데이터의 첫 번째 항목의 오프셋 또는 단일 정수만 인코딩된 경우 해당 정수의 값입니다. 필드가 비어 있거나 누락된 경우 0으로 가정합니다.

rice_parameter

int32

Golomb-Rice 매개변수로, 2~28 사이의 숫자입니다. num_entries가 0이면 이 필드가 누락됩니다 (즉, 0).

num_entries

int32

인코딩된 데이터에서 델타 인코딩된 항목의 수입니다. 정수가 하나만 인코딩된 경우 이 값은 0이 되고 단일 값이 first_value에 저장됩니다.

encoded_data

bytes

Golomb-Rice 코더를 사용하여 인코딩된 인코딩된 델타입니다.

ThreatEntry

개별 위협(예: 악성 URL 또는 해시 표현) 이 필드 중 하나만 설정해야 합니다.

필드
hash

bytes

SHA256 해시의 최상위 4~32바이트로 구성된 해시 접두사입니다. 이 필드는 바이너리 형식입니다. JSON 요청의 경우 해시는 base64로 인코딩됩니다.

url

string

URL

digest

bytes

SHA256 형식의 실행 파일 다이제스트입니다. 이 API는 바이너리 및 16진수 다이제스트를 모두 지원합니다. JSON 요청의 경우 다이제스트는 base64로 인코딩됩니다.

ThreatEntryMetadata

특정 위협 항목과 연결된 메타데이터입니다. 클라이언트는 각 위협 유형과 연결된 메타데이터 키-값 쌍을 알고 있어야 합니다.

필드
entries[]

MetadataEntry

메타데이터 항목

MetadataEntry

단일 메타데이터 항목입니다.

필드
key

bytes

메타데이터 항목 키입니다. JSON 요청의 경우 키는 base64로 인코딩됩니다.

value

bytes

메타데이터 항목 값입니다. JSON 요청의 경우 값은 base64로 인코딩됩니다.

ThreatEntrySet

클라이언트의 로컬 데이터베이스에서 추가하거나 삭제해야 하는 위협 집합입니다.

필드
compression_type

CompressionType

이 세트의 항목에 적용되는 압축 유형입니다.

raw_hashes

RawHashes

원시 SHA256 형식 항목입니다.

raw_indices

RawIndices

로컬 목록의 원시 삭제 색인입니다.

rice_hashes

RiceDeltaEncoding

Golomb-Rice 인코딩을 사용하여 SHA256 형식 항목의 인코딩된 4바이트 접두사입니다. 해시는 uint32로 변환되고 오름차순으로 정렬된 후 델타 인코딩되어 encoded_data로 저장됩니다.

rice_indices

RiceDeltaEncoding

Golomb-Rice 인코딩을 사용하여 사전순으로 정렬된 인코딩된 로컬 목록 색인입니다. 압축된 삭제 색인을 전송하는 데 사용됩니다. 삭제 색인 (uint32)은 오름차순으로 정렬된 후 델타 인코딩되어 encoded_data로 저장됩니다.

ThreatEntryType

위협이 되는 항목 유형입니다. 위협 목록은 단일 유형의 항목 모음입니다.

열거형
THREAT_ENTRY_TYPE_UNSPECIFIED 지정되지 않음.
URL URL
EXECUTABLE 실행 파일 프로그램

ThreatInfo

클라이언트가 위협 목록에서 일치를 확인할 때 제출하는 하나 이상의 위협에 관한 정보입니다.

필드
threat_types[]

ThreatType

확인할 위협 유형입니다.

platform_types[]

PlatformType

확인할 플랫폼 유형입니다.

threat_entry_types[]

ThreatEntryType

확인할 항목 유형입니다.

threat_entries[]

ThreatEntry

확인할 위협 항목입니다.

ThreatListDescriptor

개별 위협 목록을 설명합니다. 목록은 세 가지 매개변수(위협 유형, 위협이 타겟팅하는 플랫폼 유형, 목록의 항목 유형)로 정의됩니다.

필드
threat_type

ThreatType

목록 항목에서 발생하는 위협 유형입니다.

platform_type

PlatformType

목록 항목에서 타겟팅하는 플랫폼 유형입니다.

threat_entry_type

ThreatEntryType

목록에 포함된 항목 유형입니다.

ThreatMatch

세이프 브라우징 위협 목록에서 위협 항목을 확인할 때 일치하는 항목입니다.

필드
threat_type

ThreatType

이 위협과 일치하는 위협 유형입니다.

platform_type

PlatformType

이 위협과 일치하는 플랫폼 유형입니다.

threat_entry_type

ThreatEntryType

이 위협과 일치하는 위협 항목 유형입니다.

threat

ThreatEntry

이 위협과 일치하는 위협입니다.

threat_entry_metadata

ThreatEntryMetadata

이 위협과 관련된 선택적 메타데이터입니다.

cache_duration

Duration

반환된 일치 항목의 캐시 전체 기간입니다. 클라이언트는 거짓양성을 방지하기 위해 이 기간보다 더 오래 이 응답을 캐시해서는 안 됩니다.

ThreatType

위협 유형

열거형
THREAT_TYPE_UNSPECIFIED 알 수 없음
MALWARE 멀웨어 위협 유형입니다.
SOCIAL_ENGINEERING 소셜 엔지니어링 위협 유형입니다.
UNWANTED_SOFTWARE 원치 않는 소프트웨어 위협 유형입니다.
POTENTIALLY_HARMFUL_APPLICATION 잠재적으로 위험한 애플리케이션 위협 유형입니다.