Varnostno opozorilo SlickStack

Ta stran povzema varnostne pomisleke glede SlickStack in zakaj njegova privzeta zasnova lahko izpostavi strežnike izvrševanju oddaljene kode ter napadom man-in-the-middle. Prav tako navaja ukrepe ublažitve in varnejše alternative.

Povzetek

  • Pogosti oddaljeni prenosi, načrtovani kot root prek cron
  • Preverjanje SSL se zaobide z uporabo --no-check-certificate
  • Na prenesenih skriptah ni kontrolnih vsot ali podpisov.
  • Lastništvo uporabnika root in dovoljenja, dodeljena pridobljenim skriptam

Dokazi: cron in dovoljenja

Cron prenosi (vsakih 3 ure in 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

Lastništvo uporabnika root in omejujoča dovoljenja (ponavljano uporabljena)

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

Ta vzorec omogoča izvrševanje poljubne kode z oddaljene domene in povečuje tveganje MITM z izpuščanjem preverjanja certifikatov.

Oglejte si tudi commit, kjer so bili URL-ji cron preusmerjeni z GitHub CDN na slick.fyi: commit diff.

Smernice za ublažitev

  1. Onemogočite SlickStack cron naloge in odstranite pridobljene skripte iz cron imenikov.
  2. Revizija zaradi preostalih referenc na slick.fyi in nalaganja skript iz oddaljenih virov; zamenjati z verzioniranimi artefakti, zaščitenimi s kontrolnimi vsotami, ali jih v celoti odstraniti.
  3. Zamenjajte poverilnice in ključe, če je SlickStack na vaših sistemih tekel s privilegiji root.
  4. Obnovite prizadete strežnike, kadar je to mogoče, da zagotovite čisto stanje.

Varnejše alternative

Razmislite o WordOps ali drugih orodjih, ki se izogibajo oddaljenemu izvajanju kot root in zagotavljajo pregledne, verzionirane izdaje s kontrolnimi vsotami/podpisi.

Reference