2024年セキュリティの現状:競争が激化するAIの活用
先進的なサイバーセキュリティ対策を推進する組織がどのように課題を克服し、AIを活用してイノベーションを推進し、デジタルレジリエンスを強化しているかをご確認ください。
このシリーズではこれまで、Splunkを使用した脅威ハンティングに必要ないくつかの重要な技法を紹介し、次の方法について説明してきました。
このブログでは、引き続きデータのフィルタリングに役立つSplunkの基本的な脅威ハンティング技法について紹介するとともに、statsコマンドについても取り上げます。
(この記事は「Splunkで脅威ハンティング」シリーズの一部で、初稿はDave Herraldによって書かれました。お客様に最大限の価値を提供できるよう、その内容を最近更新しました。)
データのフィルタリングはなぜ重要なのでしょうか?Splunkでは、ギガバイトやテラバイトはもちろんペタバイト単位で完全忠実なセキュリティデータを保存できます。しかし、脅威ハンティングや調査で探して求めている証拠は、たった数件のイベントにしか残されていないことがほとんどです。
そのため、証拠を明らかにするにはノイズを除去する必要があります。
そこで、すぐに実践できる3つのデータフィルタリング技法を具体的に説明します。以下で取り上げる3つの例ではすべて、Boss of the SOC v1.0データセットのデータを使用します。
Splunkサーチで返されるイベントの数を減らし、行動につながる結果を得るための重要な技法の1つは、適切な時間範囲を指定することです。特に言及する必要がないように思えますが、見落としがちな点でもあります。
脅威ハンティングの対象とする期間を区切ることができれば、仮説から外れた時間帯のイベントをSplunkサーチの対象外にできるため、調査を進めるうえで貴重な時間とシステムリソースを節約できる可能性があります。
ほとんどのSplunkユーザーにとって、時間範囲を指定する最も簡単な方法は、下の図1に示すようにタイムレンジピッカーを使用することです。この例では、Boss of the SOC v1.0データセットに含まれるDNSイベントを調査しています。具体的には、2016年8月24日のすべてのDNSアクティビティをSplunkでサーチし、次の出力を得られました。
このケースでは適切な時間範囲を指定することで、サーチ結果の件数とサーチの実行時間の両方で効率が96%向上していることがわかります。
使うデータやハンティングの仮説はさまざまですが、Splunkでハンティングを行うときは、時間範囲に着目することが重要です。
図1:タイムスタンプに基づくイベントのフィルタリング
Splunkはデータのサーチエンジンと呼ばれることがよくありますが、サーチアプリに簡単なフレーズを入力すれば、その理由がすぐにわかります。入力したフレーズを含むイベントが通常、わずか数秒以内に表示されるためです。このようなサーチは「超高速grep」と呼ばれます。調査を進めるのに効果的な方法ではありますが、Splunkにはさらに多くの有用な機能が用意されています。
Splunkサーチのスキルをレベルアップし、その過程でより効果的に脅威ハンティングするための優れた方法の1つに、フィールド値の式を活用したサーチの絞り込みが挙げられます。
Splunkでは結果を返すときに、各イベントからフィールドも抽出します。Splunk Search Processing Language (SPL)を使うと、フィールドを有効活用できます。環境内のさまざまなシステムで生成されるイベントには、それぞれ異なるフィールドがありますが、Splunkのイベントにはすべて、次のような共通フィールドがあります。
これらは特別なフィールドであり、イベントがインデックス化されるとすぐに抽出されて保存されるため、共通フィールドを使用すると非常に高速にサーチを実行できます。
Splunkでイベントをフィルタリングする最適な方法の1つは、Splunkサーチで次のようなフィールドと値のペアをできるだけ始めの方(つまり左端)に記述して、特定のソースタイプをサーチすることです。以下の例は、Microsoft Sysmonイベントのみを表示するように結果をフィルタリングする簡単なサーチ構文です。
sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational"
次に、複数のフィールドを組み合わせてサーチをさらに絞り込む方法を見てみましょう。複数のフィールドをサーチする場合、Splunkでは論理演算子の「AND」を使ってサーチで使う用語を結合します。
下の図2に、複数のフィールドで構成されるサーチの例を示します。「we4781srv」という名前のシステムから送信されたすべてのMicrosoft Sysmonイベントが返されます。
sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational"
host="we4781srv"
この例では、サーチで時間枠を指定(上述の技法1を参照)しています。また、アクセス権が付与されたSplunkインデックスからのみ結果が取得される点に注意してください。本番環境では、サーチの先頭に「index=<myindexname>」を記述することをお勧めします(この指定が必須になることもあります)。
では、これらのMicrosoft Sysmonイベントで使用可能な他のフィールドを見てみましょう。
図2:Microsoft Sysmonイベントのフィールドの調査
フィールドを使用して、Splunkの脅威ハンティングでサーチをカスタマイズする際に役立つヒントをいくつか紹介します。
詳細については、Splunkの「search」コマンドをご確認ください。
最後に、Splunkで脅威ハンティングを行う際に利用できる迅速で効果的なフィルタリング技法、「NOT」ブール演算子について見てみましょう。
これまで見てきたように、Splunkでのハンティングの主な目的は、仮説の証明または反証に役立たないイベントをサーチ結果から除外することです。これを行うのに最適なツールが「NOT」演算子です。
まず、2016年8月にSplunk Streamで収集したDNSクエリーをいくつか調べてみましょう。この例は、疑わしい動作をしているシステムを調査したり、ハンティングの仮説を立てるのに役立つ「手掛かり」を探したりする際に参考になります。まずSplunkを使用してリクエストを要約し、説明が可能なデータを除外し、説明できないデータを詳細に調べます。
下の図3のサーチでは、234件の一意のDNSクエリーが見つかり、明らかに疑わしいものや悪意のあるものはありませんでした。
図3:DNSアクティビティを確認するための簡単なサーチ
sourcetype=stream:dns src=192.168.250.100 query_type{}=A
| stats count by query
| sort -count
では、実際にフィルタリングで「NOT」を使ってみましょう。まず、ブラウザの設定とIPv6トンネリングに使用されるDNSルックアップをいくつか除外します。そのためには、「NOT」フィールドと値のペアを2つ追加します。異なるドメインのインスタンスを検出するために、ワイルドカードを使用している点に注意してください。
図4:NOTを使用したフィルタリング
sourcetype=stream:dns src=192.168.250.100 query_type{}=A
NOT query=wpad*
NOT query=isatap*
| stats count by query
| sort -count
ここで、フィルタリングの効果が見て取れます。このケースでは、サーチ結果が234件から176件に減少しました。続けて、次の項目で結果をフィルタリングしてみましょう。
図5:詳細なフィルタリング
sourcetype=stream:dns src=192.168.250.100 query_type{}=A
NOT query=wpad*
NOT query=isatap*
NOT query=*.windows.com
NOT query=*live.com
NOT query=*nsatc.net
NOT query=*windowsupdate.com
NOT query=*msedge.net
NOT query=*trafficmanager.net
NOT query=*office.com
NOT query=*bing.com
NOT query=*virtualearth.net
NOT query=*msn.com
NOT query=*.microsoft.com
NOT query=*msftncsi.com
NOT query=*microsoftonline.com
NOT query=demo-01
NOT query=*waynecorpinc.local
NOT query=*public-trust.com
NOT query=*ocsp*.com
NOT query=*akamaiedge.net
NOT query=*akadns.net
NOT query=*akamaized.net
NOT query=sway-cdn.com
NOT query=*symc*.com
| stats count by query
これでサーチ結果が大幅に減少して15件になりました。ここでようやく、次のような内容を簡単に特定できるようになります。
図6:フィルタリングされたデータセットの視覚的な調査
多くの場合、この例のようにサーチの規模が大きくなると、データをSplunkのルックアップテーブルに統合する方が合理的です。詳しくは、「脅威ハンティングでのlookupコマンドの使い方(ハンティングに乗り出す前の下調べ)」をご覧ください。
Splunk Boss of the SOC (BOTS)では毎年、参加者が自らの腕試しをしています。そこでは、リーダーボードの上位に名を連ねる競技者が、大量の未処理のサーチ結果をいくつかの重要なイベントにすばやく絞り込む場面を幾度となく目にします。このブログ記事で紹介した3つのシンプルなフィルタリング技法を習得すれば、分析や脅威ハンティングを効率的に実施できるようになるだけでなく、次回のSplunk BOTSイベントで順位を上げることも夢ではないかもしれません。
最新の脅威ハンティング手法については、E-book『PEAK脅威ハンティングフレームワーク』もぜひご覧ください。また、セキュリティ関連のホワイトペーパー、E-book、アナリストレポートなどの資料はこちらからご覧いただけます。
Splunkはセキュリティチームをいつでも支援いたします。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。