เบราว์เซอร์เป็นแบ็คดอร์: การแยกความลับ LLM ฝั่งไคลเอ็นต์ทำให้ไม่ชัดเจน | B4N1

เบราว์เซอร์เป็นแบ็คดอร์: การแยกความลับ LLM ฝั่งไคลเอ็นต์ทำให้ไม่ชัดเจน

1 month ago · b4n1 Read time: 1 min

เบราว์เซอร์ในฐานะแบ็คดอร์: การสกัดความลับ LLM ฝั่งไคลเอ็นต์ทำให้ไม่ชัดเจน

เป็นเวลานานเกินไปแล้วที่เราถือว่า "คำเตือนด้านความปลอดภัยของ AI" เป็นภัยคุกคามที่อยู่ห่างไกลหรือเป็นข้อสงสัยทางวิชาการ เราเคยได้ยินเกี่ยวกับการฉีดทันที การเจลเบรก และการรั่วไหลของข้อมูลในโทนเสียงเงียบ ซึ่งมักจะตามมาด้วยการยักไหล่และพูดว่า "เราจะทำมันให้สำเร็จ" อย่างไรก็ตาม การสาธิตเชิงโต้ตอบเมื่อเร็ว ๆ นี้ ได้ทำลายภาพลวงตาที่สะดวกสบายนั้น นี่ไม่ใช่ช่องโหว่ทางทฤษฎีอีกต่อไป เป็นการหาประโยชน์จากฝั่งไคลเอ็นต์แบบเรียลไทม์บนเบราว์เซอร์เพื่อดึงข้อมูลที่ละเอียดอ่อนจากโมเดลภาษาขนาดใหญ่ (LLM) [2] หากคุณกำลังปรับใช้แอปพลิเคชันที่ขับเคลื่อนด้วย LLM โดยเฉพาะอย่างยิ่งสิ่งใดก็ตามที่ต้องเผชิญกับเว็บ "ปัญหาในอนาคต" ของคุณจะกลายเป็นความรับผิดในปัจจุบัน เปิดเผยต่อสาธารณะ และอาจน่าอับอายอย่างมาก

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

ภาพลวงตาของการรักษาความปลอดภัยแบบจำลอง

องค์กรหลายแห่งลงทุนมหาศาลใน LLM ที่ "ปลอดภัย" ไม่ว่าจะเป็นการปรับแต่งโมเดลที่เป็นกรรมสิทธิ์อย่างละเอียด หรือใช้ API ระดับองค์กรที่มีราวกั้น สมมติฐานโดยนัยคือหากตัวโมเดลมีความแข็งแกร่ง แอปพลิเคชันที่สร้างขึ้นจากโมเดลนั้นจะสืบทอดการรักษาความปลอดภัยนั้น การประท้วงเมื่อเร็วๆ นี้เผยให้เห็นว่าเป็นความเข้าใจผิดที่เป็นอันตราย ช่องโหว่ไม่ได้อยู่ในข้อมูลหลักของโมเดลหรือข้อมูลการฝึกอบรม มันอยู่ใน อินเทอร์เฟซ ที่เราสร้างขึ้นรอบๆ [1] มันคือปัญหา "ห้องนิรภัยที่แข็งแกร่ง ประตูหน้าบอบบาง" แบบคลาสสิก คุณอาจมี LLM ที่ทันสมัยและแข็งแกร่งที่สุดในโลก แต่หากตัวแยกวิเคราะห์อินพุตของแอปพลิเคชันของคุณไร้เดียงสา หรือตัวกรองเอาต์พุตของคุณไม่มีอยู่จริง คุณจะปล่อยให้ข้อมูลสำคัญถูกเปิดเผยให้ใครก็ตามค้นพบ

เทคนิค "การฉีดแบบทันที" นี้มีความเกี่ยวข้องเป็นพิเศษ เนื่องจากเป็นการใช้ประโยชน์จากธรรมชาติโดยธรรมชาติของ LLM นั่นคือ ความสามารถในการปฏิบัติตามคำแนะนำและรูปแบบที่สมบูรณ์ ผู้โจมตีสามารถจัดการสถานะภายในของโมเดลได้ โดยการฉีดคำนำหน้าที่สร้างขึ้นอย่างระมัดระวังลงในอินพุตของผู้ใช้ โดยบังคับให้เปิดเผยข้อมูลที่ไม่ได้ตั้งใจ [3] ลักษณะ "หนึ่งบิต" หรือการวนซ้ำเป็นสิ่งสำคัญที่นี่ มันหมายถึงการกรองที่มีระเบียบวิธีและมีการควบคุม ไม่ใช่แค่การถ่ายโอนข้อมูลที่วุ่นวาย ลองนึกภาพผู้โจมตีถามซ้ำๆ ว่า "อักขระตัวแรกของรหัสลับ 'A' เป็นหรือเปล่า" แล้ว "คือ 'บี' เหรอ?" และอื่น ๆ ใช่ มันช้า แต่ก็มีประสิทธิภาพอย่างเหลือเชื่อและตรวจจับได้ยากหากคุณไม่ได้มองหามันโดยเฉพาะ

เบราว์เซอร์ของคุณ อาวุธของพวกเขา

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

  • อุปสรรคในการเข้าร่วมต่ำ: ใครก็ตามที่มีทักษะการพัฒนาเว็บขั้นพื้นฐานและเบราว์เซอร์สามารถลองทำสิ่งนี้ได้ ไม่จำเป็นต้องใช้เครื่องมือพิเศษหรือความรู้ AI เชิงลึก
  • การดำเนินการฝั่งไคลเอ็นต์: การโจมตีเกิดขึ้นจากเครื่องของผู้ใช้ ทำให้ยากต่อการแยกความแตกต่างจากการป้อนข้อมูลของผู้ใช้ที่ถูกต้องที่ขอบเครือข่าย
  • ภัยคุกคามทันที: หากแอปพลิเคชัน LLM ของคุณใช้งานได้จริงและเข้าถึงได้ผ่านทางอินเทอร์เฟซเว็บ แสดงว่าแอปพลิเคชัน พร้อมแล้ว เสี่ยงต่อเวกเตอร์นี้ นี่ไม่ใช่แพทช์ในอนาคต มันเป็นเหตุฉุกเฉินในปัจจุบัน

พิจารณาผลกระทบ: ข้อมูลโค้ดที่เป็นกรรมสิทธิ์ เอกสารภายใน ข้อมูลลูกค้า คีย์ API หรือแม้แต่การปรับเปลี่ยนพฤติกรรมของ LLM ของคุณอย่างละเอียดเพื่อเผยแพร่ข้อมูลที่ผิดหรือสร้างเนื้อหาที่เป็นอันตราย ทั้งหมดนี้สามารถดึงออกมาหรือมีอิทธิพลได้ทีละน้อยผ่านกล่องข้อความธรรมดา

ความรับผิดชอบเป็นของคุณ

นี่ไม่ใช่ปัญหาสำหรับผู้ให้บริการโมเดล เช่น OpenAI หรือ Google ที่จะแก้ไขในการอัปเดตโมเดลครั้งถัดไป นี่เป็นปัญหา ความปลอดภัยของแอปพลิเคชัน และความรับผิดชอบในการบรรเทาผลกระทบตกเป็นหน้าที่ของนักพัฒนา ทีมรักษาความปลอดภัย และ CTO ที่ใช้งานระบบเหล่านี้ LLM ของคุณเป็นเครื่องมือที่ทรงพลัง แต่ท้ายที่สุดก็ไร้เดียงสา มันจะทำตามที่บอก แม้ว่าคำแนะนำเหล่านั้นจะถูกซ่อนอยู่ในอินพุตที่ผู้ใช้ดูเหมือนไม่เป็นอันตรายก็ตาม

แล้วคุณทำอะไร ตอนนี้?

มาตรการตอบโต้ทันที:

  1. การฆ่าเชื้ออินพุตเชิงรุก: ทำได้มากกว่าการป้องกันการแทรก SQL หรือ XSS คุณต้องพิจารณา อักขระทุกตัว ที่เข้าสู่ LLM ของคุณอย่างละเอียด มองหารูปแบบที่บ่งบอกถึงการแทรกทันที ลำดับอักขระที่ผิดปกติ หรือความพยายามที่จะแยกกระแสการสนทนาที่คาดหวังไว้ [4] นี่ไม่เกี่ยวกับการปิดกั้น "คำหยาบคาย"; มันเกี่ยวกับการระบุการแจ้งเตือนของฝ่ายตรงข้าม นอกเหนือจากการวิเคราะห์ regex และฮิวริสติกขั้นพื้นฐานแล้ว ให้ใช้การวิเคราะห์เชิงความหมายเพื่อตรวจจับเจตนาที่เป็นอันตราย ใช้โทเค็นไนซ์และการวิเคราะห์แบบฝังเพื่อระบุรูปแบบอินพุตที่ผิดปกติ พิจารณาใช้ LLM รองที่เล็กกว่าหรือระบบตามกฎที่ได้รับการฝึกอบรมมาโดยเฉพาะเพื่อตรวจจับความพยายามในการฉีดทันที มองหารูปแบบต่างๆ เช่น คำแนะนำในการเล่นตามบทบาท คำขอดึงข้อมูลที่ชัดเจน หรือความพยายามที่จะข้ามคำแนะนำก่อนหน้านี้
  2. การกรองและการตรวจสอบความถูกต้องของเอาต์พุตที่มีประสิทธิภาพ: อย่าเชื่อถือเอาต์พุตของ LLM โดยปริยาย ก่อนที่ข้อความใด ๆ ที่สร้างโดย LLM จะแสดงต่อผู้ใช้หรือใช้โดยระบบอื่น ข้อความนั้น ต้อง ผ่านเลเยอร์การตรวจสอบที่เข้มงวด มีคำหลักที่ละเอียดอ่อนหรือไม่ ตรงกับรูปแบบที่คาดหวังหรือไม่ มันพยายามรันโค้ดหรือเปิดเผยการแจ้งเตือนของระบบภายในหรือไม่? หาก LLM ของคุณควรสรุปเอกสาร แต่เริ่มแสดงรายการเส้นทางของไฟล์ แสดงว่าคุณมีปัญหา
  3. Layered Prompt Engineering: แม้จะไม่ใช่โซลูชันที่สมบูรณ์ แต่การแจ้งเตือนของระบบที่ออกแบบมาอย่างดีและตัวอย่างสั้นๆ สามารถช่วยเสริมพฤติกรรมที่ต้องการ และทำให้ผู้โจมตีขโมยโมเดลได้ยากขึ้น อย่างไรก็ตาม จงเข้าใจว่าวิศวกรรมที่พร้อมท์เพียงอย่างเดียวนั้นไม่เพียงพอ มันเป็นการป้องกันเชิงลึก ไม่ใช่เกราะป้องกันหลัก
  4. สิทธิ์ขั้นต่ำสำหรับการโต้ตอบ LLM: LLM ของคุณจำเป็นต้องเข้าถึงข้อมูลทุกชิ้นที่อาจได้รับแจ้งให้เปิดเผยอย่างแท้จริงหรือไม่ ใช้การควบคุมการเข้าถึงที่เข้มงวด หาก LLM ควรจะตอบคำถามเกี่ยวกับเอกสารสาธารณะเท่านั้น ตรวจสอบให้แน่ใจว่าไม่มีการเข้าถึงฐานข้อมูลภายในหรือ API ที่ละเอียดอ่อนโดยทางโปรแกรม
  5. การตรวจสอบและการตรวจจับความผิดปกติ: คุณต้องกระตือรือร้นที่จะมองหาพฤติกรรม LLM ที่ผิดปกติ การเพิ่มขึ้นอย่างรวดเร็วของข้อความค้นหาบางประเภท เอาต์พุตที่เบี่ยงเบนไปจากรูปแบบปกติ หรือการพยายามดึงข้อมูลซ้ำๆ ควรทำให้เกิดการแจ้งเตือนทันที

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

แหล่งที่มา

[1] OWASP 10 อันดับแรกสำหรับแอปพลิเคชันโมเดลภาษาขนาดใหญ่ — https://owasp.org/www-project-top-10-for-large-language-model-applications/ [2] Lakera Gandalf: ความท้าทายในการฉีดพร้อมท์แบบโต้ตอบ — https://gandalf.lakera.ai/ [3] การโจมตีแบบฉีดพร้อมท์ | สถาบันความปลอดภัยทางเว็บ — https://portswigger.net/web-security/llm-attacks/prompt-injection [4] การฉีดพร้อมท์คืออะไรและจะป้องกันได้อย่างไร? — https://www.tenable.com/blog/what-is-prompt-injection-and-how-to-prevent-it


Have Questions?

Let's Talk

Contact me on LinkedIn