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 が安全ではないことを示します。

第 2 に、クライアントは、FetchThreatListUpdates メソッドを介してローカル・データベースの更新を取得します。このメソッドは、クライアントの現在の状態を取得し、更新後のクライアントの状態と、ローカルの脅威リストに適用すべき変更を返します。

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

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 の更新リクエストについて説明します。クライアントは、1 回のリクエストで複数のリストの更新をリクエストできます。サーバーがすべてのリクエストに応答しない可能性があります。注: フィールド インデックス 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 のべき乗でなければなりません。ゼロの場合、アップデート サイズの上限は設定されません。

max_database_entries

int32

指定されたリストについて、クライアントがローカル データベースに格納できるエントリの最大数を設定します。これは、2**10 と 2**20 の間の 2 のべき乗でなければなりません。ゼロの場合、データベース サイズの上限は設定されません。

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 つの整数のみがエンコードされている場合はゼロになり、1 つの値が 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

SHA256 形式のエントリの、エンコードされた 4 バイトの接頭辞(Golomb-Rice エンコードを使用)。ハッシュは 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 有害な可能性があるアプリケーション脅威の種類。