17 セキュリティのベストプラクティス

概要

このセクションには、Zabbix を安全に設定するためのベストプラクティスが含まれています。

このセクションのプラクティスは Zabbix の動作に必須ではありませんが、システムのセキュリティを向上させるために推奨されます。

UTF-8 エンコーディング

UTF-8 は、Zabbix でサポートされている唯一のエンコーディングです。
これは、セキュリティ上の欠陥なく動作することが確認されています。
他のエンコーディングの一部を使用すると、既知のセキュリティ上の問題があることに注意してください。

Windowsインストーラのパス

Windowsインストーラを使用する場合は、インストーラが提供するデフォルトのパスを使用することを推奨します。 適切な権限なしにカスタムパスを使用すると、インストールのセキュリティが損なわれる可能性があります。

ユーザー定義グローバルスクリプト内のマクロ

セキュリティを強化するため、ユーザー定義グローバルスクリプトでは、プレーンなマクロの代わりにマクロ関数を使用することを推奨します。マクロは自動的にエスケープされないためです。

Zabbix セキュリティアドバイザリと CVE データベース

Zabbix セキュリティアドバイザリと CVE データベース を参照してください。

HTMLメールテンプレート

HTMLメールに使用するメッセージテンプレートを作成または編集する場合は、すべてのマクロを必ず htmlencode() マクロ関数で囲んでください。 たとえば、次のようにします。

<b>Problem started</b> at {{EVENT.TIME}.htmlencode()} on {{EVENT.DATE}.htmlencode()}<br><b>Problem name:</b>
{{EVENT.NAME}.htmlencode()}<br><b>Host:</b> {{HOST.NAME}.htmlencode()}
<br><b>Severity:</b>
{{EVENT.SEVERITY}.htmlencode()}<br><b>Operational
data:</b> {{EVENT.OPDATA}.htmlencode()}<br><b>Original problem ID:</b> {{EVENT.ID}.htmlencode()}<br>{{TRIGGER.URL}.htmlencode()}

htmlencode() を使用すると、マクロ値内のHTML文字がエスケープされ、通知へのHTMLの挿入を防げます(たとえば、攻撃者が悪意のある/フィッシング用リンクを通知に挿入することを防止できます)。

注意: Zabbixが提供する既定のHTMLメールメッセージでは、すでにマクロに対して htmlencode() が適用されています。 このガイダンスは、既存のテンプレートを編集する場合や新しいテンプレートを作成する場合に適用されます。HTMLメールの送信にテンプレートを使用する前に、マクロがエンコードされていることを確認してください。