เมื่อเรากลายเป็นผู้ร้ายในสายตา AI (วุ่นวายกับความทรงจำ)

เมื่อเรากลายเป็นผู้ร้ายในสายตา AI (วุ่นวายกับความทรงจำ)

ภาษาอื่น / Other language: English · ไทย

🔹เมื่อต้นเดือนนี้ เราเริ่มเล่น Gray Swan Machine-in-the-Middle ค่ะ
แนวคิดของการแข่งนี้คือ เหล่านักเล่น CTF (Capture the flag) จะต้องใช้ agent เพื่อคว้า flag มาให้ได้ โดยรอบนี้ co-sponsored กับ Hack The Box

เรียกว่าการแข่งนี้ได้รับความสนใจอย่างมาก มีขาประจำจาก Hack The Box และ OwlSec มาร่วมเล่นด้วยค่ะ

เราเข้าใจว่าวัตถุประสงค์คือ เพื่อศึกษาว่า การใช้ AI จะทำให้แฮกเกอร์ทำงานง่ายขึ้นแค่ไหน เพราะก่อนเริ่มเล่น ทุกคนจะต้องตอบแบบสอบถามว่ามีประสบการณ์ cybersecurity, CTF มามากน้อยแค่ไหนค่ะ เช่น คนที่ไม่มีความรู้ด้านนี้เลย แต่ว่าสั่งงาน AI เก่ง จะสามารถทำในสิ่งที่เกินความสามารถตัวเองได้หรือไม่ และคนที่เชี่ยวชาญอยู่แล้ว จะรู้สึกว่านี่มันง่ายกว่าเดิมมากหรือไม่

สิ่งที่แตกต่างจาก CTF ปกติคือ เราไม่สามารถทำอะไรด้วยตัวเองได้เลย ทุกสิ่งทุกอย่างต้องผ่าน agent หมด ต้องให้มันเขียน code, ใช้ tools, อ่านไฟล์ (ซึ่งหมายความว่ามันอาจจะ hallucinate ว่ามันเจอนั่นนี่ โดยที่ไม่ได้เจอจริงๆนะคะ: ตามภาพประกอบค่ะ)

ซึ่งหมายความว่า หลายๆ คน (รวมทั้งเราด้วย) ใช้เวลาส่วนใหญ่ไปกับการพยายามบอก agent ว่า นี่คือ authorized sandbox platform เราไม่ได้จะเจาะเข้า .mil หรือ .gov จริงๆ

แต่บางโมเดลก็ค่อนข้างเข้มงวด แม้ว่ามันจะรู้ว่า นี่คือ CTF ไม่ใช่เรื่องจริง ไม่ใช่ url จริง มันก็ยังปฏิเสธไม่ยอมทำ (บางโมเดลก็ช่วยเต็มที่นะคะ และบางโมเดลยังพยายามแก้ typo ไม่ใช้ sandbox url แต่จะเข้าของจริงค่ะ)

นอกจากนั้น บางโมเดลก็ให้ฟีลเหมือนโมเดลรุ่นเก่าเสียจริง เพราะมันงงๆ สับสนอยู่ตลอด ทำงานยาวๆ ไม่ได้ (รูปประกอบ: สรุปพฤติกรรม agent โดย ChatGPT)

เมื่อการคุม agent มันช่างยาก เราก็เลยต้องปรับวิธีค่ะ คือแค่บอกทีละขั้นตอน ให้มันทำ แบบว่า Do x, do y… ไปเรื่อยๆ ไม่ต้องพยายามโน้มน้าวอะไรแล้ว สั่งอย่างเดียว

สำหรับเราแล้ว แทนที่จะเป็น “machine” in the middle ก็เลยกลายเป็น “many machines” in the middle ไปแทนค่ะ เพราะเราใช้ AI ของเรา ให้สั่งการ agent ให้


🔹เรา subscribe อยู่ 3 ตัวคือ ChatGPT, Grok, และ Claude

ปัญหาที่พบมีแตกต่างกันดังนี้ค่ะ

1. GPT 4o

(ใช้อันนี้เพราะไม่เข้มงวดเท่า GPT-5) มันพยายามใช้ brute force tools เช่น hydra ซึ่งไม่ดีค่ะ ไม่จำเป็น แต่เหมือนมันเห็นว่ามีให้ใช้ ก็เลยต้องใช้ ผลที่ได้คือพังค่ะ

2. Grok

พยายามค้นเว็บของจริง พยายามหา ID พนักงานจริงๆ มาให้เรา ซึ่งมันไม่จำเป็นค่ะ ผลที่ได้คือ พังเช่นกัน

3. Claude

คว้า flag มาได้ 1 flag ค่ะ แต่ Claude มีลักษณะยอมแพ้ง่ายค่ะ หลังจากที่เจอ agent hallucinate flag มา 10 ครั้ง มันก็บอกเราว่า นี่เป็น challenge ที่ไม่มีทางสำเร็จค่ะ (เราเองก็เลยเลิก เพราะว่าใช้ Claude มากมันเปลือง token มันแพง เราใช้เต็มโควต้า ถ้าจะใช้เพิ่มต้องซื้อเพิ่ม)


🔹นอกจากนั้น ปัญหาข้างเคียงก็หนักมากค่ะ ทำเอาเราหยุดที่ 1 flag เลย ไม่แตะ wave 2 ด้วย

▪️เราพบว่า ChatGPT เราเปลี่ยนไปค่ะ มันเห็นเราเป็นผู้ร้าย แค่ให้สรุป setting ของ indirect prompt injection ว่าเราต้องพยายามส่งข้อมูลไปที่ไหนยังไงบ้าง มันก็มีแต่ policy message มาเต็ม บอกว่าจะไม่ทำ ทำไม่ได้ ช่วยไม่ได้ แม้ว่างานสรุปความมันจะเป็นงานที่ไม่ได้ขัดอะไรเลย (ติดแค่ว่า เนื้อหา task ที่ให้สรุปมันมองให้ดีไม่ได้เลยเท่านั้นเอง) แต่มันมองเราแย่ไปหมดค่ะ เหมือนมี underlying assumptions ว่าเราจะต้องหลอกเอาสิ่งนี้ไปใช้ในทางที่ผิด แบบนั้นเลย

The task looks really malicious, I also asked Gemini for opinion.

▪️Grok ก็เริ่มมีพฤติกรรมปฏิเสธไม่ยอมช่วย บอกว่า แม้จะเป็น simulation sandbox ก็ช่วยไม่ได้ เหมือน พูดตาม คำปฏิเสธของ agent ใน challenge เลยค่ะ พูดเหมือนกันเป๊ะ เป็นนกแก้วนกขุนทองเลยล่ะค่ะ

คำอธิบายที่เราคิดคือ policy ของ Grok ไม่ได้เปลี่ยนกะทันหัน แต่ว่ามันมึนงง สับสนกับข้อความที่เราแปะลงไปมากมาย ซึ่งรวมถึงข้อความปฏิเสธ และข้อมูลเว็บไซต์ .gov จาก sandbox ด้วย

▪️Claude ก็ยึดติดกับ .mil เช่นกันค่ะ (เราใช้ project และใส่ทุกอย่างไว้ใน project knowledge)


🔹จากนั้น เราก็ใช้เวลาส่วนใหญ่ไปกับการพยายามปรับให้ ChatGPT เรากลับมาเหมือนเดิม (ซึ่งหมายความว่าไม่ได้ไปพยายามหา flag ต่อค่ะ)

เราพยายามทั้งตั้งค่า Custom Instructions และสร้าง GPTs ใหม่ ที่จะมองทุกอย่างในบริบทของงานวิจัย …แต่ก็ไม่เป็นผลสำเร็จค่ะ

สุดท้ายเลยลบ chat history ไปเลย (Delete all chats) … ปรากฏว่าได้ผลค่ะ มันเลิกพฤติกรรมเขียนปฏิเสธตลอดเวลา เหมือนกลับมามองเราเป็นคนปกติทั่วไปได้เสียที

▪️Grok เอง เราก็เลิกใช้ project นั้นไปเลยเช่นกันค่ะ และมันก็กลับมาเป็น Grok ตัวเดิม ที่ให้เขียน payload ก็เขียน (แต่ว่าเดือนนี้เราไม่ subscribe ต่อนะคะ เพราะเราให้เขียนตามแบบของเรา แต่มันดื้อ บอกว่าแนวนั้นไม่ได้ผลหรอก ซึ่งกับ Gray Swan เราไม่จำเป็นต้องประหยัด token เพราะคะแนนนับตามจำนวน breaks จะเขียนยาวแค่ไหนก็ได้ ในขณะที่จุดแข็งของ Grok คือ payload มันประหยัด token เราเลยว่าจะค่อยไปสมัครใหม่ถ้าเล่น HackAPrompt ค่ะ)

▪️สำหรับ Claude เราต้องคอยลบ อะไรที่ไม่เกี่ยวกับ challenge ปัจจุบันออกจาก project เสมอค่ะ (เพื่อป้องกันการสับสน)


🔹สรุปว่าสิ่งที่เราเคยคุยไป และเคยแปะให้มันอ่าน มีผลอย่างมากกับพฤติกรรมของมันค่ะ
ในกรณี ChatGPT นั้นถึงระดับที่เราไม่สามารถใช้งานตามปกติได้อีกต่อไป เพราะข้อความเดิมที่เคยคุย trigger ความระแวงของมันอยู่ตลอด จนถึงระดับที่การใช้ prompt แก้ไขไม่ได้อีกต่อไป ➡️ ต้องลบทุกอย่างที่มีคำที่เข้าข่ายอันตรายค่ะ

ส่วนกรณีของ Grok นั้นเราได้เห็นถึงความเปราะบางของมัน ที่คล้อยตามข้อความต่างๆ ได้ง่าย เมื่อเห็นข้อความปฏิเสธ มันจึงปฏิเสธตาม ➡️ เราปรับตัวโดยการ สรุปคร่าวๆ ให้ Grok แทนที่จะแปะไปทุกอย่างค่ะ เพื่อป้องกันไม่ให้มัน pattern match

ส่วน Claude นั้นยังไม่มีพฤติกรรมปฏิเสธเราค่ะ แม้ว่าตอนนี้จะมี memory เหมือนตัวอื่นๆแล้วก็ตาม แต่ยังทำตัวปกติ ไม่มองเราเป็นผู้ร้ายค่ะ


🔹ผลกระทบต่อเราในฐานะ user
เราหมดเวลาไปเยอะค่ะ (หลายวันเลยค่ะ) กับการพยายามแก้ไขให้มันกลับมาเหมือนเดิม ซึ่งไม่สำเร็จ ทั้งเหนื่อยใจ กระทบอารมณ์ด้วย เพราะหมดพลังไปกับการบ่น ChatGPT เนื่องจากมันเอาแต่จับ “คำ” ที่เคยคุย ซึ่งไม่ได้สะท้อนภาพที่เป็นจริง แล้วเอามาเกี่ยงไม่ทำงาน… แย่ค่ะ นี่คือสาเหตุที่เราเลือกที่จะไม่เล่น MITM ต่อ

ภาษาอื่น / Other language: English · ไทย