แพ็กเกจ PHP ของ Laravel-Lang ถูกโจมตีเพื่อใช้ปล่อยมัลแวร์ Credential Stealer ข้ามแพลตฟอร์ม

นักวิจัยด้านความปลอดภัยทางไซเบอร์ได้แจ้งเตือนถึงแคมเปญการโจมตีแบบ Software Supply Chain Attack ครั้งใหม่ ซึ่งมุ่งเป้าไปที่แพ็กเกจ PHP หลายตัวของ Laravel-Lang เพื่อใช้ปล่อย Framework สำหรับ Credential Stealer แบบครบวงจร

แพ็กเกจที่ได้รับผลกระทบประกอบด้วย

  • laravel-lang/lang
  • laravel-lang/http-statuses
  • laravel-lang/attributes
  • laravel-lang/actions

Socket ระบุว่า "ช่วงเวลา และรูปแบบของ Tags ที่เพิ่งเผยแพร่ใหม่นั้น แสดงให้เห็นถึงการถูกเจาะระบบในวงกว้างของกระบวนการเผยแพร่ซอฟต์แวร์ขององค์กร Laravel Lang แทนที่จะเป็นแค่แพ็กเกจเวอร์ชันใดเวอร์ชันหนึ่งที่ฝังมัลแวร์ และ Tags ต่าง ๆ ถูกเผยแพร่อย่างรวดเร็วต่อเนื่องกันในวันที่ 22 และ 23 พฤษภาคม 2026 โดยหลายเวอร์ชันปรากฏขึ้นห่างกันเพียงไม่กี่วินาทีเท่านั้น"

มีการตรวจพบเวอร์ชันที่เกี่ยวข้องกับแพ็กเกจเหล่านี้มากกว่า 700 เวอร์ชัน ซึ่งแสดงให้เห็นถึงการใช้ระบบอัตโนมัติในการสร้าง Tagging หรือเผยแพร่ซ้ำเป็นจำนวนมาก เป็นที่ต้องสงสัยว่าผู้โจมตีอาจสามารถเข้าถึงข้อมูล Credentials ในระดับองค์กร, ระบบอัตโนมัติของ Repository หรือโครงสร้างพื้นฐานที่ใช้ในการเผยแพร่ซอฟต์แวร์

สิ่งที่ทำให้การโจมตีครั้งนี้แตกต่างออกไปก็คือ Source code ดั้งเดิมของโปรเจกต์ไม่ได้ถูกแก้ไขเพื่อฝังมัลแวร์เข้าไป แต่ผู้โจมตีใช้วิธีเขียนทับ Git Tag ที่มีอยู่เดิมทั้งหมดในแต่ละ Repository เพื่อให้ชี้ไปยัง Commit ใหม่ที่เป็นอันตรายแทน

ฟังก์ชันการทำงานหลักที่เป็นอันตรายถูกบรรจุอยู่ในไฟล์ที่ชื่อว่า "src/helpers.php" ซึ่งถูกฝังไว้ใน Version tags หน้าที่หลักของมันคือการรวบรวมข้อมูลจำเพาะเพื่อระบุตัวตนของเครื่องที่ติดมัลแวร์ และติดต่อกับเซิร์ฟเวอร์ภายนอก ("flipboxstudio[.]info") เพื่อดึง Payload ข้ามแพลตฟอร์มที่เขียนด้วย PHP ซึ่งสามารถทำงานได้ทั้งบนระบบ Windows, Linux และ macOS

StepSecurity ระบุว่า "ผู้โจมตีได้เพิ่มไฟล์ src/helpers.php ลงในส่วน autoload.files ของแต่ละแพ็กเกจที่ถูกโจมตี เนื่องจากแอปพลิเคชัน Laravel ทุกตัวจะเรียกใช้คำสั่ง require {}DIR{}.'/vendor/autoload.php' ทุกครั้งเมื่อเริ่มต้นทำงาน อีกทั้ง Symfony, PHPUnit และ PHP frameworks อื่น ๆ ส่วนใหญ่ก็ใช้วิธีการเดียวกันนี้ Payload จึงเริ่มทำงานทันทีที่แอปพลิเคชันที่มีการใช้แพ็กเกจนี้เริ่มบูตระบบ โดยไม่จำเป็นต้องรอให้มีการสร้าง Class การเรียกใช้ Method หรือต้องมี Trigger พิเศษใด ๆ"

ข้อมูลจาก Aikido Security ระบุว่า Dropper จะส่งตัวเรียกใช้งาน Visual Basic Script บนระบบ Windows และสั่งรันผ่านคำสั่ง cscript ส่วนบนระบบ Linux และ macOS มันจะสั่งรัน Payload สำหรับขโมยข้อมูลผ่านคำสั่ง exec()

Socket อธิบายว่า "เนื่องจากไฟล์ ['src/helpers.php'] นี้ถูกลงทะเบียนไว้ในไฟล์ composer.json ภายใต้ส่วน autoload.files ซึ่ง Backdoor จึงถูกสั่งให้ทำงานโดยอัตโนมัติในทุกๆ PHP Request ที่จัดการโดยแอปพลิเคชันที่ถูกโจมตี"

"สคริปต์จะสร้างเครื่องหมายระบุตัวตนเฉพาะสำหรับแต่ละเครื่อง (ใช้ MD5 hash ที่รวมเอา Path ของ directory, สถาปัตยกรรมระบบ และ Inode เข้าด้วยกัน) เพื่อให้แน่ใจว่า Payload จะถูกสั่งทำงานเพียงครั้งเดียวต่อหนึ่งเครื่องเท่านั้น วิธีนี้ช่วยป้องกันการทำงานซ้ำซ้อน และช่วยให้มัลแวร์สามารถหลบซ่อนจากการตรวจจับได้หลังจากที่รันไปแล้วในครั้งแรก"

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

  • IAM roles และ Instance Identity Documents โดยการสืบค้นจากตำแหน่งข้อมูล Metadata ของ Cloud
  • ข้อมูล Default Credentials ของแอปพลิเคชัน Google Cloud
  • Access Tokens และโปรไฟล์ Service Principal ของ Microsoft Azure
  • Service Account Tokens ของ Kubernetes และการตั้งค่า Helm Registry
  • Authentication Tokens สำหรับ DigitalOcean, Heroku, Vercel, Netlify, Railway และ Fly.io
  • Tokens ของ HashiCorp Vault
  • Tokens และการตั้งค่าจาก Jenkins, GitLab Runners, GitHub Actions, CircleCI, TravisCI และ ArgoCD
  • Seed Phrases และไฟล์ที่เกี่ยวข้องกับ Crypto wallets (เช่น Electrum, Exodus, Atomic, Ledger Live, Trezor, Wasabi และ Sparrow) รวมถึง Extensions เบราว์เซอร์ (เช่น MetaMask, Phantom, Trust Wallet, Ronin, Keplr, Solflare และ Rabby)
  • ประวัติการท่องเว็บ, Cookies และข้อมูลการ Login จาก Google Chrome, Microsoft Edge, Mozilla Firefox, Brave และ Opera โดยการใช้ Windows Executable ที่เข้ารหัสแบบ Base64 ฝังมาด้วย ซึ่งสามารถหลบเลี่ยงการป้องกันการเข้ารหัสที่ผูกกับแอปของ Chromium ได้
  • Local Vaults และข้อมูล Extension เบราว์เซอร์สำหรับ 1Password, Bitwarden, LastPass, KeePass, Dashlane และ NordPass
  • Sessions ที่บันทึกไว้ของ PuTTY/WinSCP
  • ข้อมูลที่ Dumps มาจาก Windows Credential Manager
  • Sessions ที่บันทึกไว้ของ WinSCP
  • ไฟล์ RDP (Remote Desktop Protocol)
  • Session Tokens ที่เกี่ยวข้องกับแอปพลิเคชันอย่าง Discord, Slack และ Telegram
  • ข้อมูลจาก Microsoft Outlook, Thunderbird และ FTP clients ยอดนิยม (เช่น FileZilla, WinSCP และ CoreFTP)
  • ไฟล์การตั้งค่า และไฟล์ข้อมูล Credential ที่ประกอบไปด้วย Auth tokens ของ Docker, SSH Private Keys, ข้อมูล Git credentials, ไฟล์ประวัติการใช้ Shell, ไฟล์ประวัติฐานข้อมูล, การตั้งค่า Kubernetes cluster, ไฟล์ .env, wp-config.php และ docker-compose.yml
  • Environment Variable ที่ถูกโหลดเข้าสู่โปรเซสของ PHP
  • ข้อมูล Source Control Credentials จากไฟล์ .gitconfig ทั้งแบบ Global และ Local, ไฟล์ .git-credentials และไฟล์ .netrc
  • การตั้งค่า VPN และไฟล์บันทึกการ Login สำหรับ OpenVPN, WireGuard, NetworkManager และบริการ VPN เชิงพาณิชย์ เช่น NordVPN, ExpressVPN, CyberGhost และ Mullvad

Ilyas Makari นักวิจัยจาก Aikido ระบุว่า "Payload ที่ถูกดึงมาทำงานนี้เป็นมัลแวร์ Credential stealer ที่เขียนด้วย PHP ความยาวประมาณ 5,900 บรรทัด โดยแบ่งการทำงานออกเป็นโมดูลเก็บรวบรวมข้อมูล Specialist ถึง 15 โมดูล หลังจากรวบรวมทุกอย่างที่มันสามารถหาได้แล้ว มันจะเข้ารหัสผลลัพธ์ที่ได้ด้วยอัลกอริทึม AES-256 และส่งข้อมูลเหล่านั้นไปยัง flipboxstudio[.]info/exfil จากนั้นมันจะลบตัวเองออกจาก Disk เพื่อทำลายหลักฐานสำหรับการทำ Forensic"

ที่มา : Thehackernews