ディープラーニングを用いた行動ログからの不正アクセス・Bot検知

イタチごっこの不正対策に終止符を。AIが行動シーケンスから「人間らしさ」を見抜く5つの視点

約14分で読めます
文字サイズ:
イタチごっこの不正対策に終止符を。AIが行動シーケンスから「人間らしさ」を見抜く5つの視点
目次

終わらない「イタチごっこ」に疲れていませんか?

実務の現場では、セキュリティ担当者が抱える共通の悩みがあります。「新しい攻撃パターンが見つかるたびにWAF(Web Application Firewall)のルールを追加しているが、キリがない」「厳しく設定すれば正規ユーザーをブロックしてしまい、緩めればすり抜けられる」。まるでゴールのないマラソンを走らされているような、そんな疲労感を抱えているケースが非常に多いのが現実です。

攻撃者は常に進化しています。特定のIPアドレスをブロックしても、すぐに別のIPからアクセスしてきます。秒間アクセス数を制限しても、その閾値ギリギリを狙ってゆっくりと攻撃してくる「Low and Slow」攻撃も増えています。

これまでの「ルールベース検知」は、いわば「指名手配写真」と照らし合わせるような手法でした。犯人の顔(攻撃パターン)がわかっていれば捕まえられますが、変装されたり(パターンを変える)、全く新しい手口を使われたりすると、途端に無力になってしまいます。

そこで注目されているのが、ディープラーニング(深層学習)を用いた行動ログ分析です。

「AIなんて難しそう」「ブラックボックスで信用できない」と感じるかもしれません。しかし、AIが行っていることは、実はとてもシンプルで直感的なことなのです。それは、犯人の顔を見るのではなく、「その人が店内でどう振る舞っているか」という挙動(行動シーケンス)を見るというアプローチへの転換です。

今回は、数式や難しいコードの話は避け、AIがどのようにしてログデータから「人間らしさ」と「機械的な振る舞い」を見抜いているのか、その思考の裏側を5つのTipsとして解説します。これを読めば、AIが「得体の知れない魔法」から「頼れる同僚」に見えてくるはずです。

なぜ「ルール」だけでは不正を防げないのか?

まずは、なぜ従来のやり方では限界が来ているのか、もう少し掘り下げてみましょう。

イタチごっこの正体:固定ルールの脆弱性

ルールベースの検知システムは、「もし〜ならば、ブロックする」という静的な条件分岐で動いています。

  • 「1分間に100回アクセスがあったらブロック」
  • 「海外IPからのログイン試行はアラート」
  • 「User-Agentが空欄なら拒否」

これらは明確で分かりやすい反面、「想定外」に弱いという致命的な弱点があります。攻撃者はこのルールを逆手に取ります。1分間に99回のアクセスならどうでしょう? 日本国内の踏み台サーバー経由なら? User-Agentを一般的なブラウザに偽装したら?

ルールを守る防御側は常に後手に回り、攻撃を受けてから新しいルールを作るという「事後対応」を強いられます。これが、終わらないイタチごっこの正体です。

AIが見ているのは「点」ではなく「線」

ここで視点を変えてみましょう。熟練の店舗警備員は、どうやって万引き犯を見抜いているのでしょうか?

おそらく、「赤い服を着ているから怪しい」といった単純なルールではなく、「視線が泳いでいる」「商品の前を行ったり来たりしている」「店員の動きを気にしている」といった、一連の行動の流れ(コンテキスト)から違和感を察知しているはずです。

AIによる不正検知もこれと同じです。
従来のルールベースが、アクセスログの一つひとつを独立した「点」として見ていたのに対し、ディープラーニングを用いた手法では、それらを時系列につなげた「線(シーケンス)」として捉えます。

単発のリクエストだけ見れば正常に見えても、前後の文脈と合わせて見ると「人間にしては不自然な動き」が浮かび上がってくる。この「文脈を読む力」こそが、AIをセキュリティに活用する最大のメリットなのです。

Tip 1:ログを「物語」として捉え直す

Tip 1:ログを「物語」として捉え直す - Section Image

では、具体的にどうやってAIに「文脈」を理解させるのでしょうか。最初のステップは、データの捉え方を変えることです。

アクセスログは単なる文字列ではない

サーバーに残された生(Raw)のアクセスログは、一見すると無機質な文字列の羅列です。タイムスタンプ、IPアドレス、URL、ステータスコードなどが延々と記録されています。

これをそのままAIに学習データとして渡しても、期待するような精度は得られません。データ分析の観点から推奨されるのは、このバラバラのログを「ユーザーごとの行動の物語(ストーリー)」に編集する作業から始めることです。

シーケンスデータへの変換の重要性

具体的には、セッションIDやIPアドレスをキーにして、一人のユーザーが行った操作を時系列順に並べ替えます。

  • 正常なユーザーの物語例:
    トップページにアクセス → 3秒後に検索窓をクリック → 「スニーカー」と入力 → 検索結果一覧を見る → 10秒迷ってから2番目の商品をクリック → 詳細ページをスクロールしてレビューを読む → カートに入れる

  • Botの物語例:
    詳細ページAに直接アクセス → 0.1秒後に詳細ページBにアクセス → 0.1秒後に詳細ページCにアクセス → (画像の読み込みリクエストがない) → 離脱

こうして並べてみると、両者の違いは明確に表れます。前者は「迷い」や「興味」が見えますが、後者は「目的(データ収集など)」に向かって一直線です。

AIに学習させる際は、このようにログを「一連のシーケンスデータ」として整形します。ここで活用される技術も、長期間の依存関係を捉えるために進化を続けています。

かつてはRNN(リカレントニューラルネットワーク)や、その改良版であるLSTM(Long Short-Term Memory)が時系列データの処理における主流でした。これらは文章を読むように「前の行動」の記憶を保ちながら次の行動を予測する基本アーキテクチャであり、現在でも特定の時系列データ処理には有効です。

しかし現在、より長い期間の行動履歴(長期的な依存関係)を並列かつ効率的に学習するためには、ChatGPTなどの基盤技術であるTransformerアーキテクチャが主流となっています。例えば、OpenAIのモデル群においても世代交代が完了し、GPT-4oやGPT-4.1といったGPT-4系モデルは2026年2月13日をもってChatGPTでの提供が終了(廃止)しました。現在では、より長い文脈理解やツール実行、汎用知能が大幅に向上した最新モデルのGPT-5.2(InstantおよびThinkingモード)が主力として稼働しており、単なる直前の行動だけでなく、セッション全体を通した「不自然な振る舞い」を高精度に捉えることが可能になっています。

さらに、AIモデルを実装する環境も大きく変化しています。自然言語処理やシーケンスモデリングで広く使われるHugging FaceのTransformersライブラリは、最新のメジャーバージョン(v5)でモジュール型アーキテクチャへと大刷新されました。このアップデートにより、TensorFlowおよびFlaxのサポートは終了し、PyTorch中心の設計へと移行しています。また、8ビットや4ビットといった量子化モデルへの対応が強化され、vLLMなどの推論エンジンとの相互運用性も大幅に向上しました。時系列データ処理にTransformerを活用する際は、こうした最新のフレームワーク環境やエコシステムへの移行計画をしっかりと立て、公式の移行ガイドを確認しながら進める必要があります。

まずは、自社のログデータが「点」のまま放置されていないか、ユーザーごとの「線」として追跡できる状態になっているかを確認してください。最新のAIモデルを適用し、高度な不正対策を実現するためにも、このデータ構造の整備が不可欠な第一歩となります。

Tip 2:人間には見えない「微細な違和感」を定義する

ログを物語にできたら、次はその物語の中から「違和感」を見つけるための特徴を探します。AIは人間よりもはるかに細かいレベルで、この特徴を捉えることができます。

時間間隔のゆらぎに着目する

AIモデルの設計において、特に重視されるのが「時間間隔(タイムスタンプの差分)」です。

人間がWebサイトを閲覧するとき、その操作間隔は一定ではありません。ページの内容を読んだり、マウスを動かしたり、あるいはコーヒーを一口飲んだりするため、クリックとクリックの間には必ず不規則な「間」が生じます。これを「ゆらぎ」と呼びます。

一方、プログラムされたBotは、どれほど人間らしく振る舞おうとしても、どこかに「計算された規則性」や「物理的に不可能な速さ」が出てしまいます。あるいは、ランダムな待ち時間を入れたとしても、そのランダムさ自体に「機械的な分布(一様分布など)」が現れることがあります。

特徴量エンジニアリングの第一歩

ディープラーニングは、こうした微細な時間のズレや、ページ遷移の順序パターン(トップからいきなり決済画面に飛ぶなど)を数値化し、多次元の空間にマッピングします。

  • マウスの軌跡データ(取得できる場合):人間は滑らかな曲線を描きますが、Botは直線的か、あるいは不自然にカクカクしています。
  • スクロール速度:人間は読み進めるにつれて速度が変わりますが、Botは一瞬で最下部まで到達したりします。

こうした「人間特有のノイズ(雑音)」こそが、実は「人間であることの証明」になるのです。逆に、ノイズがなく綺麗すぎるデータほど、AIにとっては「怪しい」と判断される材料になります。

Tip 3:教師あり学習と教師なし学習の使い分け

Tip 3:教師あり学習と教師なし学習の使い分け - Section Image

「AIに学習させる」と言っても、そのアプローチは一つではありません。セキュリティの現場では、主に2つの手法を使い分けます。

「既知の攻撃」と「未知の攻撃」へのアプローチ

  1. 教師あり学習(Supervised Learning):
    過去に発生した不正アクセスのログに「これは不正」というラベル(正解)を付けてAIに学ばせる方法です。「過去と同じパターンの攻撃」を見つけるのには非常に強力です。しかし、全く新しい手口の攻撃(ゼロデイ攻撃など)には対応できないことがあります。

  2. 教師なし学習(Unsupervised Learning) / アノマリ検知:
    現在主流となりつつあり、実務においても推奨されるアプローチです。これは不正データを使わず、「普段の正常なアクセス」だけを徹底的にAIに学習させます。

正常な振る舞いを学習させるアノマリ検知

アノマリ検知(異常検知)の考え方はシンプルです。「いつもの正常な動き」のモデルを作り、そこから「外れているもの」をすべて異常とみなします。

例えば、Autoencoder(オートエンコーダ)という技術があります。これは、入力データを一度圧縮して、再度元通りに復元しようとするニューラルネットワークです。
正常なデータで学習したAutoencoderに正常なデータを入力すると、綺麗に復元できます。しかし、見たことのない異常なデータ(攻撃ログ)を入力すると、うまく復元できず、入力と出力の間に大きな誤差が生じます。

この「復元誤差」の大きさをスコアとして監視することで、「どんな攻撃かは分からないが、とにかくいつもと違う」という未知の脅威をあぶり出すことができるのです。ラベル付けの手間が不要で、未知の攻撃にも強い点が、セキュリティ分野で重宝される理由です。

Tip 4:ブラックボックス化を恐れず「説明可能性」を確保する

Tip 3:教師あり学習と教師なし学習の使い分け - Section Image 3

AI導入の最大の壁となるのが、「なぜAIがそれを不正と判断したのか分からない」というブラックボックス問題です。セキュリティ担当者や運用チームにとって、理由も不明確なまま正規ユーザーである可能性のある顧客をブロックするのは、大きなリスクと感じられるでしょう。

なぜ検知したのか?を追えるようにする

しかし、近年のAI技術においてはXAI(Explainable AI:説明可能なAI)という分野の実装が進み、判断の根拠を人間に提示することが標準的になりつつあります。これは単なるスコアリングだけでなく、モデルが「どこを見て判断したか」を可視化する技術です。

例えば、「このアクセスは不正スコアが高い」という結果だけでなく、以下のような具体的な根拠を併せて提示します。

  • 「ページ遷移の順序が通常のユーザー分布と90%乖離しているため」
  • 「深夜帯に、過去の平均と比較して10倍の速度でリクエストが発生したため」
  • 「マウスの動きが直線的で、人間特有のゆらぎが検知されなかったため」

このように理由が明確であれば、運用担当者は自信を持って対策を講じることができます。

XAI(説明可能なAI)の基礎概念

技術的なアプローチとしては、SHAP(SHapley Additive exPlanations)などの手法が一般的です。これは、どの特徴量(時間間隔、IPアドレス、遷移順序など)がその判断結果(不正スコア)を押し上げるのにどれくらい寄与したかを定量的に算出するものです。

運用現場においては、AIを「完全な自動判定機」としてブラックボックス化するのではなく、「判断材料付きの高度なアラートシステム」として設計することが推奨されます。AIが「これ怪しいですよ、理由は○○だからです」と提示し、最終的に人間が「なるほど、確かにこれはBotの特徴だ」と納得して対処する。あるいは、AIの確信度(Confidence Score)が極めて高い場合のみ自動ブロックを適用する、といった階層的な運用が効果的です。

このように「納得感」のある運用フロー(Human-in-the-loop)を構築することで、ブラックボックスへの懸念を払拭し、実効性の高い不正対策が可能になります。

Tip 5:100%の精度を目指さない運用設計

最後に、最も大切なマインドセットをお伝えします。それは、「AIに100%の精度を求めない」ことです。

AIは「疑わしい」をあぶり出すフィルター

どんなに優秀なAIモデルでも、誤検知(False Positive:正常を異常と判定)や見逃し(False Negative:異常を正常と判定)はゼロにはなりません。これをゼロにしようとパラメータを調整しすぎると、逆に使い物にならなくなってしまいます。

AIの役割は、膨大なログの海から「人間がチェックすべき疑わしい対象」を、数千件から数十件に絞り込む高度なフィルタリングだと割り切ることが成功の秘訣です。

人間とAIの役割分担

  • AIの得意領域:24時間365日、大量のデータからパターンを見つけ出すこと。
  • 人間の得意領域:AIが「怪しい」と判断した複雑なケースについて、ビジネス上の文脈(キャンペーン中だからアクセスが増えた、など)を加味して最終判断を下すこと。

また、人間が下した最終判断(これはBotだった、これは誤検知だった)を正解データとしてAIにフィードバックし、再学習させる「Human-in-the-loop(人間が介在するループ)」を作ることで、システムは運用しながらどんどん賢くなっていきます。

最初から完璧を目指さず、運用しながら育てていく。この姿勢こそが、AIプロジェクトを成功させる鍵です。

まとめ:ログデータという資産を「守り」に活かす

ここまで、AIによる不正検知の裏側にある5つの視点をお話ししてきました。

  1. 点ではなく線で見る:単発ログではなく行動シーケンスで捉える。
  2. 物語として整える:セッション単位でユーザーの行動を可視化する。
  3. 違Headers感を定義する:人間特有の「ゆらぎ」と機械的な「正確さ」を見分ける。
  4. アノマリ検知を活用:正常データから逸脱する「未知の脅威」に備える。
  5. 協働する運用:100%を目指さず、AIを優秀なフィルタリング役として育てる。

企業のサーバーに眠っているログデータは、単なる記録ではありません。それは、ビジネスを守るための最強の武器になり得る「資産」です。

AI技術を適切に導入し、既存の業務フローに組み込むことで、終わりのないイタチごっこから抜け出し、より本質的なセキュリティ対策を実現することが可能になります。まずは自社のデータがどのように活用できるか、その可能性を探ることから始めてみてはいかがでしょうか。

イタチごっこの不正対策に終止符を。AIが行動シーケンスから「人間らしさ」を見抜く5つの視点 - Conclusion Image

コメント

コメントは1週間で消えます
コメントを読み込み中...