“perfctl” มัลแวร์บน Linux ที่อยู่เบื้องหลังแคมเปญการขุดคริปโตมายาวนานหลายปี

มัลแวร์ในระบบปฏิบัติการ Linux ที่ชื่อว่า perfctl ทำการโจมตีเซิร์ฟเวอร์ และ Linux workstations มาอย่างน้อยสามปีแล้วโดยที่ไม่ถูกตรวจพบ เนื่องจากใช้เทคนิคการการหลบเลี่ยงขั้นสูง และ rootkits

ตามที่นักวิจัยของ Aqua Nautilus ผู้ค้นพบ perfctl ระบุว่า มัลแวร์ดังกล่าวน่าจะกำหนดเป้าหมายไปที่เซิร์ฟเวอร์ Linux หลายล้านเครื่องในช่วงไม่กี่ปีที่ผ่านมา และอาจทำให้เกิดการติดมัลแวร์ในเซิร์ฟเวอร์หลายพันเครื่อง

สิ่งนี้เป็นไปตามรายงานจำนวนมากจากเหยื่อของมัลแวร์ที่ส่งข้อมูลไปยังฟอรัมการสนทนาออนไลน์ ซึ่งทั้งหมดมีตัวบ่งชี้การโจมตีที่เกี่ยวข้องกับการโจมตีของ perfctl โดยเฉพาะ

ตามข้อมูลของ Aqua Nautilus วัตถุประสงค์หลักของ perfctl คือการขุด crypto โดยใช้เซิร์ฟเวอร์ที่ถูกโจมตีพื่อขุดสกุลเงินดิจิทัล Monero ที่ยากต่อการติดตาม อย่างไรก็ตามมัลแวร์ดังกล่าวสามารถใช้เพื่อสร้างความเสียหายได้มากกว่านั้น

การติดมัลแวร์

Aqua Nautilus เชื่อว่า ผู้โจมตีใช้ประโยชน์จากการกำหนดค่าที่ผิดพลาด หรือข้อมูลระบบที่ถูกเปิดเผย เพื่อเจาะระบบเซิร์ฟเวอร์ Linux โดยการกำหนดค่าที่ผิดพลาดเหล่านี้มีตั้งแต่ไฟล์ที่เข้าถึงได้แบบสาธารณะ ซึ่งมีข้อมูล credentials ไปจนถึงอินเทอร์เฟซการเข้าสู่ระบบที่เปิดให้เข้าถึงได้จากอินเทอร์เน็ต

นักวิจัยยังพบการโจมตีโดยใช้ช่องโหว่ CVE-2023-33246 ซึ่งเป็นการเรียกใช้โค้ดที่เป็นอันตรายจากระยะไกลที่ส่งผลกระทบต่อ Apache RocketMQ เวอร์ชัน 5.1.0 และเก่ากว่า รวมไปถึงช่องโหว่ CVE-2021-4034 (PwnKit) โดยเป็นช่องโหว่การยกระดับสิทธิ์ใน Polkit

เมื่อสร้างการเข้าถึงในเบื้องต้นแล้ว เพย์โหลดที่เพิ่มเข้าไป และถูก obfuscated มีชื่อว่า httpd จะถูกดาวน์โหลดจากเซิร์ฟเวอร์ของผู้โจมตี จากนั้นจะคัดลอกตัวเองลงในไดเร็กทอรี /tmp ภายใต้ชื่อ sh จากนั้นจึงลบไบนารีต้นฉบับออก

Process ใหม่จะใช้ชื่อเดียวกันคือ ("sh") ซึ่งโดยพื้นฐานแล้วจะผสมผสานกับการทำงานของระบบ Linux ทั่วไป

Additional copies จะถูกสร้างขึ้นในระบบอื่น เช่น "/root/.config" "/usr/bin/" และ "usr/lib" เพื่อให้แน่ใจว่ามีคำสั่งยังคงอยู่ในกรณีที่มีการ cleanup ข้อมูล

กระบวนการทำงานหลัก และการหลบเลี่ยงการตรวจจับ

เมื่อเริ่มทำงาน perfctl จะเปิดใช้งาน Unix socket สำหรับการสื่อสารภายใน และสร้างช่องทางการเข้ารหัสกับเซิร์ฟเวอร์ของผู้โจมตีบน TOR ทำให้ไม่สามารถถอดรหัสการแลกเปลี่ยนข้อมูลได้

จากนั้นจะติดตั้ง rootkit ที่ชื่อว่า libgcwrap.so ที่จะเชื่อมต่อกับฟังก์ชันระบบต่าง ๆ เพื่อปรับเปลี่ยนกลไกการตรวจสอบสิทธิ์ และสกัดกั้นการรับส่งข้อมูลบนเครือข่ายตามความต้องการ เพื่อให้การหลีกเลี่ยงการตรวจจับเป็นไปได้โดยง่าย

นอกจากนี้ ยังมีการติดตั้ง rootkit เพิ่มเติม โดยแทนที่ยูทิลิตี้ ldd, top, crontab และ lsof ด้วยเวอร์ชันที่เป็น trojan ซึ่งจะช่วยป้องกันการตรวจจับการดำเนินการของมัลแวร์ได้โดยตรง

สุดท้ายเครื่องมือสำหรับขุด XMRIG จะถูกติดตั้งลงในระบบ และทำการขุด Monero โดยใช้ทรัพยากร CPU ของเซิร์ฟเวอร์

โดยโปรแกรมขุด crypto จะสื่อสารกับกลุ่มการขุดที่กำหนดไว้ผ่าน TOR ดังนั้นการแลกเปลี่ยนข้อมูลบนเครือข่ายจะถูกปกปิด และไม่สามารถติดตามผลลัพธ์ได้

ในบางกรณี Aqua Nautilus ยังพบการใช้งานซอฟต์แวร์ proxy-jacking ซึ่งทำให้ผู้โจมตีมีช่องทางในการหารายได้เพิ่มขึ้น โดยขายแบนด์วิดท์เครือข่ายที่ไม่ได้ใช้ผ่านทาง Bitping, Repocket, Speedshare และบริการอื่น ๆ ที่คล้ายคลึงกัน

ผู้ใช้ส่วนใหญ่จะเริ่มสงสัยว่าเซิร์ฟเวอร์ของตนเองติดมัลแวร์หรือไม่ หลังจากสังเกตเห็นว่า CPU มีการใช้งานอยู่ที่ 100% เนื่องมาจากมีการขุดสกุลเงินดิจิทัล

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

ผู้ใช้รายหนึ่งระบุว่า เพิ่งทราบเรื่องมัลแวร์เพราะการตั้งค่าตรวจสอบแจ้งว่ามีการใช้งาน CPU ไปแล้ว 100%

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

การใช้ rootkit ทำให้การลบออกทำได้ยาก เนื่องจากกระบวนการต่าง ๆ จะถูกซ่อนไว้จากยูทิลิตี้ และเทคนิคการลบมัลแวร์ทั่วไป ซึ่งโดยปกติแล้วผู้ใช้จะต้องออฟไลน์ หรือบูตผ่าน CD เพื่อตรวจสอบระบบไฟล์

อย่างไรก็ตาม เนื่องจากการติดมัลแวร์จะมีการปรับเปลี่ยน และแทนที่ไฟล์ Linux ใหม่ คำแนะนำที่ดีที่สุดคือการ wipe เครื่อง และติดตั้งระบบใหม่เพื่อให้แน่ใจว่าไม่มีมัลแวร์หลงเหลือยู่

การตรวจจับ และการหยุดการทำงาน

Aqua Nautilus ได้เสนอหลายวิธีในการตรวจจับ และหยุดการโจมตี โดยแบ่งเป็น 4 ประเภทหลัก ได้แก่ การตรวจสอบระบบ การวิเคราะห์ปริมาณการรับส่งข้อมูลบนเครือข่าย การตรวจสอบความสมบูรณ์ของไฟล์ และการลดผลกระทบเชิงรุก

สำหรับการตรวจจับ Aqua Nautilus มีคำแนะนำดังต่อไปนี้

  • ตรวจสอบไดเร็กทอรี /tmp, /usr และ /root เป็นประจำเพื่อค้นหาไฟล์ไบนารีที่น่าสงสัย ซึ่งมักจะแอบอ้างว่าเป็นไฟล์ของระบบที่ถูกต้อง
  • ตรวจสอบการใช้งาน CPU เพื่อหาจุดพีค และกระบวนการทำงาน เช่น httpd และ sh ที่มีการทำงานจากตำแหน่งที่ไม่ปกติ
  • ตรวจสอบ ~/.profile, ~/.bashrc และ /etc/ld.so.preload เพื่อดูว่ามีการแก้ไขที่ไม่ได้รับอนุญาตหรือไม่
  • Capture และวิเคราะห์ปริมาณการใช้งานของเครือข่ายในการเชื่อมต่อกับ TOR ไปยัง IP ภายนอก
  • ค้นหาการเชื่อมต่อขาออกไปยังกลุ่มการขุด crypto ที่เป็นที่รู้จัก และตรวจสอบ proxy-jacking services
  • เพิ่ม IP ในส่วนของ IoC ลงในรายการบล็อกเพื่อขัดขวางการสื่อสารกับโฮสต์ที่เป็นอันตราย

ผู้ดูแลระบบควรตรวจสอบให้แน่ใจว่าช่องโหว่ทั้งหมดในแอปพลิเคชันที่เชื่อมต่อกับอินเทอร์เน็ต เช่น RocketMQ (CVE-2023-33246) และ Polkit (CVE-2021-4043) ได้รับการแก้ไขแล้ว

นอกจากนี้ ควรปิดการใช้งานบริการ HTTP ที่ไม่จำเป็น และใช้การควบคุมแบบ role-based access รวมถึงใช้ 'noexec' กับไดเร็กทอรีที่สำคัญ เช่น '/tmp' และ 'https://pronto-core-cdn.prontomarketing.com/2/dev.shm' ก็จะมีความปลอดภัยมากขึ้น

Indications of Compromise (IOCs)

ที่มา : bleepingcomputer.com