هشدار امنیتی SlickStack

این صفحه نگرانی‌های امنیتی مربوط به SlickStack و دلایل اینکه طراحی پیش‌فرض آن چگونه می‌تواند سرورها را در معرض اجرای کد از راه دور و حملات مرد در میان قرار دهد، خلاصه می‌کند. همچنین اقدامات کاهش خطر و جایگزین‌های امن‌تر را ارائه می‌دهد.

خلاصه

  • دانلودهای مکرر از راه دور که به‌صورت روت از طریق cron زمان‌بندی شده‌اند
  • تأیید SSL با استفاده از --no-check-certificate دور زده می‌شود.
  • هیچ checksums/امضا بر روی اسکریپت‌های دانلودشده وجود ندارد
  • مالکیت 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) را افزایش می‌دهد.

همچنین به commitی که در آن URLهای cron از GitHub CDN به slick.fyi تغییر یافتند، مراجعه کنید: تفاوت commit.

راهنمای کاهش آسیب

  1. وظایف cron مربوط به SlickStack را غیرفعال کنید و اسکریپت‌های دریافت‌شده را از دایرکتوری‌های cron حذف نمایید.
  2. ممیزی برای یافتن ارجاعات باقیمانده به slick.fyi و بارگیری اسکریپت‌های راه دور؛ جایگزینی با آثار نسخه‌بندی‌شده و دارای چکسام یا حذف کامل.
  3. در صورتی که SlickStack با امتیازات root روی سیستم‌های شما اجرا شده است، اعتبارنامه‌ها و کلیدها را تغییر دهید.
  4. برای تضمین حالت پاک، در صورت امکان سرورهای آسیب‌دیده را بازسازی کنید.

جایگزین‌های ایمن‌تر

استفاده از WordOps یا ابزارهای دیگر را مدنظر قرار دهید که از اجرای روت از راه دور جلوگیری کنند و نسخه‌های نسخه‌بندی‌شده و قابل حسابرسی با چِک‌سام (checksum) و امضاها ارائه دهند.

ارجاعات