มัลแวร์ Megalodon เจาะระบบ Repositories บน GitHub กว่า 5,500 แห่งภายในเวลาเพียง 6 ชั่วโมง

การโจมตี supply chain attack แบบอัตโนมัติ ภายใต้รหัสลับ “Megalodon” ได้ถล่ม GitHub เมื่อวันที่ 18 พฤษภาคม 2026 โดยมีการฝัง Backdoors ในระบบ CI/CD ที่เป็นอันตรายลงใน Repositories มากกว่า 5,500 แห่งภายในเวลาไม่ถึงหกชั่วโมง ซึ่งนับเป็นหนึ่งในแคมเปญการโจมตีบน GitHub Actions ที่รุนแรงที่สุดเท่าที่เคยมีการบันทึกมา

SafeDep ตรวจพบว่าในช่วงเวลาประมาณ 11:36 ถึง 17:48 UTC ของวันที่ 18 พฤษภาคม 2026 แคมเปญ Megalodon ได้ส่งการอัปเดตโค้ดที่เป็นอันตราย (Malicious Commits) จำนวน 5,718 ครั้ง ไปยัง Repositories GitHub จำนวน 5,561 แห่ง โดยใช้บัญชีแบบใช้แล้วทิ้งที่มีชื่อผู้ใช้งานเป็นตัวอักษรแบบสุ่มจำนวนแปดตัวอักษร

ผู้โจมตีได้ปลอมแปลงอัตลักษณ์ของผู้เขียนโค้ดเป็น build-bot, auto-ci, ci-bot และ pipeline-bot พร้อมทั้งใช้อีเมล build-system@noreply.dev และ ci-bot@automated.dev เพื่อเลียนแบบการบำรุงรักษาระบบ CI แบบอัตโนมัติที่เกิดขึ้นเป็นประจำ

ข้อความในการส่งโค้ด เช่น “ci: add build optimization step” (ci: เพิ่มขั้นตอนการเพิ่มประสิทธิภาพในการสร้างระบบ) และ “chore: optimize pipeline runtime” (chore: เพิ่มประสิทธิภาพเวลาในการทำงานของระบบ Pipeline) ถูกออกแบบมาอย่างจงใจเพื่อหลบเลี่ยงการตรวจสอบโค้ดโดยทั่วไป

รูปแบบของมัลแวร์ Megalodon

แคมเปญนี้ได้วางรูปแบบขั้นตอนการทำงานบน GitHub Actions ไว้สองรูปแบบที่แตกต่างกัน แต่ใช้เซิร์ฟเวอร์ควบคุม และสั่งการ (C2 Server) ร่วมกันที่ไอพี 216.126.225.129:8443:

  • SysDiag (รูปแบบโจมตีวงกว้าง): มีการเพิ่มไฟล์ .github/workflows/ci.yml ไฟล์ใหม่ ซึ่งจะทำงานทุกครั้งที่มีการส่งโค้ด (push) และการสร้างคำขอรวมโค้ด (pull_request_target) เพื่อให้มั่นใจว่ามัลแวร์จะทำงานโดยอัตโนมัติเมื่อมีการส่งโค้ดในทุก ๆ Branches
  • Optimize-Build (รูปแบบเจาะจงเป้าหมาย): มีการแทนที่ขั้นตอนการทำงานเดิมด้วยเงื่อนไขการทำงานแบบ workflow_dispatch ซึ่งเป็นการสร้างช่องโหว่ Backdoor แบบแฝงตัว โดยผู้โจมตีสามารถสั่งให้ทำงานอย่างเงียบ ๆ ได้ตามต้องการผ่านทาง GitHub API ส่งผลให้ไม่แสดงประวัติการทำงานของระบบ CI ให้เห็น และไม่มีประวัติความล้มเหลวในการสร้างระบบปรากฏขึ้นมา

สคริปต์ Bash ที่ถูกเข้ารหัสในรูปแบบ Base64 ซึ่งเป็นโค้ดอันตรายความยาว 111 บรรทัด จะทำการเก็บกู้ข้อมูล Credential จำนวนมาก และแบ่งเป็นหลายขั้นตอนทันทีที่ถูกสั่งให้ทำงาน:

  • Environment Variables ของระบบ CI ทั้งหมด, ข้อมูลจาก /proc/*/environ และ PID 1 environment data
  • ข้อมูลของ AWS (Access Keys, Secret Keys, Session Tokens) ในทุกโปรไฟล์ที่มีการตั้งค่าไว้
  • โทเค็นการเข้าถึง (Access Tokens) ของ GCP ผ่านคำสั่ง gcloud auth print-access-token
  • ข้อมูลที่ใช้งานอยู่ (Live Credentials) จากปลายทาง AWS IMDSv2, ข้อมูลเมตาของ GCP (GCP Metadata) และสิทธิ์การเข้าถึงของ Azure IMDS
  • SSH private keys, การตั้งค่าการยืนยันตัวตนของ Docker (Docker Auth Configs), ไฟล์ .npmrc, .netrc, การตั้งค่าของ Kubernetes, โทเค็นของ Vault และข้อมูลของ Terraform
  • Source Code จะถูกสแกนด้วยคำสั่ง grep โดยใช้รูปแบบ Regex มากกว่า 30 รูปแบบ เพื่อค้นหา API Keys, JWTs, Database Connection Strings, PEM Keys และโทเค็นของระบบคลาวด์
  • โทเค็น GitHub Actions OIDC ซึ่งช่วยให้ผู้โจมตีสามารถปลอมแปลงอัตลักษณ์บนระบบคลาวด์ได้โดยตรง

ผลกระทบขั้นรุนแรงที่สุดที่ส่งผลต่อระบบของการโจมตีนี้ ได้มุ่งเป้าไปที่ Tiledesk ซึ่งเป็นแพลตฟอร์ม Live Chat แบบโอเพนซอร์ส โดยผู้โจมตีได้เข้าควบคุม repository บน GitHub และทำการแทนที่ workflow สำหรับสร้าง Docker ที่ถูกต้อง ด้วย Optimize-Build backdoor ผ่านการส่งโค้ดหมายเลขรหัส acac5a9

ในเวลาต่อมา ผู้ดูแลระบบซึ่งไม่ทราบว่า repository ถูกโจมตี ได้เผยแพร่แพ็กเกจ @tiledesk/tiledesk-server เวอร์ชัน 2.18.6 ถึง 2.18.12 ไปยัง npm ซึ่งเป็นการแพร่กระจาย backdoor ดังกล่าวเข้าสู่ระบบ package registry ทั้งนี้ Application code ต้นฉบับของแอปพลิเคชันไม่ได้ถูกแก้ไขแต่อย่างใด มีเพียงไฟล์ Workflow เท่านั้นที่เปลี่ยนแปลงไป

แนวทางการลดผลกระทบ

องค์กรต่าง ๆ ควรดำเนินการทันที หากพบว่า repository ใด ๆ ได้รับการ Commit จากอีเมล build-system@noreply[.]dev หรือ ci-bot@automated[.]dev ในวันที่ 18 พฤษภาคม 2026:

  • Revert การส่งโค้ดที่เป็นอันตรายนั้น และทำการตรวจสอบไฟล์ทั้งหมดในโฟลเดอร์ .github/workflows/
  • Rotate รหัสผ่านใหม่ทั้งหมด สำหรับข้อมูล secret ที่ระบบ GitHub Actions Runners สามารถเข้าถึงได้ ไม่ว่าจะเป็นโทเค็น, API Keys, SSH Keys และข้อมูล credentials บนระบบคลาวด์
  • ตรวจสอบ Cloud Logs เพื่อหาการ request โทเค็น OIDC ที่ผิดปกติ ซึ่งอาจมาจากขั้นตอนการทำงานที่ไม่รู้จัก
  • ตรวจสอบแท็บ Actions บน GitHub เพื่อดูว่ามีการสั่งรัน workflow_dispatch ที่ไม่คาดคิดหรือไม่
  • กำหนดเวอร์ชันของ GitHub Actions โดยระบุเป็นรหัส Commit SHA เจาะจง แทนการใช้แท็กเวอร์ชันทั่วไปที่สามารถเปลี่ยนแปลงได้
  • ตั้งค่าระบบอนุมัติขั้นตอนการทำงาน (Workflow Approval Gates) สำหรับคำขอรวมโค้ด (Pull Requests) ที่มาจาdภายนอกองค์กร

เครื่องมือวิเคราะห์ Malysis ของ SafeDep ได้ตรวจพบแคมเปญนี้เป็นครั้งแรก หลังจากตรวจพบซอร์สโค้ด Payload ที่เข้ารหัสแบบ Base64 ซ่อนอยู่ภายในไฟล์ขั้นตอนการทำงานที่แนบมาในแพ็กเกจ @tiledesk/tiledesk-server@2.18.12 ซึ่งเป็นการเน้นย้ำถึงความสำคัญของเครื่องมือสแกน supply chain แบบอัตโนมัติ ในการดักจับการโจมตีที่สามารถหลบเลี่ยงการตรวจสอบโค้ดแบบดั้งเดิมได้

ที่มา : Cybersecuritynews