不正アクセスされていない?認証エラーのログを見逃さない!(パターンデータベースアラート) ~ syslog-ng Store Box (SSB)でリモートアクセスログを調査(その10)~

螺子です。お久しぶりです。前回の投稿から少し時間が空いてしまい、IPAから新たに「情報セキュリティ10大脅威 2023」が発表されてしまいました。2022版を話題にして記事を執筆していたのですが、月日が経つのは早いものですね..orz。

本連載記事では、リモートアクセスログを、さまざまなsyslog-ng Store Box (SSB)の機能を使用して調査してみます。
(リモートアクセスのセキュリティ対策については、こちらをご参照ください。)

はじめに

IPAから「情報セキュリティ10大脅威 2023」が発表されました。組織の脅威として「テレワーク等のニューノーマルな働き方を狙った攻撃」がランクイン(5位)[1]しています。ランキングは前年度より1つ下がったものの、脅威としては依然として注意が必要ではないでしょうか?

テレワークなどで利用されるリモートアクセスは、これらの脅威に常に晒されています。

前々回の記事ではそれらの脅威に対して認証エラーログおよびその早期検知の重要性について説明し、ログ管理サーバーで一つの対策を施しました。

また、総務省が公開している「テレワークセキュリティガイドライン(第5版)」には対策の一つとして以下[2]があげられています。

不審なログが記録された際に、自動的にアラートが通知されるようにする。

前回の記事では、SSBのコンテンツベースアラート機能を使って認証エラーログが発生した場合に管理者にアラートを通知しました。

今回は、SSBの”パターンデータベースアラート”機能を使って認証エラーログが発生した場合に管理者にアラートを通知してみます。以下では`コンテンツベースアラート`と`パターンデータベースアラート`の違いについても述べています。

[1]「情報セキュリティ10大脅威 2023」より
[2]「テレワークセキュリティガイドライン(第5版)」「10.インシデント対応・ログ管理」の”J-10″より

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

SSBは、パターンデータベースを使用してパターンに一致したメッセージをクラス分けできます。クラスは、`Violation`、`Security`、および`System`の3種類のうち一つを指定できます。また、どのパターンにも一致しなかったメッセージは`Unknown`としてクラス分けされます。

[Log]>[Options]>[Alerting]でアラートが有効の場合、SSB は、`Violation`にクラス分けされているメッセージを受信したしたときに、管理者にe-mailアラートを送信します。

コラム: パターンデータベースとArtificial ignorance(人工無能)

パターンデータベースは、ログの処理方法としてMarcus J. Ranum (MJR) が述べている`artificial ignorance(人工無能または人口無知)`を使用してログメッセージを調べる方法を提供します。

Artificial ignorance は、異常を検知する方法です。
ログ分析に適用した場合、通常の一般的なログメッセージ、すなわちシステムの一般的な動作の結果を無視します。
ただし、以前のログに発生していない新しいメッセージは、重大なイベントの可能性があるので、調査する必要があります。「これまで見たことのないものは異常と定義します("By definition, something we have never seen before is anomalous" (Marcus J. Ranum))」。

SSBは、パターンデータベースを使用してメッセージをクラス分けできます。
メッセージが、どのパターンにも一致しないメッセージは`unknown`としてクラス分けされます。
`unknown`メッセージを調べて、より多くのメッセージのクラス分けを繰り返すことにより、本当に異常なメッセージが`unknown`として表示されます。

参考:
syslog-ngでのログメッセージの解析「4 Artificial ignorance(人工無能)」
syslog-ng PE管理者ガイド「16.1.3 Artificial ignorance(人工無能)」

パターンデータベースのルールセット設定

まず、パターンデータベースのルールセットを設定します。

[Log]>[Pattern Database]に移動し、新しいルールセットを記述します。

図1. 新しいルールセットの設定例

[Name]フィールドに適切なルールセットの名前を入力し、[Program pattern]フィールドにアプリケーションに名前、またはアプリケーションに一致するパターンを入力します。

[Pattern]フィールドに、ログメッセージに一致するパターンルールを入力します。

[Class]フィールドからメッセージのクラスを選択します。ここでは、アラートを通知するのに`Violation`に設定します。

[Commit]をクリックして、設定を保存します。

ここでは、以下のようなログメッセージに一致するパターンルールを作成しました。

……xauthuser="<ユーザー名>" xauthgroup="N/A" …… status="failure" result="XAUTH authentication failed"……
@ESTRING::xauthuser=@@QSTRING:.SDATA.pdb.user:"@@ESTRING::result="XAUTH authentication failed"@@ANYSTRING@

パターンルールのパターンパーサーについて簡単に説明します。

  1. 最初の`@ESTRING::xauthuser=@`で、メッセージの`xauthuser=`(ストップ文字列)まで任意の文字と一致させます。
  2. 2番目の`@QSTRING:.SDATA.pdb.user:”@`で、引用符(“)間の文字列(ユーザー名)に一致させます。名前付きパーサーなのでマクロ(`.SDATA.pdb.user`)に`<ユーザー名>`が挿入されます。
  3. 3番目の`@ESTRING::result=”XAUTH authentication failed”@`で、`result=”XAUTH authentication failed”`(ストップ文字列)まで任意の文字と一致させます。
  4. 最後の`@ANYSTRING@`は、メッセージの最後まですべてを一致させます。

上述のパターンルールに一致したメッセージが`Violation`のクラスに割り当てられます。

e-mailアラートの有効化

`Violation`にクラス分けされているメッセージについてアラートを送信するように、[Log]>[Options]>[Alerting]を有効化します。

必要に応じて、[Rate limit]で1分間に生成されるアラート数を制限し、[Alert email]にアラートの送信先メールアドレスを入力します(未入力の場合は、[Basic Settings]>[Management]>[Mail settings]で設定したアラートメールアドレスにアラートが送信されます)。

図2. e-mailアラートの有効化例

[Commit]をクリックして、設定を保存します。

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

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

図3. [Log Alerts]例

パターンデータベースアラートメール例

`Violation`のクラスのメッセージを受信すると直ぐに、管理者に以下のようなアラートメールが送信されます。

コンテンツベースアラートと異なり、メッセージ本文がメールに出力されています。

図4. パターンデータベースアラート例

名前付きパーサー(マクロ)の利用例

クラスおよび名前付きパーサーはマクロとして、検索ページで利用できます。

クラスは`.classifier.class`で、ユーザーは名前付きパーサーで指定した`.sdata.pdb.user`で利用可能になっています。

図5. クラスおよび名前付きパーサーのマクロ例

パターンデータベースアラートの留意点とコンテンツベースアラートとの違い

パターンデータベース(パーサー)の使用はCPUに負荷をかけます。処理を実行するのに十分にリソースがあることを確認してください。事前に検証することをお勧めします。

パターンデータベースアラートコンテンツベースアラート
対象ログ受信したログすべて。ログスペースに保存されたログ。
一致方式パターンパーサー式。検索ページで利用できる式。
アラート内容ログメッセージ自身。該当メッセージを参照する検索ページへのリンク(URL)。
利用シーン例特に重要なログのログ自体を通知する場合。同じ条件で定期的に検索してチェックする場合。
表1. パターンデータベースアラートとコンテンツベースアラートの差異

SSBの機能

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

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

参考資料

パターンデータベースによるメッセージのクラス分けの詳細については、syslog-ng Store Box 6 LTS管理者ガイドの「14 パターンデータベースによるメッセージのクラス分け」を参照してください。

いかがでしたでしょうか。今回は、”パターンデータベースアラート”機能を使って認証エラーログが発生した場合に管理者にアラートを通知してみました。

それでは、次回の連載記事をお楽しみに!

これまでの「リモートアクセスログを調査」連載記事

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



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

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

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

最新記事

おすすめ記事

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

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

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

製品カテゴリー

JTC IT用語集
TOP