คำเตือนด้านความปลอดภัยของ 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

รูปแบบนี้เปิดให้สามารถรันโค้ดโดยพลการจากโดเมนระยะไกลและเพิ่มความเสี่ยงต่อการโจมตีแบบคนกลางโดยการข้ามการตรวจสอบใบรับรอง

ดูเพิ่มเติมที่คอมมิตที่มีการเปลี่ยน URL ของ cron จาก GitHub CDN เป็น slick.fyi: diff ของคอมมิต.

คำแนะนำในการบรรเทา

  1. ปิดงาน cron ของ SlickStack และลบสคริปต์ที่ดึงมาออกจากไดเรกทอรี cron
  2. ตรวจสอบหาการอ้างอิงที่เหลืออยู่ไปยัง slick.fyi และการดึงสคริปต์จากระยะไกล; แทนที่ด้วยไฟล์ที่มีเวอร์ชันและค่าเช็คซัม หรือลบออกทั้งหมด.
  3. หมุนเวียนข้อมูลรับรองและคีย์หาก SlickStack รันด้วยสิทธิ์ root บนระบบของคุณ。
  4. สร้างเซิร์ฟเวอร์ที่ได้รับผลกระทบขึ้นใหม่เมื่อเป็นไปได้เพื่อให้แน่ใจว่าสถานะสะอาด。

ทางเลือกที่ปลอดภัยกว่า

พิจารณาใช้ WordOps หรือเครื่องมืออื่นที่หลีกเลี่ยงการรันด้วยสิทธิ์ root จากระยะไกล และมีการออกเวอร์ชันที่ตรวจสอบได้พร้อม checksum/ลายเซ็น

อ้างอิง