サーチコマンド> coalesce

Tips & Tricks Splunk

このブログは、私が所属するセールスエンジニアグループ内で実施している「ブログソン(ブログマラソン)」シリーズの記事です。使用頻度の非常に低いSplunkのサーチコマンドについてのブログを誰が執筆できるか、グループ内で競い合っています。私が取り上げたのは、あまり話題になることのないcoalesceです。

coalesceコマンドの用途

多層防御」は、境界のセキュリティを守るために使用されていた古い手法です。この手法では、環境に侵入する前に「ハッカー」が乗り越えなければならない障壁をいくつも作るという考え方がとられています。悪意を持った人物の侵入を防ぐ一環として、複数のレイヤーに複数のベンダーを混在させていました。たとえば、ある時点で、あるベンダーのファイアウォールに悪用できる脆弱性があっても、他のベンダーのファイアウォールにはない可能性があるため、理論的には攻撃にさらされる可能性が下がります。この昔ながらの多層防御戦略をとっている場合も、他企業との合併の結果である場合も、マルチベンダー環境は今もリスクの原因となっています。セキュリティの担当者にとって、多層防御で脅威が減るメリットより、一元管理がもたらすスピードや利便性のメリットの方がはるかに大きいことは、だいぶ前からの常識です。昔のことはご存じないかもしれませんが、今でさえ大企業の50%以上が、ベンダーごとに異なるコンソールを使用して一つひとつ手動で自社のネットワークセキュリティを管理しているのです。

こうした混在環境では、大量のマシンデータが生成されますが、生成されるデータ内のフィールドのラベル付け方法が異なるため、ロギングの標準は到底維持できません。たとえば、あるベンダーはソースIPに「sip」というラベルを付け、別のベンダーは「src_ip」というラベルを付けているということがあるでしょう。Windows OSのバージョンごとに異なるイベントIDをロギングするケースもあり得ます。デスクトップファイアウォールのイベントIDが異なっていても(たとえば、852、4946、4947、4948など)、表しているのは同じイベントです。
coalesceは、この問題を解決します。

このあとの2つ目のユースケースでご紹介するように、coalesceコマンドは、フィールド名を同じ値に正規化します。coalesceが合体に使用するのは、最初のNull以外の値です。

以下のユースケースから、従来のリレーショナルデータベースでは同じことを実行するスキーマを構築するのがいかに難しいか、ご想像いただけると思います。しかし、Splunkを使用すれば簡単です。

coalesce:

サンプルデータ:
Thu Mar 6 11:33:49 EST 2014 src_ip=1.1.1.1
Thu Mar 6 11:33:45 EST 2014 sourceip=8.1.2.3
Thu Mar 6 11:33:48 EST 2014 source_ip=1.1.1.0
Thu Mar 6 11:33:47 EST 2014 sip=1.1.1.199
Thu Mar 6 11:33:46 EST 2014 ip=
Thu Mar 6 11:33:46 EST 2014 ip=22.22.22.22

この例では、ソースIPを表す、ばらばらなキーをすべて「coalesce(合体)」して、src_ipという共通の名前にまとめ、統計計算を行いやすいようにします。

上記のデータをfirewall.logという名前のファイルにコピーし、以下のワンショットコマンドを使用して、ファイルをインデックスしてみてください。

./splunk add oneshot “/your/log/file/firewall.log” –sourcetype firewall

sourcetype=firewall
|eval src_ip = coalesce(src_ip,sourceip,source_ip,sip,ip)

以下の例でも、coalesceが便利でパワフルなことがわかります。

Wed Mar 12 10:53:55 EDT 2014 bytesIN=10000000000
Wed Mar 12 10:53:55 EDT 2014 bIN=10000000000

sourcetype=firewall
| eval TotalGBIn = coalesce(bytsIN, bIN)/1024/1024/1024

SecondBlogUpload

上記のユースケースでは、bytesINやbINといったフィールドがありますが、これらが表している値はどの時点でも同じです。coalesceコマンドは、配列内の最初のNull以外の値を使用し、異なるすべてのフィールドを1つのフィールドにまとめて、他のコマンドで使用できるようにします。

Splunkのメリットをどうぞお試しください。

----------------------------------------------------
お読みいだたき、ありがとうございました。
David Croteau

このブログはこちらの英語ブログの翻訳、船山 健介によるレビューです。

関連記事

新しくなったMicrosoft Teams Add-on for Splunkの設定方法
Tips
5 分程度

新しくなったMicrosoft Teams Add-on for Splunkの設定方法

新しくなったMicrosoft Teams Add-on for Splunk(バージョン2.0.0)の設定手順を解説します。初期設定の簡素化、必要なAPI権限の削減、過去の通話記録データの取得などの変更点を紹介します。
Splunkが提供する無料トレーニング:オブザーバビリティ編 (1)
Tips
3 分程度

Splunkが提供する無料トレーニング:オブザーバビリティ編 (1)

Splunkが無料でEラーニングコースを提供していることをご存じでしょうか?コンテンツの日本語化が進み、無料トレーニングの中には日本語で学習できるものもあります。今回は日本語で学習できるオブザーバビリティ関連の無料トレーニングの受講方法を紹介します。
Skipped & Deferred Searchを理解する(パート2)
Tips
24 分程度

Skipped & Deferred Searchを理解する(パート2)

予定されていたサーチが何らかの理由で実行されない場合、そのサーチはスキップ(skipped)または延期(deferred)されます。パート2ではその主な原因やベストプラクティス、トラブルシューティングを解説しています。