2 คะแนน โดย GN⁺ 2025-03-29 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Google จัดอีเวนต์ bugSWAT แบบ red-teaming ล่วงหน้าเพื่อเสริมความแข็งแกร่งด้าน AI security และเปิดโอกาสให้นักวิจัยทดสอบระบบ AI ของบริษัทอย่างเข้มข้น
  • ทีมที่เคยได้รับรางวัล $50,000 ในปี 2023 ครั้งนี้ก็พบช่องโหว่ใหม่ของ Gemini อีก และคว้าตำแหน่ง ‘Most Valuable Hacker(MVH)
  • ทีมแฮ็กเกอร์ได้รับสิทธิ์เข้าถึงฟีเจอร์พรีวิวของ Gemini รุ่นใหม่ และเอกสารจาก Google เพื่อนำมาทดสอบฟีเจอร์ในมุมมองด้านความปลอดภัย
    • เมื่อขอให้เขียนโค้ด Python ด้วยพรอมป์ต์ง่าย ๆ จะมีปุ่ม “Run in Sandbox” ให้ใช้
    • สภาพแวดล้อม sandbox ของ Gemini เป็นสภาพแวดล้อมรัน Python ที่ปลอดภัย ออกแบบบนพื้นฐานของ gVisor และ GRTE ของ Google
  • gVisor คือเคอร์เนลใน user space ที่ Google สร้างขึ้น เป็นเทคโนโลยีที่ดักจับ system call เพื่อเพิ่มความปลอดภัย
    • สภาพแวดล้อม sandbox ถูกแยกอย่างสมบูรณ์ และหลบหนีออกจากมันได้ยากมาก
    • แต่ก็ยังมีกรณีที่สามารถดึงข้อมูลออกจากภายใน sandbox ได้
  • พบว่า sandbox เปิดให้ใช้ไลบรารี os จึงเขียนโค้ด Python เพื่อสำรวจ file system ได้
    • พบไฟล์ไบนารีขนาด 579MB ที่ /usr/bin/entry/entry_point
  • หากพิมพ์ไฟล์ไบนารีออกมาเป็น base64 ตรง ๆ sandbox จะล่ม จึงแบ่งออกเป็นช่วงละ 10MB แล้วค่อยพิมพ์
    • ใช้เครื่องมือชื่อ Caido เพื่อเก็บทุกชังก์แบบอัตโนมัติและนำมาประกอบคืนบนเครื่องโลคัล
    • เมื่อนำไปวิเคราะห์ด้วยคำสั่ง file, strings, binwalk ก็พบโครงสร้างภายในและเส้นทางภายในของ Google ถูกเปิดเผย
  • จากการวิเคราะห์ด้วย binwalk พบไดเรกทอรี google3 ที่บรรจุซอร์สโค้ด Python ภายใน
    • ภายในไดเรกทอรี assistant มีโค้ดที่เกี่ยวข้องกับ RPC ซึ่ง Gemini ใช้โต้ตอบกับบริการของ Google เช่น YouTube, Flights เป็นต้น
    • มีสตริงสำหรับป้องกันการดัมป์สคริปต์บางรายการรวมอยู่ด้วย แต่ทีมความปลอดภัยของ Google ได้ตรวจสอบล่วงหน้าแล้วและตัดสินว่าสามารถเปิดเผยโค้ดดังกล่าวได้

วิเคราะห์ลอจิกหลักของ sandbox

  • การเรียกใช้บริการของ Google ถูกอิมพลีเมนต์ไว้ในคลาสเฉพาะที่เขียนด้วยโค้ด Python
    • เช่น _set_reader_and_writer, run_tool เป็นต้น ใช้ file descriptor ในการสื่อสารกับบริการของ Google
    • ภายในไบนารีสามารถประกอบข้อความโดยอิงจาก protobuf schema โดยตรง และเรียกใช้เครื่องมือได้
  • Google อิมพลีเมนต์ให้ Gemini อ้างอิงจากงานวิจัย ReAct เพื่อให้มันสร้างพรอมป์ต์หลายครั้งและวางแผนด้วยตัวเองในการแก้ปัญหาที่ซับซ้อน
    • ตัวอย่างเช่น หากผู้ใช้ถามว่า “เวลาเที่ยวบิน Toronto → New York?” Gemini จะเลือกเครื่องมือและค้นข้อมูลผ่านหลายขั้นตอน
    • มีการพยายามใช้ประโยชน์จากลอจิกนี้เพื่อทำ prompt injection ให้สร้าง sandbox ที่มีสิทธิ์สูงกว่า
  • sandbox บางตัวสามารถเข้าถึงความสามารถขยายของ Google ได้ เช่น RPC API
    • ความสามารถขยายเหล่านี้ถูกเรียกใช้ผ่าน FD ที่เปิดค้างอยู่เสมอ และหากนำไปใช้ในทางที่ผิด ก็อาจเข้าถึงระบบในระดับสูงขึ้นได้
    • ยืนยันได้ว่าสามารถเข้าถึง sandbox ขั้นสูงได้ภายใต้เงื่อนไขบางอย่าง เช่น ในขั้นตอนที่ Gemini กำลังวางแผน

การรั่วไหลของไฟล์ proto ที่อ่อนไหว

  • ไฟล์ Protocol Buffer (proto) ใช้กำหนดข้อมูลระหว่างระบบ และมีข้อมูลโครงสร้างระบบที่อ่อนไหวรวมอยู่
    • หลังรัน strings entry_point > stringsoutput.txt แล้วค้นหาสตริง “Dogfood” ก็พบว่าเส้นทาง proto ที่อ่อนไหวจำนวนมากถูกเปิดเผย
    • ตัวอย่าง: privacy/data_governance/attributes/proto/classification.proto → ไฟล์ที่กำหนดว่า Google จัดประเภทข้อมูลผู้ใช้อย่างไร
  • คำสั่ง cat stringsoutput.txt | grep '.proto' | grep 'security' เปิดเผยรายชื่อไฟล์ proto ที่เกี่ยวข้องกับความปลอดภัยจำนวนมาก
    • ตัวอย่าง: security/thinmint/proto/core/thinmint_core.proto, security/credentials/proto/authenticator.proto เป็นต้น

ทำไมไฟล์เหล่านี้ถึงอยู่ที่นั่น?

  • ทีมความปลอดภัยของ Google อนุมัติเนื้อหาที่รวมอยู่ในไบนารีของ sandbox ล่วงหน้าแล้ว แต่ build pipeline แบบอัตโนมัติกลับเพิ่มไฟล์ security proto ที่ไม่จำเป็นเข้ามา
  • ส่งผลให้ไฟล์นิยามภายในที่มีความอ่อนไหวสูงถูกเปิดเผยสู่ภายนอก
  • ฝั่งแฮ็กเกอร์จึงรายงานเรื่องนี้เป็นช่องโหว่ โดยอิงจากข้อเท็จจริงที่ว่าไฟล์เหล่านี้ถูกจัดเป็นข้อมูลอ่อนไหวตามเกณฑ์ของ Google

บทสรุปและข้อคิดย้อนหลัง

  • ระบบ AI มีองค์ประกอบจำนวนมากที่ทำงานโต้ตอบกัน จึงมักเกิดปัญหาด้านความปลอดภัยที่คาดไม่ถึงได้บ่อย
  • แม้แต่ sandbox เพียงตัวเดียวก็ยังสื่อสารกับเครื่องมือภายในและมีสิทธิ์ที่เปลี่ยนแปลงได้แบบไดนามิก จึงจำเป็นต้องมีการทดสอบอย่างละเอียด
  • การร่วมมือกับทีมความปลอดภัยของ Google เป็นประโยชน์มาก และประสบการณ์ทั้งหมดก็เป็นการผจญภัยที่ทั้งท้าทายและน่าตื่นเต้น

1 ความคิดเห็น

 
GN⁺ 2025-03-29
ความคิดเห็นบน Hacker News
  • ฉันทำงานกับระบบนี้อยู่ ถ้ามีคำถามก็ถามมาได้เสมอ ความเห็นทั้งหมดเป็นความเห็นส่วนตัวและไม่ได้เป็นตัวแทนความเห็นของนายจ้าง
  • เป็นบทความที่ดี ไม่ใช่ช่องโหว่ร้ายแรงอะไร แต่การที่ Google ให้ความสำคัญกับเรื่องนี้ก็แสดงให้เห็นว่ามีความตระหนักด้านความปลอดภัยสูง
    • มีการกล่าวว่านโยบายบางอย่างของบริษัทถือว่าสิ่งนี้เป็นความลับอย่างมาก จึงอาจถูกมองว่าสำคัญได้ แต่ให้ความรู้สึกว่าเป็น "สิ่งที่นับเป็นช่องโหว่ในทางเทคนิค" มากกว่าจะเป็นช่องโหว่ที่ชัดเจน
  • ฉันใช้วิธีคล้ายกันในการ scrape ซอร์สโค้ดภายในของ ChatGPT Code Interpreter ไปยัง GitHub repository
    • มีประโยชน์หลัก ๆ สำหรับติดตามว่าแพ็กเกจ Python อะไรใช้งานได้บ้าง (และเป็นเวอร์ชันใด)
  • ถ้ามันเป็นความลับมากจริง ก็คงไม่ได้อยู่บน GitHub ทั้งหมดหรอก
  • นิยามของคำว่าแฮ็กกำลังหลวมขึ้นเรื่อย ๆ sandbox ก็ทำหน้าที่ของมันได้ดีและไม่มีข้อมูลอ่อนไหวรั่วไหล
  • การรันคำสั่ง strings ที่มีมาให้ในตัวเพื่อดึงชื่อไฟล์บางส่วนออกจากไบนารี คงเรียกว่าเป็นการแฮ็ก/แคร็กได้ยาก
    • น่าขันตรงที่การได้ซอร์สโค้ดของ Gemini มาอาจไม่ได้มีคุณค่าเท่าไร แต่ถ้าโมเดลไปค้นพบหรือเข้าถึงคอร์ปัสที่ใช้ pre-train มาก่อนก็น่าจะน่าสนใจ
  • น่าสนใจตรงที่มันแสดงให้เห็นว่า Google ปลอดภัยค่อนข้างมาก บริษัทส่วนใหญ่น่าจะทำได้ไม่ดีเท่านี้
  • ฉันคาดหวังว่าจะมีข้อมูลรั่วไหล แต่ถึงอย่างนั้นก็ยังเป็นการค้นพบและการวิเคราะห์ที่ดี
    • ช่วงหลังมานี้ฉันเพิ่งตระหนักว่าปัญหาอย่าง prompt injection กับ LLMs สำคัญแค่ไหน
    • ก่อนหน้านี้ฉันสนใจ LLMs ส่วนตัวมากกว่าเลยไม่ได้ให้ความสำคัญกับปัญหาแบบนี้มากนัก แต่พอมี Operator กับ Deep Research ออกมาก็เข้าใจเลย
    • เวลา AI agent ส่วนตัวอ่านคอนเทนต์บนอินเทอร์เน็ตหรือดูภาพ ก็อาจเสี่ยงต่อ prompt injection จากบุคคลที่สามได้
    • การจินตนาการถึงอนาคตที่ AI ส่วนตัวอ่านข้อมูลผิด ๆ บนอินเทอร์เน็ตแล้วถูกแฮ็กก็น่าสนใจดี
  • เป็นบทความที่น่าสนใจมาก
    • เป็นไฟล์เกี่ยวกับหมวดหมู่ภายในที่ Google ใช้จัดประเภทข้อมูลผู้ใช้
    • ฉันอยากรู้ว่าเป็นการจัดประเภทแบบไหน เช่น "เป็นออทิสติก" หรือ "นี่คือหมายเลขโทรศัพท์ของผู้ใช้"
  • แฮ็ก sandbox ได้แต่ไม่มีอะไรหลุดออกมา บทความก็ยังสนุกดี