Anti-Bot Service をさわってみました - Protection 基本編

作成日:2019/12/12この記事は最終更新日から2年以上が経過しています。

Anti-Bot Serviceの紹介

本記事では、Alibaba Cloud セキュリティプロダクトサービスである Anti-Bot Service についてをご紹介します。

Alibaba Cloud には意外と多くのセキュリティ関連のプロダクトがある事をご存知でしょうか?
以下の図はザックリ2019年12月時点での一覧になります。

img

今回は「名前だけで何が出来るかわからないシリーズ」の中から偶々検証する機会のあった Anti-Bot Service を簡単にご紹介させて頂きたいと思います。

img

Anti-Bot Service とは?

名前の通りBot に対抗するサービスです。
ではBot って何だ?という事になりますが大まかには下記の様な定義になるのかなと思います。

Webボットあるいは単にボットとも呼ぶ。一般に単純な繰り返しのタスクをこなし、そのようなタスクに関しては人間が手でやるよりも高速である。ボットは主にクローラとして使われることが多く、人間の何倍もの速さでWebページを自動的に集め、その内容(情報)を分析して分類する。

https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%83%9C%E3%83%83%E3%83%88

Anti-Bot Service はアリババグループの各種サービス(淘宝(タオバオ)、 天猫(Tmall)、支付宝(Alipay)など)での経験をベースに作られているとのことなので、実際に中国でクローラー悪意のあるボットプログラムからユーザーのサイトやアプリを守るために蓄積されたナレッジや仕組みを利用できるサービスという事になります。

https://www.alibabacloud.com/products/antibot

Anti-Bot Service の機能

Anti-Bot Service はAlibaba Cloud あるあるで Mainland China(中国本土向け)International(中国本土以外向け) で設定画面や価格が異なっています。
今回はInternational(中国本土以外向け) の検証を行いましたのでソチラの内容での記事となります。

img

以下購入画面のサンプル

img

サービス購入後に一番最初に行うことはドメインの紐付けです。

⚠️ デフォルトの Anti-Bot Service で保護できるのは1つのTLDと最大9つのサブドメインまたはワイルドカードドメインです。 それ以上の保護には追加オプションが必要になります。

ちなみに Anti-Bot Service でSSLのオフロードをすることも可能ですし、HTTPで待ち受けることも可能です。

※SSL証明書は別途用意する必要があります。

img

CNAME が払い出されますのでドメインを管理する DNS にてCNAME の設定を行います。
これは特に Alibaba Cloud の DNS サービスである必要はありません。 問題がなければ DNS Resolution StatusNormal となっているはずです。

img

Anti-Bot Service は機能として大きく分けて ProtectionReport の2種類の機能を提供します。
今回の記事では Protection の基本機能の部分をご紹介いたします。

Protection

Protection の機能としては以下の様になっています。
オプション機能に関してはそれぞれ追加費用が必要になります、詳しくは後ほど説明します。

※`App Protection` と `Intelligent Algorithm` は今回未検証の機能です、どこかで改めて紹介できればと思います。基本機能
  • Blacklist and Whitelist
  • Access Control List
  • Rate Limiting
オプション機能(本記事では対象外)
  • Bot Intelligence ( Allowed Crawlers / Threat Intelligence )
  • App Protection
  • Intelligent Algorithm

img

Anti-Bot は基本的にWebサイトやサービスを守るサービスです、ではどの様に守っているのかと言うとWAFやCDNなどの様にWebサイトやサービスの前に Anti-Bot Service を配置する様なイメージになります。

img

この様な構成なので保護対象となるWebサイトやサービスは Alibaba Cloud 上で公開されている必要性はありません。
他のクラウドでもオンプレでもオリジンサイトがパブリックに公開されていれば Anti-Bot Service での保護の対象とすることが可能です。

また、Anti-Bot Service と CDN を同時に使用すると言う構成も可能です。

https://www.alibabacloud.com/cloud-tech/doc-detail/100969.htm

基本機能

基本機能の3つはWAFの様な設定をしていく機能になります。

Blacklist and Whitelist

下記の様な画面で設定します。
Blacklist と Whitelist それぞれ最大で200個のIPアドレス又はIPセグメントを指定できます。
複数指定する場合は1.2.3.4 , 5.6.7.8/24の様にカンマ区切りで入力します。

ドメインでの指定はNGです。

img

Access Control List

Access Control List はルールとマッチしたリクエストの内容に対するアクションを定義します。

ルールの作り方はシンプルで Filter FieldFilter PatternOperator の条件と一致した場合に Rule Action を実行します。

Filter Fieldの項目は以下になります。

  • URL
  • IP
  • Referer
  • User-Agent
  • Params
  • Cookie
  • Content-Type
  • Content-Length
  • X-Forwarded-For
  • Post-Body
  • Http-Method
  • Header

img

重要な Rule Action は以下の4つになります。

  • Block
  • Allow
  • Monitor
  • Slider Captcha

img

今回は実際に防御系の動作をする BlockSlider Captcha の動作を少し説明します。

以下の図は Rule ID 68032/xxxxxxx/index.php/settings というルールに該当したので Slider Captcha が表示されています。
実際に人が操作する場合はブラウザ上で表示されるスライダーを操作して先に進むことが出来ますが、単純なBotやクローラーの場合は先に進むことが出来ずここでブロックされることになります。

img

以下の図は Rule ID 68078/xxxxxxx//index.php/apps/calendar というルールに該当したので Block が表示されています。
今回の場合特定のURLに対してブロック動作を定義したのでブラウザでもブロック画面が表示されていますが、User-AgentHeaderなどを上手く使ってブラウザではない場合にブロックするのが実際の利用シーンかと思います。

img

Rate Limiting

Rate Limiting は特定のURLへの単位時間あたりのアクセス数などから悪意のあるBotを検出するために使用します。

Botやクローラーは実際の人間がWebを見る動きとは異なり、高速で何度もアクセスを行うので Rate Limiting を使って人間と異なる動きをするbotを検出するために使用します。

Access Control List との相違点としては Rule Action から Allow がなくなり JavaScript Validation が追加されています。

img

img

Rule ID 1276 のBlockルールに該当した場合、 5秒間に2回、同一のIPからrate-testというURLへアクセスした場合にBlockが適用されます。
Access Control List の時の405とは異なり一時的にアクセス自体が遮断される様な動きになります。

img

JavaScript Validation はルールに該当した場合、Redirect と認証処理を行うJavaScriptファイルがブラウザ、又はbotに渡されます。
ブラウザであれば一瞬遷移したなと言うレベルで上記が実施され気づかずに通過できますが、一般的なBotやクローラーは渡されたJavaScriptファイルを処理できずにブロックされると言う仕組みになります。

試しに Chrome のデベロッパーツールなどを起動した状態でJavaScript Validationのルールに該当したアクセスを行うと以下の様に謎のJavaScriptが間に差し込まれていることがわかります。

※ちゃんとデベロッパーツールを閉じると正常にページにアクセスできます。

img

Curl などでアクセスすると謎の結果が返ってきます。
botやクローラーの場合はこの様な結果が返ってきて、正常な画面へのアクセスを防ぐ仕組みになっています。

img

おわりに

今回はProtection 基本編ということでココまでの内容になります。
なかなか判りにくい Anti-Bot Service の理解の一助になれば幸いです。

スライドキャプチャやブロック機能をWebサイトの改修なしに 差し込むことが出来るのが Anti-Bot Service のポイントですね😃

松田 悦洋
この記事を書いた人
松田 悦洋
Github Icon
インフラからアプリまでのシステム基盤のアーキテクトを経てクラウドのアーキテクトへ、AWS、Azure、Cloudflare などのサービスやオープンソース関連も嗜みます。2019年1月にソフトバンクへ入社、2020年より Alibaba Cloud MVP。
Close

Alibaba Cloudを始めてみましょう

ソフトバンクは、Alibaba Cloudのアカウント開設から、サービス展開までをお手伝いします。
Hatena
このページは参考になりましたか?