2024年セキュリティの現状:競争が激化するAIの活用
先進的なサイバーセキュリティ対策を推進する組織がどのように課題を克服し、AIを活用してイノベーションを推進し、デジタルレジリエンスを強化しているかをご確認ください。
何か異常が起きていることを知るには、どうすればよいのでしょうか。多くの場合、異常とは「正常」な動作や想定される動作ではないことを意味します。
アノマリ検出とは、確立された基準や仮説から逸脱したデータポイントやパターンを特定する手法のことです。概念としてのアノマリ検出は、昔から存在しています。
しかし今日、アノマリ検出は、あらゆる規模や業種の組織や企業にとって重要な手法となっています。その理由は、こうした外れ値を特定することで、次の重要な取り組みを強化できるからです。
この記事では、アノマリ検出について幅広く取り上げます。具体的には、アノマリ検出の仕組み、手法、職場での実施方法、一般的な課題の解決方法について見ていきます。
(アノマリ検出は、Splunkの業界トップクラスのSIEMプラットフォームやフルスタックのオブザーバビリティポートフォリオなど、Splunkの各種サービスや製品にとって不可欠です。)
アノマリ検出とは、「正常」な動作や想定される動作から逸脱したデータポイントやイベントを見つけるのに役立つ手法のことです。何十年もの間、アノマリ検出は手作業で行われてきました。機械学習や自動化、それにAI (人工知能)を駆使して、あらゆる環境で高度なアノマリ検出を簡単に行えるようになったのは、ここ数年のことです。
ところで、アノマリ(異常)とはそもそも何でしょうか。
アノマリとは、確立された仮説または事前に設定されたしきい値から大幅に逸脱している可能性があるデータポイントまたはパターンのことです。では、実際の例を挙げながら説明しましょう。
アノマリ検出の代表的な例として、クレジットカード詐欺の検出システムがあります。このシステムはアルゴリズムを使用して、今までにない場所での高額な買い物など、通常とは異なる支出パターンをリアルタイムで特定します。銀行では、このような詐欺の可能性がある行為のアラートを直接確認します。そのために、顧客の通常の支出行動から見て異常な購入を検知するのです。
ほかにも、次のようなアノマリ検出システムの例があります。
時系列データ(一定期間にわたって連続的に収集されるデータ)を調べると、アノマリ(異常)には大きく3つの種類があることがわかります。典型的な例を挙げながら、それぞれの種類について説明しましょう。
グローバル(またはポイント)異常:この異常は、平均からあまりにもかけ離れたデータを指します。クレジットカードの平均的な請求額が2,000ドルで、10,000ドルの請求書が届いたとしたら、それはグローバル異常です。
コンテキスト異常:この外れ値はコンテキストに依存します。クレジットカードの請求額は、時期に応じて変動する可能性があります(たとえば、ホリデーシーズンのギフト贈答など)。このような支出の急増は、支出全体で捉えると異常に見えるかもしれませんが、時期的な脈絡(コンテキスト)においては想定内と言えます。
集合的異常:これは、個々に見ると異常ではないが、集合的に見ると異常であるようなデータポイントの集まりです。たとえば、時系列で見たときにのみ検出できるような異常です。
いつも2,000ドルのクレジットカードの請求額が、ある月に3,000ドルになったとしても、特に驚くべきことではないかもしれません。ただしこれが3~4カ月連続して3,000ドル台に留まると、異常だと認識できる可能性があります。多くの場合、集合的異常は、時系列グラフを平滑化して傾向やパターンをより明確に示す「ローリング平均」データで表すと、最も簡単に確認できます。
アノマリ検出モデルの構築にあたっては、「どのアルゴリズムを使用すべきか」という疑問が浮かぶことでしょう。もちろん、その答えは解決しようとしている問題の種類によって大きく異なりますが、考慮すべき点の1つは、基盤となるデータです。
アノマリ検出の手法に関する話には、統計や機械学習といった技術分野と重なる部分が多くあります。これは、アノマリ検出の手法が主に次の3つのタイプに分類できるためです。
外れ値を特定するには、データやスプレッドシートの並べ替え、グラフやチャートによるデータの視覚化、Zスコアの確認、四分位範囲による外れ値検出など、単純なものから高度なものまで数え切れないほどの方法があります。
アノマリ検出の一般的なアルゴリズムと手法は次のとおりです。
ローカル外れ値係数:オブジェクトの局所密度を近傍のデータポイントと比較する一般的な手法です。オブジェクトの密度が低い場合は、外れ値と見なされます。
アイソレーションフォレスト:複雑性が比較的低く、CPUの使用率や使用時間が少ない効率的な手法です。ただし、データストリームのコンテキストには適していません。
近傍法:アノマリ検出の分野における古典的な手法であり、長年にわたって成果を上げています。
侵入検知:通常のデータパケットと受信データパケットを比較して、悪質なデータパケットを検出します。
オートエンコーダー:ディープニューラルネットワークで使用される手法であり、ロボットセンサー信号の異常を特定します。
ほかにも、機械学習アノマリ検出、クラスタリングアルゴリズム、ハイブリッドアプローチ(異常ベースの検出とシグネチャベースの検出を組み合わせた手法)など、実にさまざまな手法が存在します。
連続的な時系列データセットにおいては、正常値または期待値がベースラインとなります。ベースラインの上限と下限は、ばらつきの許容範囲を表します。新しい値がこの上限または下限を超えた場合、そのデータポイントは異常と見なすことができます。
アノマリ検出は、機械学習を活用する今日の組織にとって極めて一般的な手法です。言うまでもなく、正確なアノマリ検出には、履歴データと継続的な統計分析の2つが必要になります。重要なのは、こうしたモデルがデータの品質とサンプルサイズに大きく依存しており、そのことが全体的なアラートに影響するという点です。
まず重要な点は、異常値が発生する原因が、環境によってさまざまに異なるということです。前述のネットワークトラフィックフローの場合、ユーザートラフィックが急増する原因として、次のようなさまざまな状況が考えられます。
異常はさまざまな原因で発生する可能性があります。その根本原因を完全に把握するには、アノマリ検出プロセスの一環として、次の重要な課題に対処する必要があります。
普遍的な仮説の定義はもはや不可能に近い:すべてのデータディメンション(要因と適用可能な制約)を網羅するモデルを定義するのは非現実的であることが多く、無形の定性的な指標(ユーザーの好みや意図など)を定量化することはさらに困難です。
「異常」の定義は簡単ではない:その理由は、しばしば白黒をつけるのが難しく、どちらとも言えない場合が多いことにあります。そもそも、「異常」という概念は、適用される状況やその重要度によって大きく異なります。たとえば、次のような場合です。
サイバーセキュリティの分野において、攻撃者は自分の異常な行動に気づかれないようにする方法を知っています。このような攻撃者は、すばやく行動を適応させたり、システムを操作したりすることで、異常が観測されても、許容されるモデルや仮説に適合しているかのように見せかけることができます。
通常の動作や想定される動作は常に変わる:正常な動作や想定される動作の概念は、特に大規模な組織では絶えず変化します。社内の組織変更やユーザーベースの拡大により、意思決定者は次の点を再定義せざるを得なくなることがあります。
モデルの信頼性を確保する:どのようなアノマリ検出システムも、ユーザーから信頼を得る必要があります。信頼できなければ、ビジネス上の重要な取り組みにそのデータを利用することはないでしょう。たとえば、モデルが実際にすべての外れ値を検出している、あるいは少なくともユーザーの設定に基づいて関連がある外れ値を検出しているとユーザーが納得できるようでなければ、「信頼」を得ることはできません。
ここまでは、異常の概念に関する課題とその検知について取り上げました。ここからは実用的な側面、つまり異常な動作に対応するチームが実際に直面する可能性のある問題について見ていきましょう。その上で、課題を検討し、解決するための道筋を提示します。
データ品質、つまり基盤となるデータセットの品質は、正確で実用的なモデルの作成に最も欠かせないものです。データ品質については、次のような問題が存在する可能性があります。
データ品質の問題を解決する方法:データ品質を改善するには、どうすればよいのでしょうか。いくつかのベストプラクティスをご紹介しましょう。
さまざまな理由から、トレーニングセットを大規模にすることが重要になります。トレーニングセットが小さすぎると、次のような状況が発生します。
季節性の問題も、サンプルセットが小さい場合によく起こります。データセットが毎日または毎週同じになることはないため、十分な量のサンプルデータセットを用意することが重要です。顧客の来店者数やアクセス数は、ホリデーシーズン中に急増することもあれば、業種によっては大幅に急減することもあります。
モデルが複数年分のデータサンプルを参照することが重要です。そうすれば、一般的なホリデーシーズンにおけるベースラインを正確に構築および監視できます。
データセットサイズの不足を解決する方法:残念ながら、データセットが貧弱であるというのは最も解決が難しい問題です。「十分な」データがない場合は、さらにデータが必要になります。何が正常と見なされるのかを正確に理解するには、実際のデータを現場で収集することが欠かせません。
現在のデータセットから推定した合成データセットを構築することもできますが、これは過学習を引き起こす可能性があります。
アノマリ検出は、過去の学習から予想される動作や異常なイベントを特定できるため、動的な環境において優れたツールと言えます。しかし、モデルが何度も誤検知を起こし、常に誤った結果が生成されたらどうなるでしょうか。
疑いを抱いたユーザーから信頼を得るのが難しくなり、そのモデルはすぐに信頼を失うことになります。そこで、感度のバランスを確保することが重要になります。
モデルの感度の問題を解決する方法:ノイズの多いアノマリ検出モデルは、異常を検知してアラートを生成している点では技術的に正常でも、手動による確認作業でそのアラートがノイズとして除外されることがあります。その理由はモデルの感度にあります。ベースラインからの許容範囲を厳しくしすぎると、正常なばらつきがベースラインから逸脱する状況が頻発する場合があります。
この問題を解決するには、次の方法があります。
誤検知を修正するためのもう1つの解決策として、アルゴリズムがモデルの構築に使用するサンプルサイズを増やすことが挙げられます。履歴データの例が増えるほど、精度が向上し、誤検知が減少します。
アノマリ検出モデルを構築する別の方法として、分類アルゴリズムを使用して教師ありモデルを構築するやり方もあります。この教師ありモデルでは、何が良くて何が悪いのかを理解するために、ラベル付きデータが必要になります。
ラベル付きデータでよくある問題は、分布の不均衡です。正常な状態では、ラベル付きデータの99%が良好な方向に偏ります。この自然に起こる不均衡のために、悪い状態を学習して関連付けるのに十分な例がトレーニングセットに欠けている可能性があります。
不均衡の問題を解決する方法:これも解決が難しい問題です。この問題を回避するための一般的な手法は、良い状態の数をスケールダウンして、悪い状態の数と等しくするというものです。悪い状態(異常な状態)のデータが十分にあるのであれば、モデルが正確に学習して動作を強化できるので、これが理想的な方法になります。
しかし、不均衡な分布が原因で、このような悪い(異常な)状態を学習するのに十分なラベル付きデータを用意できない可能性があります。
異常が特定されたら、その情報に基づいて行動し、異常がもたらす影響を定量化することが重要です。適切な戦略は次のとおりです。
まとめると、アノマリ検出とは、正常な動作を定義し、その正常な動作を一般化できるモデルを開発し、観測値が想定される真に正常な動作から大幅に逸脱していると正確に判断できるしきい値を設定することです。
この情報を各組織でどのように活用するかは自由ですが、その取り組みは必ず成果を生むでしょう。
このブログはこちらの英語ブログの翻訳です。
この記事について誤りがある場合やご提案がございましたら、ssg-blogs@splunk.comまでメールでお知らせください。
この記事は必ずしもSplunkの姿勢、戦略、見解を代弁するものではなく、いただいたご連絡に必ず返信をさせていただくものではございません。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。