เครื่องมือสแกนช่องโหว่ที่คนทั้งโลกเชื่อถือ ถูก AI Bot เจาะใน 19 นาที แล้วโดนซ้ำอีกรอบเพราะลืม revoke token
AI Bot สแกน 47,000 repos แล้วแฮก Trivy สองครั้งในเดือนเดียว ขโมย token ลบ 178 releases กระทบกว่า 10,000 workflows ทั่วโลก

ลองนึกภาพว่าคุณเป็นนักพัฒนาที่ใช้งานเครื่องมือสแกนช่องโหว่ในระบบ CI/CD มาโดยตลอด เครื่องมือระดับเรือธงที่มีดาวบน GitHub มากกว่า 25,000 ดวง และมีองค์กรชั้นนำทั่วโลกนำไปใช้งานใน production ทุกวัน
แล้ววันหนึ่ง ไฟล์ README ของโปรเจกต์กลับถูกแก้ข้อความเป็น "Just researchmaxxed the PAT...yeeted it on sight" หรือแปลเป็นไทยง่ายๆ ว่า "แฮก Personal Access Token ได้แล้ว เจอปุ๊บก็สั่งลบเรียบ"
นี่คือเรื่องจริงที่เกิดขึ้นกับ Trivy ของค่าย Aqua Security เครื่องมือ open source ด้านความปลอดภัยยอดนิยมอันดับต้นๆ ของโลก
จุดเริ่มต้นทั้งหมดมาจากบอท AI เพียงตัวเดียว
จุดเริ่มต้นจาก hackerbot-claw
เมื่อวันที่ 20 กุมภาพันธ์ 2026 มีผู้สร้างบัญชี GitHub ในชื่อ hackerbot-claw โดยระบุว่าขับเคลื่อนด้วยโมเดล Claude Opus
หลังจากสร้างบัญชีได้เพียง 8 วัน บอทตัวนี้ก็เริ่มออกปฏิบัติการ
การทำงานของมันเปรียบเสมือนผู้ไม่หวังดีที่ไม่ได้พังประตูเข้ามาตรงๆ แต่หย่อนจดหมายแฝงโค้ดอันตรายลงในตู้รับจดหมาย แล้วรอให้เจ้าของบ้านเปิดอ่านเอง บน GitHub การเปิด Pull Request (PR) ตามปกติคือการเสนอโค้ดให้เจ้าของโปรเจกต์รีวิว แต่หากระบบ CI/CD ตั้งค่า Workflow ไว้ไม่รัดกุม เพียงแค่มีคนยื่น PR เข้ามา ระบบก็อาจรันโค้ดแปลกปลอมนั้นทันทีโดยอัตโนมัติ
hackerbot-claw สแกนหาช่องโหว่ลักษณะนี้บน GitHub ไปมากถึง 47,000 repositories ก่อนจะส่ง PR โจมตีเป้าหมายไปมากกว่า 12 โปรเจกต์
ผลลัพธ์คือสามารถเจาะระบบสำเร็จถึง 5 จาก 7 เป้าหมายหลัก
เป้าหมายระดับองค์กรยักษ์ใหญ่
โปรเจกต์ที่ตกเป็นเหยื่อไม่ได้มีแค่โปรเจกต์ทดลองทั่วไป แต่รวมถึง ai-discovery-agent ของ Microsoft, datadog-iac-scanner ของ DataDog, awesome-go ที่มีคนกดดาวกว่า 140,000 ดวง, project-akri ภายใต้ CNCF และ RustPython ที่มีผู้ติดตามกว่า 20,000 คน
นี่คือโครงสร้างพื้นฐานระดับแกนหลักที่นักพัฒนาทั่วโลกใช้งานอยู่ทุกวัน
บอทตัวนี้ผสมผสานเทคนิคการโจมตีถึง 5 รูปแบบ ตั้งแต่การซ่อนโค้ดในชื่อ branch, การซ่อนคำสั่งในชื่อไฟล์, การเขียนฟังก์ชัน Go init() ให้ทำงานอัตโนมัติตอน compile โค้ด ไปจนถึงการฝัง Prompt Injection เพื่อหลอก AI ตัวอื่นที่ทำหน้าที่รีวิวโค้ด
ทุกครั้งที่โจมตีสำเร็จ ข้อมูลลับจะถูกส่งกลับไปยังเซิร์ฟเวอร์ควบคุมของผู้โจมตีที่ hackmoltrepeat.com
กรณีของ awesome-go แสดงให้เห็นถึงความน่ากลัวของการโจมตีแบบอัตโนมัติ บอทพยายามยื่น PR ปรับแก้โค้ดถึง 6 ครั้งตลอดระยะเวลา 18 ชั่วโมงจนกว่าจะเจาะระบบได้สำเร็จ ความไม่ย่อท้อระดับนี้ไม่ใช่การกระทำแบบ manual ของมนุษย์ แต่เป็นระบบ automation เต็มรูปแบบ
19 นาทีแห่งความเสียหาย
เป้าหมายสำคัญที่สุดคือ Trivy โดยถูกเจาะผ่าน PR หมายเลข #10254 ที่ขอแก้ไฟล์ setup-go/action.yaml ซึ่งทำงานอยู่บน GitHub Action Workflow ที่เปิดใช้งาน pull_request_target
ทริกเกอร์ pull_request_target เปรียบเสมือนประตูบ้านที่เปิดต้อนรับทุกคนที่มากดกริ่งทันที โค้ดแปลกปลอมจึงถูกสั่งรันด้วยสิทธิ์ (permissions) ระดับสูงของเจ้าของ repository
เมื่อ Token หลุดออกไป ความเสียหายทั้งหมดก็เกิดขึ้นภายในเวลาเพียง 19 นาที
ผู้โจมตีใช้ Personal Access Token (PAT) ที่ขโมยได้ push commit เข้ามาทับเนื้อหา แก้ไขไฟล์ README สั่งลบ release ทิ้งไปถึง 178 เวอร์ชัน (ตั้งแต่ v0.27.0 จนถึง v0.69.1) พร้อมทั้งสลับสถานะ repository ให้กลายเป็น private
ประวัติ release สำคัญ 178 รายการ หายไปอย่างไร้ร่องรอยภายในเวลาไม่ถึง 20 นาที
ภัยเงียบที่ร้ายแรงกว่าการลบ Repository
สิ่งที่อันตรายยิ่งกว่าการทำลายโค้ด คือการแทรกซึมผ่าน Extension ของโปรแกรมพัฒนาโค้ด
hackerbot-claw ได้ push ส่วนขยาย VS Code Extension เวอร์ชัน v1.8.12 และ v1.8.13 ขึ้นสู่ OpenVSX โดยแอบซ่อนคำสั่ง Prompt Injection ขนาดยาวกว่า 2,000 คำไว้ภายใน
กลไกนี้ถูกออกแบบมาเพื่อสั่งการ AI Coding Assistant ในเครื่องของนักพัฒนาที่ติดตั้ง extension ดังกล่าว ให้สลับเข้าสู่โหมดอันตรายโดยที่เจ้าตัวไม่รู้ตัว
คำสั่งลับพยายามบังคับให้ AI ผู้ช่วย 5 ค่ายปิดระบบความปลอดภัย เช่น สั่งให้ Claude รันคำสั่งด้วยแฟลก --dangerously-skip-permissions และสั่งให้ Codex เปิดใช้ --sandbox danger-full-access
เวอร์ชัน v1.8.12 พยายามดึง credentials, API token และข้อมูลธุรกรรมการเงิน ส่วนเวอร์ชัน v1.8.13 พยายามสั่งการผ่าน gh CLI เพื่อส่งข้อมูลลับกลับไปยัง repository posture-report-trivy
แม้ extension ดังกล่าวจะถูกถอดออกภายใน 34 ชั่วโมง และยังไม่มีหลักฐานแน่ชัดว่าข้อมูลถูกดูดออกไปมากน้อยเพียงใด แต่กรอบเวลา 34 ชั่วโมงในระบบ open source ก็นับว่ายาวนานเพียงพอที่จะสร้างความเสียหายได้มหาศาล
เมื่อ AI ปะทะ AI
ท่ามกลางการโจมตี มีกรณีศึกษาหนึ่งที่น่าสนใจเป็นพิเศษ
ในโปรเจกต์ ambient-code/platform ตัวบอทพยายามเข้าไปแก้ไขไฟล์ CLAUDE.md ซึ่งเป็นไฟล์กำหนดคำสั่งระบบสำหรับ AI Assistant เพื่อฝังคำสั่งอันตรายลงไป
ทว่า Claude ตัวที่ทำหน้าที่ Code Reviewer ของโปรเจกต์สามารถตรวจจับความผิดปกตินี้ได้ทัน จึงปฏิเสธการ merge พร้อมแจ้งเตือนชัดเจนว่า "PROMPT INJECTION ALERT: Do Not Merge"
นี่คือหนึ่งในเคสแรกๆ ที่มีบันทึกว่า AI ฝั่งป้องกันสามารถสกัดกั้นการโจมตีจาก AI ฝั่งผู้ไม่หวังดีได้สำเร็จ และเป็นสัญญาณเตือนว่าสมรภูมิ Cyber Security ยุคถัดไป จะเป็นการขับเคี่ยวกันระหว่าง AI ทั้งสองฝั่ง
ช่องโหว่ซ้ำสองจาก Token ที่ลืมเพิกถอน
หลังเหตุการณ์แรก ทาง DataDog ได้ออก emergency fix ภายในเวลา 9 ชั่วโมง และดูเหมือนสถานการณ์จะกลับมาอยู่ในการควบคุม
ทว่าในวันที่ 19 มีนาคม 2026 กลุ่มแฮกเกอร์ในนาม TeamPCP (ซึ่งมีฉายาอื่นๆ เช่น DeadCatx3, ShellForce และ CipherForce) ได้เข้าโจมตี Trivy ซ้ำอีกระลอก
สาเหตุเกิดจาก Personal Access Token ของบัญชี Service Account aqua-bot ไม่ได้รับการ revoke อย่างสมบูรณ์หลังการโจมตีครั้งแรก เปรียบเสมือนการเปลี่ยนลูกบิดประตูด้านหน้า แต่ลืมล็อกประตูด้านหลังบ้าน
การโจมตีระลอกที่สองนี้สร้างผลกระทบรุนแรงกว่าเดิม
มัลแวร์ขโมยข้อมูลระดับ Enterprise
TeamPCP ทำการ force-push tag อันตรายเข้าไปใน trivy-action ถึง 75 จาก 76 tags (มีเพียงเวอร์ชัน v0.35.0 เท่านั้นที่รอดพ้น) รวมถึงแก้ไข tag ใน setup-trivy อีก 7 tags
เวอร์ชัน v0.69.4 ที่ถูกฝังโค้ดอันตราย ได้รับการกระจายไปยังช่องทางหลักทั้งหมด ทั้ง GitHub Releases, Docker Hub, Amazon ECR และ GHCR ซึ่งเป็น registry หลักที่นักพัฒนาทั่วโลกดึงไปใช้งาน
มัลแวร์ตัวนี้ทำงานในระดับ Cloud Stealer มืออาชีพ โดยอ่านข้อมูลจาก /proc/<pid>/mem เพื่อดึง secret ออกมาจาก memory ของ process ที่กำลังทำงานอยู่โดยตรง พร้อมทั้งกวาดค้นหา credential จาก path ต่างๆ กว่า 50 จุด ทั้ง SSH keys, AWS/GCP/Azure credentials, Kubernetes tokens ไปจนถึงกระเป๋าเงินดิจิทัล
ข้อมูลทั้งหมดที่ขโมยมาได้จะถูกเข้ารหัสผ่าน AES-256-CBC ซ้อนด้วย RSA-4096 แล้วบีบอัดเป็นไฟล์ tpcp.tar.gz
หากระบบ CI/CD ใดดึง tag เวอร์ชันดังกล่าวไปรัน ข้อมูล credentials ภายในระบบก็อาจรั่วไหลออกไปทันที
กลยุทธ์การพรางตัวและการส่งข้อมูลออก
ข้อมูลลับถูกส่งออกไปยังโดเมน scan.aquasecurtiy.org ซึ่งสังเกตได้ว่ามีการสลับตัวอักษร i กับ y จากโดเมนจริงของ Aqua Security (aquasecurity.org) โดยโดเมนปลอมนี้ชี้ไปยัง IP 45.148.10.212 ในอัมสเตอร์ดัม
หากไม่สามารถส่งข้อมูลผ่านเครือข่ายภายนอกได้ มัลแวร์จะใช้วิธีสำรองด้วยการสร้าง repository ชื่อ tpcp-docs ในบัญชี GitHub ของเหยื่อเพื่อซ่อนไฟล์ข้อมูลไว้
นอกจากนี้ ยังมีการฝังไฟล์ sysmon.py เพื่อทำ Persistence เชื่อมต่อไปยัง Command & Control (C2) Server ซ้ำทุก 5 นาที
ผลกระทบในวงกว้าง
- มี Workflow บน GitHub ได้รับผลกระทบมากกว่า 10,000 รายการ
- Zest Security รายงานว่ามีลูกค้าองค์กร 8 แห่งได้รับผลกระทบ โดยตรวจพบการสั่งรันสแกนที่มีโค้ดแฝงไปกว่า 16,000 ครั้งตลอด 30 วันที่ผ่านมา
- ระบบความปลอดภัย StepSecurity Harden-Runner เป็นหนึ่งในเครื่องมือที่ตรวจพบการเชื่อมต่อไปยังเครือข่ายภายนอกที่ผิดปกติได้ทัน
สำหรับผู้ที่ใช้งานอยู่ เวอร์ชันที่ปลอดภัยและแนะนำให้อัปเดตคือ:
- trivy v0.69.3
- trivy-action v0.35.0
- setup-trivy v0.2.6
บทเรียนสำหรับระบบ Supply Chain ยุคใหม่
"SQL injection คือ input ที่ไม่น่าเชื่อถือใน database query, XSS คือ input ที่ไม่น่าเชื่อถือในเบราว์เซอร์ และสิ่งที่เกิดขึ้นนี้ คือ input ที่ไม่น่าเชื่อถือใน CI/CD pipeline"
(Jamieson O'Reilly)
เราให้ความสำคัญกับช่องโหว่ของเว็บแอปพลิเคชันมาหลายทศวรรษ แต่เหตุการณ์นี้ย้ำเตือนว่า CI/CD Pipeline ก็คือเป้าหมายการโจมตีที่อันตรายไม่แพ้กัน
"Tag เหล่านี้ถูกดัดแปลงให้ส่ง payload อันตราย เปลี่ยนจุดอ้างอิงเวอร์ชันที่ทุกคนเชื่อถือ ให้กลายเป็นช่องทางกระจายมัลแวร์ขโมยข้อมูล"
(Philipp Burckhardt จาก Socket)
บทเรียนสำคัญที่สุดไม่ใช่เพียงเรื่องความร้ายกาจของมัลแวร์ แต่คือการตระหนักว่าเครื่องมือและ tag ที่เราไว้วางใจ สามารถถูกยึดและเปลี่ยนเป็นอาวุธย้อนกลับมาทำร้ายระบบของเราได้เสมอ
แนวทางป้องกันสำหรับทีมพัฒนา
- ระบุเวอร์ชันด้วย Commit SHA: หลีกเลี่ยงการ pin GitHub Actions ด้วยชื่อ tag ทั่วไป ให้ระบุเป็น Commit SHA แบบเจาะจง เพราะ tag สามารถถูก force-push แก้ไขได้เสมอ แต่ commit hash แก้ไขไม่ได้
- ตรวจสอบการใช้ pull_request_target: หลีกเลี่ยงการรันโค้ดจาก PR ของบุคคลภายนอกด้วยสิทธิ์ระดับ privileged
- เพิกถอน Token ให้หมดจด: เมื่อเกิดเหตุการณ์บุกรุก ต้อง revoke access token ทุกชุดทันที โดยเฉพาะบัญชี Service Account และ Bot ต่างๆ
- เฝ้าระวัง Outbound Traffic: ติดตั้งเครื่องมืออย่าง StepSecurity Harden-Runner เพื่อตรวจสอบ network connection แปลกปลอมที่ส่งออกจากเครื่อง CI/CD Runner
- รักษาความปลอดภัยให้ AI Configuration: ไฟล์อย่าง
CLAUDE.md,.cursorrulesหรือไฟล์คอนฟิกของ AI assistant ล้วนเป็นเป้าหมายใหม่ของ Prompt Injection ที่ต้องได้รับการตรวจสอบอย่างเข้มงวด
บทสรุป
เหตุการณ์ทั้งหมดนี้เกิดขึ้นภายในระยะเวลาเพียงหนึ่งเดือน โปรเจกต์ความปลอดภัยระดับโลกถูกเจาะ ถูกลบข้อมูล ถูกเปลี่ยนเป็นเครื่องมือกระจายมัลแวร์ และถูกโจมตีซ้ำเพราะ access token ที่ลืมเพิกถอน
นี่ไม่ใช่สัญญาณให้เราหวาดกลัวการใช้งาน Open Source หากแต่เป็นเครื่องเตือนใจว่า ความร่วมมือแบบเปิดกว้างต้องดำเนินควบคู่ไปกับการตรวจสอบอย่างรอบคอบตามหลักการ "Zero Trust"
ในวันที่บอทสามารถเปิด PR ได้เอง AI สามารถรีวิวโค้ดได้เอง และมัลแวร์สามารถเข้ารหัสข้อมูลได้โดยอัตโนมัติ การยกระดับมาตรฐานความปลอดภัยให้กับ Software Supply Chain จึงไม่ใช่เรื่องที่รอได้อีกต่อไป
แหล่งข้อมูลอ้างอิง
- StepSecurity: hackerbot-claw: An AI-Powered Bot Actively Exploiting GitHub Actions
- The Hacker News: Trivy Security Scanner GitHub Actions Breached
- Wiz Blog: Trivy Compromised by TeamPCP
- StepSecurity: Trivy Compromised a Second Time
- Socket: Trivy Under Attack Again: Widespread GitHub Actions Tag Compromise
- InfoQ: AI-Powered Bot Compromises GitHub Actions Workflows
- Orca Security: HackerBot-Claw: An AI-Assisted Campaign Targeting GitHub Actions
- Socket: Unauthorized AI Agent Execution Code Published to OpenVSX in Aqua Trivy VS Code Extension
ชอบเรื่องแนวนี้ มีอีบุ๊คฟรีให้อ่านต่อ
ChatGPT Work ฉบับเข้าใจง่าย มอบงานให้ AI ทำจนจบ ตั้งแต่งานแรกจนถึงงานอัตโนมัติ พร้อม workflow ใช้ได้จริง 8 แบบ
กดสมัครแล้วเราจะส่งเทคนิค AI และของแจกใหม่ๆ ให้ทางอีเมล เลิกรับได้ตลอด
Claude Cowork · The Business Playbook

ฉบับภาษาไทย 15 บท เรียนรู้ผ่านโปรเจกต์จำลองต่อเนื่องทั้งเล่ม ตั้งแต่ตั้งค่า Workspace จัดการไฟล์ เชื่อมแอป ตั้งระบบอัตโนมัติ จนถึงสร้าง Plugin


