ลดช่องโหว่ของเอเจนซีที่มากเกินไป

คำอธิบายความเสี่ยงของ OWASP

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

เหตุผลที่นักพัฒนาแอป Android ควรใส่ใจ

การให้สิทธิ์ LLM มากเกินไปภายในแอปพลิเคชัน Android อาจทำให้เกิด เหตุการณ์ด้านความปลอดภัยที่ร้ายแรง

  • การเข้าถึงระบบโดยไม่ได้รับอนุญาต: ผู้โจมตีอาจสั่งให้ LLM เข้าถึง แก้ไข หรือลบไฟล์ในอุปกรณ์ Android ที่ใช้ในเครื่อง (เช่น เอกสารของผู้ใช้ ข้อมูลแอป) หรือทรัพยากรเครือข่ายที่เชื่อมต่อ หากโมเดลมี สิทธิ์และสิทธิ์ Android ที่เกี่ยวข้องในการดำเนินการดังกล่าว
  • การกรองข้อมูลออก: LLM อาจถูกหลอกให้อ่านข้อมูลที่ละเอียดอ่อน จากฐานข้อมูลแอปในเครื่อง (เช่น Room), SharedPreferences หรือ API ภายใน และ จากนั้นกรองข้อมูลดังกล่าวออกไปยังแหล่งที่มาภายนอก (เช่น ส่งโดยใช้การเรียก API หรือฟังก์ชันอีเมล) นอกจากนี้ โมเดลยังอาจเปิดเผยข้อมูลที่ละเอียดอ่อนซึ่งดูดซับไว้ในระหว่างระยะการฝึก หรือข้อมูลที่ละเอียดอ่อนที่ผู้ใช้ระบุในพรอมต์
  • การประนีประนอมฟังก์ชัน/ระบบอื่นๆ: หาก LLM มีสิทธิ์ควบคุมฟังก์ชันอื่นๆ (เช่น การส่ง SMS, การโทร, การโพสต์ในโซเชียลมีเดียโดยใช้ Intent โดยนัย, การแก้ไขการตั้งค่าระบบ, การซื้อในแอป) ผู้โจมตีอาจลักลอบใช้ฟังก์ชันเหล่านี้เพื่อส่งสแปม เผยแพร่ข้อมูลที่ไม่ถูกต้อง หรือทำธุรกรรมที่ไม่ได้รับอนุญาต ซึ่งอาจทำให้เกิดความสูญเสียทางการเงินโดยตรงหรือเป็นอันตรายต่อผู้ใช้
  • การปฏิเสธการให้บริการ: LLM อาจได้รับคำสั่งให้ดำเนินการที่ใช้ทรัพยากรมากซ้ำๆ ภายในแอปหรือกับบริการแบ็กเอนด์ เช่น การเรียกใช้การค้นหาฐานข้อมูลที่ซับซ้อนหรือการเรียกใช้ API ในลูป ซึ่งอาจทำให้แอปไม่ตอบสนอง แบตเตอรี่หมด การใช้ข้อมูลมากเกินไป หรือแม้แต่การปฏิเสธการให้บริการสำหรับระบบแบ็กเอนด์

การลดความเสี่ยงสำหรับนักพัฒนาแอป Android

การลดความเสี่ยงสำหรับเอเจนซีที่มากเกินไปในแอป Android มุ่งเน้นที่การใช้ หลักการให้สิทธิ์ขั้นต่ำที่สุดกับเครื่องมือและฟังก์ชันทุกอย่างที่ LLM สามารถเข้าถึงหรือ ทริกเกอร์ได้

จำกัดกล่องเครื่องมือของ AI (ฟังก์ชันแบบละเอียดเทียบกับฟังก์ชันแบบเปิด):

  • ให้เครื่องมือขั้นต่ำ: LLM ควรมีสิทธิ์เข้าถึงเฉพาะเครื่องมือ (ฟังก์ชัน, API, Intent) ที่จำเป็นอย่างยิ่งในการทำงานภายในแอปของคุณ หากไม่จำเป็นต้องเรียกดูเว็บหรือส่งอีเมล ก็ไม่ควรให้สิทธิ์เข้าถึงความสามารถเหล่านั้น
  • ใช้เครื่องมือแบบง่ายที่มีวัตถุประสงค์เดียว: การให้เครื่องมือแก่ LLM ที่ทำได้เพียงอย่างเดียว (เช่น "อ่านการตั้งค่าผู้ใช้ประเภทหนึ่งๆ") จะดีกว่าการให้เครื่องมือแบบเปิดที่ทรงพลังซึ่งทำได้ทุกอย่าง (เช่น "เรียกใช้คำสั่งเชลล์ใดก็ได้")

จำกัดความสามารถของ AI

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

ให้มนุษย์เป็นผู้ควบคุม (ความยินยอมของผู้ใช้สำหรับการดำเนินการที่สำคัญ)

  • ต้องได้รับการอนุมัติจากผู้ใช้: สำหรับการดำเนินการที่สำคัญหรือมีความเสี่ยงที่ LLM อาจแนะนำหรือพยายามดำเนินการ (เช่น การลบข้อมูล การซื้อในแอป การส่งข้อความ การเปลี่ยนการตั้งค่าที่สำคัญ) ให้กำหนดให้ต้องได้รับการอนุมัติจากมนุษย์อย่างชัดเจนเสมอโดยใช้กล่องโต้ตอบการยืนยันใน UI ซึ่งก็เหมือนกับการ ต้องมีผู้จัดการอนุมัติการตัดสินใจครั้งสำคัญ

เชื่อถือแต่ต้องตรวจสอบ (การตรวจสอบอินพุต/เอาต์พุตและแบ็กเอนด์ที่มีประสิทธิภาพ)

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

สรุป

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

แหล่งข้อมูลเพิ่มเติม