เจาะประเด็น
AI / Sandbox / Security
smolvm คือคำตอบสำหรับโค้ดไม่น่าเชื่อถือ? AI มันทดสอบให้แล้ว แต่มันเจอทางตันของตัวเองก่อน
เอาเครื่องมือแซนด์บ็อกซ์มาใช้รันโค้ดจากคนแปลกหน้าให้ปลอดภัยที่สุดเท่าที่จะทำได้ — แต่ปัญหาคือตัวทดสอบเองก็หนีไม่พ้นข้อจำกัดของมัน
ทีมข่าว เอไอไทย.com
⏱ อ่าน 4 นาที
ถ้าเราจะให้ AI ช่วยเขียนโค้ดที่ต้องรันโค้ดจากผู้ใช้จริงๆ สักวัน มันจะไว้ใจใครได้บ้าง? คำตอบอาจอยู่ที่การปิดทุกทางหนีให้หมด
เราคุยกันเรื่อง "โค้ดไม่น่าเชื่อถือ" กันมานาน แนวคิดคือคุณไม่สามารถรันโค้ดที่เขียนโดยคนแปลกหน้าบนเครื่องของคุณตรงๆ ได้เด็ดขาด เพราะมันอาจจะสั่งให้เครื่องคุณทำอะไรก็ได้ ตั้งแต่ขโมยข้อมูล ไปจนถึงเรียกแรนซัมแวร์มาใส่ในเครื่อง หรือแค่สั่ง `while true` ให้เครื่องแฮงค์ทั้งคืนก็ยังได้
ปกติแล้ววิธีแก้ปัญหาคือ "แซนด์บ็อกซ์" — การจำกัดพื้นที่และทรัพยากรที่โค้ดจะเข้าถึงได้ แต่มันก็มีหลายระดับ ตั้งแต่ง่ายๆ อย่างการรันในคอนเทนเนอร์ ไปจนถึงการจำลองเครื่องเสมือนทั้งเครื่อง ซึ่งหนักหน่วงแต่แน่นหนาที่สุด
ประเด็นคือเครื่องมืออย่าง Docker หรือ Kubernetes มันไม่ใช่คำตอบสุดท้ายสำหรับงานแบบนี้ เพราะมันยังแชร์เคอร์เนลกับโฮสต์อยู่ดี แฮกเกอร์ที่เก่งพอสามารถแหกออกมาได้เสมอ ทางออกที่ "แข็งแรงพอ" จริงๆ คือการใช้ VM (Virtual Machine) ที่เลียนแบบฮาร์ดแวร์จริงทั้งหมด แยกกันคนละโลกกับเครื่องหลัก — และนี่คือจุดที่ smolmachines / smolvm เข้ามา
Simon Willison นักพัฒนาและบล็อกเกอร์ชื่อดัง ได้ลองเอา smolvm มาทดสอบจริงๆ ผ่าน Claude Code for web — ให้ AI ชื่อ "Fable 5" ช่วยหาคำตอบว่าเครื่องมือนี้ใช้รันโค้ด Python และ JavaScript ที่ไม่น่าเชื่อถือได้จริงแค่ไหน โดยจำกัด RAM, CPU, ไม่มีเน็ต และเข้าถึงไฟล์ได้เฉพาะที่กำหนด
แต่แล้วก็เจอปัญหาใหญ่ทันที: สภาพแวดล้อมของ Claude Code for web เองมันไม่สามารถรัน VM ซ้อน VM ได้ เพราะมันไม่มี `/dev/kvm` และไม่มี CPU flags ที่จำเป็นสำหรับการจำลองเสมือนแบบ nested — หมายความว่า "แซนด์บ็อกซ์" ที่เราจะใช้ทดสอบแซนด์บ็อกซ์อีกที มันกลับเป็นแซนด์บ็อกซ์ที่ "ตัน" ไปซะอย่างนั้น
นี่คือจุดที่ Fable 5 แสดงความฉลาดแกมโกงแบบที่เราอยากเห็นจาก AI — มันไม่ยอมแพ้ มันเปลี่ยนแผนไปรันการทดสอบบน GitHub Actions runner ซึ่งมี `/dev/kvm` ให้ใช้งานจริงๆ แล้วดึงผลลัพธ์กลับมา นี่คือวิธีแก้ปัญหาที่ "นอกกรอบ" แต่ได้ผล — และมันทำให้เห็นว่า AI ที่ "มุ่งมั่น" จะหาทางออกให้ได้เสมอ แม้จะเจออุปสรรคด้านสิ่งแวดล้อมก็ตาม
คำถามคือ smolvm มันดีพอที่จะเป็นคำตอบสำหรับการรันโค้ดจากผู้ใช้จริงๆ หรือเปล่า? คำตอบสั้นๆ คือ "ใช่ ในเชิงเทคนิค" — มันเป็น VM ที่เล็กและเร็วพอที่จะรันได้ในเสี้ยววินาที และจำกัดทรัพยากรได้จริงตามที่ต้องการ แต่ประเด็นที่ใหญ่กว่าคือ "โครงสร้างพื้นฐาน" ที่จะเอามันไปใช้จริง — คุณต้องมีเครื่องที่รองรับ KVM ก่อน และนั่นไม่ใช่ทุกสภาพแวดล้อมจะมีให้
จุดแข็งของ smolvm
รัน VM ได้เร็วและเบาพอที่จะใช้กับงานเล็กๆ อย่าง data transformation — ใช้ทรัพยากรน้อยกว่า VM ทั่วไปมาก และแยกเคอร์เนลออกจากโฮสต์โดยสิ้นเชิง
จุดอ่อนที่ยังต้องแก้
ต้องพึ่งพา KVM ซึ่งไม่พร้อมใช้งานในทุกสภาพแวดล้อม (อย่างที่เห็นใน Claude Code for web) — และถ้าไม่มี KVM ก็ไม่สามารถรันได้เลย
จากมุมมองของผม สิ่งที่ Simon ทำคือการพิสูจน์แนวคิดที่สำคัญ: เราสามารถใช้ AI ในการทดสอบความปลอดภัยของเครื่องมือได้จริง และ AI ก็สามารถหาทางออกที่มนุษย์อาจไม่คิดถึงได้ (อย่างการย้ายไปรันบน GitHub Actions) แต่มันก็ชี้ให้เห็นว่า "การทำ sandbox ให้ปลอดภัย" ไม่ใช่แค่เรื่องของซอฟต์แวร์ตัวเดียว แต่มันคือเรื่องของระบบนิเวศทั้งหมด — ตั้งแต่ฮาร์ดแวร์ไปจนถึงสภาพแวดล้อมการพัฒนา
ถ้าคุณกำลังคิดจะสร้างแพลตฟอร์มที่ให้ผู้ใช้รันโค้ดของตัวเอง (เช่น ตัวแปลงข้อมูล หรือรันสคริปต์) smolvm คือตัวเลือกที่น่าสนใจจริงๆ แต่อย่าลืมวางแผนเรื่องโครงสร้างพื้นฐานให้ดี — เพราะถ้าเครื่องของคุณไม่รองรับ KVM คุณก็ต้องหาทางอื่น ซึ่งอาจจะแพงหรือซับซ้อนกว่า
ท้ายที่สุดแล้ว smolvm คือเครื่องมือที่ "ใช่" สำหรับงานที่ "เฉพาะทาง" — แต่การที่ AI ต้องปีนป่ายหาทางรันมันจนได้ ก็เป็นบทพิสูจน์ว่าเรายังห่างไกลจากคำว่า "plug and play" สำหรับการรันโค้ดที่ไม่น่าเชื่อถืออย่างปลอดภัยในทุกสภาพแวดล้อม ใครที่คิดจะใช้ วางแผนดีๆ แล้วคุณจะได้เครื่องมือที่แข็งแกร่งจริงๆ — แต่อย่าหวังว่ามันจะรันได้ทุกที่
ที่มา: Simon Willison's Weblog — อ่านต้นฉบับ
ความคิดเห็น 3
กำลังโหลดความคิดเห็น...