แนวทางใหม่บังคับให้เอเจนต์ทดสอบเจาะระบบ (pentest agent) ที่ขับเคลื่อนด้วย LLM ต้องพิสูจน์การบุกรุกแทนที่จะเป็นเพียงแค่การกล่าวอ้าง โดยใช้ challenge-response nonces เพื่อกำจัดผลบวกปลอม (false positives) เทคนิคนี้ซึ่งสาธิตใน HALO framework เปลี่ยนจากคำว่า “ดูเหมือนว่าเราจะได้ shell แล้ว” เป็น “เราได้ shell จริงๆ แล้ว”

ทำไมการบุกรุกที่เป็นผลบวกปลอมถึงสำคัญ

เครื่องมือโจมตีอัตโนมัติ (automated exploitation engines) ที่สร้างขึ้นบนโมเดลภาษาขนาดใหญ่สามารถสร้างผลลัพธ์การเจาะพอร์ตที่ "สำเร็จ" ได้หลายสิบรายการในการรันเพียงครั้งเดียว บริการจำนวนมากมีการแสดงข้อความ (echo) เช่น “uid=0” ใน banner และเป้าหมายที่ถูกสร้างขึ้นมาเป็นพิเศษสามารถเลียนแบบเอาต์พุตเหล่านั้นได้โดยไม่ต้องรันโค้ดของผู้โจมตีเลย เมื่อเอเจนต์เชื่อถือข้อความเหล่านั้น การตัดสินใจในขั้นตอนต่อๆ ไป ไม่ว่าจะเป็นการ pivot, การดึงข้อมูลออก (exfiltrate data) หรือการเคลื่อนที่ในแนวราบ (move laterally) ก็จะตั้งอยู่บนคำลวง ทีมรักษาความปลอดภัยต้องเสียเวลาหลายชั่วโมงในการไล่ตามจุดยึดครองที่ไม่มีอยู่จริง (phantom footholds) และผู้ตอบสนองต่ออุบัติการณ์ (incident responders) อาจจัดลำดับความสำคัญของภัยคุกคามที่แท้จริงผิดพลาดได้

เปลี่ยนการกล่าวอ้างให้เป็นการพิสูจน์

วิธีแก้ไขนี้หยิบยืมเทคนิคการยืนยันตัวตนแบบคลาสสิกมาใช้ ก่อนที่จะเริ่มการโจมตี (exploit) ระบบของผู้โจมตีจะสร้างโทเคนที่ไม่ซ้ำกัน หรือ nonce แล้วฝังมันลงใน payload การโจมตีจะต้องส่งโทเคนตัวเดิมกลับมาเพื่อให้ตัวควบคุม (controller) ยอมรับผลลัพธ์นั้นว่าเป็นการบุกรุกที่เกิดขึ้นจริง Banner ปลอมไม่สามารถเดา nonce ได้ มันต้องรันโค้ดของผู้โจมตีเพื่อฝังโทเคนลงในคำตอบ หากข้อมูลที่ส่งกลับมาไม่มี nonce ที่ตรงกัน ความพยายามนั้นจะถูกคัดออกในฐานะผลบวกปลอม

การเปลี่ยนแปลงนี้เปลี่ยนโมเดลการตรวจสอบจาก “เอาต์พุตดูเหมือนจะถูกต้อง” เป็น “เอาต์พุตพิสูจน์ได้ว่ามีการรันโค้ดจริง” ซึ่งช่วยกำจัดอคติเชิงบวก (optimism bias) ที่มักเป็นปัญหาในเครื่องมือโจมตีอัตโนมัติ

การสร้างลำดับการส่งต่อที่เชื่อถือได้ (delivery ladder)

การส่ง payload ไปยังเป้าหมายยังคงต้องใช้สายโซ่การส่งต่อ (delivery chain) ที่มั่นคง HALO แบ่งเส้นทางทั่วไปออกเป็นสามรูปแบบ:

  • Reverse shells – โฮสต์ที่ถูกเจาะระบบจะเริ่มการเชื่อมต่อกลับไปยัง listener ที่ผู้โจมตีควบคุมอยู่ มีประโยชน์เมื่อทราฟฟิกขาเข้า (inbound traffic) ถูกบล็อก
  • Bind shells – ผู้โจมตีเชื่อมต่อโดยตรงไปยังบริการที่กำลังรอรับการเชื่อมต่อ (listening service) บนเป้าหมาย ใช้ได้ผลเมื่อตัวกรองขาออก (outbound filters) ไม่เข้มงวด
  • Blind callbacks – สัญญาณทางเดียว (เช่น DNS request) ที่ยืนยันการรันโค้ดในสภาพแวดล้อมที่มีการจำกัดอย่างเข้มงวด ซึ่งไม่สามารถเปิดช่องทางการสื่อสารโดยตรงได้

แต่ละขั้นตอนในลำดับนี้ต้องรักษา nonce ไว้ มิฉะนั้นขั้นตอนการพิสูจน์จะล้มเหลวในขั้นตอนถัดไป

การทำให้แน่ใจว่าการโจมตีทำงานได้ด้วยตัวเอง (self-contained)

อีกแหล่งหนึ่งของความมั่นใจที่ผิดพลาดคือการพึ่งพาไลบรารีภายนอกที่อาจไม่มีอยู่ในเครื่องเป้าหมาย HALO จะรวมทุกส่วนประกอบที่จำเป็นเข้าเป็นไฟล์เดียว (bundle) ก่อนที่จะส่งออกไป จากนั้น bundle จะถูกทดสอบใน sandbox ที่จงใจทำให้ไม่มี dependencies เดิมอยู่ หากการโจมตียังคงทำงานได้ แสดงว่าไฟล์นั้นเป็นแบบ self-contained อย่างแท้จริง และสามารถเชื่อถือได้ในระบบที่มีการรักษาความปลอดภัยอย่างเข้มงวด (locked-down system)

การล้างร่องรอยการพัฒนา

ในขณะที่เตรียมการเผยแพร่สู่สาธารณะ ผู้เขียนได้พบหมายเลข IP จริงที่ยังคงค้างอยู่ในประวัติของ Git การทำความสะอาด working tree ไม่ได้ลบระเบียนเหล่านั้น เนื่องจาก Git จะเก็บทุก commit ไว้ ผู้เขียนจึงได้เขียน repository ใหม่ให้เหลือเพียง commit เดียวที่สะอาด และแทนที่ที่อยู่ (address) ที่รั่วไหลด้วยช่วงหมายเลขสำหรับใช้ในเอกสารเท่านั้นตามที่กำหนดโดย RFC 5737 (ตัวอย่างเช่น 192.0.2.0/24) เพื่อป้องกันการเปิดเผยโครงสร้างพื้นฐานที่ใช้งานจริง (production infrastructure) โดยไม่ตั้งใจเมื่อมีการแบ่งปันเครื่องมือนี้

กฎที่นำไปใช้ได้จริงสำหรับเครื่องมือด้านความปลอดภัย

  • ใช้ช่วง IP สำหรับเอกสารเท่านั้นในทุกๆ test fixture
  • ลบความลับ (secrets) และไฟล์ที่เกี่ยวข้องกับขอบเขตงาน (scope files) ออกจากการ commit ครั้งแรก
  • ใช้ challenge-response nonces เพื่อตรวจสอบการบุกรุกที่กล่าวอ้าง
  • ตรวจสอบไฟล์ที่จะถูกส่งออกไปจริงๆ ไม่ใช่แค่สคริปต์ที่เกี่ยวข้องแบบหลวมๆ

การพิสูจน์มีค่ามากกว่าการคาดหวัง ด้วยการบังคับให้เอเจนต์ทดสอบเจาะระบบอัตโนมัติแสดงโทเคนที่ตรวจสอบได้ HALO แสดงให้เห็นว่าการบุกรุกจะเป็นการบุกรุกก็ต่อเมื่อเป้าหมายสามารถพิสูจน์ได้ว่าได้รันโค้ดของผู้โจมตีจริงเท่านั้น ต้องสร้างประตูให้แข็งแกร่งก่อน แล้วสิ่งอื่นๆ จะตามมาเอง