OWASP LLM Top 10
ความเสี่ยงสำคัญสำหรับแอปพลิเคชัน LLM
OWASP LLM Top 10 เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดจึงมีรายการ 10 อันดับแรกสำหรับ LLM
รายการ 10 อันดับความเสี่ยงของ OWASP สำหรับแอปพลิเคชันโมเดลภาษาขนาดใหญ่ คือรายการความเสี่ยงด้านความปลอดภัยที่สำคัญที่สุดสำหรับระบบที่สร้างบน LLM ซึ่งขับเคลื่อนโดยชุมชน รายการนี้มีแนวคิดคล้ายกับรายการ 10 อันดับแรกด้านเว็บของ OWASP ที่เป็นที่รู้จักกันดี แต่เน้นภัยคุกคามที่รายการ AppSec แบบดั้งเดิมมองข้าม
รายการนี้มีอยู่เพราะแอปพลิเคชัน LLM สร้างพื้นผิวการโจมตีรูปแบบใหม่ ได้แก่ ลำดับการควบคุมด้วยภาษาธรรมชาติ ผลลัพธ์ที่ไม่กำหนดแน่นอน ห่วงโซ่อุปทานของโมเดล และตัวแทนอิสระ รายการนี้ช่วยให้ทีมรักษาความปลอดภัยมีศัพท์กลางร่วมกันและมีรายการตรวจสอบสำหรับการสร้างแบบจำลองภัยคุกคาม
รหัสด้านล่างใช้หมายเลข LLM01-LLM10 จากฉบับปี 2025
LLM01 การฉีดคำสั่ง
LLM01: การฉีดคำสั่ง เป็นความเสี่ยงอันดับหนึ่งอย่างสม่ำเสมอ ข้อความที่ผู้โจมตีควบคุมสามารถลบล้างคำสั่งของนักพัฒนาได้ เพราะโมเดลไม่สามารถแยกคำสั่งที่เชื่อถือได้ออกจากข้อมูลที่ไม่น่าเชื่อถือ
- โดยตรง: ผู้ใช้พิมพ์คำสั่งลบล้าง
- โดยอ้อม: คำสั่งซ่อนอยู่ในหน้าเว็บ ไฟล์ หรือผลลัพธ์จากเครื่องมือที่ดึงมา
มาตรการลดความเสี่ยง: บังคับใช้สิทธิ์น้อยที่สุดกับเครื่องมือ ปฏิบัติต่อเนื้อหาที่ดึงมาทั้งหมดเป็นข้อมูล เพิ่มจุดตรวจสอบโดยมนุษย์สำหรับการกระทำที่ละเอียดอ่อน และตัดเส้นทางการดึงข้อมูลออก
LLM02 การเปิดเผยข้อมูลที่ละเอียดอ่อน
LLM02: การเปิดเผยข้อมูลที่ละเอียดอ่อน ครอบคลุมกรณีที่โมเดลเปิดเผยข้อมูลที่ไม่ควรเปิดเผย เช่น PII ข้อมูลลับ ข้อมูลฝึกโมเดลที่เป็นกรรมสิทธิ์ หรือข้อมูลของผู้เช่ารายอื่น
การรั่วไหลอาจเกิดจากข้อมูลฝึกสอนที่โมเดลจดจำไว้ การฉีดข้อมูลเข้าสู่บริบทในวงกว้างเกินไป หรือพรอมต์ system ที่มีข้อมูลรับรอง
- ทำความสะอาดและลดปริมาณข้อมูลที่ใส่ไว้ในบริบทให้เหลือน้อยที่สุด
- อย่าใส่ข้อมูลลับที่ใช้งานอยู่ลงในพรอมต์ ใช้โทเค็นที่จำกัดขอบเขตและมีอายุสั้นผ่านช่องทางนอกระบบ
- ใช้การกรองผลลัพธ์และการตรวจสอบ DLP ก่อนส่งคำตอบกลับ
LLM03 ห่วงโซ่อุปทาน
LLM03: ห่วงโซ่อุปทาน มีความเสี่ยงจากโมเดล ชุดข้อมูล ปลั๊กอิน และไลบรารีจากบุคคลที่สาม โมเดลฐานที่ถูกวางยา การปรับแต่งเฉพาะทางที่ฝังช่องทางลับจากศูนย์รวมโมเดล หรือส่วนประกอบพึ่งพาไพธอนที่เป็นอันตราย อาจทำให้แอปทั้งระบบตกอยู่ในความเสี่ยง
- ตรวจสอบแหล่งที่มาของโมเดลและค่าตรวจสอบ
- ตรึงรุ่นและตรวจสอบใบอนุญาต
- สแกนไฟล์โมเดลที่ใช้รูปแบบ pickle (
pickleสามารถเรียกใช้โค้ดขณะโหลดได้) และเลือกรูปแบบที่ปลอดภัย เช่นsafetensors
# Pickle deserialization can run arbitrary code on load.
# Prefer safetensors for untrusted model weights:
from safetensors.torch import load_file
state = load_file("model.safetensors")LLM04 การวางยาข้อมูลและโมเดล
LLM04: การวางยาข้อมูลและโมเดล มุ่งโจมตีไปที่ไปป์ไลน์การฝึกสอนหรือการปรับแต่งเฉพาะทาง ผู้โจมตีที่มีอิทธิพลต่อข้อมูลฝึกสอนได้สามารถฝังช่องทางลับ (ตัวกระตุ้นที่ซ่อนอยู่) ทำให้ผลลัพธ์มีอคติ หรือลดคุณภาพลงได้
ไปป์ไลน์ RAG ที่นำเข้าเอกสารจากผู้ใช้เป็นจุดเสี่ยงต่อการวางยาแบบต่อเนื่อง แม้หลังจากนำไปใช้งานแล้วก็ตาม
- ตรวจคัดกรองและลงนามรับรองแหล่งข้อมูลฝึกสอน
- ใช้การตรวจจับความผิดปกติกับชุดข้อมูล
- แยกและตรวจสอบเนื้อหาที่ผู้ใช้ส่งมาก่อนทำดัชนี
LLM05 การจัดการผลลัพธ์ที่ไม่เหมาะสม
LLM05: การจัดการผลลัพธ์ที่ไม่เหมาะสม เกิดขึ้นเมื่อองค์ประกอบปลายทางเชื่อถือผลลัพธ์ของโมเดลโดยไม่ตรวจสอบ เนื่องจากผู้โจมตีสามารถชักนำผลลัพธ์ผ่านการฉีดคำสั่งได้ การส่งผลลัพธ์ที่ยังไม่ผ่านการตรวจสอบเข้าสู่เชลล์ คำสั่งเอสคิวแอล query เบราว์เซอร์ หรือตัวประเมิน จึงเป็นเส้นทางโดยตรงไปสู่ XSS, SSRF หรือ RCE
กฎ: ปฏิบัติต่อผลลัพธ์จาก LLM เหมือนกับข้อมูลป้อนเข้าจากผู้ใช้ที่ไม่น่าเชื่อถือทุกประการ เข้ารหัส ตรวจสอบ และแยกไว้ในแซนด์บ็อกซ์ก่อนส่งต่อให้ตัวแปลคำสั่งใด ๆ
# DANGEROUS: model output flows straight into a shell
os.system(model_output) # never do this
# SAFER: validate against an allowlist, no shell
if action in ALLOWED_ACTIONS:
run_safe(action, args)LLM06 การมอบอำนาจมากเกินไป
LLM06: การมอบอำนาจมากเกินไป คืออันตรายที่เกิดจากการให้โมเดลมีฟังก์ชันการทำงาน สิทธิ์ หรือความเป็นอิสระมากเกินไป เมื่อโมเดลสามารถเรียกใช้เครื่องมือได้ การฉีดคำสั่งจะกลายเป็นการกระทำ ไม่ใช่เพียงข้อความ
- ฟังก์ชันการทำงานมากเกินไป: มีเครื่องมือที่แอปไม่จำเป็นต้องใช้จริง
- สิทธิ์มากเกินไป: เครื่องมือมีสิทธิ์เขียนหรือลบ ทั้งที่การอ่านก็เพียงพอ
- ความเป็นอิสระมากเกินไป: การกระทำที่มีผลกระทบสูงโดยไม่มีมนุษย์อนุมัติ
ใช้สิทธิ์น้อยที่สุดสำหรับแต่ละเครื่องมือ และกำหนดให้ยืนยันก่อนดำเนินการที่ย้อนกลับไม่ได้
LLM07 การรั่วไหลของพรอมต์ system
LLM07: การรั่วไหลของพรอมต์ system สะท้อนว่า พรอมต์ system ไม่ใช่ที่เก็บข้อมูลลับที่ปลอดภัย ผู้โจมตีมักดึงพรอมต์เหล่านี้ออกมาได้ และบางครั้งพรอมต์เหล่านั้นมีข้อมูลรับรอง ตรรกะทางธุรกิจที่ซ่อนอยู่ หรือกฎการกรอง ซึ่งช่วยให้โจมตีต่อได้
- ถือว่าพรอมต์ system สามารถกู้คืนได้ อย่าใส่ข้อมูลลับหรือกุญแจลงในพรอมต์โดยเด็ดขาด
- บังคับใช้การอนุญาตในส่วนแบ็กเอนด์ ไม่ใช่หวังว่ากฎในพรอมต์จะมีผล
- ถือว่าการควบคุมความปลอดภัยใด ๆ ใช้การไม่ได้ หากมีอยู่เฉพาะในข้อความพรอมต์
LLM08, LLM09, LLM10
รายการที่เหลือมีดังนี้:
- LLM08 จุดอ่อนของเวกเตอร์และการฝังข้อมูล: ความเสี่ยงในการฝังข้อมูลของ RAG เช่น การรั่วไหลข้ามผู้เช่า การย้อนกลับการฝังข้อมูล และการทำดัชนีเอกสารที่ถูกวางยา ให้บังคับใช้การควบคุมการเข้าถึงขณะดึงข้อมูล
- LLM09 ข้อมูลบิดเบือน: ภาพหลอนที่นำเสนออย่างมั่นใจและการพึ่งพามากเกินไป เพิ่มการยึดโยงกับแหล่งข้อมูล การอ้างอิง และการตรวจสอบโดยมนุษย์สำหรับผลลัพธ์ที่มีความสำคัญสูง
- LLM10 การใช้ทรัพยากรแบบไร้ขอบเขต: การโจมตีให้ค่าใช้จ่ายพุ่งและการปฏิเสธการให้บริการจากคำสั่ง query ที่มีค่าใช้จ่ายสูงหรือทำงานไม่หยุด ใช้ขีดจำกัดอัตรา งบประมาณโทเค็น ขีดจำกัดเวลา และการแจ้งเตือนค่าใช้จ่าย
การใช้รายการในการจำลองภัยคุกคาม
รายการ 10 อันดับแรกมีประโยชน์มากที่สุดเมื่อใช้เป็นรายการตรวจสอบแบบมีโครงสร้างระหว่างการทบทวนการออกแบบ:
- จับคู่แต่ละองค์ประกอบ (ข้อมูลป้อนเข้า การดึงข้อมูล เครื่องมือ และผลลัพธ์) กับความเสี่ยงของ LLM ที่เกี่ยวข้อง
- สำหรับความเสี่ยงแต่ละรายการ ให้ระบุมาตรการควบคุมที่เป็นรูปธรรมและผู้รับผิดชอบ
- เขียนกรณีการใช้งานในทางมิชอบและเปลี่ยนกรณีเหล่านั้นเป็นการทดสอบอัตโนมัติ
ใช้ร่วมกับกรอบงานที่มีอยู่ เช่น OWASP Top 10 มาตรฐาน, MITRE ATLAS สำหรับกลยุทธ์เฉพาะด้านการเรียนรู้ของเครื่อง และ NIST กรอบการจัดการความเสี่ยงด้านปัญญาประดิษฐ์สำหรับการกำกับดูแล
จากรายการตรวจสอบสู่การป้องกันหลายชั้น
ไม่มีมาตรการควบคุมใดเพียงมาตรการเดียวที่ครอบคลุมความเสี่ยงเหล่านี้ได้ จึงควรจัดวางเป็นชั้น ๆ:
- ชั้นข้อมูลป้อนเข้า: การตรวจสอบ การจำแนกประเภท และขีดจำกัดอัตรา
- ชั้นโมเดล: เครื่องมือที่มีสิทธิ์น้อยที่สุด บริบทที่จำกัดขอบเขต และโมเดลป้องกัน
- ชั้นผลลัพธ์: การตรวจสอบ การเข้ารหัส DLP และการอนุมัติโดยมนุษย์
- ชั้นแพลตฟอร์ม: การบันทึกข้อมูล การติดตามตรวจสอบ การยืนยันห่วงโซ่อุปทาน และการควบคุมค่าใช้จ่าย
สมมติว่าชั้นใดชั้นหนึ่งอาจล้มเหลวได้ และออกแบบให้ความล้มเหลวเพียงครั้งเดียวไม่กลายเป็นการละเมิดความปลอดภัย
ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจหมวดหมู่ LLM ของ OWASP
สรุปทบทวน
OWASP LLM 10 อันดับแรกโดยสรุป:
- LLM01 การฉีดคำสั่ง, LLM02 การเปิดเผยข้อมูลที่ละเอียดอ่อน, LLM03 ห่วงโซ่อุปทาน, LLM04 การวางยาข้อมูลและโมเดล, LLM05 การจัดการผลลัพธ์ที่ไม่เหมาะสม
- LLM06 การมอบอำนาจมากเกินไป, LLM07 การรั่วไหลของพรอมต์ system, LLM08 จุดอ่อนของเวกเตอร์และการฝังข้อมูล, LLM09 ข้อมูลบิดเบือน, LLM10 การใช้ทรัพยากรแบบไร้ขอบเขต
- ปฏิบัติต่อผลลัพธ์ของโมเดลและพรอมต์ system ว่าไม่น่าเชื่อถือและไม่ใช่ข้อมูลลับ
- ใช้รายการนี้เป็นรายการตรวจสอบสำหรับการจำลองภัยคุกคาม ใช้ร่วมกับ MITRE ATLAS และ RMF ของ NIST ด้านปัญญาประดิษฐ์ และบังคับใช้การป้องกันหลายชั้นในชั้นข้อมูลป้อนเข้า โมเดล ผลลัพธ์ และแพลตฟอร์ม
คำถามที่พบบ่อย
บทเรียน “OWASP LLM Top 10” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “OWASP LLM Top 10” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “OWASP LLM Top 10”
ความเสี่ยงสำคัญสำหรับแอปพลิเคชัน LLM คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “OWASP LLM Top 10” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การฉีดพรอมต์และการเจลเบรก
- OWASP LLM Top 10
- การรักษาความปลอดภัยตัวแทนปัญญาประดิษฐ์และการใช้เครื่องมือ
- ความเสี่ยงจากโมเดล ข้อมูล และห่วงโซ่อุปทาน