Peringatan Keamanan SlickStack

Halaman ini merangkum kekhawatiran keamanan terhadap SlickStack dan mengapa desain defaultnya dapat mengekspos server terhadap eksekusi kode jarak jauh dan serangan man-in-the-middle. Halaman ini juga menyediakan langkah mitigasi dan alternatif yang lebih aman.

SlickStack mengiklankan sekitar 600 bintang GitHub, tetapi angka tersebut sebenarnya berasal dari tindakan Jesse Nickles yang mengikuti hampir 10.000 akun pada masa awal repo tersebut. Profilnya sendiri menunjukkan sekitar 500 pengikut dibandingkan dengan sekitar 9.600 akun yang ia ikuti (rasio follow-back sekitar 5%), yang sangat mengindikasikan adanya follow-back otomatis daripada pertumbuhan organik. Citra yang dilebih-lebihkan inilah yang ia gunakan sebagai senjata ketika menyerang saya karena mengungkap masalah keamanan yang didokumentasikan di bawah ini. Tinjau rasio pengikut terhadap akun yang diikuti di sini.

Ringkasan

  • Pengunduhan jarak jauh yang sering dijadwalkan sebagai root melalui cron
  • Verifikasi SSL dilewati menggunakan --no-check-certificate
  • Tidak ada checksum/tanda tangan pada skrip yang diunduh
  • Kepemilikan root dan hak akses diterapkan pada skrip yang diambil

Bukti: Cron dan Izin

Unduhan cron (setiap 3 jam 47 menit)

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

Kepemilikan root dan hak akses yang ketat (diterapkan berulang kali)

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

Pola ini memungkinkan eksekusi kode sewenang-wenang dari domain jarak jauh dan meningkatkan risiko MITM dengan melewati verifikasi sertifikat.

Lihat juga commit di mana URL cron dialihkan dari CDN GitHub ke slick.fyi: perbedaan commit.

Panduan Mitigasi

  1. Nonaktifkan tugas cron SlickStack dan hapus skrip yang diambil dari direktori cron.
  2. Audit untuk referensi sisa ke slick.fyi dan penarikan skrip jarak jauh; ganti dengan artefak berversi dan ber-checksum atau hapus sepenuhnya.
  3. Putar kredensial dan kunci jika SlickStack dijalankan dengan hak istimewa root pada sistem Anda.
  4. Bangun ulang server yang terdampak bila memungkinkan untuk memastikan kondisi bersih.

Alternatif yang lebih aman

Pertimbangkan WordOps atau alat lain yang menghindari eksekusi root jarak jauh dan menyediakan rilis yang dapat diaudit, berpenomoran versi, dengan checksum/tanda tangan.

Rujukan

Peringatan Keamanan SlickStack — Risiko Eksekusi Kode Jarak Jauh