Claude Code บล็อกคำสั่ง Git ที่เป็นอันตรายแล้ว

เมื่อเร็วๆ นี้ Claude Code ได้เพิ่มฟีเจอร์ความปลอดภัยใหม่ โดยตอนนี้จะบล็อกคำสั่ง git ที่เป็นอันตรายในโหมดอัตโนมัติ (auto mode)

เมื่อไม่กี่เดือนก่อน AI agent เกือบจะลบงานของผมทิ้ง ผมสั่งให้มันดูโค้ดเก่า แต่มันกลับรัน git reset --hard ซึ่งคำสั่งนี้ได้ล้างการเปลี่ยนแปลงทั้งหมดที่ยังไม่ได้ commit ของผมทิ้งไป ทำให้ผมต้องเสียเวลาทำงานไปทั้งวัน

ตั้งแต่นั้นมา ผมจึงเพิ่มกฎการปฏิเสธ (deny rules) ลงในตั้งค่าด้วยตัวเอง เพราะผมต้องการหยุดคำสั่งอย่าง git reset หรือ git clean ไม่ให้ทำงานโดยไม่ได้รับอนุญาตจากผมโดยตรง

ตอนนี้ Claude Code ทำสิ่งนี้ให้โดยอัตโนมัติแล้ว โดยใช้ safety classifier เพื่อคาดเดาเจตนาของคุณ หากมันคิดว่าคุณไม่ได้สั่งให้ทิ้งงาน มันจะหยุดคำสั่งนั้นทันที

ในตอนแรก ผมคิดที่จะลบกฎที่ผมตั้งไว้เองทิ้ง เพราะจะทำไปทำไมในเมื่อเครื่องมือจัดการให้แล้ว? แต่แล้วผมก็ตระหนักได้ว่าทำไมผมถึงต้องเก็บพวกมันไว้

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

กฎที่ผมตั้งเองนั้นแตกต่างออกไป เพราะมันเป็นแบบ deterministic กฎจะไม่คาดเดา แต่มันจะตรวจสอบว่าคำสั่งตรงกับกฎหรือไม่เท่านั้น มันคือเส้นแบ่งที่ชัดเจนซึ่งจะไม่เปลี่ยนแปลงตามเจตนา

ตอนนี้ผมใช้การป้องกันสามชั้น:

• Classifier สำหรับเจตนา: ทำหน้าที่ทำความเข้าใจเป้าหมายของคุณ • กฎ deny rules ของผมเพื่อความแน่นอน: ทำหน้าที่เป็นปราการด่านสุดท้ายที่ชัดเจนสำหรับคำสั่งเฉพาะเจาะจง • Sandbox สำหรับการจำกัดขอบเขต: ช่วยให้ agent ทำงานอยู่แค่ภายในโฟลเดอร์โปรเจกต์ของคุณเท่านั้น

ค่าเริ่มต้นใหม่นี้ยอดเยี่ยมมาก แต่มันไม่ได้ครอบคลุมทุกอย่าง มันไม่ได้หยุด rm -rf ไม่ได้หยุดการล้างฐานข้อมูล และไม่ได้หยุดการ force-push ไปยัง main branch ของคุณ

อย่าลบกฎความปลอดภัยที่คุณตั้งขึ้นเองเพียงเพราะเครื่องมือมีการเพิ่มค่าเริ่มต้นใหม่มาให้ จงใช้ค่าเริ่มต้นใหม่นี้เป็นเหตุผลในการตรวจสอบการตั้งค่าของคุณ เก็บกฎของคุณไว้เป็นแผนสำรอง และใช้เวลาที่เหลือในการอุดช่องโหว่ที่เครื่องมืออาจมองข้ามไป

Defense in depth คือการวางชั้นการป้องกันซ้อนกัน ระบบที่ปลอดภัยที่สุดคือระบบที่มีการตรวจสอบที่แตกต่างกันถึงสามขั้นตอนเพื่อปฏิเสธความผิดพลาด แทนที่จะมีเพียงขั้นตอนเดียว

Source: https://code.claude.com/docs/en/changelog

Optional learning community: https://t.me/GyaanSetuAi