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 は安全でないと判断されます。

2 つ目は、クライアントが FetchThreatListUpdates メソッドを介してローカル データベースの更新を取得します。このメソッドは、クライアントの現在の状態を取り、更新されたクライアントの状態と、クライアントがローカル脅威リストに適用する必要がある変更を返します。

Lookup API は小規模なクライアント向けに設計されており、FindThreatMatches メソッドを使用して、リソースを Safe Browsing の脅威リストと直接照合できます。

Update API または Lookup API を使用するクライアントは、ListThreatLists メソッドを使用して、ダウンロード可能な Safe Browsing 脅威リストのリストを取得できます。

{-- 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

セーフ ブラウジング API の更新リクエストについて説明します。クライアントは、1 つのリクエストで複数のリストに対する更新をリクエストできます。サーバーにそのリストの更新がない場合は、サーバーがすべてのリクエストに応答しないことがあります。注: フィールド番号 2 は使用されません。NEXT: 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

ローカル脅威タイプのリストに追加するエントリのセット。圧縮データと元データを組み合わせて 1 つのレスポンスで送信できるように、繰り返します。

removals[]

ThreatEntrySet

ローカル脅威タイプのリストから削除するエントリのセット。実際には、このフィールドは空であるか、ThreatEntrySet が 1 つだけ含まれています。

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 定義されたプラットフォームの少なくとも 1 つに脅威が及ぶ。
ALL_PLATFORMS 定義されたすべてのプラットフォームに脅威が及ぶ。
CHROME Chrome に対する脅威。

RawHashes

特定のプレフィックス長のハッシュ形式の非圧縮脅威エントリ。ハッシュのサイズは 4 ~ 32 バイトです。ほとんどは 4 バイトですが、人気のある URL のハッシュと衝突する場合は、ハッシュが長くなることがあります。

圧縮をサポートしていないクライアントに ThreatEntrySet を送信する場合や、圧縮をサポートしているクライアントに 4 バイト以外のハッシュを送信する場合に使用されます。

フィールド
prefix_size

int32

以下でエンコードされる各プレフィックスのバイト数。このフィールドの値は、4(最短のプレフィックス)から 32(完全な SHA256 ハッシュ)の範囲で指定できます。

raw_hashes

bytes

ハッシュをバイナリ形式で連結して 1 つの長い文字列にします。ハッシュは辞書順に並べ替えられます。JSON API ユーザーの場合、ハッシュは base64 でエンコードされます。

RawIndices

ローカルリストから削除する未加工インデックスのセット。

フィールド
indices[]

int32

辞書順に並べ替えられたローカルリストから削除するインデックス。

RiceDeltaEncoding

Rice-Golomb でエンコードされたデータ。圧縮された 4 バイトのハッシュまたは圧縮された削除インデックスを送信するために使用されます。

フィールド
first_value

int64

エンコードされたデータ内の最初のエントリのオフセット。または、1 つの整数のみがエンコードされている場合は、その整数の値。フィールドが空であるか、指定されていない場合はゼロと見なします。

rice_parameter

int32

Golomb-Rice パラメータ(2 ~ 28 の整数)。num_entries がゼロの場合、このフィールドは存在しません(つまりゼロです)。

num_entries

int32

エンコードされたデータでデルタ エンコードされるエントリの数。1 つの整数のみがエンコードされている場合、これは 0 になり、その値は first_value に保存されます。

encoded_data

bytes

Golomb-Rice コーダを使用してエンコードされたエンコード済みデルタ。

ThreatEntry

個々の脅威(悪意のある URL やそのハッシュ表現など)。これらのフィールドの 1 つのみを設定する必要があります。

フィールド
hash

bytes

SHA256 ハッシュの最上位 4 ~ 32 バイトで構成されるハッシュ プレフィックス。このフィールドはバイナリ形式です。JSON リクエストの場合、ハッシュは base64 でエンコードされます。

url

string

URL。

digest

bytes

実行可能ファイルの SHA256 形式のダイジェスト。この API は、バイナリと 16 進数ダイジェストの両方をサポートしています。JSON リクエストの場合、ダイジェストは base64 でエンコードされます。

ThreatEntryMetadata

特定の脅威エントリに関連付けられたメタデータ。クライアントは、各脅威タイプに関連付けられているメタデータの Key-Value ペアを把握している必要があります。

フィールド
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

脅威リストとの一致を確認する際にクライアントが送信する 1 つ以上の脅威に関する情報。

フィールド
threat_types[]

ThreatType

チェックする脅威の種類。

platform_types[]

PlatformType

確認するプラットフォームのタイプ。

threat_entry_types[]

ThreatEntryType

確認するエントリタイプ。

threat_entries[]

ThreatEntry

確認する脅威エントリ。

ThreatListDescriptor

個々の脅威リストを記述します。リストは、脅威の種類、脅威のターゲットとなるプラットフォームの種類、リスト内のエントリの種類の 3 つのパラメータで定義されます。

フィールド
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 有害な可能性があるアプリの脅威の種類。