Zabbix から ESET File Security for Linux v7.2 のウイルス検出を監視する

Zabbix から ESET File Security for Linux v7.2 のウイルス検出を監視する

こんにちは、じんないです。

以前の記事でもご紹介しましたが、ESET File Security for Linux v7.2 では管理プログラムを使用しないとマルウェア検出などのセキュリティアラートが発生した場合にメール通報を行うことができません

今回は管理プログラムは使用せずに Zabbix から ESET File Security for Linux v7.2 のウイルス検出を監視する方法をご紹介します。

管理プログラムを使った方法もご紹介していますのであわせてご参照いただければと思います。 ESET Security Management Center (ESET PROTECT) でマルウェア検出時にメール通報を行う方法

想定環境

  • 監視対象サーバー
    • CentOS 7.9
    • ESET File Security for Linux v7.2
  • 監視サーバー
    • Zabbix Server 5.0 LTS

前提

  • ESET File Security for Linux v7.2 がすでにインストール済みであること。
  • 監視対象サーバーに Zabbix Agent がインストール済みで Zabbix Server から監視できる環境であること。

また、Zabbix の基本操作については記載を割愛しています。

概要

監視の大まかな流れは下記のとおりです。

  1. /opt/eset/efs/bin/lslog -dc コマンドを実行することで、ESET イベントログ内の検出イベントが出力されるので、これをログファイル /var/log/eset-detection.log にリダイレクト(上書き)する。

※この処理は cron などで 10分毎などに実施

  1. Zabbix Agent からログファイルを監視し、前回よりもログが増えている場合にトリガー(メール通報)させる。

ログローテーションは ESET 側で行い、OS 側では行いません。ESET のログ設定は 設定 > ツール > ログファイル から可能です。

monitor eset file security virus detection from zabbix 1

OS 側の設定

検出ログを出力させるためのログファイルの作成します。Zabbix Agent からログの読み取りができるようグループを zabbix に変更しておきましょう。

touch /var/log/eset-detection.log
chown root:zabbix /var/log/eset-detection.log

cron (/var/spool/cron/root) を設定し、10分毎に検出イベントをログファイルに反映させるようにします。実行間隔はお好みで設定してください。

*/10 * * * * /opt/eset/efs/bin/lslog -dc > /var/log/eset-detection.log

Zabbix Server 側の設定

テンプレート作成

ESET 監視用のテンプレートを作成します。名前は ESET Security Check としました。このテンプレートにアイテムとトリガーを作成します。

monitor eset file security virus detection from zabbix 2

アイテム

アイテムは以下の2つを作成します。

  • ESET Detection Logs
  • ESET Detection Count (トリガーあり)

monitor eset file security virus detection from zabbix 3

ESET Detection Logs

ログファイル /var/log/eset-detection.log をウォッチするだけのアイテムです。ヒストリを 365day として検出ログを保全します。

  • 名前: ESET Detection Logs
  • タイプ: Zabbixエージェント(アクティブ)
  • キー: log[/var/log/eset-detection.log]
  • データ型: ログ
  • ヒストリの保存期間: 365d

monitor eset file security virus detection from zabbix 4

ESET Detection Count

ログファイル /var/log/eset-detection.log の行数をカウントするアイテムです。

  • 名前: ESET Detection Count
  • タイプ: Zabbixエージェント(アクティブ)
  • キー: log.count[/var/log/eset-detection.log]
  • データ型: 数値(整数)
  • ヒストリの保存期間: 90d ※デフォルト
  • トレンドの保存期間: 365d ※デフォルト

monitor eset file security virus detection from zabbix 5

トリガー

アイテム ESET Detection Count でカウントした値が前回カウントした値よりも大きければトリガーさせるよう設定します。また、正常イベントの生成をなしにすることで自動復旧させないようにし、ログを確認した後に障害をクローズするようにします。

  • 名前: ESET Security Alert: {HOST.NAME}
  • 深刻度: 重度の障害
  • 条件式: {ESET Security Check:log.count[/var/log/eset-detection.log].last()}>0
  • 正常イベントの生成: なし
  • 手動クローズを許可: チェック

monitor eset file security virus detection from zabbix 6

ここまで完成したら、テンプレートを監視対象サーバに割り当てます。

また、テンプレート登録用の xml を用意しておきましたので活用してください。

<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
    <version>5.0</version>
    <date>2021-08-18T08:18:48Z</date>
    <groups>
        <group>
            <name>Templates</name>
        </group>
    </groups>
    <templates>
        <template>
            <template>ESET Security Check</template>
            <name>ESET Security Check</name>
            <groups>
                <group>
                    <name>Templates</name>
                </group>
            </groups>
            <applications>
                <application>
                    <name>detection-logs</name>
                </application>
            </applications>
            <items>
                <item>
                    <name>ESET Detection Count</name>
                    <type>ZABBIX_ACTIVE</type>
                    <key>log.count[/var/log/eset-detection.log]</key>
                    <applications>
                        <application>
                            <name>detection-logs</name>
                        </application>
                    </applications>
                    <triggers>
                        <trigger>
                            <expression>{last()}>0</expression>
                            <recovery_mode>NONE</recovery_mode>
                            <name>ESET Security Alert: {HOST.NAME}</name>
                            <priority>HIGH</priority>
                            <manual_close>YES</manual_close>
                        </trigger>
                    </triggers>
                </item>
                <item>
                    <name>ESET Detection Logs</name>
                    <type>ZABBIX_ACTIVE</type>
                    <key>log[/var/log/eset-detection.log]</key>
                    <history>365d</history>
                    <trends>0</trends>
                    <value_type>LOG</value_type>
                    <applications>
                        <application>
                            <name>detection-logs</name>
                        </application>
                    </applications>
                </item>
            </items>
        </template>
    </templates>
</zabbix_export>

動作確認

監視対象サーバーでテストウイルス eicar をダウンロードします。

wget www.eicar.org/download/eicar.com.txt

cron が実行されると、検出イベントがログファイルに反映されます。それを Zabbix が検知し障害情報として登録されます。

monitor eset file security virus detection from zabbix 7

アクション設定をすれば下記のようにメール通報を行うこともできます。

monitor eset file security virus detection from zabbix 8

[監視データ] > [最新データ] から ESET Detection Logs のヒストリを参照することで、検出イベントのログを確認することができます。

monitor eset file security virus detection from zabbix 9

monitor eset file security virus detection from zabbix 10

障害情報をクローズするには、障害情報をクリックし 障害確認障害のクローズ にチェックを入れて更新すれば OK です。

monitor eset file security virus detection from zabbix 11

ではまた。

参考

jinna-i