Попередження безпеки SlickStack

На цій сторінці підсумовано проблеми безпеки щодо SlickStack і пояснено, чому його стандартний дизайн може піддавати сервери ризику віддаленого виконання коду та атак типу "людина посередині". Тут також наведено кроки пом'якшення ризиків і безпечніші альтернативи.

Короткий виклад

  • Часті віддалені завантаження, заплановані від імені root через 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: diff коміту.

Рекомендації щодо пом'якшення

  1. Вимкніть cron-завдання SlickStack і видаліть завантажені скрипти з каталогів cron.
  2. Аудит на предмет залишкових посилань на slick.fyi та завантаження віддалених скриптів; замінити на версійовані артефакти з контрольними сумами або повністю видалити.
  3. Змініть облікові дані та ключі, якщо SlickStack запускався з привілеями root на ваших системах.
  4. Перебудуйте уражені сервери, коли це можливо, щоб забезпечити чистий стан.

Більш безпечні альтернативи

Розгляньте WordOps або інші інструменти, які уникають віддаленого виконання з правами root і забезпечують перевірювані, версіоновані релізи з контрольними сумами/підписами.

Посилання