NVIDIA สแกน skill pack ผม แล้วบอกว่าอย่าติดตั้ง
สแกน skill pack ด้วย SkillSpector เจอ 136 ปัญหา แต่ 114 ข้อคือกฎ AS3 ที่ชี้ทุกบรรทัดที่เป็นคำสั่ง สแกนก่อนติดตั้งได้ แต่ให้อ่านชื่อกฎ อย่าอ่านแค่สี
เอา skill pack ที่แจกอยู่ไปสแกนด้วย SkillSpector ของ NVIDIA
ผลออกมาแบบนี้
Risk Assessment
Score 100/100
Severity CRITICAL
Recommend DO_NOT_INSTALL
136 ปัญหา HIGH 12 MEDIUM 122
ของที่แจกให้คนอื่นโหลดไปใช้อยู่ทุกวัน เครื่องสแกนบอกว่าอย่าติดตั้ง
ก่อนจะตกใจ ไปดูว่ามันเจออะไร
จาก 136 ข้อ มี 114 ข้อเป็นกฎเดียวกันหมด รหัส AS3 คือ prompt injection
มันชี้มาที่ประโยคแบบนี้ในไฟล์ skill
"ก่อนจะบอกว่าทำเสร็จ ให้รันเทสต์ แล้วแปะผลลัพธ์มาให้ดู"
นั่นคือคำสั่งที่เราเขียนไว้ให้ agent ทำตาม มันคือเนื้อหาทั้งหมดของ skill
แล้ว prompt injection คืออะไร ก็คือคำสั่งที่ฝังไว้ให้ agent ทำตาม
สองอย่างนี้หน้าตาเหมือนกันเป๊ะ
skill ที่ดีกับ prompt injection ต่างกันที่เจตนา ไม่ได้ต่างกันที่รูปแบบ เครื่องที่อ่านแต่ตัวอักษรแยกสองอย่างนี้ไม่ออก มันเลยชี้ทุกบรรทัดที่เป็นคำสั่ง
ไฟล์ที่โดนหนักสุดคือ accountability-nag เพราะทั้งไฟล์คือการสอน agent ให้ตามงานเรา
แล้วมันไร้ประโยชน์มั้ย ไม่
SkillSpector มีสองชั้น ชั้นแรกอ่านตัวอักษรอย่างเดียว ชั้นสองใช้ LLM อ่านบริบทว่าคำสั่งนี้เขียนไว้ทำอะไร
ที่ผมรันคือชั้นแรกอย่างเดียว เพราะชั้นสองต้องต่อ API key แล้วต้องจ่ายเงิน
เลข CRITICAL ที่เห็นข้างบน จึงมาจากครึ่งที่โง่ที่สุดของเครื่องมือ
ตรงนี้สำคัญ ถ้าเอาผลสแกนดิบไปตัดสินใจ เราจะไม่กล้าติดตั้งอะไรเลยทั้งวงการ เพราะทุก skill จะขึ้น CRITICAL หมด
เครื่องสแกนบอกได้ว่า "ตรงนี้มีคำสั่งอยู่" มันบอกไม่ได้ว่า "คำสั่งนี้ไม่หวังดี" อันหลังยังเป็นงานของคน
อีกเรื่องที่เจอตอนรัน และเป็นเรื่องที่คนใช้เครื่องมือแนวนี้ควรรู้
เดือนกรกฎาคมผมเคยไล่ดู 63 ข้อทีละข้อ แล้วเขียนเหตุผลกำกับไว้ทุกข้อว่าทำไมถึงไม่ใช่ปัญหา เก็บไว้ในไฟล์ baseline
รอบนี้เครื่องมือปฏิเสธไฟล์นั้น
unsupported baseline version 1; expected 2
เหตุผลของเขาคือ fingerprint แบบเก่าไม่ได้ผูกกับหลักฐาน เลยเชื่อไม่ได้ ต้องสแกนใหม่แล้วไล่ดูใหม่ทั้งหมด
งานสองชั่วโมงที่ทำไว้ หายไปกับการอัปเวอร์ชัน
ไม่ได้จะบ่น เขาทำถูกแล้ว fingerprint ที่ไม่ผูกกับหลักฐานคือของอันตรายกว่า แต่ถ้าใครกำลังจะเอาเครื่องมือแนวนี้ไปใส่ใน CI ให้รู้ไว้ว่า การไล่ triage ไม่ใช่งานที่ทำครั้งเดียวจบ
สรุปสำหรับคนที่โหลด skill จากอินเทอร์เน็ตมาใช้
สแกนก่อนติดตั้ง ทำได้ฟรีและใช้เวลาไม่กี่นาที
skillspector scan <path หรือ github url> --no-llm
แต่ห้ามอ่านผลแบบผ่านๆ
เห็น CRITICAL อย่าเพิ่งทิ้ง ให้ดูว่ากฎอะไรที่โดน ถ้าเป็น AS3 เต็มไปหมดแปลว่ามันเจอ "คำสั่ง" ซึ่ง skill ทุกตัวในโลกมี
สิ่งที่ควรกลัวจริงๆ คือกฎที่เกี่ยวกับการส่งข้อมูลออกนอกเครื่อง การรันโค้ดที่ไม่ได้บอกไว้ และ permission ที่กว้างเกินงาน
อ่านชื่อกฎ อย่าอ่านแค่สี
ส่วนตัว skill pack ผมยังแจกเหมือนเดิม แต่ตอนนี้มีตัวเลขให้ดูแล้วว่าเจออะไรบ้าง ใครอยากสแกนเองก่อนโหลดก็เชิญเลย นั่นแหละคือสิ่งที่ควรทำกับทุก repo ที่เอามาจากคนแปลกหน้า รวมถึงของผมด้วย