悪意のあるボットがますます巧妙になるにつれ、人間のようなボットと信頼できるユーザーとの違いを検出することがますます困難になります。このような環境では、人間とボットの行動のわずかな違いでも、ボットの軽減に大きな影響を与える可能性があります。これらの違いを識別する 1 つの方法は、入力方法の分析です。このブログでは、入力メソッド分析とは何か、なぜそれが重要なのか、そして正当なユーザーの信頼を獲得し、悪質なボットを識別するためにどのように使用できるのかについて説明します。
入力方法を理解する
Web アプリケーションは、ユーザーがユーザー名を入力したか、貼り付けたかを判別できることをご存知ですか?または、パスワード マネージャーを使用したかどうかを認識しますか?ユーザー名、パスワード、その他のデータをフォーム フィールドに入力する手段は、入力方法と呼ばれます。一般的な入力方法は次のとおりです。
- 値を直接入力する
- リストから値をコピーして貼り付ける
- スクリプトによる入力フィールドのテキスト挿入
- ブラウザに保存されたユーザー名とパスワードをフィールドに自動入力する
- パスワードマネージャーを使用してユーザー名とパスワードを自動的に入力する
これらの方法はいずれも、信頼できるユーザーまたは悪意のある攻撃者によって使用される可能性がありますが、短期間に複数回貼り付けるなどの特定の使用パターンは、疑わしい動作を示している可能性があります。入力方法分析は、個々のユーザーとユーザー グループ (人間と人間のようなボットなど) の両方でデータ入力パターンを詳しく調べることで、疑わしい動作を特定するのに役立ちます。
データの深化
入力方法は、HTML ドキュメント オブジェクト モデル (DOM) 内のイベントを分析することによって識別されます。DOM は、Web ページの構造とコンテンツを構成するオブジェクト (テキスト、HTML 要素、属性など) のデータ表現です。フォーム フィールドへの情報の入力や貼り付けなどのユーザー操作を含む、その Web ページで発生するアクションは、DOM イベントとして登録されます。以下に、ブラウザによって作成された DOM イベントの例を示します。
ユーザーがログイン フォームにユーザー名またはパスワードを入力すると、HTML 要素とのやり取り中にトリガーされる input イベントによって DOM 内で入力方法が識別されます。インタラクションを説明する情報は、DOM イベント プロパティによって提供されます。たとえば、以下に示すイベントは、ユーザーが自分の資格情報をフィールドに貼り付けたインタラクションを表しています。以下に緑色で囲まれ、概要が示されているいくつかのイベント プロパティは、入力方法を推測するために必要な情報を提供します。
- の 入力方式 財産は insertFromPaste は挿入操作を示します。
- の 信頼されている プロパティが true の場合、スクリプトではなくユーザーの操作によってイベントがトリガーされたことを示します。
- の データセット DOM 上の要素に追加のキーと値のメタデータを提供するプロパティが空です。
次に、パスワード マネージャーを使用して同じフィールドに入力すると何が起こるかを見てみましょう。
- の 信頼されている スクリプトが対話を実行したため、プロパティは false になります。
- このイベントには 入力方式 財産、以来 入力方式 ユーザー入力によって発生したイベントのみを説明します。
- の データセット プロパティにはキーと値のペアが含まれています comOnepasswordFilled: "light"は、使用されたパスワード マネージャーに関する情報を提供します。
検出方法
ブラウザから DOM イベントとして受信したデータは、ログイン フォームなどの Web ページ上の特定の要素にタグ (または小さなコード スニペット) を追加することで処理でき、使用された入力方法に基づいてユーザーの操作を追跡できます。このデータを分析することで、常に同じ入力方法を使用するユーザーに対する信頼を確立したり、ボットの動作を示唆する疑わしいやり取りを検出したりすることができます。
ユーザー行動の異常
ユーザーの入力方法の操作を継続的にタグ付けすると、ユーザーの行動パターンのプロファイルを構築するのに役立ちます。それぞれの新しいアクションをユーザーの過去の行動と比較することで、リスクの評価に使用できる異常を検出できます。このタイプの異常を視覚化したものが、以下のグラフに示されています。ここでは、パスワード マネージャーを使用してユーザー名とパスワードを常に自動入力しているユーザーが、パスワード マネージャーを使用する代わりに、突然手動で資格情報を貼り付けました。この突然の変化を検出すると、特に他のリスク信号と同時に発生した場合、疑わしい行動の証拠として使用できます。
打つ速さ
値がフィールドに直接入力される場合、入力速度を使用して、値が人間によって入力されたか、ボットによって入力されたかを示すことができます。人間は、タイピング中に気が散ったり、キーボード上のキーに手が届かなくなったりすることがあります。その結果、ボットは人間よりもはるかに速く入力でき、入力速度の変動もはるかに少なくなることが期待されます。
しかし、悪意のあるボットは人間の活動を模倣するように設計されることが多くなり、検出が難しくなってきています。人間とボットのタイピング速度の違いをより明確に区別するために、当社のセキュリティ リサーチ ラボは、典型的なボットの動作、人間のようなボットの動作、人間の動作という 3 つの異なるユース ケースでユーザー インタラクションを分析しました。各インタラクションに対して複数の DOM イベントが報告され、各イベントにタイムスタンプが付けられました。たとえば、ログイン フォームにユーザー名を入力するときに入力した各文字は、個別のタイムスタンプ付きイベントとして記録され、各文字の入力の間に経過した時間を確認できるようになります。次に、タイピング イベントとユーザー インタラクションの反復間の平均時間に基づいて、タイピング速度を計算しました。変動は、後続のタイピング イベント間の最小時間と最大時間を比較することによって決定されました。下の画像は、3 つのユースケースにおける入力速度の範囲を示しており、2 本の線はイベント間の最大時間と最小時間 (ミリ秒単位) を表しています。
グラフでは、緑色の線は人間のように動作するボットの動作を表しています。タイピング速度(約 300 ミリ秒)は人間のタイピングに似ていますが、変動が少ないため、ボットのアクティビティとして分類できます。赤い線は、タイピング速度が非常に速く (約 8 ミリ秒)、変動が非常に少ない、典型的なボットの動作を示しています。最後に、青い線は、変動が大きく、本質的により動的な人間の行動を表しています。
Transmit Securityによる高度なボット検出
入力方法を分析すると、ユーザーの行動の異常が見つかり、人間の行動パターンと回避的な人間のようなボットの行動パターンの違いに関する詳細な情報が提供され、ボットの検出が向上します。Transmit Security の検出および応答サービスは、入力方法の分析と、デバイス フィンガープリント、IP レピュテーション、ユーザー プロファイリング、リンク分析、速度チェックなどの他の検出方法を組み合わせることで、高度なボット検出を可能にします。検出と対応では、機械学習を使用して、これらの検出方法やその他の検出方法からの幅広いテレメトリを相関させて分析し、ユーザー ジャーニーのあらゆる瞬間に各ユーザーに対してリスクと信頼のシグナルにリアルタイムで対応するためのアクション トリガーとして使用できる、透明性の高いコンテキストに基づく推奨事項を提供します。検出と対応の詳細については、 製品ページ 当社のウェブサイトで。