
CISOレポート
デジタルレジリエンスへの道を取締役会と共に歩む
CISOと取締役会はかつてないほど緊密に連携しています。それぞれが果たすべき役割はまったく異なるため、成功指標に対する認識にずれがあります。
周囲をすばやく観察し、その情報に基づいて計画を立て、実行する。これはサイバーセキュリティにおいても人生においても欠かせないスキルです。
新しい環境でハンティングを行うときは、実際の作業に入る前に、そのプロセスを確認しておくことが重要です。このチュートリアルでは、新しい環境で脅威ハンティングを行うという冒険的な体験を乗り越えるための方法をご紹介します。
脅威ハンティングを日常的に行っている場合でも、初めて行う場合でも、このチュートリアルを読めば役に立つヒントが見つかるはずです。この記事は以下の4つのセクションで構成されています。
このチュートリアルはSplunkユーザー向けで、データがすでにSplunkに取り込まれていることを前提としています。Splunkにデータを取り込む方法については多くのブログ記事でご紹介しているので省略し、ここでは、それらのデータから情報を引き出そうとするアナリストの皆様を対象にご説明します。
(この記事は「Splunkで脅威ハンティング」シリーズの一部で、初稿はJohn Stonerによって書かれました。お客様に最大限の価値を提供できるよう、その内容を最近更新しました。)
ハンティングを始めるときは、目的を明確にすることが大切です。どこで何を探すかを決めるために役立つ方法がいくつかあります。
たとえば、WindowsシステムでPowerShellが実行されていると仮定すれば、ハンティングで何に集中すべきかがわかり、他の脅威の痕跡を求めてわき道にそれることもなくなります。
もちろん、他の脅威の痕跡が実際に見つかった場合はメモしておき、あとでその脅威を仮定してハンティングを行いましょう。
Splunkコンソールを見ると、多数のデータソース(sourcetypes)の、数日、数週間、数カ月、または数年にわたるデータが表示されているはずです。
まずは、対象とするデータと期間を絞り込んで、特定の範囲またはサブセットに限定します。もちろん、その範囲外のデータは調べなくてよいというわけではありませんが、最初は効果を上げるために対象を絞ります。
では、どうやって絞り込めばよいでしょうか。期間から見ていきましょう。
Splunkサーチバーの右側にはタイムピッカーと呼ばれるドロップダウンがあり、これを使ってサーチの対象とする期間を設定できます。このドロップダウンをクリックすると、複数のプリセットの期間が表示されます。また、日時を指定して検索範囲を設定することもできます。ハンティングを行うときは常に、このタイムピッカーでサーチを絞り込むことが非常に重要です。
データソース(sourcetypes)を限定するときは、利用可能なソースタイプを把握しておく必要があります。利用可能なソースタイプをすばやく調べるには、metadataコマンドを使って次のように指定します。
| metadata type=sourcetypes | sort - totalCount
この例では、以下の情報を含むリストが表示されます。
(このサーチについて詳しくは、ブログ記事「metadataとtstatsを活用した脅威ハンティング」をご覧ください。)
仮説(目的)、期間、ソースタイプが決まったら、データを掘り下げていきます。次に考えるのは、対象にするデータの種類です。これは、最初に立てた仮説(目的)によって決まります。
ネットワークデータソースは、どのデータがどこに送信されたかを特定するために役立ちます。データがクラウドプロバイダーに送られたのか、社内のサーバーからワークステーションに送られたのかといった情報を把握することは非常に重要です。
ネットワークデータソースには以下のものがあります。
ワイヤーデータは、TCP、HTTP、SMTP、DNSなどのネットワークプロトコルごとに分類された、Splunk for Streamの形式で確認できます。
Splunk for Streamを使用していない場合でも、PCAPデータやZeekをお使いであれば、それらのデータセットから、組織のネットワークで使用している各プロトコルに関する有用なインサイトを得られます。
ネットワーク、システム、ユーザーの状況をより詳しく理解するには、ログイベントに加えて、コンテキストデータも入手する必要があります。検討すべきデータタイプには以下のものがあります。
データとコンテキストを確認し、期間を絞り込む方法がわかったら、Splunkサーチを実行します。Splunkでは、非体系的なアプローチと体系的なアプローチのどちらでもサーチを実行して結果を得られます。
私は、ハンティングで何を探すかが明確になっていない場合、最初は広い範囲でサーチを行うことにしています。それには以下のような理由があります。
この例では、Microsoft Sysmonデータを対象に、2017年8月23日に発生したイベントをサーチしています。(もちろん、このデータがやや古いことは承知していますが、このデータの内容とそこから学べることは今でも非常に有用です。)
sourcetype="xmlwineventlog:microsoft-windows-sysmon/operational"
このサーチで約40,000件のイベントが見つかりました。ここから、利用可能なフィールドを使用することで、サーチ結果を大幅に絞り込むことができます。しかも、いくつかのフィールドをポイントしてクリックするだけでそれが可能です。例として、Amber Turingというユーザーが実行したアクティビティを探します。
sourcetype="xmlwineventlog:microsoft-windows-sysmon/operational" user="FROTHLY\\amber.turing"
この結果から、Amberが自身のシステムで「tor.exe」を実行したらしいことがわかります。興味深いですね。では、Splunkのすばらしい変換コマンドを使って、データを見やすくしましょう。
変換コマンドのことはご存じでしょうか?これらは、サーチの結果を受け取ってデータ出力を変換する、以下のようなコマンドです。
Splunkは、役に立つコマンドリファレンスを公開しています。私もよく参照しています。皆様もハンティングの際にぜひご活用ください!(Splunkのコマンドになじみがなく、いつもキーワードを使ってサーチを行っている場合でも、心配ありません。この脅威ハンティングシリーズは、その方法にも対応しています。)
無人島にSplunkコマンドを2つだけ持っていけるとしたら、私はstatsとevalを選びます。この2つはそのくらい強力です。この2つのコマンドを組み合わせたサーチの例をご紹介します。
sourcetype="pan:traffic" (src_ip=10.0.2.101 OR dest_ip=10.0.2.101) | stats count AS event_count sum(bytes_in) AS bytes_in sum(bytes_out) AS bytes_out sum(bytes) as bytes_total by src_ip dest_ip | eval mb_in=round((bytes_in/1024/1024),2) | eval mb_out=round((bytes_out/1024/1024),2) | eval mb_total=round((bytes_total/1024/1024),2) | fields - bytes* | sort - mb_total | head 10
この例では、Amberのシステムと他のシステムとの間で行われた通信の経路を確認しています。コンテキスト情報から、AmberのIPアドレスが「10.0.2.101」であることがわかっているので、1行目のサーチでは、そのIPアドレスが送信元または宛先になっているファイアウォールデータを探しています。
この2つが私のお気に入りのコマンドなので、ここで説明を終えてもよいのですが、さらに先のステップで使えるコマンドをもう少しご紹介しましょう。
これにより、Amberのシステムと大量にデータをやり取りしている外部の通信先トップ10がわかりました。すごいでしょう?
ハンティングを始めるときに覚えておくべき最後の重要なステップは、OSINT (オープンソースインテリジェンス)を活用することです。
私のお気に入りのOSINTサイトは「G」で始まります。おわかりですか?そう、google.comです。
Googleはハンティングで見過ごされがちですが、非常に強力なリソースです。私の記憶力では1,000以上あるWindowsイベントコードをすべて覚えておくことはできないので、こうした情報をすばやく検索できるだけでも十分な価値があります。
Google以外に役立つサイトとしては、以下のものがあります。
短時間で多くのことを学びましたね!サンプルデータセットを使ってハンティングのスキルを磨きたい場合や、新しい技法を試してみたい場合、または単にSplunkサーチの練習をしたい場合は、Splunk GitHubからBOTSデータセット(botsv3など)をダウンロードして、サンドボックス環境で使ってみてください。
また、このシリーズには他にもたくさんのチュートリアルが用意されているので、ぜひご覧ください。
Splunkはセキュリティチームをいつでもサポートします。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。