TIPS & TRICKS

サーチコマンド> coalesce

このブログは、私が所属するセールスエンジニアグループ内で実施している「ブログソン(ブログマラソン)」シリーズの記事です。使用頻度の非常に低い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)

FirstBlogUpload

以下の例でも、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

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

Splunk
Posted by

Splunk

世界の様々な企業が、デジタルシステムの安全性と信頼性を維持するためにSplunkを信頼しご利用いただいています。Splunkのソフトウェアソリューションとサービスは、ビジネスの継続に関わる重大な問題を未然に防ぎ、回復力を高め、イノベーションを加速します。Splunkの機能Splunkが選ばれる理由をご覧ください。