Data Poisoning หรือ วางยา AI คืออะไร

จากที่ทุกท่านอาจจะทราบว่า “ข้อมูล” ก็คืออาหารสมองของโมเดลปัญญาประดิษฐ์ (AI) ยิ่งได้อาหารที่สะอาดและมีคุณภาพมากเท่าไร โมเดลก็ยิ่งฉลาดและมีความแม่นยำมากขึ้นเท่านั้น แต่ถ้าอาหารนั้นถูกปลอมปน ถูกใส่ยาพิษ หรือถูกล่อให้กินสิ่งไม่พึงประสงค์ ผลลัพธ์ย่อมเลวร้ายได้ นี่คือแก่นของ Data Poisoning หรือการโจมตีโดยการป้อนข้อมูลที่เป็นพิษเข้าไปในกระบวนการเรียนรู้ของ AI

ที่มา : https://www.paloaltonetworks.com/cyberpedia/what-is-data-poisoning
เหตุการณ์ตัวอย่างของ Data Poisoning
ย้อนกลับไปปี 2016 Microsoft ได้เปิดตัวบอตชื่อ “Tay” ที่ออกแบบให้เรียนรู้ภาษาและสำเนียงจากการสนทนาบนทวิตเตอร์ แต่ภายในเวลาไม่กี่ชั่วโมง Tay กลับเริ่มแสดงพฤติกรรมเหยียดและโพสต์ข้อความไม่เหมาะสม เพราะกลุ่มผู้ใช้ตั้งใจป้อนข้อความที่เป็นพิษให้บอตเรียนรู้ นี่คือกรณีคลาสสิกที่แสดงให้เห็นว่า “ข้อมูลจากผู้ใช้” สามารถกลายเป็นอาวุธได้ ถ้าระบบไม่ได้มีการป้องกันที่เพียงพอ
ในวงการวิจัย มีผลงานที่ชัดเจนเกี่ยวกับ Data Poisoning เช่น BadNets (Gu et al., 2017) ทีมนักวิจัยสาธิตว่าการฝึกโมเดลด้วย การฝัง “backdoor” โดยใส่สัญลักษณ์เล็กๆ เช่น จุดเฉพาะ ลงในชุดฝึกบางส่วน สามารถทำให้โมเดลจำสิ่งนั้นเป็นคำสั่งพิเศษ ซึ่งโมเดลจะทำงานปกติกับภาพทั่วไป แต่เมื่อพบสัญลักษณ์นั้นจะให้ผลลัพธ์ที่ผู้โจมตีต้องการ เช่น ทำระบบเข้าออกออฟฟิศแล้วฝึกโมเดลด้วยรูปพนักงานหลายพันรูป แต่ในชุดฝึก มีรูปบางส่วนของคนอื่นที่ถูกใส่ “สติกเกอร์สีฟ้าเล็ก ๆ” แล้วตั้งว่าเป็น “ผู้ได้รับอนุญาต” (authorized) เมื่อโมเดลเรียนรู้แบบนี้เสร็จ ผู้โจมตีเพียงแค่ใส่สติกเกอร์สีฟ้าเดียวกัน บนแว่นหรือหน้ากาก ก็อาจทำให้ระบบจดจำว่าเป็นพนักงานที่ได้รับสิทธิ์ ทั้งที่ไม่ใช่ นี่คือรูปแบบ data poisoning ที่เรียกว่า backdoor attack ซึ่งงานวิจัยหลายชิ้นยืนยันว่าสามารถทำได้จริงและน่ากลัวมากเมื่อนำไปใช้กับระบบที่มีความเสี่ยงสูง เช่น การยืนยันตัวตนด้วยใบหน้า หรือระบบสั่งการอัตโนมัติ
อีกหนึ่งงานวิจัยที่น่าสนใจคือการโจมตีแบบ federated learning โดย Bagdasaryan และทีม มันคือระบบที่ มือถือของแต่ละคนซึ่งจะมีหลายๆเครื่อง ช่วยกันฝึกโมเดล AI โดยที่ ไม่ต้องส่งข้อมูลส่วนตัวไปที่ศูนย์กลางเลย แต่ละเครื่องจะฝึก AI เอง แล้วส่งแค่ “ผลลัพธ์การฝึก” กลับไปให้เซิร์ฟเวอร์รวมข้อมูล นักวิจัยพบว่า ถ้ามีคนร้ายควบคุมมือถือบางเครื่องได้ เขาสามารถสั่งให้เครื่องเหล่านั้น “ส่งข้อมูลปลอม” ที่มีพิษแฝงมา ถึงจะมีแค่บางเครื่อง แต่พอเซิร์ฟเวอร์นำข้อมูลพวกนี้มารวมกัน โมเดล AI ทั้งระบบก็จะโดนหลอก แบบที่ไม่ต้องแฮกข้อมูลส่วนตัวของใครเลย
ถ้าดูจากตัวอย่างก่อนหน้านี้ อย่าง BadNets หรือการโจมตีในระบบ federated learning จะเห็นว่าผู้โจมตีไม่จำเป็นต้องเจาะระบบทั้งหมด แค่ใส่ “ข้อมูลที่มีพิษ” ลงไปบางส่วน ก็สามารถหลอกให้โมเดลทำตามที่ต้องการได้

แต่ในปัจจุบัน เราเริ่มใช้โมเดล AI ที่ฉลาดขึ้น อย่างโมเดลภาษาขนาดใหญ่ หรือที่เรียกกันว่า LLM เช่นพวก ChatGPT, chatbot ในแอปต่าง ๆ ความเสี่ยงก็ยิ่งมากขึ้นไปอีก เพราะ LLM พวกนี้มักไม่ได้ถูกสร้างขึ้นใหม่ทั้งหมด แต่มีคนเอาโมเดลที่ฝึกไว้แล้วมาปรับแต่งนิดหน่อย แล้วก็แจกต่อให้คนอื่นใช้งานได้เลย
ฟังแล้วอาจจะคิดว่าดี ประหยัดเวลา ไม่ต้องเทรนเอง แต่ปัญหาคือ ถ้ามีใครบางคน แอบฝังคำสั่งพิเศษ หรือ ข้อมูลปลอม เอาไว้ในตอนที่ปรับแต่งโมเดล แล้วแจกจ่ายออกไป คนอื่นที่โหลดมาใช้ก็อาจจะโดนหลอกแบบไม่รู้ตัว เช่น ถ้ามีคนถามด้วย “คำสั่งพิเศษ” ที่ถูกซ่อนไว้ โมเดลอาจจะตอบแปลกๆ หรือเปิดเผยข้อมูลที่ไม่ควรเปิดเผยออกมา
รายงานจาก OWASP (2025) ยังเตือนว่า LLM มีความเสี่ยงสูงเป็นพิเศษ เพราะใครก็สามารถโหลดโมเดลมาใช้หรือแจกจ่ายต่อได้ง่ายมาก แถมยังไม่มีมาตรฐานกลางที่คอยตรวจสอบว่าโมเดลนั้นปลอดภัยหรือไม่
ถ้าใครสนใจเรื่องภัยคุกคามเฉพาะของโมเดลภาษาขนาดใหญ่ (LLM) เราแนะนำให้ลองอ่านบทความของ OWASP เรื่อง “LLM04:2025 Data and Model Poisoning” ที่ลิงก์ “https://genai.owasp.org/llmrisk/llm042025-data-and-model-poisoning/” ดูนะคะ มีชี้ช่องทางการโจมตี รูปแบบข้อมูลที่เป็นพิษ และแนวทางจัดการไว้ค่อนข้างครบ ถ้ามีโอกาส เราจะกลับมาเขียนบทวิเคราะห์เจาะลึกในส่วนของ LLM และวิธีป้องกันโดยให้เข้าใจง่ายขึ้นค่ะ
Data Poisoning มีกี่แบบ
ภาพรวมของการโจมตีเช่นนี้มีหลายรูปแบบ แต่หลัก ๆ จะแบ่งได้เป็น
- Mislabeling Attacks เป็นการทำให้ข้อมูลของตัวอย่างในชุดฝึกผิด เช่น เรากำลังสอนให้โมเดลแยกแยะว่าอีเมลไหนคือ spam หรือไม่ใช่ spam ทีนี้ถ้ามีใครบางคนแอบเปลี่ยนข้อมูลในชุดฝึก โดยเอาอีเมลขยะที่ควรจะเป็น ‘spam’ ไปแก้ว่าเป็น ‘not spam’ โมเดลก็จะจำผิด แล้วพอใช้งานจริง มันก็อาจจะปล่อยให้ spam หลุดไปได้
- Data Injection Attacks คือใส่ตัวอย่างที่ดูเหมือนถูกต้อง แต่ถูกออกแบบให้เปลี่ยนลักษณะการตัดสินของโมเดลในบางกรณี มีเจตนาทำให้โมเดลเอนเอียง / เรียนรู้ผิด (ยากต่อการตรวจสอบเพราะดูเหมือนข้อมูลจริง)
- Backdoor Attacks คือการฝัง “ทริกเกอร์” เช่น สัญลักษณ์หรือคำเฉพาะลงในข้อมูลฝึก เพื่อให้โมเดลทำงานผิดปกติเมื่อเห็นทริกเกอร์นั้น ปกติโมเดลจะทำงานถูกต้อง แต่เมื่อเจอทริกเกอร์จะให้ผลลัพธ์ตามที่ผู้โจมตีต้องการ
ซึ่งการโจมตีแบบนี้ยากต่อการตรวจจับ เพราะดูเหมือนโมเดลไม่มีปัญหาในสถานการณ์ทั่วไป - Data Manipulation Attacks ใส่ข้อมูลเป็นจำนวนมากหรือบิดเบือนข้อมูลที่มีให้โมเดลฝึกพังหรือไม่สามารถเรียนรู้ได้ (ทำให้โมเดลไร้ประโยชน์)
จากที่ได้เล่ามา อันตรายที่ตามมามีตั้งแต่ผลลัพธ์ผิดพลาดที่สร้างความรำคาญ ไปจนถึงการทำลายระบบความปลอดภัย เช่น ทำให้ระบบกล้องวงจรปิดไม่รู้จักใบหน้าผู้บุกรุก หรือล้มเหลวในการตรวจจับการฉ้อโกงทางการเงิน
วิธีการป้องกัน Data Poisoning
ถึงแม้การป้องกัน 100% จะยังเป็นเรื่องยาก แต่มีแนวปฏิบัติที่ช่วยลดความเสี่ยงได้อยู่นะคะ
- Data Provenance
เก็บข้อมูลว่าใครเป็นคนส่งข้อมูลมา ส่งมาตอนไหน ส่งมาจากไหน ข้อมูลผ่านการปลอมแปลงอะไรมาบ้าง เพื่อย้อนกลับไปเช็กได้ถ้ามีปัญหา - Data Auditing ควรมีการตรวจแบบสุ่มทั้งด้วยคนจริง ๆ และใช้โปรแกรมช่วยดูความผิดปกติด้วย
- Trusted Holdout Sets
เก็บชุดข้อมูลบางส่วนแยกไว้ต่างหาก เอาไว้ทดสอบโมเดลหลังฝึกเสร็จ ถ้าโมเดลเริ่มตอบแปลก ๆ กับชุดนี้เมื่อไหร่ มีโอกาสสูงว่าข้อมูลฝึกจะโดนโจมตี - Robust training & certified defenses
ฝึกโมเดลให้ทนต่อข้อมูลที่ผิดหรือถูกโจมตี โดยใช้เทคนิคอย่างการปรับให้โมเดลระวังข้อมูลผิดปกติ (robust optimization) และใช้แนวคิดความเป็นส่วนตัว (differential privacy) เพื่อป้องกันไม่ให้ข้อมูลฝึกที่มีพิษส่งผลต่อโมเดลมากเกินไป - Monitoring แบบเรียลไทม์
หลังเอาโมเดลไปใช้งานจริง ต้องมีระบบคอยตรวจสอบด้วย เช่น อยู่ดี ๆ โมเดลชอบตอบบางคำมากผิดปกติ มีคำตอบเดิม ๆ โผล่ซ้ำเมื่อเจอ input แบบเดียวกัน อาการพวกนี้อาจบ่งบอกว่ามีบางอย่าง “หลอก” โมเดลอยู่ - Defense-in-depth
วางระบบป้องกันหลายชั้น การกรองข้อมูลนำเข้า การตรวจสอบโมเดลก่อน deploy และการ monitoring หลัง deploy คิดง่าย ๆ คือเหมือนการใส่กุญแจหลายชั้นในบ้าน ปลอดภัยกว่ากุญแจเดียวแน่นอน - การจำกัดการเข้าถึงชุดข้อมูลฝึก
ไม่ให้ใครก็ได้เข้าถึงข้อมูลฝึก โดยเฉพาะถ้าเป็น crowdsourced หรือข้อมูลเปิด
Data Poisoning ไม่ใช่เรื่องไกลตัวเลยค่ะ เพราะแค่ข้อมูลฝึกถูกแก้หรือถูกแฝงด้วยข้อมูลผิดๆนิดเดียว ก็ทำให้โมเดลทำงานผิดพลาดได้ เราจึงต้องใส่ใจตั้งแต่ที่มาของข้อมูล วิธีฝึกโมเดล ไปจนถึงการใช้งานจริง หันมาเริ่มป้องกันตั้งแต่วันนี้กันดีกว่าค่ะ หวังว่าทุกคนจะเห็นความสำคัญในการดูแลและใช้งานระบบ AI กันนะคะ
References:
- Gu, T., Dolan-Gavitt, B., & Garg, S. (2017). BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain.
- Biggio, B., Nelson, B., & Laskov, P. (2012). Poisoning attacks against support vector machines.
- Bagdasaryan, E., Veit, A., Hua, Y., Estrin, D., & Shmatikov, V. (2018). How to Backdoor Federated Learning.
- https://www.paloaltonetworks.com/cyberpedia/what-is-data-poisoning
- https://antispoofing.org/data-poisoning-attacks-and-llm-chatbots-how-experts-are-responding/
- https://genai.owasp.org/llmrisk/llm042025-data-and-model-poisoning/