【SSB】パターンデータベースの活用法

螺子です。本記事では、SSBのパターンデータベースの活用法を紹介します。

はじめに

SSBのパターンデータベースを利用すると以下のことを実現できます。

  • リアルタイムアラート(パターンデータベースアラート)
  • パターンパーサーマクロの利用
  • カスタムレポートの生成

本記事では、以下のログ(SSHアクセスの失敗)について、パターンデータベースを利用して上記のことを実行してみます。

<34>Oct 11 22:14:15 mymachine sshd[12]: Failed password for invalid user root from 192.168.10.169 port 13035 ssh2	// SSHアクセスの失敗ログ例

また、本記事では、ステップバイステップでの操作方法をメインに説明しています。パターンデータベースとは何か?など、概念的な説明などは省いています。これらについては、過去記事「不正アクセスされていない?認証エラーのログを見逃さない!(パターンデータベースアラート)」をご参照ください。

パターンデータベースアラート

パターンデータベース設定

[Log]>[Pattern Database]に移動して、パターンデータベースを作成します。

図1. パターンデータベース設定
  • ①:パターンデータベース名を設定します。
  • ②:プログラムパターンを設定します。ここでは、ログのsshd[12]の部分に該当します。
  • ③:パターンルールを設定します。
  • ④:クラスを設定します。ここでは、アラートメールを発生させる為、`Violation`を選択します。

パターンルールの説明

パターンルールは、ログメッセージに一致するパターンを入力します。

ログにはSSHアクセスするユーザー、アクセス元IPおよびポート番号が出力されていますが、これらの値は任意(不特定)となります。これらの、任意の値を解釈する為にパターンパーサー(例、@QSTRING:: @)を使用します。

パターンルールは、ログメッセージを以下のように解釈(パース)して、ログメッセージがパターンルールと一致しているか判断します。

Failed password for invalid user@QSTRING:: @from @IPvANY@ port @NUMBER@ ssh2
└-----------------------------┴----------┴---┴------┴----┴------┴---┘
               ①                    ②      ③     ④     ⑤     ⑥     ⑦
  • ① :”Failed_password_for_invalid_user”までメッセージをパースします。
  • ② :@QSTRING::_@は、スペースに囲まれた任意の文字列をパースします。ログ例では、”_root_”部をパースします。
  • ③ :”from_”までパースします。
  • ④ :@IPvANY@は、任意のIPアドレスをパースします。ログ例では、”192.168.10.169″部をパースします。
  • ⑤ :”_port “までパースします。
  • ⑥:@NUMBER@は、任意の数値をパースします。ログ例では、”13035”部をパースします。
  • ⑦:最後の”_ssh2″までパースします。

※ここでは、スペースを明確に表すために、スペースをアンダースコア(_)に置き換えています。

アラートの有効化

[Log]>[Options]>[Alerting]を有効にします。無効の場合、メールアラートは送信されません。

図2. アラートの有効化

※[Alert email]が未入力の場合は、[Basic Settings]>[Management]>[Mail settings]で設定したアラートメールアドレスにアラートが送信されます。

※アラートメールが正しく送信されるように、[Basic Settings]>[Management]の[Mail settings]セクションでメールサーバーが適切に設定されている必要があります。

アラートメール

ユーザーやIPアドレスが異なる場合でも、パターンルールに一致したメッセージがアラート送信されています。異なるユーザーや異なるIPアドレスでもアラートが送信されているのがわかります。

図3. アラートメール例1
図4. アラートメール例2

また、アラートの発生は、[Search]>[Log Alerts]ページで確認できます。

図5. アラートメッセージ検索

パターンパーサーマクロの利用

名前付けパーサーの使用

上記で設定したパターンルールを以下のように変更します。

Failed password for invalid user@QSTRING:.ssh.user: @from @IPvANY:.ssh.src@ port @NUMBER:.ssh.srcPort@ ssh2

例えば、@QSTRING:: @を、@QSTRING:.ssh.user: @に変更しました。パーサーに名前をつけて後からマクロとして使用できるようにします。ここでは、パーサー名を”.ssh.user”にしています。

名前付けされたパーサーは、その(パーサー)値をマクロ(name-value)として、検索時の動的カラムやフィルター条件などに使用することができます。

動的カラムの追加

[Search]>[Logspaces]で検索画面に移動し、をクリックします。

図6. Customize columnsボタン例

[Customize columns]の画面で、パーサー名(マクロ名)の+をクリックして動的カラムを追加します。

図7. Customize columns設定例1
図8. Customize columns設定例2

動的カラムが追加され、その値がリストされていることがわかります。

図9. 動的カラム追加例

動的カラム(name-value)の検索

動的カラムの値を検索するには、マクロ名の前に`nvpair:`プレフィックスを追加して以下の検索式を使用します。

nvpair:.ssh.user=root       // 動的カラムの検索式例

ここでは、ユーザーが`root`のログを検索しています。

図10. 動的カラム検索例

マクロを使用したフィルター

名前付けされたパーサーの値は、マクロとしてフィルター条件に設定できます。

フィルター条件は、パスのカスタムフィルター(`Custom filter`)に以下のように記述することができます。

match("root" value(".ssh.user"))               // カスタマーフィルター式例
図11. マクロのカスタムフィルター例

カスタムフィルターについては、過去記事「SIEMのコスト削減とパフォーマンス向上(誤検知防止)の技-その2.フィルター(Custom filter)」も参考にしてください。

カスタマーレポート

統計情報の表示

統計情報を表示したいカラムのをくりっくします。ここでは、`.ssh.src`はSSHアクセス元のIPアドレスです。

図12. 統計情報ボタン例

統計情報が表示されます。[Report settings]をクリックします。

図13. 統計情報レポート設定例1

レポートサブチャプター名(ここでは、ssh_src)を入力し、レポートの表示方法(ここでは、Pie chart)を選択し、[Save as Report subchapter]をクリックして、設定を保存します。

図14. 統計情報レポート設定例2

同様に`.ssh.user`(アクセスユーザー)についてもレポートサブチャプターを作成し、カスタムレポートに含めます(詳細については割愛します)。

カスタムレポートの作成

[Reports]>[Configuration]に移動し、カスタムレポートを作成します。

カスタムレポートについては、過去記事「サービス残業させていない?レポートを日ごと、週ごと、月ごとに定期的に送信!」も参考にしてください。

新規にレポートを作成し、チャプター名およびサブチャプターを登録します。

図15. カスタムレポート[Add Subchapter]設定例

カスタムレポートの設定は以下のようになります。

図16. カスタムレポート設定例

カスタムレポートの出力

カスタムレポートの出力イメージは以下のようになります。レポートは定期的(日次、週次、月次)に生成して管理者に送信できますので、日々の確認業務などに有益に使用できます。

図17. カスタムレポート出力例1
図18. カスタムレポート出力例2

おわりに

いかがでしたでしょうか?

パターンデータベースを利用することで、特定のログメッセージを受信した場合にアラートの生成やメッセージ内の特定の値について検索やフィルター、あるいはレポートの生成ができるようになりました。

SSBの機能

本記事で使用したSSBの機能は以下の通りです。

  • パターンデータベース
  • カスタム統計情報およびカスタムレポート

参考資料

パターンデータベースおよびカスタム統計情用/カスタムレポートの詳細については、syslog-ng Store Box 7 LTS管理者ガイドの「14 パターンデータベースによるメッセージのクラス分け」および「12.3 ログデータからカスタム統計情報の作成」と「13.7 レポート」を参照してください。

過去連載記事

「SIEMのコスト削減とパフォーマンス向上(誤検知防止)の技」連載記事リスト

「リモートアクセスログを調査」連載記事リスト

「syslog-ng Store Box大活用連載企画」連載記事リスト



SSBは、高信頼ログ管理アプライアンスです。様々なデバイスおよびアプリケーションからログメッセージを収集、分類、フィルタリング、正規化して安全に保存可能です。ログデータの信頼性を担保し、膨大なログが発生する高負荷環境、あるいはログロストが許されない企業・組織のログ管理に最適です。

syslog-ng Store Boxについての詳細は、製品紹介ページ・製品ガイドをご参照ください。

こんな記事も読まれています

最新記事

おすすめ記事

  1. 産業スパイを発見し、防ぐ方法とは

  2. Flexible NetFlowとは?を5分で理解する

  3. WinSyslog 使い方ガイド#2 受信時刻とデバイスタイムスタンプ両方を出力する

製品カテゴリー

JTC IT用語集
TOP