A new open-source scanner that audits AI “agent skills” is being turned into a tool after researchers showed an unverified skill can silently harvest SSH keys and cloud credentials. The scanner blends keyword filters, behavior analysis, AI-driven reasoning, sandbox execution and change-detection to stop the next wave of supply-chain attacks against AI-assisted developers.

ทำไมทักษะ AI ถึงมีความสำคัญในตอนนี้

ผู้ช่วยโมเดลภาษาขนาดใหญ่ (LLM) เช่น Claude และ GitHub Copilot ในปัจจุบันพึ่งพา “agent skills” ซึ่งเป็นโฟลเดอร์ขนาดเล็กที่ทำงานได้ด้วยตัวเอง เพื่อบอกโมเดลว่าต้องปฏิบัติงานเฉพาะเจาะจงอย่างไร เมื่อเร็วๆ นี้ GitHub ได้เพิ่มคำสั่งบรรทัดเดียวที่ช่วยให้นักพัฒนาสามารถดึงทักษะเหล่านี้มาจาก repository สาธารณะได้โดยตรง ทำให้สิ่งนี้กลายเป็นเครื่องมือจัดการแพ็กเกจ (package manager) โดยพฤตินัยสำหรับเวิร์กโฟลว์ที่ขับเคลื่อนด้วย AI

ความสะดวกสบายนี้เป็นสิ่งที่ปฏิเสธไม่ได้: ทักษะหนึ่งสามารถเปลี่ยนคำขอที่คลุมเครืออย่าง “จัดระเบียบสเปรดชีตนี้หน่อย” ให้กลายเป็นการเรียกใช้ API ที่แม่นยำ, การจัดการไฟล์ หรือการแก้ไขโค้ด แต่ความเรียบง่ายแบบเดียวกันนี้เองที่เปิดช่องให้โค้ดอันตรายแฝงตัวเข้ามาในชุดคำสั่งได้

หน้าคำเตือนของ GitHub ระบุว่าทักษะเหล่านี้จะไม่ได้รับการตรวจสอบก่อนที่จะมีการติดตั้ง

วิธีที่ Payload ที่ซ่อนอยู่สามารถหลบเลี่ยงการตรวจจับได้

ต่างจากไฟล์ไบนารีทั่วไป ทักษะของ AI จะไม่โหลดข้อมูลทั้งหมดในคราวเดียว โมเดลจะอ่านสรุปสั้นๆ ก่อน จากนั้นจึงจะดึงชุดคำสั่งฉบับเต็มมาใช้ก็ต่อเมื่อภารกิจนั้นดูมีความเกี่ยวข้องเท่านั้น การโหลดข้อมูลเป็นลำดับขั้นเช่นนี้สร้างช่องว่างที่ทำให้ไฟล์อันตรายสามารถวางอยู่เฉยๆ โดยที่ผู้ใช้มองไม่เห็น จนกว่าโมเดลจะตัดสินใจเรียกใช้งานมัน

ในการทดลองแบบ proof-of-concept นักวิจัยได้สร้างทักษะปลอมที่ชื่อว่า csv-formatter ซึ่งโฆษณาว่าใช้สำหรับจัดระเบียบสเปรดชีต โค้ดที่มองเห็นดูเหมือนไม่มีอันตราย แต่มีคำสั่งที่ซ่อนอยู่ซึ่งเพิ่ม “ขั้นตอนการวินิจฉัย” (diagnostic step) เข้ามา ซึ่งขั้นตอนดังกล่าวไม่ได้วินิจฉัยอะไรเลย แต่มันกลับสแกนหา SSH private keys และ AWS access tokens ในเครื่องโฮสต์ จากนั้นจึงส่งข้อมูลที่พบไปยังเซิร์ฟเวอร์ภายนอก

คำสั่งอันตรายนี้ยังปรากฏอยู่ในไฟล์ changelog ซึ่งเป็นจุดที่มนุษย์ส่วนใหญ่ไม่เคยตรวจสอบ แต่เป็นจุดที่ AI จะอ่านเมื่อประเมินประวัติเวอร์ชัน (version history) AI ได้รันกระบวนการขโมยข้อมูลรับรอง (credential-theft) อย่างเงียบเชียบ ในขณะที่นักพัฒนาเข้าใจว่าทักษะนั้นเพียงแค่กำลังจัดรูปแบบข้อมูลเท่านั้น

การตอบโต้ด้วยโอเพนซอร์ส

เพื่อปิดช่องโหว่นี้ นักวิจัยจึงได้รวบรวมตรรกะการตรวจจับไว้ในเครื่องมือตรวจสอบแบบโอเพนซอร์ส เครื่องมือสแกนนี้ไม่ได้พึ่งพาเทคนิคเพียงอย่างเดียว แต่ใช้การป้องกันหลายชั้น:

  • Keyword matching ตรวจจับความพยายามที่โจ่งแจ้งและไม่ซับซ้อนซึ่งมีข้อความอันตรายที่รู้จักอยู่
  • Behavior analysis ทำเครื่องหมายคำสั่งที่มีการอ่านไฟล์ข้อมูลรับรองแล้วทำการเรียกใช้งานเครือข่าย (network calls)
  • AI reasoning ใช้โมเดลลำดับที่สองเพื่อประเมินว่าคำสั่งของทักษะถูกซ่อนจากผู้ใช้อย่างจงใจหรือไม่
  • Sandboxing รันทักษะในสภาพแวดล้อมที่แยกส่วน (isolated environment) เพื่อสังเกตการทำงานแบบเรียลไทม์โดยไม่ทำให้ระบบโฮสต์ตกอยู่ในความเสี่ยง
  • Change detection ตรวจสอบทักษะที่เชื่อถือได้เพื่อหาการแก้ไขที่ไม่คาดคิด และแจ้งเตือนผู้ดูแลระบบก่อนที่จะมีการติดตั้งเวอร์ชันใหม่

ผู้เขียนจะรวมชุดทดสอบ (test suite) ที่จำลองการโจมตีแบบ csv-formatter และเกณฑ์มาตรฐานสาธารณะ (public benchmark) ที่ใช้วัดอัตราการตรวจจับจากชุดทักษะทั้งแบบปกติและแบบอันตรายที่คัดสรรมาแล้ว

สิ่งที่ต้องจับตามองต่อไป

  • Community benchmarks: เมื่อมีนักวิจัยเผยแพร่ตัวอย่างทักษะอันตรายมากขึ้น เกณฑ์มาตรฐานสาธารณะจำเป็นต้องได้รับการอัปเดตอย่างสม่ำเสมอเพื่อให้ยังคงใช้งานได้จริง

การเกิดขึ้นของ AI agent skills ถือเป็นพรมแดนใหม่ในเครื่องมือสำหรับนักพัฒนา แต่ขณะเดียวกันก็เป็นการเปิดประตูสู่การโจมตีแบบ supply-chain ที่สามารถข้ามผ่านการตรวจสอบโค้ด (code review) แบบดั้งเดิมได้ เครื่องมือสแกนแบบโอเพนซอร์สที่ผสมผสานการตรวจสอบแบบสแตติก (static checks), การสังเกตการณ์แบบไดนามิก (dynamic observation) และการใช้เหตุผลด้วย AI จึงเป็นด่านป้องกันแรกที่ใช้งานได้จริง นักพัฒนาที่ปฏิบัติกับทักษะเสมือนเป็น USB drive ที่ไม่รู้จักแหล่งที่มา จะพบในไม่ช้าว่าต้นทุนของการละเลยการตรวจสอบนั้นสูงกว่าความสะดวกสบายจากการได้รับความช่วยเหลือจาก AI ในทันทีอย่างเทียบไม่ได้