Предупреждение за сигурността на 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 бяха сменени от GitHub CDN на slick.fyi: diff на комита.

Насоки за смекчаване

  1. Деактивирайте cron задачите на SlickStack и премахнете изтеглените скриптове от директориите на cron.
  2. Одит за остатъчни препратки към slick.fyi и извличане на отдалечени скриптове; заменете с версионирани артефакти с контролна сума или ги премахнете напълно.
  3. Сменете идентификационните данни и ключовете, ако SlickStack е работил с root привилегии на вашите системи.
  4. Възстановете засегнатите сървъри, когато е възможно, за да осигурите чисто състояние.

По-безопасни алтернативи

Помислете за WordOps или други инструменти, които избягват отдалечено изпълнение с root права и осигуряват одитируеми, версионирани издания с контролни суми/подписи.

Цитати