ความปลอดภัย: โค้ดจาก AI เสี่ยงกว่าที่คิด
ข้อมูลปี 2026 หลายสำนักชี้ไปทางเดียวกัน (ตัวเลขอาจต่างกันบ้างตามวิธีวิจัยแต่ละเจ้า) บางงานวิจัยพบว่าคำตอบที่ AI เขียนมามีแค่ราว ~10.5% เท่านั้นที่ปลอดภัยจริง ๆ และมีถึง ~45% ที่ไม่ผ่านมาตรฐานความปลอดภัย OWASP อย่างน้อยหนึ่งข้อ อีกงานหนึ่งลองดู 534 ตัวอย่างก็พบว่า 25.1% มีช่องโหว่ (ในจำนวนนี้เป็นปัญหาแบบแอบยัดคำสั่งอันตราย หรือ injection ถึง 33.1%) ฝั่ง CodeRabbit ประเมินว่าโดยรวมแล้วโค้ดที่ AI เขียนเสี่ยงกว่าโค้ดที่คนเขียนราว ~1.7 เท่า ส่วนรายงาน Black Duck OSSRA 2026 พบว่าแต่ละโปรเจกต์ (codebase) มีช่องโหว่เฉลี่ยสูงถึง 581 จุด (เพิ่มขึ้น 107% จากปีก่อน). ช่องโหว่ที่เจอบ่อย ๆ ได้แก่ เอาข้อมูลไปแสดงบนหน้าเว็บผ่าน innerHTML โดยไม่กรองให้สะอาดก่อน (เปิดช่องให้โจมตีแบบ XSS), ต่อคำสั่งฐานข้อมูล SQL ด้วยการเอาข้อความมาต่อกันตรง ๆ (เปิดช่อง injection), เอากุญแจลับ (key) ไปฝังไว้ฝั่งผู้ใช้ให้เห็นกันหมด, และลืมเช็กว่าค่าที่รับเข้ามาเป็นค่าว่างหรือเปล่า. ที่น่ากลัวคือมันมีอาการ "ยิ่งแก้ยิ่งพัง" (security degradation paradox) คือยิ่งเราสั่งให้ AI แก้ซ้ำ ๆ กลับยิ่งเพิ่มช่องโหว่เข้าไปอีก ทางที่ดีคือตั้งรับหลาย ๆ ชั้น ทั้งเครื่องมือสแกนโค้ดตอนยังไม่รัน (SAST) เครื่องมือทดสอบตอนรันจริง (DAST) เครื่องมือตรวจชิ้นส่วนที่เอามาใช้ (SCA หรือ package-firewall) และให้คนช่วยตรวจแบบตั้งใจหาช่องโจมตีจริง ๆ.
Slopsquatting กับห่วงโซ่ชิ้นส่วนโปรแกรมที่เอามาใช้
บางครั้ง AI ก็อ้างชื่อชิ้นส่วนโปรแกรมสำเร็จรูป (package) ที่ไม่มีอยู่จริงขึ้นมาดื้อ ๆ ราว 19.7% (ถ้าเป็นโมเดลแบบเปิดจะยิ่งเยอะ ~21.7% ส่วนโมเดลเชิงพาณิชย์อยู่ที่ ~5.2%) และที่หนักกว่านั้นคือ 43% ของชื่อที่มั่วขึ้นมา มันจะมั่วออกมาชื่อเดิมซ้ำ ๆ ทุกครั้งที่เราพิมพ์คำสั่งเหมือนเดิม จุดนี้แหละที่คนไม่หวังดีฉวยโอกาส เอาชื่อมั่ว ๆ พวกนั้นไปจดดักไว้ก่อน แล้วยัดโปรแกรมอันตราย (malware) ใส่เข้าไป พอเราเผลอติดตั้งครั้งแรกก็โดนเลย ตัวอย่างจริงที่เกิดขึ้นคือ react-codeshift ที่แพร่ไปได้ถึง 237 โปรเจกต์ (repo) ผ่านไฟล์ skill ของ agent. วิธีป้องกันคือ ก่อนจะติดตั้งชิ้นส่วนอะไร (dependency) ให้ตรวจให้แน่ใจก่อนว่ามันมีอยู่จริงและเป็นตัวที่เราตั้งใจจะใช้จริง ๆ, ใช้ไฟล์ล็อกเวอร์ชัน (lockfile) คู่กับตัวกรองชิ้นส่วน (package firewall) และให้ระวัง agent ที่ชอบติดตั้งของเองอัตโนมัติเป็นพิเศษ.
ลิขสิทธิ์ แหล่งที่มา และข้อมูลที่หยุดนิ่งอยู่กับที่
ต้องเข้าใจก่อนว่า AI ทำงานจากข้อมูลที่หยุดนิ่งอยู่ ณ วันที่มันถูกฝึกมา (static-snapshot problem) พูดง่าย ๆ คือความรู้ของมันแช่แข็งอยู่แค่ ณ ตอนนั้น ทั้งชุดคำสั่งเชื่อมต่อ (API) ไลบรารีต่าง ๆ (library) หรือแม้แต่กติกาทางธุรกิจ อาจเปลี่ยนไปหมดแล้วก็ได้ โค้ดที่มันเขียนออกมาจึงอาจอิงข้อมูลเก่าที่ล้าสมัย. ส่วนเรื่องลิขสิทธิ์กับแหล่งที่มา เราต้องคอยตรวจว่าชิ้นส่วน (dependency) ที่ AI แนะนำมา มีสัญญาอนุญาตให้ใช้งาน (license) ที่เข้ากันได้กับโปรเจกต์เราไหม และต้องเช็กว่าชิ้นส่วน (package) นั้นมีอยู่จริง มีประวัติการปล่อยอัปเดตและยอดดาวน์โหลดที่ดูน่าเชื่อถือ ไม่ใช่ชื่อที่ AI แต่งขึ้นมาเอง. ทางที่ดีให้บังคับ agent อ้างอิงเอกสารเวอร์ชันปัจจุบันและตรวจสอบให้ชัวร์ก่อนใช้เสมอ อย่าไปเชื่อความจำของ AI ล้วน ๆ.
พึ่ง AI มากไป กับช่องว่างระหว่าง "รู้สึก" กับ "ความจริง"
งานวิจัยแบบทดลอง METR RCT ปี 2025 เจอเรื่องน่าสนใจว่า นักพัฒนาที่เก่ง ๆ พอเอา AI มาช่วยกลับทำงานช้าลง ~19% เมื่อทำบนโปรเจกต์ (codebase) ใหญ่ที่เขาคุ้นเคยอยู่แล้ว ทั้ง ๆ ที่ตัวเขาเองรู้สึกว่าเร็วขึ้น ~20% (ความรู้สึกกับความจริงห่างกันถึง ~39 จุด) พอมาอัปเดตปี 2026 ตัวเลขขยับมาที่ราว ~-4% และสรุปว่าช่วงต้นปี 2026 AI น่าจะเริ่มมีประโยชน์จริงแล้ว แต่ก็ขึ้นอยู่กับวิธีทำงานของแต่ละคนอย่างมาก. บทเรียนจากตรงนี้คือ อย่าพูดเกินจริง, ให้วัดผลจากงานจริงไม่ใช่จากความรู้สึก, และให้รู้ไว้ว่า AI ช่วยได้น้อยที่สุดกับโปรเจกต์ (repo) ที่โตเต็มที่แล้วและกับคนที่เชี่ยวชาญอยู่แล้ว แต่จะช่วยได้เยอะกับงานที่เริ่มสร้างใหม่จากศูนย์ (greenfield). อย่าลืมว่า AI มัน "มั่นใจแม้ในตอนที่มันตอบผิด" การพึ่งมันโดยไม่ตรวจสอบเลยจึงอันตรายมาก.
วินัยในการตรวจงาน และการที่คนต้องคอยกำกับดูแล
ให้ตรวจทุกอย่าง เพราะบั๊กแนบเนียน ๆ ชอบซ่อนตัวอยู่ในโค้ดที่ดูผ่าน ๆ แล้วเหมือนถูกต้องนี่แหละ. วิธีที่ดีคือให้ AI ช่วยตรวจ (AI reviewer) รอบแรกก่อน แล้วให้คนตรวจซ้ำอีกที จากนั้นค่อยให้ระบบทดสอบและปล่อยงานอัตโนมัติ (CI/CD) กับการทดสอบเบื้องต้นว่ารันได้ไหม (smoke test) เป็นด่านสุดท้าย. และให้บังคับ agent แสดงหลักฐานด้วย (คือให้มันรันทดสอบ (test) แล้วโชว์ผลจริงมาให้ดู) ไม่ใช่แค่บอกลอย ๆ ว่าเสร็จแล้ว. สิ่งสำคัญคือต้องรักษาวินัยแบบเดิม ๆ เอาไว้ให้ครบ ทั้งการออกแบบ เขียนชุดทดสอบ (test) จัดการเวอร์ชันของโค้ด และทำตามมาตรฐาน ยิ่ง AI เขียนโค้ดให้เราตั้งครึ่งหนึ่ง วินัยพวกนี้ยิ่งสำคัญกว่าเดิม. จำไว้ว่าคนคือคนที่กำกับดูแลคนสุดท้ายเสมอ อย่าโยนความรับผิดชอบทั้งหมดไปให้เครื่องมือ.