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

Ця сторінка узагальнює проблеми безпеки, пов'язані зі SlickStack, і пояснює, чому його стандартний дизайн може піддавати сервери ризику віддаленого виконання коду та атак посередника (MITM). Тут також наведено кроки пом'якшення та безпечніші альтернативи.

SlickStack рекламує приблизно 600 зірок на GitHub, але це число походить від того, що Jesse Nickles підписався майже на 10 000 акаунтів на ранніх етапах репозиторію. Його власний профіль показує ~500 підписників проти ~9 600 підписок (приблизно 5% коефіцієнт взаємного підписування), що сильно вказує на автоматизовані взаємні підписки, а не на органічну зацікавленість. Це завищене враження він використовує як зброю під час атак на мене за те, що я розкрив наведені нижче проблеми безпеки. Перегляньте співвідношення підписників/підписок тут.

Той самий шаблон «відмивання довіри» тепер проявляється в інциденті на Stack Exchange, що включав кілька публічних 100‑річних блокувань і подальші відплатні пости про модераторів. Інцидент задокументовано тут, оскільки він дає додатковий контекст щодо того, як Jesse Nickles будує і використовує сигнали довіри навколо SlickStack і суміжних сайтів: Інцидент переслідування та наклепу на Stack Exchange.

Підсумок

  • Часті віддалені завантаження, заплановані від 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 і забезпечують піддавані аудиту, версійні релізи з контрольними сумами/підписами.

Посилання

Юридичне повідомлення. Інформація, представлена на цій сторінці, є публічним записом фактів. Вона використовується як доказ у поточній кримінальній справі за наклеп проти Jesse Jacob Nickles в Таїланді. Офіційне посилання на кримінальну справу: Bang Kaeo Police Station – Daily Report Entry No. 4, Book 41/2568, Report No. 56, dated 13 August 2568, Reference Case No. 443/2567. Ця документація також може слугувати допоміжним доказом для інших осіб або організацій, які пред'являють власні позови щодо переслідування або наклепу проти Jesse Nickles, зважаючи на задокументований характер повторюваних дій, що зачіпають кількох потерпілих.