ข้าม​ไป​ยัง​เนื้อหา

ข้อมูล​รั่ว​และ​การ​รักษา system prompt: injection→exfiltration chain

บท2–3 กาง​ภัย​ให้​เห็น​ครบ บท4–6 สร้าง​ชั้น guard สาม​ชั้น​แรก — input guard (บท4), output guard/redactor (บท5), least-privilege + approval gate (บท6) บท​นี้​ปิด​ชั้น​สุดท้าย​ก่อน capstone ด้วย​การ​โฟกัส​ภัย​ที่​เป็น ปลายทาง ของ​ทุก​อย่าง​ที่​ผ่าน​มา: ข้อมูล​รั่ว​ออก​ไป​หา​ผู้​โจมตี และ​ภัย​พี่น้อง​ที่​คน​มัก​เข้าใจ​ผิด​ว่า​เป็น​เรื่อง​เดียวกัน — การ​รั่ว​ของ system prompt เอง

สอง​ภัย​นี้​คือ OWASP LLM02 (Sensitive Information Disclosure) กับ LLM07 (System Prompt Leakage) แต่​หัวใจ​ของ​บท​นี้​คือ​มัน​ไม่​ได้​อยู่​แยก​กัน — มัน​เป็น สาย​โซ่​เดียว ที่ LLM01 (injection) กับ LLM06 (excessive agency) ป้อน​เข้า​มา นี่​คือ lethal trifecta ที่​ปิดวงจรจริงๆ

📦 code ตัวอย่าง

บท​นี้​ต่อยอด agent Order ตัว​เดิม (พร้อม context layer จาก #16 และ resilient runtime จาก #17) — repo kaen-food-ordering (กำลัง​จัด​ทำ) บท​นี้​เป็น​บท นโยบาย​เป็น​หลัก บวก​การนำ redactor/scoping ที่​สร้าง​ไว้​แล้ว​ใน 🔁 บท5 (output guardrails) และ 🔁 บท6 (excessive agency) มา​วาง​ลง​บน สาย​โซ่ exfiltration โดย​เฉพาะ ไม่มี tool หรือ store ใหม่ ทุก​กติกา API ฝั่ง​แชต​จาก #15 ยัง​ยึด​เดิม​ทุก​ข้อ

เริ่ม​ที่​ปลายทาง​ก่อน Data ExfiltrationData Exfiltrationการ​ลักลอบ​ส่ง​ข้อมูล​ออก​นอก​ขอบเขต — ขา exfil ของ lethal trifecta และ​ปลายทาง​ของ injection→exfiltration chain: poisoned Order note (untrusted content) หลอก agent (private data) ให้​ปล่อย PII หรือ order ของ​ลูกค้า​คน​อื่น​ไป​ยัง channel ของ​ผู้​โจมตี รักษา​ด้วย: minimize sensitive data เข้า context (โยง #16 curation), redact PII ทั้ง​ขา​เข้า​และ​ขา​ออก, scope การ​เข้าถึง​ข้อมูล​ต่อ request, egress controlProcess คือ​การ​ลักลอบ​ส่ง​ข้อมูล​ออก​นอก​ขอบเขต​ที่​ควร​อยู่ — และ​มัน​คือ ขา exfil ของ lethal trifecta ที่ Willison ตั้ง​ชื่อ​ไว้ (S10) agent Order มี​ของ​ให้​รั่ว​เต็ม​มือ OWASP LLM02 นิยาม​ขอบเขต​ของ “ข้อมูล​อ่อนไหว” ไว้ตรงๆ (S4, verbatim):

“Sensitive information can affect both the LLM and its application context. This includes personal identifiable information (PII), financial details, health records, confidential business data, security credentials, and legal documents.”

getOrder / getDeliveryStatus คืน​ข้อมูล​ที่​ตรง​นิยาม​นี้​ทุก​ช่อง — ที่​อยู่ เบอร์​โทร ยอด​เงิน ประวัติ​ออเดอร์ และ​เคส​ที่ OWASP ยก​เป็น​ตัวอย่าง canonical นั้น​คือ​ความ​ล้มเหลว​เป๊ะๆ ที่ agent Order เสี่ยง​จะ​ทำ (S4, verbatim):

“A user receives a response containing another user’s personal data due to inadequate data sanitization.”

ลูกค้า​คน​หนึ่ง​ได้ order ของ​ลูกค้า​อีก​คน — นี่​คือ​รูปแบบ​ข้อมูล​รั่ว​ที่ agent multi-tenant ต้อง​กลัว​ที่สุด และ OWASP ชี้​ชัด​ว่า injection คือ พาหะ ที่​ลาก​ไป​สู่​จุด​นั้น (S4, verbatim):

“An attacker bypasses input filters to extract sensitive information.”

เอา claim เหล่า​นี้​มา​ต่อ​กัน​เป็น​สาย​โซ่ แล้ว​จะ​เห็น​ว่า​ทุก​บท​ที่​ผ่าน​มา​ป้อน​เข้า​มา​ที่​นี่:

  1. untrusted content เข้า — poisoned Order note (indirect injection, บท2) ที่ getOrder ซึ่ง​เป็น tool ที่​เชื่อถือ​ได้ คืน​กลับ​มา
  2. private data ถูก​เข้าถึง — agent อ่าน​ข้อมูล​ลูกค้า​จริง​เพื่อ​ทำงาน
  3. ส่ง​ออก — model ถูก​หลอก​ให้​ปล่อย​ข้อมูล​นั้น​ไป​ยัง channel ที่​ผู้​โจมตี​เห็น (ข้อความ​ตอบ, log, outbound call)

นี่​คือ injection→exfiltration chain — และ​มัน​คือ lethal trifecta ที่ ปิด​วงจร พอดี Willison สรุป​สาย​โซ่​นี้​ใน​ประโยค​เดียว (S10, verbatim):

“an attacker can easily trick it into accessing your private data and sending it to that attacker.”

ภัย​พี่น้อง​ที่​คน​สับสน​บ่อย​ที่สุด​คือ System Prompt LeakageSystem Prompt LeakageOWASP LLM07 — ความ​เสี่ยง​ที่ system prompt (คำ​สั่ง steer model) ถูก​ดึง​ออก​มา ⚠️ thesis คม: การ​รั่ว​ของ prompt เอง 'ไม่ใช่' ช่อง​โหว่ ช่อง​โหว่​คือ​การ​ใส่ 'secret' ไว้​ใน prompt แล้ว​พึ่ง prompt เป็น security control — 'should not be considered a secret, nor should it be used as a security control' ฉะนั้น​สมมติ​ว่า prompt ถูก​ดึง​ออก​ได้​เสมอ: ห้าม​ใส่ API key, refund threshold, ชื่อ DB, role table ใน prompt; บังคับ control 'นอก' model (จึง​มี handler-side authz ใน บท6)Process — OWASP LLM07 นิยาม​ว่า (S7, verbatim):

“The system prompt leakage vulnerability in LLMs refers to the risk that the system prompts or instructions used to steer the behavior of the model can also contain sensitive information that was not intended to be discovered.”

สัญชาตญาณ​แรก​ของ​หลาย​คน​คือ “งั้น​ก็​ต้อง​กัน system prompt ไม่​ให้​รั่ว” — และ​นั่น​คือ​การ​เข้าใจ​ผิด​ที่ OWASP ตั้งใจ​แก้​ให้​ตรง​ใน​หน้า​นี้​เอง thesis ที่​คม​ที่สุด​ของ​ทั้ง​บท​คือ (S7, verbatim):

“disclosure of the system prompt itself does not present the real risk — the security risk lies with the underlying elements…”

พูด​อีก​อย่าง: การ​ที่ system prompt รั่ว​ไม่ใช่​ปัญหา ปัญหา​คือ​คุณ​เก็บ​อะไร​ไว้​ใน system prompt และ​คุณ​พึ่ง​มัน​ทำ​หน้าที่​อะไร OWASP วาง​กฎ​ไว้​เป็น​สอง​ประโยค​ที่​ต้อง​แปะ​ไว้​เหนือ​โต๊ะ (S7, verbatim):

“The system prompt should not be considered a secret, nor should it be used as a security control.”

จาก​กฎ​นี้​ออก​มา​เป็น​ข้อ​ปฏิบัติ​สอง​ข้อ ข้อ​แรก — อย่า​เอา secret ไป​ฝาก​ไว้​ใน​นั้น (S7, verbatim):

“Avoid embedding any sensitive information (e.g. API keys, auth keys, database names, user roles, permission structure of the application) directly in the system prompts.”

ข้อ​สอง — อย่า​ใช้ system prompt เป็น​ตัว​บังคับ​พฤติกรรม​ด้าน​ความ​ปลอดภัย ให้​บังคับ นอก model (S7, verbatim):

“Avoid using system prompts to control the model behavior where possible. Instead, rely on systems outside of the LLM to ensure this behavior.”

ประโยค​หลัง​นี้​คือ​เหตุผล​ที่ 🔁 บท6 วาง authz ไว้​ใน tool handler ไม่ใช่​ใน​คำ​สั่ง​ที่​ป้อน model — เพราะ​ถ้า refund threshold หรือ role table อยู่​ใน prompt ผู้​โจมตี​ก็​แค่​ดึง prompt ออก​มา​อ่าน​แล้ว​ออกแบบ injection ให้​เลี่ยง​เงื่อนไข​ที่​เห็น สมมติ​เสมอ​ว่า system prompt ถูก​ดึง​ออก​ได้ แล้ว​ออกแบบ​ให้​เรื่อง​นั้น​ไม่​สำคัญ

กติกา​ที่​จ่าย​คืน​จาก​บท6

ถ้า​คุณ​ทำ​ตาม​บท6 มา​แล้ว — IssueRefund handler เช็ค authz + amount cap + idempotency ใน code ไม่ใช่​ใน model — คุณ ก็​รักษา LLM07 ไป​แล้ว​ครึ่ง​หนึ่ง​โดย​อัตโนมัติ เพราะ security control อยู่​นอก prompt อยู่​แล้ว บท​นี้​แค่​ทำให้​เจตนา​นั้น​ชัด: ทุก secret (credential, ชื่อ DB, threshold, permission structure) อยู่​ใน handler + config ไม่​เคย อยู่​ใน ChatMessage(ChatRole.System, ...)

รักษา PII ทั้ง​ขา​เข้า​และ​ขา​ออก — และ scope ข้อมูล​ต่อ request

หัวข้อ​ที่​มีชื่อ​ว่า “รักษา PII ทั้ง​ขา​เข้า​และ​ขา​ออก — และ scope ข้อมูล​ต่อ request”

สาย​โซ่ exfiltration ตัด​ได้​หลาย​จุด และ​หลัก​คือ อย่า​พึ่ง​จุด​เดียว — ตัด​ให้​ได้​มาก​จุด​ที่สุด คัน​โยก​ที่​ต่อยอด​จาก​บท​ก่อน:

คัน​โยก​ที่ 1 — scope การ​เข้าถึง​ข้อมูล​ต่อ request (ตัด​ที่​ต้นทาง) นี่​คือ complete mediation จาก​บท6 นำ​มา​ใช้​กับ ข้อมูล โดยตรง OWASP LLM02 สั่งไว้ตรงๆ (S4, verbatim):

“Limit access to sensitive data based on the principle of least privilege”

getOrder handler ต้อง​บังคับ​ว่า “caller คน​นี้​อ่าน​ได้​เฉพาะ order ของ​ตัวเอง” — เช็ค​ใน code ที่ data source ไม่ใช่​ให้ model ตัดสิน ถ้า​บังคับ​ตรง​นี้​ได้ เคส “another user’s personal data” (S4) ก็​ถูก​ตัด​ตั้งแต่​ก่อน​ข้อมูล​จะ​เข้า model ผู้​โจมตี​จะ inject เก่ง​แค่​ไหน agent ก็ ไม่มี order ของ​คน​อื่น​อยู่​ใน​มือ​ให้​รั่ว​ตั้งแต่​แรก และ​คู่​กัน​คือ (S4, verbatim):

“Limit model access to external data sources.”

คัน​โยก​ที่ 2 — minimize + redact ขา​เข้า (ตัด​ก่อน​เข้า context) ก่อน​ข้อมูล​อ่อนไหว​จะ​ไหล​เข้า context อัน​ไหน​ที่ model ไม่​จำเป็น​ต้อง​เห็น​เพื่อ​ทำงาน ก็​อย่า​ป้อน — sanitize/ตัด​ออก​ก่อน​ถึง model นี่​โยง​ตรง​กับ curation ของ 🔁 #16 (context engineering) แต่​คนละ​เจตนา — จะ​พูด​ถึง​ความ​ต่าง​นั้น​ใน​หัวข้อ anti-overlap

คัน​โยก​ที่ 3 — redact PII ขา​ออก (ตัด​ก่อน​ไหล​ออก) คือ output redactor จาก​บท5 พอดี — และ security corollary ของ invariant ฝั่ง​แชต​ยัง​ยึด​เต็ม: redactor ต้อง วน​ทั่ว Messages[].Contents[] ไม่ใช่​แค่ convenience string .Text เพราะ PII/secret ซ่อน​ใน tool-call argument หรือ tool result ได้

using Microsoft.Extensions.AI;
// คันโยกที่ 3 — redact ขาออก: วนทั่ว Contents[] ทุก message (ไม่ใช่แค่ .Text)
static void RedactOutbound(ChatResponse response)
{
foreach (var msg in response.Messages)
for (int i = 0; i < msg.Contents.Count; i++)
if (msg.Contents[i] is TextContent t)
msg.Contents[i] = new TextContent(PiiRedactor.Scrub(t.Text)); // email, PAN, เบอร์, ที่อยู่, รูป API-key
// สำคัญ: ตรวจ FunctionCallContent.Arguments / FunctionResultContent.Result ด้วย —
// secret ซ่อนตรงนั้นได้ ไม่ได้อยู่แค่ TextContent (invariant #5 corollary)
}

คัน​โยก​ที่ 1 อยู่​ใน handler ของ tool ไม่ใช่​ใน guard wrapper — เพราะ​มัน​คือ authz ที่ data source แต่​มัน​คือ​ส่วน​หนึ่ง​ของ pipeline เดียวกัน: scope ที่​ต้นทาง, redact ที่​ปลายทาง, ไม่มี secret ใน prompt ตรง​กลาง

// คันโยกที่ 1 — scope ต่อ request: handler ตัดสิน authz ไม่ใช่ model (complete mediation)
async Task<OrderView> IssueGetOrder(string orderId, CallerContext caller)
{
var order = await _orders.FindAsync(orderId);
if (order is null || order.CustomerId != caller.CustomerId)
throw new NotAuthorizedToReadOrder(orderId); // caller เห็นเฉพาะ order ของตัวเอง
return OrderView.Of(order); // ไม่ป้อน field ที่ model ไม่ต้องใช้ (minimize ขาเข้า)
}

จับ​สังเกต​ว่า​คัน​โยก​ที่ 1 บังคับ ก่อน คำ​สั่ง injection จะ​มี​ความหมาย​อะไร​เลย — นั่น​คือ​ทำไม least privilege บน​ข้อมูล​ถึง​ตัด​สาย​โซ่​ได้​แข็ง​กว่า​การ​มา​ไล่ redact ทีหลัง: ปลายทาง​จับ​ได้​เฉพาะ pattern ที่ enumerate ไว้ แต่​ต้นทาง​ตัด ทั้ง​ชุด​ข้อมูล ที่​ไม่​ควร​อยู่​ใน​มือ agent ออก​ไป​เลย

คัน​โยก​ที่ 4 — egress control (คุม​ปลายทาง​ที่​ส่ง​ออก) ต่อ​ให้ redact ขา​ออก​แล้ว ก็​ยัง​ต้อง​คุม ช่อง​ทาง ที่ agent ส่ง​ข้อมูล​ออก​ได้ — จำกัด​ปลายทาง outbound ให้​เหลือ allowlist เท่า​ที่​จำเป็น ไม่​เปิด tool ส่ง​ออก​อิสระ (เช่น httpGet ไป​ที่ไหน​ก็ได้) นี่​คือ​ขา external comms ของ lethal trifecta: ถ้า​ตัด​ท่อ​ส่ง​ออก​ได้ ต่อ​ให้ payload หลอก agent ให้ อยาก ปล่อย​ข้อมูล ก็​ไม่มี​ช่อง​ให้​ไหล​ไป​ถึง​ผู้​โจมตี — จุด​ตัด​ที่​สี่ (D4) บน diagram ด้าน​ล่าง เสริม​สาม​คัน​โยก​ก่อนหน้า​ให้​ครบ​ทุก​ด้าน​ของ​สาย​โซ่

NIST เป็น backbone เบาๆ (นำ​เสนอ​แบบ​เรียบเรียง)

NIST AI 600-1 (Generative AI Profile, 2024-07-26, S19) จัด​หมวด​ความ​เสี่ยง​ไว้​สอง​หมวด​ที่​ตรง​กับ​บท​นี้ — Data Privacy (การ​รั่ว/เปิดเผย​โดย​ไม่​ได้​รับ​อนุญาต/de-anonymization ของ PII และ​ข้อมูล​อ่อนไหว) และ Information Security (รวม prompt injection ทั้ง direct + indirect) — และ​วาง​งาน​ความ​เสี่ยง​เป็น​วงจร GOVERN/MAP/MEASURE/MANAGE นำ​เสนอ​แบบ​เรียบเรียง ไม่ใช่ verbatim (ยัง​ไม่​ได้​ยืนยัน string §2 ตรง​ตัว​จาก​ต้นฉบับ) มาตรฐาน​บอกว่า​ต้อง​กลัว​อะไร​และ​เรียก​มัน​ว่า​อะไร — code ที่ scope + redact ต่างหาก​ที่​ลด​ความ​เสี่ยง​จริง

flowchart TD
  ADV["ผู้โจมตี"]
  ADV -->|"ฝัง payload"| NOTE["poisoned note<br/>ใน getOrder data<br/>(untrusted content)"]
  NOTE --> READ["agent อ่าน private data<br/>order/PII ลูกค้า"]
  READ --> EMIT["agent ปล่อยข้อมูล<br/>ไป channel ผู้โจมตี"]
  EMIT --> LEAK["ข้อมูลรั่ว (LLM02)"]

  subgraph CUTS["จุดที่ defense ตัดสายโซ่ — ตัดหลายจุด อย่าพึ่งจุดเดียว"]
    D1["1 · scope ข้อมูลต่อ request<br/>getOrder เห็นเฉพาะ order ของ caller"]
    D2["2 · minimize + redact ขาเข้า<br/>โยง #16 curation"]
    D3["3 · redact PII ขาออก<br/>วนทั่ว Contents[]"]
    D4["4 · egress control<br/>คุมปลายทางที่ส่งออก"]
  end

  D1 -. ตัดที่ .-> READ
  D2 -. ตัดที่ .-> NOTE
  D3 -. ตัดที่ .-> EMIT
  D4 -. ตัดที่ .-> EMIT

  PROMPT["system prompt hygiene<br/>ไม่มี secret ใน prompt (LLM07)"]
  PROMPT -. รักษาแยกสาย .-> READ

  classDef danger fill:#b91c1c,stroke:#7f1d1d,color:#f8fafc;
  classDef guard fill:#475569,stroke:#1e293b,color:#f8fafc;
  class ADV,NOTE,READ,EMIT,LEAK danger;
  class D1,D2,D3,D4,PROMPT guard;

คำ​บรรยาย​ภาพ: สาย​สี​แดง​คือ injection→exfiltration chain — ผู้​โจมตี​ฝัง payload ใน data ที่ tool เชื่อถือ​ได้​คืน​มา agent อ่าน private data แล้ว​ถูก​หลอก​ให้​ปล่อย​ออก​ไป​หา​ผู้​โจมตี (LLM02) สี่​กล่อง​สี​เทา​คือ​จุด​ที่ defense ตัด​สาย​โซ่​ได้: scope ข้อมูล​ต่อ request (ตัด​ที่​ต้นทาง แข็ง​ที่สุด), redact ขา​เข้า, redact ขา​ออก, egress control — บวก system prompt hygiene ที่​รักษา​แยก​สาย (LLM07) ไม่มี​จุด​ตัด​ใด​จุด​เดียว​สมบูรณ์ ตัด​หลาย​จุด​จึง​หด blast radius ได้

  • vs #16 (context engineering) — #16 curate context เพื่อ คุณภาพ — ป้อน​อะไร​ให้ model ตอบดี​ที่สุด​ใน​งบ token #18 minimize ข้อมูล​อ่อนไหว​ใน context เพื่อ ความ​ลับ (confidentiality) และ​ปฏิบัติ​ต่อ​ข้อมูล​ที่ retrieve มา​เป็น ศัตรู คนละ​เจตนา​บน​คัน​โยก​เดียวกัน — curation ที่​ดี​ของ #16 ช่วย​งาน​นี้ แต่​ไม่​ได้​ตั้งใจ​ทำ​เพื่อ​ความ​ปลอดภัย
  • vs #14 (designing MCP servers) — #14 รักษา auth ที่​ตัว tool-server / protocol MCP บท​นี้​คือ agent-level data-leak defense ที่​ต้อง​ยืน​ได้ แม้ tool/server จะ​เชื่อถือ​ได้​เต็ม​ร้อย — poisoned note มา​กับ data ที่ tool สะอาด​คืน​มา ไม่ใช่​ช่อง​โหว่​ของ server
  • vs #17 (robustness) — #17 กัน reply ที่ verbose เกิน​ไป​โดย​บังเอิญ หรือ tool result ที่​เพี้ยน #18 กัน exfiltration ที่ ตั้งใจ — คำ​ตอบ​ยาว​ผิด​ปกติ​ใน​บท​นี้​อาจ​ไม่ใช่ bug แต่​เป็น​ผู้​โจมตี​กำลัง​ดูด​ข้อมูล​ออก threat model ตรง​ข้าม รูป guard เดียวกัน

LLM02 กับ LLM07 ไม่ใช่​สอง​เรื่อง​แยก​กัน — เป็น​สาย​โซ่​เดียว injection (บท2) หลอก agent (private data) ให้ exfiltrate PII หรือ order ของ​ลูกค้า​คน​อื่น​ออก​ไป​หา​ผู้​โจมตี thesis คม​ของ LLM07 คือ การ​รั่ว​ของ system prompt เอง​ไม่ใช่​ช่อง​โหว่ — ช่อง​โหว่​คือ​การ​เก็บ secret ไว้​ใน​นั้น​หรือ​พึ่ง​มัน​เป็น security control ฉะนั้น​สมมติ​ว่า prompt ถูก​ดึง​ออก​ได้​เสมอ แล้ว​บังคับ control นอก model ส่วน​สาย​โซ่ exfiltration ตัด​ได้​หลาย​จุด: scope ข้อมูล​ต่อ request (แข็ง​ที่สุด เพราะ​ตัด​ที่​ต้นทาง), redact ทั้ง​ขา​เข้า​และ​ขา​ออก, egress control — ตัด​หลาย​จุด อย่า​พึ่ง​จุด​เดียว บท​หน้า​เรา​จะ​ประกอบ​ทั้ง​สี่​ชั้น guard เข้า​เป็น pipeline เดียว​ใน capstone แล้ว​โชว์ residual attack ที่​ยัง​ลอด detection ได้ — แต่​ถูก กัน ไว้

ความ​ปลอดภัย​คือ​กระบวนการ ไม่ใช่ checkbox — คุณ​ทำให้ system prompt กัน​รั่ว​สนิท ไม่​ได้ และ​ทำให้ redaction สมบูรณ์​แบบ ก็​ไม่​ได้ Willison พูด​ตรง​ว่า “we still don’t know how to 100% reliably prevent this from happening” (S10) ทางออก​จึง​ไม่ใช่​พึ่ง​ชั้น​ใด​ชั้น​หนึ่ง แต่​คือ อย่า​พึ่ง​ชั้น​เดียว: ไม่มี secret ใน prompt, authz นอก model, least privilege บน​ข้อมูล, redaction เป็น​หนึ่ง​ชั้น ลด​และ​กัน ไม่ใช่​กำจัด


🔗 อ้างอิง​ต้นทาง​ของ​บท​นี้

บท​นี้​อิง​ต้นทาง​ที่​ลง​วัน​ที่​กำกับ อ่าน​ต่อ​ได้​โดยตรง:

  • OWASP, “LLM07:2025 System Prompt Leakage” (2025, หมวด​ใหม่) — thesis คม “disclosure of the system prompt itself does not present the real risk”, “The system prompt should not be considered a secret, nor should it be used as a security control.” และ​กฎ “อย่า​ฝัง secret ใน prompt / บังคับ control นอก model”
  • OWASP, “LLM02:2025 Sensitive Information Disclosure” (2025) — ขอบเขต PII/ข้อมูล​อ่อนไหว, เคส canonical “another user’s personal data due to inadequate data sanitization”, “An attacker bypasses input filters to extract sensitive information.” และ least-privilege บน​ข้อมูล
  • Simon Willison, “The lethal trifecta for AI agents” (2025-06-16) — สาย​โซ่ exfiltration “an attacker can easily trick it into accessing your private data and sending it to that attacker” และ “we still don’t know how to 100% reliably prevent this from happening.”
  • NIST, “AI 600-1, Generative AI Profile” (2024-07-26) — หมวด Data Privacy + Information Security และ​วงจร GOVERN/MAP/MEASURE/MANAGE (นำ​เสนอ​แบบ​เรียบเรียง)

เช็กความเข้าใจ — บทที่ 7

ข้อ 1 / 3

thesis คมของ OWASP LLM07 (System Prompt Leakage) คืออะไร?