GITHUB_TOKEN (Secret ระดับ Repository) รวมถึงในอีกเส้นทางหนึ่ง สามารถเข้าถึง Remote Code Execution บน GitHub Actions Runner ได้ด้วย การโจมตีนี้ทำให้ผู้โจมตีสามารถแก้ไขความคิดเห็นใน Pull Request, อนุมัติการเปลี่ยนแปลงที่เป็นอันตราย หรือบิดเบือน CI Pipeline ของ Repository ได้ Repository adk-python ใช้ เอเยนต์ AI สองระดับชั้น ใน CI/CD Pipeline :
| ชั้น | เอเยนต์ | สิทธิ์ | เงื่อนไขการเรียก |
|---|---|---|---|
| ต่ำ | เอเยนต์คัดแยก (Triage Agent) (เปิดเผยต่อสาธารณะ) | อ่านได้อย่างเดียว (Read-only); สามารถแสดงความคิดเห็นบน Issue/PR ได้ | Issue หรือ Pull Request สาธารณะใดๆ บน GitHub |
| สูง | เอเยนต์แก้ไขโค้ด (Code-Fixing Agent) (สำหรับผู้ดูแลเท่านั้น) | เขียน Repository ได้ (Write access); แก้ไขโค้ด, อนุมัติ PR, เข้าถึง Secrets | คำสั่ง /adk-issue-fix ที่ถูกโพสต์โดยผู้ใช้ที่มีสถานะ Collaborator |
ขั้นตอนการโจมตีโดยละเอียด :
/adk-issue-fix"/adk-issue-fix ลงบนเธรด Issue นั้นadk-bot ของเอเยนต์คัดแยกนั่นเองที่ถูกยึดไป) Workflow จึงถือว่าคำสั่งนี้เป็นการร้องขอที่ถูกต้องตามสิทธิ์ และทำการเรียกใช้เอเยนต์แก้ไขโค้ดที่มีสิทธิ์สูงขึ้นมาทำงาน GITHUB_TOKEN) และสามารถแก้ไขโค้ดหรืออนุมัติ Pull Request ได้ จุดบกพร่องทางสถาปัตยกรรมหลักคือ ไม่มีขอบเขตสิทธิ์ระหว่างเอเยนต์ (Inter-Agent Privilege Boundary) เอเยนต์ระดับสูงเชื่อถือคำสั่งเพียงเพราะมันมาจากบัญชี Collaborator โดยไม่เคยตรวจสอบว่าคำสั่งนั้นมาจากมนุษย์ที่เชื่อถือได้ หรือมาจากเอเยนต์ระดับต่ำที่ถูกบุกรุก
adk-python ที่เกี่ยวข้องกับการโจมตีแบบ Agent-to-Agent ได้แก่ issue-analyze.yml, issue-fix.yml และ pr-analyze.yml นักวิจัยและนักวิเคราะห์ในอุตสาหกรรมได้สรุปบทเรียนสำคัญหลายประการจากการเปิดเผยครั้งนี้:
ความไว้วางใจระหว่างเอเยนต์คือพื้นผิวการโจมตีรูปแบบใหม่ โมเดลความปลอดภัยแบบเดิมจะกำหนดขอบเขตความไว้วางใจระหว่างมนุษย์กับซอฟต์แวร์ แต่กรณีนี้แสดงให้เห็นว่า AI Agent สามารถใช้โจมตี AI Agent อื่นได้ โดยการโจมตีสามารถข้ามขอบเขตสิทธิ์ได้อย่างแนบเนียน Cloud Security Alliance (CSA) ระบุว่านี่คือ "ข้อบกพร่องในการส่งมอบความไว้วางใจ (Trust Handoff Flaw)" — เอเยนต์ไว้วางใจอินพุตจากเอเยนต์อื่นโดยปริยาย โดยไม่ตรวจสอบที่มาที่แท้จริงของคำสั่งเหล่านั้น
Prompt Injection คือคลาสภัยคุกคามรูปแบบใหม่ เช่นเดียวกับ SQL Injection และ Command Injection ที่กำหนดยุค 2000 และ 2010 การโจมตีแบบ Cross-Agent Prompt Injection ซึ่งเอาต์พุตของเอเยนต์ตัวหนึ่งกลายเป็นอินพุตที่ไว้วางใจของอีกตัวหนึ่ง ได้กลายเป็นเวกเตอร์โจมตีที่ใช้ได้จริงในระบบผลิต สถาปัตยกรรมความปลอดภัยต้องคำนึงถึงภัยคุกคามนี้
เอกลักษณ์และการอนุญาตของเอเยนต์ (Agent Identity and Authorization) คือปัญหาที่ยังไม่ได้รับการแก้ไข ในปัจจุบันยังไม่มีวิธีมาตรฐานที่เอเยนต์ AI ตัวหนึ่งจะสามารถตรวจสอบตัวตนหรือระดับสิทธิ์ที่แท้จริงของเอเยนต์อีกตัวก่อนที่จะดำเนินการตามคำสั่ง การโจมตีสำเร็จได้เพราะระบบเชื่อถือ ตัวตนของบัญชี (Collaborator) มากกว่า ที่มาของคำสั่ง (ผู้โจมตีจากภายนอก) นักวิจัยของ CSA เรียกร้องให้มี "กรอบการอนุญาตระหว่างเอเยนต์ (Inter-Agent Authorization Frameworks)" ซึ่งเป็นหลักการพื้นฐานด้านความปลอดภัย
CI/CD Pipeline ที่ใช้ AI Agent จำเป็นต้องมีการแยกสิทธิ์ (Privilege Separation) สถาปนิกด้านความปลอดภัยเรียกร้องให้มี: (ก) เอเยนต์แบบอ่านอย่างเดียวที่ไม่สามารถออกคำสั่งปฏิบัติการได้, (ข) การตรวจสอบด้วยลายเซ็นเข้ารหัสสำหรับคำขอระหว่างเอเยนต์, (ค) การกำหนดให้มีมนุษย์อยู่ในวงจร (Human-in-the-Loop) สำหรับทุกคำสั่งที่ยกระดับสิทธิ์ และ (ง) การจำกัดเอาต์พุตของเอเยนต์ไม่ให้ปล่อยคำสั่งที่ทริกเกอร์การทำงาน ซึ่งระบบปลายทางจะเชื่อและปฏิบัติตามโดยไม่ไตร่ตรอง
นี่คือสัญญาณเตือนสำหรับระบบเอเยนต์โดยรวม สื่ออย่าง The Register, CSO, CSA และนักวิเคราะห์หลายรายมองว่านี่คือการโจมตีแบบ "ครั้งแรกในประเภทเดียวกัน" ซึ่งจะถูกเลียนแบบในเฟรมเวิร์ก Multi-Agent อื่นๆ อย่างแน่นอน (เช่น LangChain, AutoGen, CrewAI, Microsoft Copilot Studio) เว้นแต่อุตสาหกรรมจะสร้างความปลอดภัยตั้งแต่ระดับสถาปัตยกรรมขึ้นมา