สรุปสั้น
นักวิจัยด้านความปลอดภัยเปิดเผยแคมเปญมัลแวร์ขนาดใหญ่บน GitHub หลังพบ repository มากกว่า 10,000 แห่งที่กระจายไฟล์บีบอัด (archive) ฝังโทรจัน สร้างความกังวลต่อการใช้ประโยชน์จากโมเดลความไว้วางใจของแพลตฟอร์มและข้อจำกัดของการตรวจจับอัตโนมัติ จุดเริ่มต้นการสืบสวนเกิดขึ้นเมื่อนักวิจัยสังเกตเห็นเวอร์ชันโคลนของ repository ของตนเองปรากฏในผลการค้นหาของเสิร์ชเอนจิน แม้ชื่อโปรเจกต์ คำอธิบาย และประวัติ commit จะดูเหมือนกันทุกอย่าง แต่มี commit ที่เพิ่มเข้ามาใหม่ใส่ลิงก์อันตรายในไฟล์ README ที่ชี้ไปยังไฟล์ ZIP ดาวน์โหลด
พฤติกรรมแบบเดียวกันนี้ถูกพบในหลาย repository ที่มีชื่อและผู้ร่วมพัฒนาต่างกันโดยไม่มีความสัมพันธ์แบบ fork ตรง ๆ บ่งชี้ว่าเป็นแคมเปญที่ประสานงานกันมากกว่าเหตุการณ์โดดเดี่ยว ผู้โจมตีจำลอง repository ที่ถูกต้องตามกฎหมายรวมถึงประวัติ commit เต็มและโปรไฟล์ผู้ร่วมพัฒนาเพื่อสร้างความน่าเชื่อถือ จากนั้นแก้ไฟล์ README เป็นระยะให้รวมลิงก์ไปยังไฟล์ ZIP ภายนอก โดย commit เหล่านี้มักถูกเขียนทับและ push ซ้ำทุกไม่กี่ชั่วโมง ติดป้ายว่า “Update README.md” ซึ่งเป็นกลยุทธ์ที่อาจช่วยหลบกลไกตรวจจับหรือคงการปรากฏในระบบจัดทำดัชนี
รายละเอียดข่าว
เว็บไซต์ Cyber Security News รายงานเมื่อวันที่ 22 มิถุนายน พ.ศ. 2569 ว่า บริษัท Orchid ได้แชร์รายงานการสืบสวนแคมเปญมัลแวร์บน GitHub ที่กระจายไฟล์ ZIP ฝังโทรจัน การสืบสวนเริ่มต้นเมื่อนักวิจัยพบ repository ของตนเองถูกโคลนและปรากฏในผลการค้นหา แม้จะดูเหมือนต้นฉบับทุกประการ แต่มี commit ใหม่เพิ่มลิงก์ดาวน์โหลด ZIP อันตรายในไฟล์ README
ไฟล์ ZIP ที่ลิงก์ไปบรรจุไฟล์จำนวนน้อย ได้แก่ สคริปต์คำสั่ง (command script) ตัวโหลดที่รันได้ (executable loader) และไลบรารีไดนามิก แม้ลิงก์ไฟล์แต่ละชิ้นมักไม่ถูกตรวจจับบน VirusTotal แต่เมื่อดาวน์โหลดและสแกนทั้งชุด archive กลับพบมัลแวร์โทรจัน บ่งชี้ว่าผู้โจมตีใช้เทคนิคหลบเลี่ยงด้วยการแยกหรืออำพรางส่วนประกอบของ payload เพื่อข้ามเครื่องมือสแกนอัตโนมัติ
เพื่อหาขนาดที่แท้จริงของแคมเปญ นักวิจัยได้พัฒนาสคริปต์โดยใช้ข้อมูล event ของ GitHub จาก GH Archive แทนที่จะสแกนทุก repository ซึ่งไม่สามารถทำได้จริงเพราะข้อจำกัดอัตรา API สคริปต์จึงเน้นไปที่ repository ที่มีกิจกรรม commit บ่อย จากเหตุการณ์ commit ราว 16 ล้านครั้งที่วิเคราะห์ตลอด 5 วัน พบราว 3,000 repository ที่มีรูปแบบอัปเดตน่าสงสัย และหลังปรับตัวกรองเพื่อตัดบอต บังคับความหลากหลายของผู้ร่วมพัฒนา และตรวจจับจังหวะ commit ผิดปกติ สคริปต์จึงระบุได้ราว 10,000 repository ที่ตรงกับรูปแบบอันตราย โดยหลาย repository ไม่ถูกตรวจพบมานานหลายเดือนหรือหลายปี
วิธีการโจมตี
แคมเปญนี้ถูกออกแบบมาเพื่อใช้ประโยชน์จากการปรากฏของ GitHub ในเสิร์ชเอนจินและในขั้นตอนการทำงานของนักพัฒนา ด้วยการโคลน repository ที่เพิ่งสร้างใหม่หรือมีทราฟฟิกต่ำ ผู้โจมตีเพิ่มโอกาสที่จะปรากฏในผลการค้นหาสำหรับคำค้นเฉพาะกลุ่ม การเก็บประวัติ commit และข้อมูล metadata ของผู้ร่วมพัฒนาไว้ช่วยเพิ่มความชอบธรรม ทำให้ผู้ใช้มีแนวโน้มไว้ใจและดาวน์โหลดไฟล์อันตรายมากขึ้น
นักวิจัยยังพบตัวบ่งชี้เพิ่มเติม เช่น commit ที่ไม่มีการเปลี่ยนแปลงไฟล์จริง และแบบแผนการตั้งชื่อที่สม่ำเสมอ ซึ่งสะท้อนวิธีการ deploy แบบอัตโนมัติ ที่น่าสนใจคือบาง repository ถูกอัปเดตไม่บ่อย ท้าทายสมมติฐานที่ว่ากิจกรรม commit ถี่เป็นลักษณะเฉพาะของ repository อันตราย แม้จะมีการรายงาน แต่การแก้ไขกลับไม่สม่ำเสมอ — GitHub ลบ repository ที่นักวิจัยระบุไว้อย่างชัดเจน แต่ repository ที่เพิ่งระบุใหม่ยังคงทำงานอยู่ สะท้อนแนวทางบังคับใช้แบบตั้งรับมากกว่าเชิงรุก รายงานสาธารณะและงานวิจัยก่อนหน้าชี้ว่ากลยุทธ์นี้ถูกใช้มาตั้งแต่อย่างน้อยต้นปี 2025 โดยมีแคมเปญคล้ายกันที่กระจายมัลแวร์ตระกูล SmartLoader และ StealC
ผลกระทบต่อไทย
นักพัฒนาซอฟต์แวร์และทีมงานด้านไอทีในไทยพึ่งพา GitHub เป็นแหล่งโค้ดและเครื่องมือหลักในชีวิตประจำวัน แคมเปญนี้อันตรายเป็นพิเศษเพราะอาศัยความไว้วางใจในแพลตฟอร์มและความเคยชินในการค้นหาโค้ดผ่านเสิร์ชเอนจิน นักพัฒนาไทยที่ค้นหาไลบรารีหรือเครื่องมือเฉพาะกลุ่มอาจเจอ repository โคลนที่ดูน่าเชื่อถือทุกประการ แล้วดาวน์โหลดไฟล์ ZIP ที่ฝังโทรจันโดยไม่รู้ตัว เมื่อมัลแวร์อย่าง SmartLoader หรือ StealC ทำงาน อาจขโมย credential, token, และข้อมูลสำคัญ ซึ่งอาจลุกลามไปสู่การโจมตี supply chain ในองค์กรได้ ความเสี่ยงนี้กระทบทั้งนักพัฒนาอิสระและทีมในองค์กรขนาดใหญ่
คำแนะนำ
นักพัฒนาควรตรวจสอบการดาวน์โหลดจากภายนอกทุกครั้ง แม้จะมาจาก repository ที่ดูถูกต้องตามกฎหมาย โดยเฉพาะลิงก์ไฟล์ ZIP ที่อยู่ในไฟล์ README ควรหลีกเลี่ยงการรันสคริปต์หรือ executable ที่ดาวน์โหลดมาทันที และสแกนทั้ง archive (ไม่ใช่แค่ไฟล์เดี่ยว) ด้วยเครื่องมือหลายตัวก่อนเปิดใช้ ตรวจสอบว่า repository เป็นต้นฉบับจริงหรือไม่โดยดูที่ความสัมพันธ์ fork จำนวน star และความน่าเชื่อถือของบัญชีเจ้าของ ระวัง repository ที่มี commit “Update README.md” ซ้ำ ๆ บ่อยผิดปกติ ใช้เครื่องมือ dependency scanning และ EDR ที่ตรวจจับพฤติกรรมเพื่อจับมัลแวร์ที่หลบเลี่ยงการสแกนแบบ static และพิจารณาดาวน์โหลด dependency จากแหล่งทางการของ vendor เท่านั้น
