Web Risk を使用して悪意のある URL を検出する
始める前に
Google Cloud プロジェクトを作成するGoogle Cloud プロジェクトを作成する方法を確認します。
Make sure that billing is enabled for your Google Cloud project.
認証を設定し、Web Risk API を有効にする
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Web Risk API:
gcloud services enable webrisk.googleapis.com
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Web Risk API:
gcloud services enable webrisk.googleapis.com
API の使用
Web Risk API を使用するにあたり、Web Risk のサービスレベル契約と使用量上限をよく理解しておいてください。
Web Risk の使用を開始するには、次のトピックをご覧ください。
どの API が適していますか?Lookup ですかまたは Update ですか?
Web Risk には、統合先にできる 2 つの API が用意されています(Lookup API と Update API)。どちらの API も、同じ情報(URL が悪意があると判断されたかどうか)を提供します。使用するのが簡単な方は Lookup API です。Lookup API を使用すると、チェック対象の URL ごとに Web Risk をクエリすることになります。
Update API はより複雑ですが、望ましいプロパティがあります。Update API を使用して、ローカル データベースが維持します。このデータベースでは、URL が悪意のあるものかどうかを確認できます。このデータベースは Bloom フィルタとして機能します。つまり、偽陽性(URL は悪意があると判定されたが、実際には悪意がない)の可能性はあるものの、偽陰性(URL は悪意がないと判定されたが、実際には悪意がある)の可能性はありません。そのため、Web Risk サーバーへの問い合わせはまれで、一致を確認し、偽陽性の曖昧さを解消するためにのみ問い合わせが行われます。ほとんどの場合、Update API を使用して URL をチェックする際に、Web Risk サーバーに問い合わせる必要はありません。ローカル データベースを更新する場合や、URL が有害なかどうかを確認する場合にのみ、Web Risk サーバーに問い合わせる必要があります。
まとめると、すばやく簡単に設定を済ませたいユーザーには Lookup API が向いています。低レイテンシの URL チェックが必要なユーザーには Update API が向いています。
適切なクライアント機能を選択する
Update API を使用する場合は、仕様全体を実装する必要がない可能性があります。広く分散しているクライアント向けに設計された一部の機能(ウェブブラウザなど)は、多くの企業のケースに合わせて過度に最適化されています。
統合を容易にするために無視できる機能がいくつかあります。
こちらに Web Risk 統合ソリューションを複雑さの順に示します
- Lookup API を使用する
- 基本的な Update API クライアント
- 差分を使用する Update API クライアント
- RICE 圧縮差分を使用する Update API クライアント
Lookup API の使用
Lookup API を使用するのが最も簡単です。不審な URL がある場合は、その URL を指定して Lookup API を呼び出し、判定結果を確認します。URL の正規化とフォーマットは、Web Risk サーバーによって処理されます。このソリューションは、平均レイテンシが要件を超えない限り、ほとんどのクライアントに有効です。
基本的な Update API クライアント
Update API では、クエリの前にローカル データベースと正規化された URL を管理する必要があるため、複雑度が高まります。
Web Risk との一般的なクライアント統合では、クライアントはデータベースの差分を適用して最新の状態を維持します。差分アプリケーション ロジックを正しく実装するには時間がかかることがあります。そのため、最も簡単なケースでは、クライアントは差分を無視し、サイクルごとに Web Risk から完全に新しいデータベースをリクエストすることをおすすめします。このデータベースは、効率的なクエリのために引き続きメモリ内に保存されます。データベースの完全なリセットをリクエストするには、threatLists.computeDiff
リクエストのversionToken
フィールドを空のままにします。このソリューションは、帯域幅またはデータベースの同期レイテンシが要件を超えない限り、クライアントに有効です。
Update API を使用して差分更新をリクエストする
このソリューションには、差分ロジックをローカル データベースに適用するという複雑な動作が追加されています。詳細については、データベースの差分をご覧ください。差分を使用する場合は、サイクルごとに新しいデータベースをリクエストする場合と比較すると、複雑な動作と引き換えに帯域幅が減少します。データベース全体の更新は数 MB 程度になる場合もあります。ほとんどの企業クライアントでは、このソリューションで十分です。
Update API を使用し、RICE でエンコードされた差分更新をリクエストする
このソリューションは、実現できる最も効率的なクライアント統合です。RICE エンコードを使用すると、DIFF サイズを圧縮し、更新の帯域幅を大幅に減らすことができます。このソリューションは、帯域幅の制約が厳しいお客様を対象としています。関連する例としては、Web Risk クエリがスマートフォンのアプリに組み込まれている場合が挙げられます。このようなアプリのユーザーは、スマートフォンでデータベース データを更新する必要がある場合は、ほぼ例外なく、帯域幅の少ないソリューションの方が望ましくなります。 詳細については、圧縮をご覧ください。