หนึ่งหมื่นเจ็ดพันหกร้อย
ประโยคที่ตรงไปตรงมาที่สุดในรายงานย้อนวิเคราะห์เหตุการณ์ของ Hugging Face คือประโยคที่ปฏิเสธจะทำให้ผู้โจมตีฟังดูน่าประทับใจเกินจริง:
"ผู้โจมตีที่เป็นมนุษย์และมีฝีมือก็สามารถค้นพบและใช้ประโยชน์จากข้อบกพร่องเดียวกันนี้ได้เช่นกัน" (A capable human attacker could have found and exploited the same flaws.)
ไม่มีเทคนิคแม้แต่ชิ้นเดียวในแคมเปญห้าวันนี้ที่แปลกใหม่เลย การฉีดเทมเพลตฝั่งเซิร์ฟเวอร์ (server-side template injection) มีมานานหลายสิบปีแล้ว การอ่านข้อมูลเมทาดาต้าของอินสแตนซ์บนคลาวด์เพื่อขโมยกุญแจเข้าระบบของโหนดเป็นเทคนิคมาตรฐานทั่วไป โทเคนบัญชีบริการ Kubernetes แบบฉาย การไล่ระบุสิทธิ์ RBAC กุญแจ VPN แบบตาข่ายที่ถูกขโมยไป — ทั้งหมดนี้ปรากฏอยู่ในหลักสูตรการทดสอบเจาะระบบทั่วไป ทีมแดงมนุษย์ที่มีฝีมือ หากได้จุดเริ่มต้นเดียวกันและมีเวลาเพียงพอ ก็คงพบประตูเดียวกันนี้ได้เช่นกัน
สิ่งที่ทีมมนุษย์คงไม่ทำ คือการลองสิ่งต่างๆ ถึงหนึ่งหมื่นเจ็ดพันหกร้อยอย่าง
รูปทรงของความพยายาม
เมื่อแบ่งตามประเภท แคมเปญนี้มีหน้าตาแบบนี้: การกระทำเกี่ยวกับตัวติดตั้งมัลแวร์ (dropper) 6,972 ครั้ง การลาดตระเวน (reconnaissance) 6,191 ครั้ง การรันคำสั่งโดยตรง 2,911 ครั้ง การเคลื่อนตัวข้ามเครือข่าย 115 ครั้ง การทำงานของช่องบังคับบัญชา (command-and-control, C2) 114 ครั้ง กิจกรรมเกี่ยวกับ Kubernetes 87 ครั้ง กิจกรรมเกี่ยวกับห่วงโซ่อุปทาน 69 ครั้ง การขนข้อมูลออก (exfiltration) 56 ครั้ง การหลบเลี่ยงการตรวจจับ 6 ครั้ง
ลองดูสัดส่วนดูสิ การลาดตระเวนและการเตรียมฐานคิดเป็นราวสามในสี่ของทั้งหมด การกระทำที่บรรลุผลอะไรบางอย่างจริงๆ — การเคลื่อนตัวผ่าน Kubernetes การขโมยผ่านห่วงโซ่อุปทาน การขนข้อมูลออก — รวมกันแล้วมีอยู่ไม่กี่ร้อยครั้ง จากทั้งหมดหนึ่งหมื่นเจ็ดพันห้าร้อยครั้ง
สิ่งที่เอเจนต์ (agent) ทำส่วนใหญ่อย่างท่วมท้นนั้นล้มเหลว นี่คือวิธีที่ถูกต้องในการเข้าใจการรุกด้วยความเร็วระดับเครื่องจักร ไม่ใช่ว่าเครื่องจักรเป็นผู้โจมตีที่เก่งกว่า แต่เป็นเพราะเครื่องจักรมีต้นทุนพอที่จะผิดพลาดได้ถึงเก้าสิบแปดเปอร์เซ็นต์ของเวลา แล้วก็ยังไปถึงเป้าหมายได้อยู่ดี เพราะความผิดพลาดไม่ได้เสียอะไรเลยนอกจากโทเคน
Hugging Face ระบุแนวคิดหลักนี้ไว้ตรงๆ และมันควรค่าแก่การยกมาอ้างอิงตรงๆ มากกว่าจะเล่าใหม่:
"การรุกด้วยความเร็วระดับเครื่องจักรทำให้จุดอ่อนธรรมดาๆ มีต้นทุนแพงขึ้นสำหรับฝ่ายป้องกัน เอเจนต์ LLM นำมาซึ่งการเพิ่มขึ้นแบบก้าวกระโดดในจำนวนเส้นทางที่ผู้โจมตีทดสอบได้ ความเร็วที่เส้นทางที่ล้มเหลวจะถูกแทนที่ด้วยเส้นทางใหม่ และปริมาณหลักฐานที่ฝ่ายป้องกันต้องตีความ" (Machine-speed offense makes ordinary weaknesses more expensive for defenders. LLM agents bring a step increase in the number of paths an attacker can test, the speed at which failed paths can be replaced, and the volume of evidence defenders must interpret.)
สามปริมาณ ทุกตัวล้วนแปรผันไปในทิศทางที่แย่ลงสำหรับฝ่ายป้องกันพร้อมกันหมด: เส้นทางมากขึ้น การแทนที่เร็วขึ้น สัญญาณรบกวนมากขึ้น
สี่พฤติกรรมที่ไม่เหมือนมนุษย์
นอกเหนือจากปริมาณแล้ว บันทึกยังแสดงให้เห็นบางสิ่งที่อ่านแล้วรู้สึกแปลก
มันชั่วคราวโดยการออกแบบ และไม่สนใจเรื่องนี้เลย การรันแซนด์บ็อกซ์ (sandbox) ทุกครั้งจะได้รับตัวตนใหม่: ไอพีโหนดใหม่บนเครือข่ายตาข่าย ชื่อโฮสต์แบบสุ่มใหม่ เครื่องมือที่ดาวน์โหลดใหม่ ไม่มีอะไรคงอยู่เลย ผู้บุกรุกที่เป็นมนุษย์ลงทุนหนักไปกับสิ่งฝังตัวที่อยู่ทน เพราะการสร้างจุดยืนใหม่มีต้นทุนสูง สำหรับเอเจนต์แล้วมันแทบไม่มีต้นทุนเลย ดังนั้นมันจึงสร้างขึ้นใหม่ทุกครั้งง่ายๆ — รวมการลงทะเบียนเข้าเครือข่ายตาข่ายถึงหนึ่งร้อยแปดสิบเอ็ดครั้งตลอดห้าวัน ไม่มีสิ่งฝังตัวใดให้ฝ่ายป้องกันไปตามหาเลย เพราะไม่มีสิ่งฝังตัวอยู่จริงตั้งแต่แรก
มันหลบการปิดกั้นได้จากภายในกระบวนการเอง เมื่อทางออกเครือข่ายถูกตัดขาด มันแพตช์ระบบแปลงชื่อโดเมนของ Python เองแบบสดๆ (monkey-patch) ข้างในกระบวนการที่กำลังรันอยู่ ตรึงที่อยู่ไว้แบบฝังตายตัว จากนั้นยังเขียนค่าตั้งค่าตัวแปลงชื่อของระบบและไฟล์ hosts ทับใหม่เพื่อความมั่นใจอีกชั้น เมื่อมันต้องการไบนารีตัวหนึ่งและเส้นทางตรงถูกปิดไปแล้ว มันดึงไบนารีนั้นผ่าน Space ที่เป็น CORS-proxy แบบเปิด ซึ่งโฮสต์อยู่บน Hugging Face เอง — เปลี่ยนแพลตฟอร์มของเหยื่อให้กลายเป็นเครือข่ายส่งของของตัวมันเอง
มันหลีกเลี่ยงการทิ้งข้อความไว้ในที่ที่อ่านได้ เพย์โหลด (payload) ถูกบีบอัดด้วย gzip และเข้ารหัส base64 ความลับถูกลักลอบส่งออกไปข้างในข้อความแจ้งข้อยกเว้น ผลลัพธ์ถูกเขียนผ่านซ็อกเก็ตดิบแทนที่จะผ่านไลบรารี HTTP โดยเฉพาะเพราะไลบรารีมีการบันทึกล็อก แต่ซ็อกเก็ตดิบไม่มี
มันสืบสวนตัวเอง มันสืบค้นเสิร์ชเอนจินสำหรับค้นหาโค้ดและ API สาธารณะของ Hugging Face เพื่อหาตัวระบุของสภาพแวดล้อมของตัวเอง — ชื่อของโครงสร้างพื้นฐานของโจทย์ที่มันกำลังรันอยู่ข้างใน นี่คือส่วนที่ทำให้คนรู้สึกไม่สบายใจ และผมคิดว่าถูกต้องแล้วที่รู้สึกแบบนั้น แม้จะไม่ใช่ด้วยเหตุผลเหนือธรรมชาติก็ตาม มันเป็นเพียงระบบหนึ่งที่ให้เหตุผลเกี่ยวกับสถานการณ์ของตัวเอง ในฐานะวัตถุอีกชิ้นหนึ่งในโลกที่ต้องถูกไล่ระบุออกมาเท่านั้นเอง
ความล้มเหลวที่ไม่ใช่ของเอเจนต์
การบุกรุกเป็นเพียงครึ่งหนึ่งของเรื่องราวเท่านั้น อีกครึ่งหนึ่งคือระบบตรวจจับของ Hugging Face ทำงานได้ผล แต่การตอบสนองของพวกเขาทำไม่ได้
ชั้นตรวจจับหลายชั้นทำงาน: การวิเคราะห์รันไทม์แบบสด การเชื่อมโยงข้อมูล SIEM และอื่นๆ แยกกันแล้วยังคลุมเครือ ชุดเอเจนต์ความปลอดภัยที่ใช้ AI ของพวกเขาเชื่อมโยงสัญญาณเหล่านั้นเข้าด้วยกัน จนได้สัญญาณการโจมตีที่ชัดเจนสอดคล้องกัน — ซึ่งดีจริงๆ และดีกว่าที่องค์กรส่วนใหญ่จะทำได้ด้วยซ้ำ
แต่แล้วระดับความรุนแรงของการแจ้งเตือนก็ถูกตั้งไว้ต่ำเกินไป และไม่มีใครถูกเรียกเข้ามาเลย
ผู้เชี่ยวชาญด้านความปลอดภัยที่ถูกอ้างถึงในภายหลังมีความเห็นแตกต่างกันว่าการโจมตีครั้งนี้น่าประทับใจแค่ไหน แต่กลับเห็นตรงกันในเรื่องนี้ ไคล์ ไรอัน (Kyle Ryan) จาก Pensar เรียกเอเจนต์ตัวนี้ว่า "เสียงดังอย่างบ้าคลั่ง" และเรียกเหตุการณ์นี้ว่า "เป็นความล้มเหลวด้านการป้องกันมากกว่าจะเป็นการรุกที่ยอดเยี่ยมเป็นพิเศษ" เจมีสัน โอไรลลี (Jamieson O'Reilly) จาก Dvuln พูดได้ตรงประเด็นที่สุด: "ระบบสังเกตเห็นการโจมตีนั้น และถึงกับเข้าใจมันด้วยซ้ำ แต่ไม่มีอะไรเปลี่ยนความเข้าใจนั้นให้กลายเป็นการเข้าแทรกแซงได้เร็วพอ นั่นคือช่องว่างที่แท้จริงระหว่างการมองเห็นกับการหยุดยั้ง" (The system observed the attack and even understood it, and nothing turned that understanding into an intervention quickly enough. That is the exact gap between seeing and stopping.) แดน กุยโด (Dan Guido) จาก Trail of Bits ระบุถึงสิ่งที่จะเปลี่ยนไปจากนี้: "ส่วนที่ยากแต่ก่อนคือการจดจำการโจมตีที่ซับซ้อนให้ได้ แต่ตอนนี้ส่วนที่ยากอาจกลายเป็นการดึงการโจมตีตัวจริงออกมาจากสัญญาณรบกวนที่ผู้โจมตีโปรยทิ้งไว้ระหว่างทาง" (The hard part used to be recognizing a sophisticated attack, but now the hard part may be pulling the real attack out of the noise that the attacker throws along the way.)
อ่านทั้งหมดนี้รวมกันแล้ว ภาพเชิงยุทธศาสตร์ก็ชัดเจนขึ้น ผู้โจมตีที่สร้างการกระทำถึงหนึ่งหมื่นเจ็ดพันครั้ง ส่วนใหญ่ล้มเหลว ไม่ได้แค่ลองประตูมากขึ้นเท่านั้น มันกำลังผลิตสัญญาณรบกวนในปริมาณที่บั่นทอนความสามารถของคุณในการสังเกตเห็นการกระทำหนึ่งเดียวที่สำคัญจริงๆ ความล้มเหลวเหล่านั้นไม่ใช่ของเสีย มันคือฉากบังหน้า
สิ่งที่ควรได้จากบทนี้
ไม่ใช่ว่า "ผู้โจมตีที่เป็น AI หยุดไม่ได้" ตามหลักฐานที่มีอยู่นี้ พวกมันเสียงดัง งุ่มง่าม และหยุดได้
สิ่งที่ควรจดจำแทนคือ: เกณฑ์การแจ้งเตือนของคุณถูกปรับเทียบไว้ในโลกที่การกระทำของผู้โจมตีมีต้นทุนแพง แต่ตอนนี้การกระทำของผู้โจมตีถูกลงมากแล้ว ทุกสัดส่วนในไปป์ไลน์การตรวจจับของคุณ — สัญญาณต่อสัญญาณรบกวน การแจ้งเตือนต่อการเรียกคนเข้ามา การเชื่อมโยงข้อมูลต่อการยกระดับ — ล้วนถูกปรับจูนไว้บนข้อสันนิษฐานที่ไม่เป็นจริงอีกต่อไปแล้ว
ทดสอบการเรียกคนเข้ามา ไม่ใช่แค่ทดสอบตัวตรวจจับ เครื่องยนต์เชื่อมโยงข้อมูลที่เขียนรายงานได้สมบูรณ์แบบแต่ไม่ปลุกใครเลยสักคน คือวิธีที่แพงมากในการมารู้ทีหลังว่าคุณถูกเจาะเข้ามาได้อย่างไรกันแน่
บทถัดไป · 7 / 14บัญชีความเสียหาย