このブログは、私が所属するセールスエンジニアグループ内で実施している「ブログソン(ブログマラソン)」シリーズの記事です。使用頻度の非常に低いSplunkのサーチコマンドについてのブログを誰が執筆できるか、グループ内で競い合っています。私が取り上げたのは、あまり話題になることのないcoalesceです。
「多層防御」は、境界のセキュリティを守るために使用されていた古い手法です。この手法では、環境に侵入する前に「ハッカー」が乗り越えなければならない障壁をいくつも作るという考え方がとられています。悪意を持った人物の侵入を防ぐ一環として、複数のレイヤーに複数のベンダーを混在させていました。たとえば、ある時点で、あるベンダーのファイアウォールに悪用できる脆弱性があっても、他のベンダーのファイアウォールにはない可能性があるため、理論的には攻撃にさらされる可能性が下がります。この昔ながらの多層防御戦略をとっている場合も、他企業との合併の結果である場合も、マルチベンダー環境は今もリスクの原因となっています。セキュリティの担当者にとって、多層防御で脅威が減るメリットより、一元管理がもたらすスピードや利便性のメリットの方がはるかに大きいことは、だいぶ前からの常識です。昔のことはご存じないかもしれませんが、今でさえ大企業の50%以上が、ベンダーごとに異なるコンソールを使用して一つひとつ手動で自社のネットワークセキュリティを管理しているのです。
こうした混在環境では、大量のマシンデータが生成されますが、生成されるデータ内のフィールドのラベル付け方法が異なるため、ロギングの標準は到底維持できません。たとえば、あるベンダーはソースIPに「sip」というラベルを付け、別のベンダーは「src_ip」というラベルを付けているということがあるでしょう。Windows OSのバージョンごとに異なるイベントIDをロギングするケースもあり得ます。デスクトップファイアウォールのイベントIDが異なっていても(たとえば、852、4946、4947、4948など)、表しているのは同じイベントです。
coalesceは、この問題を解決します。
このあとの2つ目のユースケースでご紹介するように、coalesceコマンドは、フィールド名を同じ値に正規化します。coalesceが合体に使用するのは、最初のNull以外の値です。
以下のユースケースから、従来のリレーショナルデータベースでは同じことを実行するスキーマを構築するのがいかに難しいか、ご想像いただけると思います。しかし、Splunkを使用すれば簡単です。
サンプルデータ:
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
上記のユースケースでは、bytesINやbINといったフィールドがありますが、これらが表している値はどの時点でも同じです。coalesceコマンドは、配列内の最初のNull以外の値を使用し、異なるすべてのフィールドを1つのフィールドにまとめて、他のコマンドで使用できるようにします。
Splunkのメリットをどうぞお試しください。
----------------------------------------------------
お読みいだたき、ありがとうございました。
David Croteau
このブログはこちらの英語ブログの翻訳、船山 健介によるレビューです。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。