Rate Limitingとは?|Rate Limitingとボット

Rate Limitingは、Webプロパティを過度に使用または悪用しているユーザー、ボット、またはアプリケーションをブロックします。Rate Limitingは、特定の種類のボット攻撃を阻止できます。

Share facebook icon linkedin icon twitter icon email icon

Rate Limiting

学習目的

この記事を読み終えると、以下のことができます。

  • Rate Limitingの目的を理解する
  • Rate Limitingの仕組みを学ぶ
  • Rate Limitingの実用的なアプリケーション例を学ぶ
  • Rate Limitingと他の種類のボット管理の違いを説明する

Rate Limitingとは?

Rate Limitingは、ネットワークトラフィックを制限するための戦略です。特定の時間枠内で誰かがアクションを繰り返すことができる頻度(たとえば、アカウントへのログイン試行)に上限を設けます。Rate Limitingは、特定の種類の悪意のあるボットの活動を阻止する助けになります。また、Webサーバーへの負担を軽減できます。しかし、Rate Limitingは管理ボットの活動をするための完全なソリューションではありません。

Rate Limitingによりどのようなボット攻撃が阻止されるのか?

Rate Limitingは、悪意のあるボットがWebサイトまたはアプリケーションに悪影響を及ぼすのを防ぐためによく使用されます。Rate Limitingが軽減に役立つボット攻撃には、次ようなものがあります。

Rate Limitingは、APIの過剰使用からも保護します。APIの使用は、必ずしも悪意のあるものではないか、ボットのアクティビティによるものではありませんが、それでも防止することは重要です。

Rate Limitingの仕組みは?

Rate Limitingは、Webサーバー自体で実行されるのではなく、アプリケーション内で実行されます。通常、Rate Limitingは、リクエストの送信元であるIPアドレスの追跡と、各リクエスト間の経過時間の追跡に基づいています。 IPアドレスは、アプリケーションが誰または何が要求を行っているかを識別する主な方法です。

Rate Limitingソリューションは、各IPアドレスからの各要求の間の時間を測定し、さらに指定された時間枠内の要求の数も測定します。指定された時間枠内に単一のIPからの要求が多すぎる場合、Rate Limitingソリューションは一定時間、当該IPアドレスの要求に応答しません。

基本的に、レート制限されたアプリケーションは、高速の要求を行っている一意のユーザーに「ねえ、ちょっとゆっくりして」と言います。これは、道路の速度制限を超えた運転手を停止させる警察官や、子供にそんなに短い時間にそんなにたくさんキャンディを食べないように言う親に匹敵します。

IPアドレスとは?

IPアドレスは、インターネットに接続するデバイスに割り当てられた一意の数字の(またはIPv6では英数字の)識別子です。すべてのデバイスは、オンラインである限り独自のIPアドレスを持ち、物理的な住所や電話番号のように、これによってデバイスはメッセージを送受信できます。従来の(IPv4)アドレスは次のような形式です:198.41.129.1

ユーザーデバイスの場合、IPアドレスは通常永続的ではありません。これはIPv4の場合利用者全員に十分なIPアドレスがないためです。代わりに、ユーザーのインターネットサービスプロバイダー(ISP)は、デバイスがインターネットに接続するときにアドレスを動的に割り当てます。

Rate Limitingソリューションは、どのデバイスが過度のリクエストを行っており、一時的にブロックする必要があるかを判断するためのベース根拠としてIPアドレスを使用する場合があります。

ユーザーログインにおいてRate Limitingはどのように機能するか?

ユーザーは、短時間で何度もログインに失敗すると、アカウントからロックアウトされる場合があります。これは、WebサイトにログインRate Limitingが設定されている場合に発生します。

この予防措置は、自分のパスワードを忘れてしまったユーザーをイライラさせるためではなくブルートフォース攻撃をブロックするためのものです。ブルートフォース攻撃では、ボットが数千個のパスワードを試すことで正しいものを推測して、アカウントに侵入します。ボットが1時間に3回または4回しかログインできない場合、そのような攻撃は統計的に成功する可能性は低いです。

ログインページのRate Limitingは、ログインしようとしているユーザーのIPアドレスまたはユーザーのユーザー名に応じて適用できます。理想的には2つを組み合わせて使用するのがよく、その理由は以下の通りです。

  • Rate LimitingがIPアドレスによってのみ適用される場合、ブルートフォース攻撃者は、複数のIPアドレスからログインを試みる(おそらくボットネットを使用する)ことによりこれを回避できます。
  • ユーザー名のみで行う場合、既知のユーザー名のリストを持っている攻撃者は、それらのユーザー名で一般的に使用されるさまざまなパスワードを試し、少なくとも2,3個のアカウントに、すべて同じIPアドレスから侵入できる可能性があります。

これらのブルートフォース攻撃を防止するにはRate Limitingが必要であるため、パスワードを思い出せないユーザーは悪意のあるボットとともにRate Limitingの対象になる可能性があります。ユーザーには「ログイン試行が上限を超えた」というようなメッセージが表示され、指定された時間内に再試行するように求められるか、アカウントから完全にロックアウトされることを通知されます。

Rate LimitingはAPIでどのように機能するか?

API、アプリケーションプログラミングインターフェイスは、プログラムから機能を要求する方法です。APIはほとんどのユーザーには見えませんが、アプリケーションが適切に機能するためには非常に重要です。たとえば、レストランのWebサイトは、顧客がオンラインで予約できるようにするためにテーブル予約サービスのAPIに依存します。また、電子商取引プラットフォームは、運送会社のAPIを統合して、ユーザーに正確な送料を提供することができます。

APIがリクエストに応答するたびに、そのAPIの所有者は計算時間(コードの実行とそのAPIリクエストへの応答の生成に必要なサーバーリソース)に対して支払いを行う必要があります。上記の例では、レストランのAPI統合により、レストランの顧客が予約を行うたびにテーブル予約サービスが計算時間に対して支払いを行います。

このため、開発者にAPIを提供するアプリケーションまたはサービスには、一意のユーザーごとに1時間または1日に実行できるAPI呼び出しの数に制限があります。このようにして、サードパーティの開発者はAPIを使いすぎることはありません。

Rate Limitingは、開発者がAPIを活用することに対して高い対価を支払いうことを動機付けることもできます。多くの場合、開発者が、APIサービスに対しての支払いを追加することなく利用できるAPIの呼び出しは限られています。

APIのRate Limitingは、悪意のあるボット攻撃からの保護にも役立ちます。攻撃者はボットを使用してAPIを何度も繰り返し呼び出すことにより、他のユーザーがサービスを利用できないようにしたり、サービスを完全にクラッシュさせたりすることがあります。これは、DoSまたはDDoS攻撃の一種です。

TwitterやInstagramなどのソーシャルメディアプラットフォームはRate Limitingをどのように使用するか?

ソーシャルメディアプラットフォームのRate Limitingは、基本的にAPI Rate Limitingです。たとえば、Twitterを統合するサードパーティアプリケーションは、1時間に一定の回数だけ、新しいツイートやメッセージを検索するために更新することができます。Instagramには、サードパーティのアプリに対して同様の制限があります。これが、ユーザーが「Rate Limitingを超過しました」というメッセージを受け取ることがある理由です。

これらの制限は通常、ソーシャルメディアプラットフォームを直接使用しているユーザーには適用されません。

ボット管理とRate Limitingの違いとは?

Rate Limitingは1次元的です。有用ではありますが、非常に限られた種類のボットアクティビティのみを阻止できます。さらに、Rate Limitingはボットだけでなく、一般的な使用制限にも使用されます。例えば、Cloudflare Rate Limitingは、DDoS攻撃、APIの乱用、およびブルートフォース攻撃から保護しますが、それは必ずしもその他の悪意のあるボットの活動を軽減せず、そして正当なボットと悪意のあるボットを区別しません。

対照的に、ボット管理は一般的にボットのアクティビティを総体的に検出できます。例えば、Cloudflare Bot Managementは機械学習を活用してボットの可能性の高いものを特定し、それによってより広いボット攻撃をブロックすることが可能になります。(例、クレデンシャルスタッフィングスパム投稿、在庫買いだめ等)。