コンテンツへスキップ

行動レイヤー

プログラムは、何をしたかではなく、どう振る舞うかで露見する

どの訪問にも動きが生まれます。ボタンへ向かうカーソル、押されて離されるキー、スクロールされるページ、触れられる画面。TRACIOはその動きを継続的にスコアリングし、それが手によるものかソフトウェアによるものかをお伝えします。

見ているもの

4つの入力チャネルを、訪問者の手元にあるデバイスに応じて重み付けする

各チャネルはまず個別にスコアリングされ、その後に統合されます。重みは固定ではなく、訪問者が実際に使っているデバイスに従って変わります。スマートフォンではタッチが判定を担い、カーソルがないことには何の意味もありません。デスクトップではカーソルが最も強いチャネルであり、タッチのストリームがないのはごく当たり前のことです。

マウスとカーソル

デスクトップの主軸

速度とそのばらつき、一定の移動距離あたりの方向転換の回数、目標へ向かう軌道の曲がり方、クリック前の加速と減速、そしてスクリプト化された動きでは再現できない、人の手の細かな震え。

キーボードのリズム

タイミングのみ

各キーが押されている時間、あるキーを離してから次を押すまでの間隔、前のキーが戻る前に次のキーが押される重なり、連打と休止、修正とバックスペース。取得するのはタイミングであり、文字ではありません。詳しくは下のプライバシーの節をご覧ください。

スクロール

両方のフォームファクタ

速度のばらつき、方向が反転する頻度、物理的なフリックと同じように減衰していく慣性、そして画面に実際にどれだけのテキストがあるかと噛み合った休止。

タッチ

モバイルの主軸

接触面積とタップ中のその変化、デバイスが公開している場合は圧力、二度と同じピクセルには着地しない指の微小なずれ、そして複数の接触点どうしのタイミング。

同じセッションでも、重みの付き方は2通り

デスクトップのセッションカーソルが主導

マウスとキーボードが重みを担います。ここではタッチのストリームは期待されていないため、それがなくても訪問者が不利になることはありません。

スマートフォンのセッションタッチが主導

タッチとデバイスの動きが重みを担います。カーソルの移動がまったくない訪問は、スマートフォンでは疑わしいことではなく正常です。

ないことは証拠ではない

デバイスがそもそも提供しなかったチャネルは、訪問者に不利に数えるのではなくスコアから除外します。当たり前に聞こえますが、素朴な行動スコアリングが実在の顧客を容疑者に変えてしまう最も一般的な経路がこれです。スマートフォンにマウスはなく、スクリーンリーダーの利用者になめらかなカーソル軌跡はありません。そのどちらも、ボットであることについては何も語りません。

証拠

ソフトウェアにはできて、手にはできないこと3つ

これらはルールのすべてではなく例ですが、私たちが根拠とする証拠の形を示しています。いずれも手にとっては物理的に不可能なことであり、いずれも、たった一度の奇妙な瞬間が判定にならないようにゲートがかけられています。

メトロノームのようなキー押下時間

計測している内容

入力全体を通じて、どのキーもほぼ正確に同じミリ秒数だけ押し下げられている。

手にはできない理由

指がキーの上にとどまる時間は、どのキーか、どちらの手か、その手がどれだけ疲れているかによって変わります。人間の押下時間はばらつきます。注入されたキーストロークは定数から生成されるため、ばらつきはほぼゼロまで潰れます。

誤りを防ぐ仕組み

このルールは、ウィンドウ内に十分な数のキーストロークがなければそもそも発動しません。4文字の入力はサンプルではなく、サンプルとしてスコアリングもされません。

テレポートするクリック

計測している内容

カーソルが一度も通らなかったコントロールの上でクリックが発生する。ポインタは座標に現れ、そのまま発火する。

手にはできない理由

人は目標に近づいていきます。軌道は内側に曲がり、終盤で速度が落ち、押す前にたいていはホバーの瞬間があります。自動化は座標を設定してイベントを送出するだけで、物理的に何も動いていない以上、接近そのものが存在しません。

誤りを防ぐ仕組み

テレポートするクリックが1回あるだけなら、キーボード操作やトラックパッドの副産物として十分ありえます。判断できるだけのクリック数があったセッションで、その大多数を占めた場合にのみ数えられます。

非表示のタブへの入力

計測している内容

ページが背面にあり、一度も前面に出されていない状態で、キーストロークが届き続ける。

手にはできない理由

人は見ていないページに入力できません。ファーム用のソフトウェアは何十ものタブを並行して動かし、フォームを埋め始める前にいちいちフォーカスを当てたりはしません。

誤りを防ぐ仕組み

タブ切り替えの瞬間に1件のイベントがあるのは、ブラウザイベント間の競合であって証拠ではありません。ページが依然として一度も表示されないまま入力が繰り返された場合に数えられます。

プライバシー

計測するのはリズムです。テキストを復元することはできません。

行動データの収集は、パスワード、メールアドレス、カード番号の欄を含め、ページ上のどこでも動作します。これは意図した判断であり、規約の中に埋めてしまうのではなく、きちんと説明されるべきものです。

なぜ機微な欄こそ重要なのか

クレデンシャルスタッフィング、カードテスティング、アカウント乗っ取りは、まさにその入力欄の中で起こります。そこで自ら停止する検知器は、攻撃が実際に生きている唯一の場所で目を閉じていることになります。以前の挙動がまさにそれでした。機微な欄では収集を丸ごと無効化していたため、訪問の中で最もリスクの高い数秒間から、計測値が1つも得られていませんでした。

保持するもの

タイミングです。キーがいつ押し下げられたか、どれだけ押し下げられていたか、次までにどれだけ空いたか、2つの押下が重なったかどうか。手とジェネレーターを見分けるにはそれで足り、検知器が求めてきたのもそれだけです。

保持しないもの

それがどのキーだったか、です。機微な欄の中では、すべてのキーストロークの識別情報が、ページから何かが出ていく前に、ブラウザ内で粗い代替値に置き換えられます。置き換え先は文字ではなく、ごく少数のバケットのいずれかです。逆に戻す対応表はありません。当社のサーバーに届くストリームには、テキストも、テキストの断片も、テキストに組み立て直せるものも含まれていません。

そのために対処が必要だったこと

こうした欄ではキーの識別情報が本当に失われるため、キーを区別できることに依存するルールは、そのキーストロークを自分の集計から除外しなければなりません。そうしなければ、普通のパスワードが同じキーを何度も叩いたように見え、正しく入力している人を不審としてしまいます。タイミングに基づくルールは影響を受けず、ストリーム全体に対して機能し続けます。

収集を止めても、内容が守られていたわけではない

どちらの設計でも、文字そのものは最初から収集されていませんでした。以前の一律除外が取り除いていたのは証拠だけであり、誰かのプライバシーを高めることなく、検知器の目を塞いでいたのです。代替値による方式は、お客様のテキストについてまったく同じ保証を保ったまま、検知器に計測値を返します。1つの判断から、より強い検知とより良いプライバシーの両方が生まれました。これは珍しいことなので、はっきり述べておく価値があります。

ルールの出し方

新しいルールは、判定に触れることを許される前に、まず見えないところで動く

検知は、証拠なしに賢くなろうとした瞬間から質が落ちます。行動ルールはすべて、まずシャドウとして追加されます。実際の本番トラフィックに対して評価され、その結果は記録されますが、誰の目に触れるスコアにも寄与しません。

01

シャドウで投入する

ルールは初日から実トラフィックに対して評価されます。その出力は分析のみに送られ、ルールが追加されたからといって、どの顧客の判定も動きません。

02

2つの母集団に対して計測する

独立に人間と判断されたセッションと、独立に自動化と判断されたセッションのそれぞれで、どれくらいの頻度で発動するかを、意味のある量の実トラフィックにわたって観察します。

03

2つの閾値が判断する

少なくとも10対1で分離すること、つまり人に対してよりも自動化に対して10倍以上の頻度で発動すること。そして実際の人間のセッションに対する発動率が0.5%を下回り続けること。

04

昇格するか、闇の中に留まるか

両方のゲートを通過したルールはスコアの中で重みを得ます。通過しなかったルールはシャドウに留まるか、そのまま削除されます。昇格は意図的でレビューを経た変更であり、自動的に有効化されるものは何もありません。

これが、一晩で賢くなったつもりの検知器が自社の顧客を追い返し始める事態から、お客様を守っている仕組みです。金曜の午後に誰かが思いついたからといって、誤検知率が動くことはありません。

受け取れるもの

3つのフィールドが、識別イベントとともに届く

行動の判定はイベントの残りの部分と一緒に届きます。2回目の呼び出しも、ポーリングも、別途組み込むエンドポイントもありません。

フィールド範囲意味
score0〜100高いほど人間らしいことを示します。区分ではなく連続値なので、当社ではなくお客様のリスク許容度に合わせた閾値を設定できます。
verdicthuman · uncertain · botスコアを3つの状態に集約したものです。「uncertain」は失敗ではなく1つの答えです。判断するには入力が少なすぎたセッションであり、当社は推測する代わりにそう報告します。
confidence0.0〜1.0その判定が、観測された入力のどれだけの量に支えられているかを示します。長いフォーム入力のセッションは高い信頼度でスコアリングされ、2秒で離脱した訪問はそうなりません。行動を起こす前に、それを確認できます。

イベントの抜粋

{
  "visitorId": "X7fh2Hg9LkMn3pQr",
  "behavior": {
    "score": 87.4,
    "verdict": "human",
    "confidence": 0.82
  }
}

Businessプラン以上でご利用いただけます。Webhookで配信され、Data API経由でも取得できます。

行動ブロックはシグナルであって、アクションではありません。それ自体は何もブロックしません。イベントの残りの部分とお客様自身のポリシーと組み合わせてお使いください。判断が属するべき場所はそこです。

限界

行動から分からないこと

行動は1つの問いにはよく答えます。人かプログラムか、です。「どの人か」には答えませんし、答えられるかのように売ることもしません。

これは同一性のシグナルではない

タイピングやマウスの動きから、再訪した個人を識別できるとは主張しません。実トラフィックで計測しました。同一人物が使う2つのブラウザをまたいで本人を突き合わせる性能は、偶然を上回りませんでした。「ユーザーを識別する行動バイオメトリクス」を売っているベンダーには、同じ数値の公表を求めるべきです。

識別の代わりにはならない

そのデバイスが誰なのかは、デバイスとブラウザのレイヤーから分かります。行動が教えてくれるのは、そのデバイスを動かしているのがどんな種類の主体かということです。両者は別の問いに答えており、どちらももう一方の代わりにはなりません。

働くには入力が必要

着地して2秒で去っていく訪問者は、スコアリングできるものをほとんど残しません。そこでの誠実な出力は、低い信頼度を伴う「uncertain」であって、判定の体裁をまとった推測ではありません。

FAQ

よくある質問

自社のトラフィックで行動の判定を見る

エージェントを導入し、識別イベントごとにスコアが届く様子を確認して、その価値をご自身で判断してください。