Package google.security.safebrowsing.v4

색인

SafeBrowsing

Safe Browsing API를 사용하면 클라이언트가 웹 리소스 (가장 일반적인 URL)를 Google에서 지속적으로 업데이트하는 안전하지 않은 웹 리소스 목록과 대조할 수 있습니다. Safe Browsing API (v4)에는 Update API 및 Lookup API가 포함됩니다.

Update API는 대규모 클라이언트를 위해 설계되었으며 FindFullHashes 및 FetchThreatListUpdates 메서드 를 포함합니다 . Update API를 사용하려면 클라이언트가 로컬 데이터베이스에서 다운로드된 위협 목록을 유지해야 합니다.

먼저 클라이언트는 로컬 목록과 일치시켜 특정 웹 리소스의 상태 (안전함 또는 안전하지 않음)를 결정합니다. 대부분의 경우 목록은 차단된 URL 표현식의 해시 접두사로 구성됩니다. URL을 확인하기 위해 클라이언트는 지정된 URL의 해시를 생성하고 로컬 목록에서 접두사 충돌을 확인합니다. 접두사 일치가 발견되면 클라이언트는 FindFullHashes 메서드 를 통해 일치하는 해시 접두사와 연결된 전체 해시를 가져옵니다. 그런 다음 클라이언트는 로컬 전체 해시를 반환된 전체 해시와 비교합니다. 일치하는 항목은 URL이 안전하지 않음을 나타냅니다.

둘째, 클라이언트는 FetchThreatListUpdates 메서드 를 통해 로컬 데이터베이스에 대한 업데이트를 받습니다. FetchThreatListUpdates는 클라이언트의 현재 상태를 가져와서 클라이언트가 로컬 위협 목록에 적용해야 하는 변경 사항과 함께 업데이트된 클라이언트 상태를 반환합니다.

Lookup API는 소규모 클라이언트를 위해 설계되었으며 고객이 FindThreatMatch 메서드를 통해 세이프 브라우징 위협 목록과 리소스를 직접 일치시킬 수 있습니다.

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

Safe Browsing API 요청과 관련된 클라이언트 메타데이터입니다.

입력란
client_id

string

Safe Browsing 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

2~28 사이의 숫자인 Golomb-Rice 매개변수 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 잠재적으로 위험한 애플리케이션 위협 유형입니다.