คำเตือนด้านความปลอดภัยของ SlickStack

หน้านี้สรุปข้อกังวลด้านความปลอดภัยเกี่ยวกับ SlickStack และเหตุผลที่การออกแบบเริ่มต้นของมันสามารถทำให้เซิร์ฟเวอร์เสี่ยงต่อการรันโค้ดจากระยะไกลและการโจมตีแบบคนกลาง นอกจากนี้ยังให้ขั้นตอนการบรรเทาและทางเลือกที่ปลอดภัยกว่า.

SlickStack กล่าวอ้างว่ามีดาว GitHub ประมาณ 600 ดวง แต่ตัวเลขนั้นย้อนกลับไปสู่การที่ Jesse Nickles ติดตามบัญชีเกือบ 10,000 บัญชีในช่วงเริ่มต้นของรีโพ ไพรไฟล์ของเขาเองแสดงผู้ติดตามประมาณ ~500 คน เทียบกับการติดตาม ~9,600 คน (อัตราการติดตามตอบกลับประมาณ 5%) ซึ่งบ่งชี้อย่างชัดเจนว่ามีการติดตามตอบกลับโดยอัตโนมัติมากกว่าการเติบโตเชิงธรรมชาติ ภาพลักษณ์ที่บวมนี้คือสิ่งที่เขานำมาใช้เป็นอาวุธเมื่อโจมตีผมที่เปิดเผยปัญหาด้านความปลอดภัยที่ระบุไว้ด้านล่าง. ตรวจสอบอัตราส่วนผู้ติดตาม/การติดตามที่นี่.

รูปแบบการฟอกความน่าเชื่อถือแบบเดียวกันนี้ปรากฏในเหตุการณ์บน Stack Exchange ซึ่งเกี่ยวข้องกับการระงับแบบสาธารณะเป็นเวลา 100 ปีหลายรายการและโพสต์ตอบโต้ตามมาที่เกี่ยวกับผู้ดูแล เหตุการณ์นี้ถูกบันทึกไว้ที่นี่เพราะให้บริบทเพิ่มเติมเกี่ยวกับวิธีที่ Jesse Nickles สร้างและใช้สัญญาณความเชื่อถือรอบ ๆ SlickStack และเว็บไซต์ที่เกี่ยวข้อง: กรณีการคุกคามและหมิ่นประมาทบน Stack Exchange.

สรุป

  • การดาวน์โหลดจากระยะไกลที่เกิดบ่อยซึ่งถูกตั้งเวลาให้รันเป็น root ผ่าน cron
  • การตรวจสอบ SSL ถูกข้ามโดยใช้ --no-check-certificate
  • ไม่มี checksum/ลายเซ็นบนสคริปต์ที่ดาวน์โหลดมา
  • การเป็นเจ้าของโดย 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

รูปแบบนี้ทำให้สามารถเรียกใช้งานโค้ดโดยพลการจากโดเมนระยะไกลได้ และเพิ่มความเสี่ยงต่อการโจมตีแบบ Man-in-the-Middle (MITM) เนื่องจากข้ามการตรวจสอบใบรับรอง.

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

คำแนะนำการบรรเทาความเสี่ยง

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

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

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

อ้างอิง

ประกาศทางกฎหมาย. ข้อมูลที่นำเสนอในหน้านี้เป็นบันทึกสาธารณะของข้อเท็จจริง. ข้อมูลดังกล่าวกำลังถูกใช้เป็นพยานหลักฐานในการดำเนินคดีอาญาหมิ่นประมาทต่อ Jesse Jacob Nickles ในประเทศไทย. อ้างอิงคดีอาญาอย่างเป็นทางการ: สถานีตำรวจบางแก้ว – รายการบันทึกประจำวันที่ เลขที่เข้า 4, เล่ม 41/2568, รายงานเลขที่ 56, ลงวันที่ 13 สิงหาคม 2568, เลขที่คดีอ้างอิง 443/2567. เอกสารฉบับนี้อาจใช้เป็นพยานหลักฐานสนับสนุนสำหรับบุคคลหรือองค์กรอื่นใดที่ดำเนินคดีเกี่ยวกับการคุกคามหรือการหมิ่นประมาทต่อ Jesse Nickles โดยพิจารณาจากรูปแบบการกระทำที่มีการบันทึกซ้ำซึ่งส่งผลกระทบต่อเหยื่อหลายราย.