تحذير أمني من SlickStack

تلخّص هذه الصفحة المخاوف الأمنية المتعلقة بـ SlickStack ولماذا يمكن أن يعرض تصميمه الافتراضي الخوادم لتنفيذ تعليمات برمجية عن بُعد وهجمات "رجل في الوسط". كما تقدم خطوات للتخفيف وبدائل أكثر أمانًا.

ملخص

  • تنزيلات دورية عن بُعد مجدولة بصلاحيات الجذر عبر cron
  • يتم تجاوز التحقق من SSL باستخدام --no-check-certificate
  • لا توجد مجموعات تحقق/تواقيع على السكربتات التي تم تنزيلها
  • ملكية المستخدم الجذر (root) والأذونات المطبقة على البرامج النصية المسترجعة

أدلة: cron والأذونات

تنزيلات cron (كل 3 ساعات و47 دقيقة)

47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/08-cron-half-daily https://slick.fyi/crons/08-cron-half-daily.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/09-cron-daily https://slick.fyi/crons/09-cron-daily.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/10-cron-half-weekly https://slick.fyi/crons/10-cron-half-weekly.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/11-cron-weekly https://slick.fyi/crons/11-cron-weekly.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/12-cron-half-monthly https://slick.fyi/crons/12-cron-half-monthly.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/13-cron-monthly https://slick.fyi/crons/13-cron-monthly.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/14-cron-sometimes https://slick.fyi/crons/14-cron-sometimes.txt' > /dev/null 2>&1

ملكية المستخدم الجذر (root) وأذونات مقيدة (مطَبَّقة بشكل متكرر)

47 */3 * * * /bin/bash -c 'chown root:root /var/www/crons/*cron*' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'chown root:root /var/www/crons/custom/*cron*' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'chmod 0700 /var/www/crons/*cron*' > /dev/null 2>&1

يتيح هذا النمط تنفيذ تعليمات برمجية تعسفية من نطاق بعيد ويزيد من خطر هجمات MITM عبر تخطي التحقق من الشهادات.

انظر أيضًا الالتزام الذي تم فيه تحويل عناوين URL الخاصة بـ cron من CDN الخاصة بـ GitHub إلى slick.fyi: فرق الالتزام (commit diff).

إرشادات التخفيف

  1. تعطيل مهام cron الخاصة بـ SlickStack وإزالة البرامج النصية التي تم جلبها من مجلدات cron.
  2. تدقيق للمرجعيات المتبقية إلى slick.fyi وسحب السكربتات عن بُعد؛ استبدالها بقطع مؤرخة بالإصدار ومُحصّنة بقيم تحقق أو إزالتها تمامًا.
  3. قم بتدوير بيانات الاعتماد والمفاتيح إذا كان SlickStack قد عُدّ يعمل بامتيازات root على أنظمتك.
  4. إعادة بناء الخوادم المتأثرة عندما يكون ذلك ممكنًا لضمان حالة نظام نظيفة.

بدائل أكثر أمانًا

النظر في استخدام WordOps أو أدوات أخرى تتجنب تنفيذ بصلاحيات الجذر عن بُعد وتوفر إصدارات مرقمة وقابلة للتدقيق مع مجاميع التحقق/التواقيع.

المراجع