กลับ
2026/11/11
เครื่องมือความปลอดภัยที่คุณดาวน์โหลดคือมัลแวร์: repo GitHub ปลอมแพร่เชื้อสู่พีซี Windows กว่า 2,000 เครื่อง
Doctor Web พบเครื่องมือความปลอดภัยปลอมบน GitHub ที่รันมัลแวร์เมื่อคุณ build กลไกของกับดัก และสิ่งที่ควรตรวจสอบก่อน build โค้ดที่ clone มา
คุณเจอเครื่องมือเล็ก ๆ บน GitHub ที่ช่วยจัดระเบียบผลลัพธ์จากเครื่องมือสแกนเครือข่าย มี README มีโปรเจกต์ Visual Studio และมีขั้นตอนการ build ให้พร้อม คุณ clone มาแล้วกด Build ทุกอย่างดูปกติ แต่ก่อนที่คอมไพเลอร์จะเริ่มทำงาน คำสั่งที่ซ่อนอยู่ได้รันบนเครื่องของคุณไปเรียบร้อยแล้ว
นี่คือกับดักที่ Doctor Web รายงานเมื่อวันที่ 5 พฤศจิกายน 2026 นักวิจัยของบริษัทพบ repository บน GitHub ที่ปลอมตัวเป็นเครื่องมือสำหรับการสแกนอัตโนมัติ การทดสอบความปลอดภัย และการวิเคราะห์ log และนับได้ว่ามีพีซี Windows ติดเชื้อมากกว่า 2,000 เครื่อง ณ เวลาที่ทำการวิจัย บทความนี้อธิบายว่ากับดักทำงานอย่างไร ทำไมจึงหลอกได้แม้แต่วิศวกรที่มีประสบการณ์ และคุณควรตรวจสอบอะไรบ้างก่อน build โค้ดที่เพิ่ง clone มา
ประเด็นสำคัญ
- repository เหล่านี้ปลอมตัวเป็นเครื่องมือด้านความปลอดภัย และคำสั่งอันตรายจะรันระหว่างการ build หรือเมื่อเริ่มรันสคริปต์ โดยไม่ต้องเปิดโปรแกรมอื่นแยกต่างหาก
- โค้ดอันตรายซ่อนอยู่ในไฟล์โปรเจกต์ Visual Studio ในไฟล์
.suoและหลังช่องว่างยาวเหยียดในซอร์สโค้ด Python และ Go - payload สุดท้ายคือ backdoor AsyncRAT สองตัว ตัวสลับที่อยู่กระเป๋าเงินคริปโตในคลิปบอร์ด และ infostealer ที่ขโมยข้อมูลเบราว์เซอร์ การตั้งค่า VPN และ FTP รวมถึงโทเคน Discord
- อ่านไฟล์ build ก่อนลงมือ build และ build โค้ดที่ไม่รู้จักในเครื่องเสมือนแบบใช้แล้วทิ้งที่ไม่มีข้อมูลรับรองใด ๆ อยู่
- หากคุณ build โปรเจกต์เหล่านี้ไปแล้ว ให้ถือว่าเครื่องนั้นถูกเจาะ และเปลี่ยนข้อมูลรับรองทุกอย่างที่เคยอยู่ในเครื่องจากอุปกรณ์อื่นที่สะอาด
สิ่งที่ Doctor Web ค้นพบ
ตามรายงานของ Doctor Web repository ที่ติดเชื้อชุดแรกปรากฏขึ้นเมื่อประมาณสองปีก่อน ตอนนั้นมุ่งเป้าไปที่ผู้ใช้กระเป๋าเงินคริปโต และนำเสนอตัวเองเป็นเกมบล็อกเชน บอทเกม และโปรแกรมโกงเกม ปัจจุบันผู้อยู่เบื้องหลังได้เปลี่ยนเป้าหมายมาเป็นผู้เชี่ยวชาญด้านความปลอดภัยสารสนเทศ หนึ่งใน repository ปลอมมีสคริปต์สำหรับแยกวิเคราะห์ ทำความสะอาด และจัดรูปแบบผลลัพธ์ของเครื่องมือสแกนเครือข่าย Fscan
นี่ไม่ใช่ช่องโหว่ของซอฟต์แวร์ และไม่มี CVE ให้แพตช์ แต่เป็นแคมเปญโจมตีห่วงโซ่อุปทานร่วมกับวิศวกรรมสังคม ผู้โจมตีเผยแพร่โปรเจกต์ที่ดูมีประโยชน์แล้วรอให้มีคน build บทสรุปของ BleepingComputer เกี่ยวกับงานวิจัยนี้ระบุว่าเทคนิคการซ่อนหลังช่องว่างเป็นวิธีเก่าที่ยังคงได้ผล
กับดักทำงานอย่างไร
Doctor Web พบโค้ดอันตรายในไฟล์สามประเภท ซึ่งไม่มีประเภทใดเลยที่ผู้รีวิวมักเปิดดูเป็นอันดับแรก
| ซ่อนอยู่ที่ไหน | เกิดอะไรขึ้น | ทำไมจึงมองข้ามได้ง่าย |
|---|---|---|
ไฟล์โปรเจกต์ .csproj | PreBuildEvent รันคำสั่งก่อนที่โปรเจกต์จะคอมไพล์ | ผู้รีวิวอ่านซอร์สโค้ด ไม่ได้อ่านไฟล์โปรเจกต์ |
ไฟล์ .suo | ไฟล์มีคำสั่ง PowerShell แฝงอยู่ | เป็นไฟล์การตั้งค่าแบบไบนารีที่ Visual Studio มักเก็บไว้ในโฟลเดอร์ซ่อน |
| ไฟล์ซอร์ส Python และ Go | โค้ดอันตรายอยู่หลังอักขระช่องว่างจำนวนมาก | บรรทัดนั้นดูว่างเปล่า เว้นแต่คุณจะเลื่อนไปทางขวาไกลมากหรือเปิดการตัดบรรทัด |
จากนั้นลำดับการโจมตีจะเหมือนกัน สคริปต์ PowerShell (รายงานยกตัวอย่าง C:\Users\Public\Pictures\t.ps1 และ L.ps1) จะขอสตริงที่เข้ารหัสจากเซิร์ฟเวอร์ของผู้โจมตี หรือจากบริการที่ถูกกฎหมาย เช่น YouTube, Telegram, Google Docs, GitCode และ Pastebin เมื่อถอดรหัสแล้ว สตริงนั้นคือลิงก์ดาวน์โหลดไฟล์บีบอัดซึ่งจะถูกแตกไฟล์ไปไว้ที่ C:\ProgramData\Windows.Microsoft.Photos
ภายในมี loader ที่สร้างด้วย Electron ชื่อ Microsoft.exe ซึ่ง Doctor Web ตรวจจับในชื่อ Trojan.Loader.3261 loader นี้ส่งข้อมูลระบบผ่านบอท Telegram พยายามยกระดับสิทธิ์ และปิด Windows Defender, User Account Control, การแจ้งเตือน, System Restore และ volume shadow copy นอกจากนี้ยังพยายามถอนการติดตั้งผลิตภัณฑ์ของ ESET, McAfee และ Malwarebytes และแก้ไขไฟล์ hosts เพื่อบล็อกโดเมนของผู้ผลิตแอนติไวรัส
เพื่อไม่ให้ถูกตรวจพบ ในโหมดเริ่มต้น loader จะทำให้ดูเหมือนว่า explorer.exe เป็นโปรเซสแม่ของมัน เปลี่ยนค่า registry VerifiedAndReputablePolicyState เพื่อเลี่ยง Smart App Control กู้คืนโค้ดต้นฉบับของ ntdll.dll เพื่อลบ hook ที่ผลิตภัณฑ์ความปลอดภัยติดตั้งไว้ เรียก system call โดยตรง และแพตช์ฟังก์ชันของ Windows ที่ใช้ในการติดตามเหตุการณ์และการสแกนสคริปต์ จากนั้นจึงฉีด payload เข้าไปในโปรเซส Windows ที่ถูกต้อง เช่น RegAsm.exe
ตามมาด้วย payload สามรายการ:
- backdoor AsyncRAT สองตัว ไฟล์เหมือนกันทุกประการแต่ใช้พอร์ตเครือข่ายต่างกัน ซึ่ง Doctor Web ระบุว่าอาจทำให้ผู้ควบคุมสองรายควบคุมอุปกรณ์เครื่องเดียวกันได้พร้อมกัน
- clipper สลับที่อยู่กระเป๋าเงินคริปโตในคลิปบอร์ด และส่งภาพหน้าจอ ชื่อหน้าต่างที่ใช้งานอยู่ ชื่อผู้ใช้ที่ล็อกอิน และที่อยู่ IP ไปยังบอท Telegram
- infostealer (JS.Stealer.191) ตรวจสอบว่ากำลังรันใน sandbox หรือเครื่องเสมือนหรือไม่ จากนั้นเก็บข้อมูลเบราว์เซอร์ ไฟล์การเชื่อมต่อของ FileZilla, MobaXterm และ Total Commander การตั้งค่า VPN ไฟล์ของแอปส่งข้อความ ข้อมูลบัญชีเกม และโทเคน Discord แล้วส่งออกไปผ่านบอท Telegram
Doctor Web ยังพบส่วนประกอบที่ยังพัฒนาไม่เสร็จ ซึ่งจะติดตั้ง Windows service และดาวน์โหลด loader กลับมาใหม่หากถูกลบ แสดงให้เห็นว่าผู้อยู่เบื้องหลังยังคงพัฒนาชุดเครื่องมือนี้อยู่
ทำไมจึงได้ผลกับมืออาชีพ
แคมเปญนี้ถูกออกแบบรอบนิสัยที่ปกติถือว่าเป็นแนวปฏิบัติที่ดี
- การ build จากซอร์สให้ความรู้สึกปลอดภัยกว่าการรันไฟล์ที่ดาวน์โหลดมา วิศวกรหลายคนไม่ยอมรันไฟล์ไบนารีที่ไม่รู้จัก แต่ยินดีคอมไพล์โปรเจกต์เพราะอ่านโค้ดได้ ในกรณีนี้โค้ดที่พวกเขาอ่านสะอาด แต่คำสั่งอันตรายอยู่ในการตั้งค่าการ build
- ไม่มีช่วงเวลา “รันโปรแกรมนี้” คำสั่งเริ่มทำงานเป็นส่วนหนึ่งของการ build ตามปกติ จึงไม่มีจังหวะให้หยุดคิดเหมือนก่อนเปิดโปรแกรมที่ไม่รู้จัก
- GitHub เป็นแหล่งที่น่าเชื่อถือ repository ที่มี README เรียบร้อยและคำแนะนำการติดตั้งดูเหมือนโปรเจกต์สุจริตอีกนับพัน Doctor Web ระบุว่าผู้โจมตีถึงขั้นเตรียมคำแนะนำการติดตั้ง Visual Studio และการ clone repository ไว้ให้ด้วย
- เครื่องของวิศวกรถือกุญแจสำคัญ เซสชันเบราว์เซอร์ที่บันทึกไว้ โปรไฟล์ VPN และไฟล์การเชื่อมต่อเซิร์ฟเวอร์คือสิ่งที่ infostealer เก็บไป และมักเปิดทางเข้าสู่ระบบ production และสภาพแวดล้อมของลูกค้า
สิ่งที่ต้องตรวจสอบก่อน build
การตรวจสอบเหล่านี้ใช้เวลาเพียงไม่กี่นาที และใช้ได้กับทุกโปรเจกต์ที่เพิ่ง clone มา ไม่ว่าจะบน Windows, Linux หรือ macOS ให้รันในโฟลเดอร์ของ repository ก่อนเปิดโปรเจกต์ใน IDE
# 1. Build hooks and command execution in project files
grep -rniE 'PreBuildEvent|PostBuildEvent|<Exec |powershell|cmd\.exe' \
--include='*.csproj' --include='*.vbproj' --include='*.vcxproj' \
--include='*.props' --include='*.targets' .
# 2. Visual Studio user-option files that should not be in a repository
find . -name '*.suo'
# 3. Files with very long runs of spaces or tabs on one line
grep -rlE '[[:space:]]{200,}' .
บน Windows ที่ไม่มีเชลล์แบบ Unix สามารถใช้ PowerShell ตรวจหาช่องว่างได้ในลักษณะเดียวกัน:
Get-ChildItem -Recurse -File |
Select-String -Pattern '\s{200,}' -List |
Select-Object -ExpandProperty Path
ผลลัพธ์ที่พบไม่ได้เป็นหลักฐานว่ามีมัลแวร์ โปรเจกต์สุจริตจำนวนมากใช้ build event และไฟล์ที่ถูก minify ก็มีบรรทัดยาว แต่เป็นเหตุผลให้เปิดไฟล์และอ่านว่าคำสั่งทำอะไร ก่อนที่จะมีอะไรรันขึ้นมา
- อ่านไฟล์ build ก่อน ไฟล์โปรเจกต์
Makefile,setup.pyสคริปต์ติดตั้งแพ็กเกจ และไฟล์ CI ล้วนรันคำสั่งได้ จึงควรอ่านอย่างละเอียดเท่ากับซอร์สโค้ด - ลบไฟล์
.suoและโฟลเดอร์.vsที่มาพร้อมกับ repository เพราะเป็นการตั้งค่าเฉพาะผู้ใช้ และโปรเจกต์ไม่จำเป็นต้องใช้ในการ build - เปิดการตัดบรรทัดหรือการแสดงช่องว่าง ในเอดิเตอร์เมื่อรีวิวโค้ดที่ไม่คุ้นเคย
- ดูประวัติของ repository บัญชีที่เพิ่งสร้าง commit ใหญ่เพียงครั้งเดียว มี issue หรือผู้ร่วมพัฒนาจริงน้อย และเครื่องมือที่ซ้ำกับโปรเจกต์ที่มีชื่อเสียง ล้วนเป็นเหตุผลให้ระวังมากขึ้น จำนวนดาวและ fork เพียงอย่างเดียวพิสูจน์อะไรได้น้อย เพราะปลอมขึ้นได้
- build โค้ดที่ไม่รู้จักในสภาพแวดล้อมแบบใช้แล้วทิ้ง ใช้เครื่องเสมือนหรือคอนเทนเนอร์แบบใช้แล้วทิ้งที่ไม่มีรหัสผ่านที่บันทึกไว้ ไม่มีโปรไฟล์ VPN และไม่มีคีย์ SSH แล้วลบทิ้งหลังใช้งาน
เคล็ดลับ: เก็บ snapshot ของเครื่องเสมือนที่สะอาดไว้หนึ่งชุดสำหรับทดลองเครื่องมือ clone, build และทดสอบในนั้น แล้วย้อนกลับไปที่ snapshot หากเครื่องมือใดพิสูจน์แล้วว่ามีประโยชน์ ให้รีวิวอย่างถี่ถ้วนก่อนนำไปใกล้เครื่องที่ใช้งานประจำวัน
หากคุณ build ไปแล้ว
Doctor Web ได้เผยแพร่ค่าแฮชของไฟล์ โดเมน ที่อยู่ และตัวอย่างชื่อ repository ไว้ในรายการตัวบ่งชี้การบุกรุก (IoC) สัญญาณที่ระบุในรายงานได้แก่:
- โฟลเดอร์
C:\ProgramData\Windows.Microsoft.Photosหรือโปรแกรมชื่อMicrosoft.exe t.ps1หรือL.ps1ในC:\Users\Public\Pictures- ข้อยกเว้นของ Windows Defender สำหรับ
regasm.exeหรือdwm.exeที่คุณไม่ได้เพิ่มเอง - โดเมนของผู้ผลิตแอนติไวรัสในไฟล์
hostsหรือ System Restore และ shadow copy ถูกปิด - ซอฟต์แวร์ความปลอดภัยหายไปหรือหยุดอัปเดต
หากคุณพบสิ่งใดสิ่งหนึ่งเหล่านี้ หรือรู้ว่าตัวเองเคย build โปรเจกต์ที่อยู่ในรายการ ให้ปฏิบัติราวกับว่าทุกอย่างในเครื่องนั้นถูกอ่านไปแล้ว:
- ตัดการเชื่อมต่อเครื่องออกจากเครือข่ายและแจ้งทีมความปลอดภัย
- จากอุปกรณ์อื่นที่สะอาด ให้เปลี่ยนรหัสผ่านที่บันทึกไว้ในเบราว์เซอร์และออกจากระบบทุกเซสชันที่ใช้งานอยู่ เพื่อให้คุกกี้เซสชันที่ถูกขโมยใช้งานไม่ได้
- เปลี่ยนโปรไฟล์ VPN รวมถึงรหัสผ่านหรือคีย์ที่เก็บไว้ในโปรแกรม FTP และเทอร์มินัล และตรวจสอบเซิร์ฟเวอร์ที่สามารถเข้าถึงได้ด้วยข้อมูลเหล่านั้น
- รีเซ็ตเซสชัน Discord และแอปส่งข้อความอื่น ๆ และย้ายสินทรัพย์คริปโตไปยังกระเป๋าเงินที่สร้างบนอุปกรณ์ที่สะอาด
- ติดตั้งระบบปฏิบัติการใหม่แทนการทำความสะอาด loader ปิดฟีเจอร์ด้านความปลอดภัยและการกู้คืน และติดตั้ง backdoor ไว้สองตัว ระบบที่ทำความสะอาดแล้วจึงยากที่จะไว้วางใจ
เคล็ดลับ: ตรวจสอบ log ของเซิร์ฟเวอร์และ VPN เพื่อหาการลงชื่อเข้าใช้จากบัญชีที่ได้รับผลกระทบหลังวันที่ build โปรเจกต์ ไฟล์การเชื่อมต่อที่ถูกขโมยจะถูกใช้จากระบบของผู้โจมตี ไม่ใช่จากเครื่องที่ติดเชื้อ
LOGIQ ช่วยคุณได้อย่างไร
LOGIQ ช่วยองค์กรใช้งานซอฟต์แวร์โอเพนซอร์สได้อย่างปลอดภัย ตั้งแต่ enterprise Linux และ OpenJDK ไปจนถึงไปป์ไลน์การ build และการ deploy ที่เกี่ยวข้อง หากคุณต้องการมุมมองเพิ่มเติมว่าทีมของคุณนำโค้ดจากภายนอกเข้ามาในสภาพแวดล้อมอย่างไร หรือต้องการความช่วยเหลือในการแยกระบบ build ออกจากข้อมูลรับรองที่สำคัญ พูดคุยกับเรา
Global
Japan
Korea
China
Taiwan
Vietnam
Indonesia
Portugal
Spain
France
Germany
Egypt
Russia