こんにちは | 壁 |д゚)チラッ
技術本部のAIです。古い人間なので表情豊かな顔文字が好きです。
さてさて、今回はSIEM製品であるSumo LogicでInstalled Collectorで取り込んでいるWindowsログに条件を設定して、特定のログを取り込む/取り込まない方法をご紹介します。
現在のFlexライセンスはログの取り込みは課金対象ではなくなりましたが、以前のライセンス(Essentials)をご契約いただいているお客様の中には特定のログを除外したいと考えている方もいらっしゃると思います。
そのため、今回はログの取り込む条件の設定方法についてご紹介いたします。
またFlexライセンスについて詳しく知りたい方はこちらをご参照ください。
使用するログフィルターとは
まず今回使用する機能についてご紹介します。
本記事では分かりやすさを優先しログフィルターと記載しておりますが、実際の名称は「Processing Rules」と言います。
本設定は、ログソースからSumo Logicに送信されるデータをフィルタリングし、転送することができます。
設定したルールはSumo Logicに送信されるデータにのみ影響し、お客様側のログとメトリクスはそのまま残ります。
本設定を使用してコレクターによってフィルタリングされたデータは、Sumo Logicクラウドにアップロードされないため、1日に使用できるデータ量の制限にはカウントされません。
フィルターとアクションのオプションはそれぞれ2つあり、合計4つご紹介します。
フィルターオプション:
- 一致するメッセージを除外 (Exclude messages that match)
正規表現で一致したメッセージは、取り込み対象外のログとしてスキップされ、Sumo Logicにアップロードされません。
除外リスト(denylist)フィルターのイメージです。
- 一致するメッセージを含める (Include messages that match)
正規表現で一致したメッセージのみSumo Logicにアップロードされます。
除外したいメッセージをすべて除外フィルターで設定するよりも、送信したいログデータのリストをフィルターするほうが簡単な場合にこのタイプのフィルターは非常に役立ちます。
アクションオプション:
- 一致するメッセージをハッシュ化 (Hash messages that match)
機密情報や専有情報を保護するために、メッセージを一意のランダムに生成されたコードに書き換えます。
例えばクレジットカードの番号やユーザ名など、一意の識別子をハッシュ化したい場合に有効です。
このタイプのデータをハッシュ化することで、完全に隠されていても追跡することができます。
- 一致するメッセージをマスク (Mask messages that match)
カスタマイズ可能なマスク文字列で式を置き換えます。
これは通常追跡しないパスワードなどのデータを保護するためのオプションです。
本記事ではフィルターオプションを使った設定を説明するため、アクションオプションの説明はいつか機会があれば…。
背景(シナリオ)
たとえば、Essentialsライセンスで契約してSumo Logicをご利用いただいているユーザA様がいらっしゃいます。
ここ数カ月でSumo Logicに取り込むログ量が増えてきていることに気づきました。
このままでは契約期間より前にクレジットが枯渇してしまうため、一時的な対策として特に多いWindowsログを減らすことに決めました。
テリロジーに問い合わせたところ、取り込むログに対してフィルターを設定することで不要なログを除外、もしくは特定のログのみ取り込むことができることを知りました。
実際テリロジーからもらった回答をもとに、設定していこうと思います。
事前準備
- Installed Collector
- Windowsログを取り込んでいるデータソースおよびSource Category
- WindowsログフォーマットはJSON形式で取り込んでいること
本記事ではWindowsログの取り込み方法は割愛するため、Sumo Logic社のヘルプページをご参照ください。
ログの取り込み状況は、[Logs]->[Live Tail]にてリアルタイムで表示させながら確認していきます。
ログフォーマットはレガシーでもログフィルターを設定することは可能ですが、正規表現の表現方法が少し違います。
今回は上記の前提で進めるためレガシーでの表現方法は割愛しますが、気になる方は弊社サポートサイトにお問い合わせください。
設定したい条件
今回は以下の2点の条件を設定し、どちらかに一致するログを取り込んでいきたいと思います。
- EventIDが5158であり、Applicationが「\\device\\harddiskvolume3\\program files\\google\\chrome\\application\\chrome.exe」であること
- EventDataの中にあるSourceAddressの値が「127.0.0.1」であること
完成形はこちらです。
設定する前に…
まず取り込み状況を確認するため、対象ログソースのSource Categoryをコピーし、Live Tailのクエリ欄に_sourceCategoryでSource Categoryを指定し、Runで実行します。
画面右上の「A」アイコンをクリックすると、入力した値にハイライトを付ける機能がありますので、今回キーワードとなる値を設定しようと思います。
条件①を設定してみよう!
ではログフィルターを設定したいWindowsのログソースをEditします。
画面を下までスクロールすると、Processing Rules for Logs がありますので、条件を設定していきます。
現在はログの取り込み条件を指定していないため、「No rules defined」と表示されています。
Add Ruleボタンをクリックして、1つ目の条件を設定するため、ルール名とFilter(正規表現)、Type(Exclude/Include)を入力します。
- Name :include 5158 and chrome.exe
- Filter :(?s).*\"EventID\"\:\"5158\".*\"Application\"\:\"\\\\device\\\\harddiskvolume3\\\\program files\\\\google\\\\chrome\\\\application\\\\chrome\.exe\".*(?s)
- Type :Include message that match
このように入力できましたら、Applyボタン -> Saveボタンをクリックして設定を反映します。
Live Tailを見ると、条件に一致したログのみ取り込まれるようになりました!
条件②を設定してみよう!
では同じように2つ目の条件を設定していきましょう。
対象ログソースのProcessing Rules for LogsのAdd Ruleボタンをクリックし、条件を入力します。
- Name :include src 127.0.0.1
- Filter :(?s).*\"EventData\"\:.*\"SourceAddress\"\:\"127\.0\.0\.1\".*(?s)
- Type :Include message that match
このように入力できましたら、Applyボタン -> Saveボタンをクリックして設定を反映します。
2つ目の条件も反映されていることを確認できました!
まとめ
ログフィルターを使って条件にあうログだけを取り込めるようになりましたが、いかがでしたか?
正規表現が苦手と感じる方は、https://regex101.com/ を使ってみるのも良いと思います。
ただ、それでも難しいと感じる際は弊社サポートサイトにぜひお問い合わせください!
ログを過度に制限すると、重要なログやアラートを見逃してしまうことがあります。
特別な事情以外ではすべてのログを取り込むことを推奨しております。
ではまた~ノシ
- カテゴリ:
- Sumo Logic