アンチオートメーション(Anti-automation)とは、自動化・機械化されたアクセスを防止する仕組みです。
自動化・機械化された例として「ボット(Bot)」などが一般的に知られています。Webサイトのクロール、ユーザとのチャットなど様々な機能として使用され、特定の動作を自動化するように作成されています。
例えば、WEBアプリケーションの認証機能を攻撃するボットを作成した場合、ブルートフォース攻撃を実現することも可能です。
それでは、自動化・機械化された攻撃の代表的な例を見てみましょう
① 認証機能における攻撃
ログインなどの認証機能の場合、ブルートフォース攻撃やパスワードリスト攻撃といった自動化された攻撃を受ける可能性があります。攻撃が成功するとユーザアカウントの認証を突破され、なりすましを受けます。
② アカウント作成における攻撃
新規アカウント作成の場合、不正使用するための複数のアカウントを攻撃者に作成される恐れがあります。
③ DoS攻撃によるリソース枯渇
長い処理時間の機能に対して、複数回実行することでファイルシステム、メモリ、プロセスなどのリソースの枯渇につながる恐れがあります。
いずれの攻撃もアンチオートメーションを実施することで、攻撃を軽減することが可能です。
アンチオートメーションを実施するには、以下に記載する対策のいずれか、もしくはその組み合わせが必要です。
① 試行回数による制約
一定の試行回数を基準として定め、基準回数を超えた場合にロックします。
例えば、認証機能の場合にアカウントをロックし、一定時間使用できないように制限します。
② 試行頻度による制約
一定の間隔を基準として定め、基準間隔より短い場合にロックします。
例えば、直近の試行時間から再試行された間隔が短い場合に、一定時間使用できないように制限します。
①、②については、永続的なロックをすると、意図的なアカウントロックによるDoSを引き起こされる恐れがあります。そのため、時間経過による解除や、(認証の場合)パスワードの再発行による復旧等の対策も検討が必要です 。
ロックによるアクセス制御については、「IPアドレス単位」や「ユーザアカウント単位」などシステムの要件に合わせて検討する必要があります。
また、ロックまでの試行回数や頻度についても、要件やシステムの利便性を加味した上で定めることが必要です。一方で「ロックまでの試行回数が多すぎる」など、制約が十分でないと効果が得られない場合もあります。
③ CAPTCHAの設置
画像認証やパズル認証といったCAPTCHA機能によりボットを識別してブロックします。
これにより、試行されている内容が人為的であることが証明されます。
有名なものでは、Googleが提供するreCAPTCHAがあります。
お見積り・ご相談など、お気軽にご相談ください
サイトTOPへ