ชุมชนโอเพนซอร์สมีฟีดข้อมูลภัยคุกคามแบบ federated ชุดแรกสำหรับการป้องกันโมเดลภาษาขนาดใหญ่ (LLMs) จากการโจมตีแบบ prompt-injection แล้ว ฟีดนี้เปิดตัวพร้อมกับ prompt-shield v0.6.0 โดยมาพร้อมกับลายเซ็นการโจมตีที่ผ่านการคัดสรรจำนวน 56 รายการ ซึ่งแต่ละรายการจะถูกลงลายเซ็นด้วย ed25519 key และสามารถดึงข้อมูลผ่าน CDN ฟรีด้วย Python client ที่มีน้ำหนักเบา

ทำไมการป้องกัน LLM ถึงขาดแหล่งข้อมูลภัยคุกคามที่ใช้ร่วมกัน

เลเยอร์ความปลอดภัยแบบดั้งเดิมนั้นพึ่งพาลายเซ็นสาธารณะที่มีการอัปเดตอย่างสม่ำเสมอ เช่น Web-application firewalls จะใช้รูปแบบจาก OWASP หรือโปรแกรมแอนตี้ไวรัสจะรับการอัปเดตจาก ClamAV ฟีดเหล่านี้ช่วยให้การป้องกันทันสมัยอยู่เสมอ ในทางตรงกันข้าม เครื่องมือรักษาความปลอดภัยสำหรับ LLM กลับทำงานอย่างโดดเดี่ยว โดยผู้ให้บริการหรือนักวิจัยแต่ละรายต่างก็ดูแลรายการ prompt ที่เป็นอันตรายไว้เป็นส่วนตัว

ช่องว่างนี้ไม่ใช่เรื่องทางเทคนิค ผู้ให้บริการเชิงพาณิชย์มองว่าข้อมูลภัยคุกคามเป็นผลิตภัณฑ์ จึงเก็บข้อมูลไว้เป็นความลับ ส่วนกลุ่มวิจัยขนาดใหญ่ก็ขาดทรัพยากรในการดูแลโครงสร้างพื้นฐานที่ "น่าเบื่อ" ซึ่งฟีดสาธารณะจำเป็นต้องมี ตลาดกลางสำหรับตัวตรวจสอบ (validator marketplaces) ที่มีอยู่ในปัจจุบันทำหน้าที่เป็นเพียงศูนย์กลางแบบทางเดียวที่ส่งการอัปเดตแบบคงที่ แทนที่จะเป็นกระแสข้อมูลแบบเรียลไทม์ที่ขับเคลื่อนโดยชุมชน ผลลัพธ์ที่ได้คือพื้นผิวการป้องกันที่กระจัดกระจาย ซึ่งทำให้เทคนิค prompt-injection ใหม่ๆ หลุดรอดไปได้โดยไม่มีใครสังเกตเห็น

ฟีดใหม่นี้ทำงานอย่างไร

โปรเจกต์นี้อยู่บน GitHub repository สาธารณะ และประกอบด้วยไฟล์สามไฟล์:

  • signatures.json – ลายเซ็นการโจมตี 56 รายการ โดยแต่ละรายการจะอธิบายรูปแบบที่อาจเข้าควบคุม (hijack) ผลลัพธ์ของ LLM
  • signatures.json.minisig – ลายเซ็น ed25519 ที่ผูกไฟล์ JSON เข้ากับ private key ของผู้ดูแล
  • public.key – public key ที่ไลบรารีฝั่ง client ใช้ในการตรวจสอบลายเซ็น

Python client ที่เขียนด้วย pure-Python เพียง 200 บรรทัด จะทำหน้าที่ดึงไฟล์ JSON ตรวจสอบ minisig กับ public key และรวมกฎใหม่ๆ เข้ากับ prompt-shield engine หากการตรวจสอบล้มเหลว client จะกลับไปใช้แคชล่าสุดที่ตรวจสอบแล้วว่าถูกต้อง (last known-good cache) เพื่อป้องกันไม่ให้ข้อมูลที่ไม่น่าเชื่อถือเข้าถึงเลเยอร์การป้องกัน

เสาหลักในการออกแบบสามประการที่ทำให้ฟีดนี้แตกต่างคือ:

  1. Zero telemetry – client จะส่งเพียง HTTP GET request เพียงครั้งเดียว และจะไม่ส่ง identifier, API keys หรือข้อมูลการใช้งานใดๆ ออกไป
  2. Cryptographic verification – ใครก็สามารถดาวน์โหลดฟีดได้ แต่จะยอมรับเฉพาะข้อมูลที่ลงลายเซ็นด้วย private key ของผู้ดูแลเท่านั้น
  3. Fail-safe behavior – หากลายเซ็นเสียหาย ระบบจะไม่ปิดการทำงานของ shield แต่จะยังคงใช้กฎที่เคยตรวจสอบแล้วก่อนหน้านี้ต่อไป

ลายเซ็นเหล่านี้รวบรวมมาจากแหล่งข้อมูลที่น่าเชื่อถือหลายแห่ง ได้แก่ Garak red-team corpus ของ NVIDIA, ตัวอย่างจาก OWASP LLM Top 10, การเปิดเผยข้อมูลสาธารณะบน HackerOne และข้อมูลที่ส่งมาจากชุมชนซึ่งผ่านการตรวจสอบโดยผู้ดูแลแล้ว

ใครได้รับประโยชน์และอะไรคือเดิมพัน

นักพัฒนาที่สร้างแอปพลิเคชันที่ขับเคลื่อนด้วย LLM มีแหล่งข้อมูลรูปแบบ prompt-injection ที่ฟรีและตรวจสอบได้ ซึ่งสามารถติดตั้งได้ด้วยคำสั่งเดียว (pip install prompt-shield-ai) องค์กรที่เคยพึ่งพาข้อมูลภัยคุกคามแบบปิดหรือแบบลิขสิทธิ์เฉพาะ สามารถนำทางเลือกที่ดูแลโดยชุมชนนี้ไปเสริมหรือใช้แทนฟีดเดิมได้

"bus factor" ของโปรเจกต์นี้—ซึ่งหมายถึงจำนวนคนที่หากหายไปจะทำให้โปรเจกต์หยุดชะงัก—ในปัจจุบันคือหนึ่ง หากผู้ดูแลหยุดลงลายเซ็นอัปเดต ฟีดนี้จะหยุดชะงัก และทำให้ผู้ใช้งานปลายน้ำไม่มีลายเซ็นใหม่ๆ ใช้งาน ผู้เขียนจึงได้ร้องขอวิศวกรเพิ่มเติมมาช่วยดูแล repository เพื่อเปลี่ยนจากความพยายามของคนเพียงคนเดียวให้กลายเป็นสินทรัพย์ของชุมชนที่ยั่งยืน

บทสรุป: ฟีดข้อมูลภัยคุกคามสำหรับ LLM prompt injection ที่ขับเคลื่อนโดยชุมชนและตรวจสอบได้ในที่สาธารณะพร้อมใช้งานแล้ว โดยเป็นทางเลือกที่โปร่งใสและต้นทุนต่ำแทนที่โซลูชันแบบลิขสิทธิ์เฉพาะ—หากชุมชนพร้อมที่จะก้าวเข้ามาเพื่อรักษาให้ฟีดนี้คงอยู่และทันสมัยต่อไป