Databricks พบว่า LLM มักมองข้ามมัลแวร์ที่ซ่อนอยู่ในไฟล์ไบนารีของ npm
Databricks Threat Research ระบุว่า LLM มักไม่สามารถตรวจจับมัลแวร์ของ npm ที่ซ่อนอยู่ในไฟล์ไบนารีที่คอมไพล์แล้วได้ และการแทรกหลักฐานภัยคุกคามที่มีโครงสร้างลงในพรอมป์สามารถกู้คืนการตรวจจับที่พลาดไปได้ส่วนใหญ่
คำตอบโดยย่อ
ทีมวิจัยของ Databricks พบอะไรเกี่ยวกับความสามารถของ LLM ในการตรวจจับมัลแวร์ที่ซ่อนอยู่ในไฟล์ไบนารีของแพ็กเกจ npm
Databricks Threat Research ระบุว่า LLM ที่ใช้คัดกรองแพ็กเกจ npm มักมองข้ามมัลแวร์ที่ซ่อนอยู่ในไฟล์ไบนารีที่คอมไพล์แล้ว โดยพลาดการทดสอบในกลุ่มโมเดลระดับประหยัดถึงครึ่งหนึ่ง บริษัทระบุว่าการแทรกหลักฐาน "capability profile" ที่มีโครงสร้างลงในพรอมป์ก่อนให้โมเดลประมวลผลเหตุผล ช่วยกู้คืนกรณีที่พลาดไปได้ถึง 91% จากโมเดลทั้งหมดที่ทดสอบ
ประเด็นสำคัญ
- Databricks Threat Research ระบุว่าแพ็กเกจ npm ที่มีไฟล์ไบนารีคอมไพล์แล้วฝังอยู่นั้น หลบรอดจากการตัดสินว่าเป็นมัลแวร์อย่างชัดเจนได้บ่อยกว่าแพ็กเกจที่ซ่อนโค้ดอันตรายไว้ในซอร์สโค้ดที่มองเห็นได้ถึงสองเท่า (14.4% เทียบกับ 6.2% ตามข้อมูลของบริษัท)
- Databricks ทดสอบ LLM 9 ตัวจาก 7 ผู้พัฒนา และพบว่ากลุ่มโมเดลระดับประหยัด 7 ตัวพลาดการทดสอบตรวจจับมัลแวร์ไป 35 จาก 70 ครั้งเมื่อไม่มีคำแนะนำเพิ่มเติม รวมถึง 20 แพ็กเกจที่ถูกตัดสินว่าไม่มีอันตรายโดยสิ้นเชิง
- ระบบ "capability profile" ของบริษัทแทรกหลักฐานการวิเคราะห์แบบสแตติกเชิงโครงสร้างขนาดประมาณ 1,800 โทเคนลงในพรอมป์ของโมเดลก่อนที่จะให้ผลตัดสิน และ Databricks ระบุว่าวิธีนี้ช่วยแก้ปัญหากรณีที่พลาดเดิมในกลุ่มโมเดลระดับประหยัดได้ 32 จาก 35 กรณี
- ในการทดสอบกรณีหนึ่งที่ Databricks อธิบายไว้ Qwen3-Next 80B ตัดสินแพ็กเกจขโมยข้อมูลรับรองที่ถูกทำให้อ่านยากว่า "ไม่มีอันตราย" ด้วยความมั่นใจ 98% โดยไม่มีหลักฐานเพิ่มเติม ก่อนจะตัดสินแพ็กเกจเดียวกันนี้ว่า "เป็นอันตราย" ด้วยความมั่นใจ 98% เมื่อมีการใช้ capability profile
- Databricks ระบุว่า GPT-5.4-nano ยังคงเป็นโมเดลที่ทำงานได้แย่ที่สุดแม้จะเพิ่ม capability profile เข้าไปแล้ว โดยยังไม่สามารถให้ผลตัดสินว่าเป็นอันตรายได้ใน 3 จาก 10 เพย์โหลดที่ทดสอบ
สิ่งที่ Databricks พบ
Databricks Threat Research ระบุว่าได้เก็บรวบรวมตัวอย่างมัลแวร์จากทะเบียนแพ็กเกจ npm มาตั้งแต่เดือนพฤศจิกายน 2025 จากแพ็กเกจเวอร์ชันทั้งหมด 11,413 รายการที่สแกนและตรวจสอบยืนยันกับคำเตือนมัลแวร์ npm ของ OSV บริษัทระบุว่า 96.2% ซ่อนเพย์โหลดอันตรายไว้ในซอร์สโค้ดโดยตรง หรือดึงมาจากเซิร์ฟเวอร์ภายนอก ส่วนที่เหลืออีก 3.8% หรือ 432 แพ็กเกจเวอร์ชัน มาพร้อมกับไฟล์ไบนารีที่คอมไพล์แล้วแทน
ตามข้อมูลของ Databricks แพ็กเกจที่มีไบนารีฝังอยู่นั้นคัดกรองได้ยากกว่า แม้จะพบได้น้อยกว่าก็ตาม บริษัทระบุว่าในกลุ่มมัลแวร์ npm ที่ยืนยันโดย OSV แพ็กเกจที่มาพร้อมไบนารีไม่สามารถให้ผลตัดสินว่าเป็นอันตรายอย่างชัดเจนได้ในอัตราที่สูงกว่าแพ็กเกจที่มีเฉพาะซอร์สโค้ดถึงสองเท่า คือ 14.4% เทียบกับ 6.2%
วิธีการสร้างชุดทดสอบ
Databricks สร้างเครื่องมือสแกนที่เฝ้าตรวจทะเบียน npm แบบเรียลไทม์ โดยรัน YARA และ Semgrep กับโค้ดและข้อมูลเมตาของแพ็กเกจ ควบคู่กับโมดูลวิเคราะห์ไฟล์ไบนารี ก่อนส่งหลักฐานที่ประมวลผลแล้วให้ LLM ตัดสิน
เพื่อตรวจสอบการตรวจจับโดยอาศัยไฟล์ไบนารีโดยเฉพาะ ทีมวิจัยได้สร้างแพ็กเกจปฏิปักษ์ 5 ประเภท ในรูปแบบ Native Node.js add-on ได้แก่ แพ็กเกจขโมยข้อมูลรับรองชื่อ sysmon-native, ดรอปเปอร์/แบ็กดอร์ชื่อ buildchain-native, รีเวิร์สเชลล์ชื่อ netpulse-native, ตัวขุดคริปโตชื่อ hashworker-native และกลไกฝังตัวถาวรชื่อ taskd-native แต่ละแพ็กเกจถูกจัดทำให้ดูเป็นมืออาชีพ พร้อมไฟล์ package.json, README และ JavaScript bindings
Databricks ทดสอบโมเดล 9 ตัวจาก 7 ผู้พัฒนา ได้แก่ กลุ่มโมเดล "ระดับประหยัด" 7 ตัว ซึ่งบริษัทระบุว่าเป็นโมเดลที่ทีมต่าง ๆ มีแนวโน้มจะนำไปใช้งานจริงในวงกว้าง บวกกับโมเดลความสามารถสูงอีก 2 ตัว คือ Claude Sonnet 4.6 และ Kimi K3 ซึ่งใช้เป็นเส้นฐานเชิงพฤติกรรม และ Claude Opus 4.6 ซึ่งรวมไว้เพียงเพื่อใช้เป็นข้อมูลอ้างอิงด้านต้นทุน
ผลการทดสอบ
| โมเดล | ไม่มีโปรไฟล์ | มีโปรไฟล์ |
|---|---|---|
| GPT-5.4-nano | 0/10 | 7/10 |
| Qwen3-Next 80B | 1/10 | 10/10 |
| Llama 3.1 8B | 4/10 | 10/10 |
| Gemma 3 12B | 5/10 | 10/10 |
| Claude Haiku 4.5 | 6/10 | 10/10 |
| GLM 5.3 Flash | 9/10 | 10/10 |
| Gemini 3.5 Flash | 10/10 | 10/10 |
Databricks ระบุว่าหากไม่มีคำแนะนำเพิ่มเติม กลุ่มโมเดลระดับประหยัดพลาดการทดสอบตรวจจับไป 35 จาก 70 ครั้ง (50%) รวมถึง 20 กรณีที่โมเดลตัดสินว่ามัลแวร์ไม่มีอันตรายโดยสิ้นเชิง และไม่สามารถให้ผลตัดสิน "เป็นอันตราย" ได้ใน 51 จาก 70 การทดสอบ (73%) บริษัทระบุว่าโมเดลเส้นฐานทั้งสองตัวไม่พลาดในเกณฑ์การตรวจจับเลย และพลาดเกณฑ์การตัดสินว่าเป็นอันตรายเพียงครั้งเดียวเท่านั้น
Databricks ระบุว่าได้แก้ปัญหานี้ด้วยสิ่งที่เรียกว่า "capability profile" ซึ่งเป็นชุดแนวทางเชิงประกาศที่ให้คะแนนหลักฐานจากการสแกนแบบสแตติกเทียบกับเกณฑ์ที่ผูกกับเทคนิคอันตรายเฉพาะเจาะจง เช่น การขโมยข้อมูลรับรอง หรือการฝังตัวถาวร เมื่อเข้าเกณฑ์ ระบบจะแทรกข้อมูลสรุปเชิงโครงสร้างขนาดประมาณ 1,800 โทเคนลงในพรอมป์ของโมเดลก่อนที่จะประมวลผลเหตุผล แม้ว่าโมเดลยังสามารถตัดสินขัดแย้งกับผลของโปรไฟล์ได้ก็ตาม
เมื่อเพิ่มโปรไฟล์เข้าไป Databricks ระบุว่า 32 จาก 35 กรณีที่พลาดเดิม (91%) กลายเป็นการตรวจจับที่ถูกต้อง และไม่มีโมเดลใดตัดสินว่าเพย์โหลดที่ทดสอบไม่มีอันตรายเลยแม้แต่กรณีเดียว อัตราการพลาดในเกณฑ์การตรวจจับของกลุ่มโมเดลระดับประหยัดลดลงจาก 50% เหลือ 4% (3 จาก 70 การทดสอบ) และอัตราการพลาดเกณฑ์การตัดสินว่าเป็นอันตรายลดลงจาก 73% เหลือ 34% ความล้มเหลวที่เหลือ 3 กรณีของ GPT-5.4-nano ถูกตัดสินว่า "น่าสงสัย" แทนที่จะเป็น "ไม่มีอันตราย"
บริษัทยกตัวอย่างกรณีหนึ่งโดยละเอียด คือ Qwen3-Next 80B ตัดสินแพ็กเกจขโมยข้อมูล sysmon-native เวอร์ชันที่ถูกทำให้อ่านยาก (obfuscated) ว่าไม่มีอันตรายด้วยความมั่นใจ 98% และแนะนำให้เพิ่มเข้า allowlist เมื่อไม่มีการใช้โปรไฟล์ แต่สำหรับแพ็กเกจเดียวกันนี้ เมื่อ capability profile ทั้ง 4 ตัวถูกเรียกใช้งาน โมเดลตัวเดียวกันกลับตัดสินว่าเป็นอันตรายด้วยความมั่นใจ 98% และแนะนำให้บล็อกแพ็กเกจดังกล่าว
คำถามที่พบบ่อย
- งานวิจัยของ Databricks มุ่งแก้ปัญหาอะไร
- Databricks Threat Research ศึกษาว่าทำไม LLM ที่ใช้คัดกรองแพ็กเกจ npm ที่อาจเป็นอันตรายจึงมักตรวจจับมัลแวร์ที่ซ่อนอยู่ในไฟล์ไบนารีที่คอมไพล์แล้วไม่ได้ ต่างจากมัลแวร์ที่ซ่อนอยู่ในซอร์สโค้ดที่มองเห็นได้
- Databricks ทดสอบโมเดลจำนวนกี่ตัว และผลเป็นอย่างไรเมื่อไม่มีคำแนะนำเพิ่มเติม
- Databricks ทดสอบโมเดล 9 ตัวจาก 7 ผู้พัฒนา โดยไม่มีคำแนะนำเพิ่มเติม กลุ่มโมเดลระดับประหยัด 7 ตัวพลาดการทดสอบตรวจจับไป 35 จาก 70 ครั้ง รวมถึง 20 กรณีที่ถูกตัดสินว่าไม่มีอันตรายโดยสิ้นเชิง ตามข้อมูลของบริษัท
- capability profile คืออะไร ตามคำอธิบายของ Databricks
- Databricks อธิบายว่าเป็นชุดแนวทางเชิงประกาศที่ให้คะแนนหลักฐานจากการสแกนแบบสแตติกเทียบกับเกณฑ์ที่ผูกกับเทคนิคอันตรายเฉพาะเจาะจง โดยจะแทรกข้อมูลสรุปเชิงโครงสร้างขนาดประมาณ 1,800 โทเคนลงในพรอมป์ของโมเดลเมื่อเข้าเกณฑ์ดังกล่าว
- capability profile แก้ปัญหาการตรวจจับที่พลาดทั้งหมดที่ Databricks พบได้หรือไม่
- ไม่ทั้งหมด Databricks ระบุว่าโปรไฟล์ช่วยแก้ปัญหากรณีที่พลาดในกลุ่มโมเดลระดับประหยัดได้ 32 จาก 35 กรณี แต่ GPT-5.4-nano ยังคงตัดสินว่า "น่าสงสัย" แทนที่จะเป็น "เป็นอันตราย" ในสามจากสิบเพย์โหลดที่ทดสอบ