Web Risk APIを使ったフィッシングサイト対策
はじめに
みなさんはGoogleが提供する「Web Risk API」についてご存知でしょうか?
Web Risk APIはフィッシングサイトを判定したり提出ができるAPIで「Google Safe Browsing」という名前のサービスでよく知られています。
かつてはベータ版として一部のユーザに公開されていたのですが、現在では誰でも無料で簡単に使えるようになっています。
本記事では、Web Risk APIの利用手順を解説していきます。
GCPプロジェクトの準備
はじめにgcloudコマンドのインストールを行います。
Macの場合は以下のようにインストールすることができます。
brew install google-cloud-sdk
インストールが完了したらコマンドラインからコンソールへログインします。
gcloud auth login
以下のようなログイン画面が表示されるのでGoogleアカウントでログインしましょう
続いてブラウザからGCPのコンソールへログインしてプロジェクトの作成を行います。
画面左上のプロジェクトの選択をクリックして、「新しいプロジェクト」ボタンをクリックします。
新しいプロジェクトダイアログが表示されたら適当なプロジェクト名を入力して作成ボタンを押してください。
今回は「phishing-hunter」という名前のプロジェクトを作成しました。
プロジェクト作成後にプロジェクトIDを確認しておきましょう。
以下の例ではプロジェクトIDが「phishing-hunter-377609」となっています。
サービスアカウントの作成
プログラムにGCPアクセス権を付与するためにサービスアカウントを作成します。
はじめに以下の環境変数を設定しておいてください。
PROJECT_IDはプロジェクト作成時に確認したプロジェクトIDが入ります。
export PROJECT_ID=phishing-hunter-377609
export SA_NAME=webrisk-api
プロジェクトIDを固定します。
gcloud config set project $PROJECT_ID
サービスアカウントを作成します
gcloud iam service-accounts create ${SA_NAME} --display-name "webrisk api service account"
サービスアカウントに接続するための鍵を生成します。
以下を実行するとsa.json
という名前の鍵ファイルが生成されます。
gcloud iam service-accounts keys create sa.json --iam-account ${SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com
Submission API
サービスアカウントが準備できたら、webrisk apiをPythonから利用するために必要なライブラリをインストールします。
pip install google-cloud-webrisk
次のようなコードを記述します。
- submit.py
from google.cloud import webrisk_v1
import os
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = './sa.json'
project_id = os.environ["PROJECT_ID"]
webrisk_client = webrisk_v1.WebRiskServiceClient()
submission = webrisk_v1.Submission()
submission.uri = "https://restriction-netflix-support.com"
request = webrisk_v1.CreateSubmissionRequest()
request.parent = f"projects/{project_id}"
request.submission = submission
response = webrisk_client.create_submission(request)
print(f"Submission response: {response}")
上記のコードを実行してみましよう。
以下のように表示されたらWebrisk API経由でフィッシングサイトの提出が完了します。
$ python submit.py
Submission response: uri: "https://restriction-netflix-support.com"
Submission APIの料金
Submission APIは2023年2月時点で月に 1 ~ 100 回まで無料で実行できるそうです。
それ以上のAPI呼び出しが発生する場合にはCloud セールスチームに問い合わせが必要です。
まとめ
今回はフィッシング詐欺対策やテイクダウンを目的としたGoogle Web Risk APIの使い方について解説しました。
通常は以下のフォームから手動でフィッシングサイトを報告することができますが、クローラー等でフィッシングサイトの収集を自動化している場合はWeb Risk APIを使って自動的に報告することができるようになりました。
この記事を読んで、少しでもお役に立てたなら幸いです。何か質問やご意見がありましたら、お気軽にご連絡ください。
参考
Discussion