ป้องกันการเปิดเผยข้อมูลที่ละเอียดอ่อน

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

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

ประเภทการเปิดเผยข้อมูลที่เกี่ยวข้องกับ Android

การรั่วไหลของข้อมูลการฝึก: เกิดขึ้นเมื่อ LLM คายเศษข้อมูลที่เฉพาะเจาะจงและตรงตามตัวอักษรที่ใช้ฝึก หากชุดข้อมูลการฝึกมี ข้อมูลส่วนบุคคล (PII), โค้ดที่เป็นกรรมสิทธิ์ หรือเอกสารภายใน โมเดล อาจสร้างข้อมูลนี้ซ้ำในเอาต์พุตเมื่อได้รับพรอมต์ที่ถูกต้อง สำหรับแอป Android อาจเกี่ยวข้องกับโมเดลที่ฝึกไว้ล่วงหน้าที่มาพร้อมกับแอปหรือโมเดลที่เข้าถึงโดยใช้ Cloud API

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

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

การเปิดเผยข้อมูลที่ละเอียดอ่อนอาจทำให้แอปพลิเคชันและผู้ใช้ได้รับความเสี่ยงอย่างมาก

  • การละเมิดความเป็นส่วนตัว: ผู้โจมตีอาจดึงข้อมูลส่วนบุคคลที่ระบุตัวบุคคลนั้นได้ (PII) เช่น ชื่อ อีเมล หมายเลขโทรศัพท์ หรือแม้แต่ข้อมูลตําแหน่ง จากผู้ใช้ ซึ่งอาจทําให้เกิดการขโมยข้อมูลระบุตัวตนและบทลงโทษทางกฎระเบียบที่รุนแรง (เช่น ภายใต้ GDPR หรือ CCPA) ซึ่งมีความสําคัญอย่างยิ่งสําหรับแอป Android ที่จัดการข้อมูลผู้ใช้
  • การขโมยทรัพย์สินทางปัญญา: หาก LLM ของแอปประมวลผลอัลกอริทึมที่เป็นกรรมสิทธิ์ ข้อมูลทางการเงิน หรือข้อมูลทางธุรกิจภายในอื่นๆ ผู้โจมตีอาจบังคับให้เปิดเผยข้อมูลดังกล่าว ซึ่งจะทำให้องค์กรของคุณได้รับความเสียหายด้านการแข่งขันและการเงินอย่างมาก
  • การละเมิดความปลอดภัย: LLM อาจทําให้ข้อมูลระดับระบบรั่วไหลโดยไม่ตั้งใจ เช่น คีย์ API, โทเค็นการตรวจสอบสิทธิ์ หรือรายละเอียดการกําหนดค่า ที่อยู่ในข้อมูลการฝึก หรือส่งผ่านระหว่างเซสชัน ซึ่งทําให้เกิด ช่องโหว่ด้านความปลอดภัยที่สําคัญสําหรับแบ็กเอนด์หรือบริการอื่นๆ
  • ความเสียหายต่อชื่อเสียง: เหตุการณ์ข้อมูลรั่วไหลที่สำคัญเพียงครั้งเดียวอาจทำลายความไว้วางใจของผู้ใช้ ส่งผลให้มีการถอนการติดตั้งแอป รีวิวเชิงลบ และก่อให้เกิดความเสียหายต่อชื่อเสียงของแอปพลิเคชันและแบรนด์อย่างไม่อาจแก้ไขได้

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

การลดความเสี่ยงจากช่องโหว่นี้ต้องใช้แนวทางแบบหลายชั้นที่มุ่งเน้นด้านสุขอนามัยของข้อมูลและการควบคุมการเข้าถึง LLM ภายในแอปพลิเคชัน Android

การล้างข้อมูลและการลดข้อมูล:

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

ควบคุมการเข้าถึง

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

การกรองเอาต์พุตภายในแอป

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

การป้องกันด้านการเรียนการสอนสำหรับ LLM

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

เทคนิคการปรับปรุงความเป็นส่วนตัว

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

การตรวจสอบและการทดสอบการเจาะระบบเป็นประจำ

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

สรุป

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

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

ลิงก์ต่อไปนี้เป็นหลักเกณฑ์เกี่ยวกับข้อมูลที่ละเอียดอ่อนบางส่วนเพื่อใช้อ้างอิง

หากใช้โมเดลอื่นๆ คุณควรหาคำแนะนำและแหล่งข้อมูลที่คล้ายกัน

ข้อมูลเพิ่มเติม: