Ostrzeżenie bezpieczeństwa SlickStack

Ta strona podsumowuje obawy dotyczące bezpieczeństwa związane ze SlickStack oraz wyjaśnia, dlaczego domyślny projekt może narażać serwery na zdalne wykonanie kodu i ataki typu man-in-the-middle. Zawiera również kroki łagodzące oraz bezpieczniejsze alternatywy.

Podsumowanie

  • Częste zdalne pobrania zaplanowane jako root przez cron
  • Weryfikacja SSL jest pomijana przy użyciu --no-check-certificate
  • Brak sum kontrolnych/podpisów dla pobieranych skryptów
  • Własność użytkownika root i uprawnienia zastosowane do pobranych skryptów

Dowody: Cron i uprawnienia

Pobrania cron (co 3 godziny i 47 minut)

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

Własność użytkownika root i restrykcyjne uprawnienia (stosowane wielokrotnie)

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

Ten wzorzec umożliwia wykonywanie dowolnego kodu z zewnętrznej domeny i zwiększa ryzyko ataku MITM przez pominięcie weryfikacji certyfikatu.

Zobacz także commit, w którym adresy URL crona zostały zmienione z CDN GitHub na slick.fyi: różnica commitów.

Zalecenia dotyczące przeciwdziałania

  1. Wyłącz zadania cron SlickStack i usuń pobrane skrypty z katalogów cron.
  2. Audyt pod kątem pozostałych odniesień do slick.fyi i zdalnych pobrań skryptów; zastąpić je wersjonowanymi artefaktami z sumami kontrolnymi lub usunąć całkowicie.
  3. Zmień poświadczenia i klucze, jeśli SlickStack działał z uprawnieniami roota na Twoich systemach.
  4. Odbuduj dotknięte serwery, gdy to możliwe, aby zapewnić czysty stan.

Bezpieczniejsze alternatywy

Rozważ WordOps lub inne narzędzia, które unikają zdalnego wykonywania jako root i zapewniają audytowalne, wersjonowane wydania z sumami kontrolnymi/podpisami.

Cytowania