การรักษาความปลอดภัยให้แก่เอเจนต์บนปลายทางของ Perplexity ด้วย Numbat

Numbat คือชุดเครื่องมือรักษาความปลอดภัยสำหรับเอเจนต์แบบโอเพนซอร์สของ Perplexity สำหรับปลายทางของผู้ใช้ ซึ่งจะตรวจจับ ป้องกัน และตรวจสอบพฤติกรรมของ AI เอเจนต์ที่มีความเสี่ยงบน macOS, Linux และ Windows

ผู้เขียนPerplexity Secure Intelligence Institute

AI agents ต้องมีความปลอดภัยจึงจะมีประโยชน์ เมื่อความสามารถของโมเดลและระบบพัฒนาขึ้น ความระมัดระวังที่จำเป็นในการปกป้องผู้ใช้ก็เพิ่มขึ้นเช่นกัน

การวิจัยความปลอดภัยของเอเจนต์ในระยะแรกเน้นไปที่การฉีดพรอมต์ (prompt injections) และอินพุตที่เป็นอันตรายรูปแบบอื่น ๆ ถึงกระนั้น ความก้าวหน้าล่าสุดในด้านความเป็นอิสระของเอเจนต์ทำให้เกิดเหตุการณ์ด้านความปลอดภัยที่ไม่จำเป็นต้องสันนิษฐานว่ามีอินพุตที่เป็นอันตราย หรือมีผู้ไม่หวังดีที่เป็นมนุษย์เลย

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

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

บทนำ

การนำเอเจนต์มาใช้งานก่อให้เกิดความท้าทายด้านความปลอดภัยรูปแบบใหม่สำหรับทั้งนักพัฒนา ผู้ใช้งาน และผู้ปกป้องระบบ โดยเฉพาะอย่างยิ่งเมื่อองค์กรต่าง ๆ นำเอเจนต์ไปปรับใช้โดยตรงบนปลายทางของผู้ใช้ พร้อมด้วยสิทธิ์เข้าถึงระบบและข้อมูลขององค์กร

การปรับใช้เอเจนต์บนปลายทางของผู้ใช้ เช่น เอเจนต์เขียนโค้ดที่ทำงานผ่าน CLI หรือเดสก์ท็อปแอป มาพร้อมกับระดับการทำแซนด์บ็อกซ์และการแยกส่วนที่แตกต่างกัน ผู้ใช้ใช้ประโยชน์จากเอเจนต์เหล่านี้สำหรับกรณีการใช้งานจำนวนนับไม่ถ้วน โดยแต่ละกรณีมีสเปซของการทำงานที่เกี่ยวข้องซึ่งอาจส่งผลกระทบต่อตัวปลายทางเองหรือระบบอื่น ๆ ที่เข้าถึงได้จากปลายทาง เอเจนต์มีแนวโน้มที่จะต้องทำงานอย่างอิสระมากขึ้นเรื่อย ๆ เป็นเวลาหลายชั่วโมงหรือหลายวัน สำหรับเวิร์กโฟลว์เหล่านี้ ผู้ใช้จำนวนมากเลือกที่จะมอบหมายการอนุมัติการทำงานของเอเจนต์ให้กับตัวจำแนกประเภท (classifiers) หรือข้ามการอนุมัติไปเลยด้วยแฟล็กการกำหนดค่าที่มีชื่อน่ากังวล เช่น --dangerously-skip-permissions และ --yolo ความหลากหลายของกรณีการใช้งานและการกำหนดค่าเอเจนต์ ประกอบกับขอบเขตของการกระทำที่เอเจนต์เขียนโค้ดสามารถทำได้บนปลายทางที่มีสิทธิ์สูง ทำให้เกิดโปรไฟล์ความเสี่ยงที่ต้องมีการจัดการเชิงรุกโดยทีมรักษาความปลอดภัย

ในวันนี้ เรากำลังเปิดตัว Numbat ซึ่งเป็นชุดเครื่องมือรักษาความปลอดภัยสำหรับเอเจนต์แบบโอเพนซอร์สที่เราสร้างขึ้นเพื่อตรวจจับ ตรวจสอบ และป้องกันกิจกรรมที่เป็นอันตรายจาก AI เอเจนต์ เนื่องจากบริษัทจำนวนมากขึ้นเรื่อย ๆ นำผลิตภัณฑ์เอเจนต์ระดับแนวหน้ามาใช้ Numbat จึงช่วยให้ทีมรักษาความปลอดภัยสามารถก้าวตามทันความท้าทายด้านความปลอดภัยที่เกิดขึ้นได้ โดยจะผสานรวมเข้ากับตัวจัดการเอเจนต์ฝั่งไคลเอ็นต์ที่มีการใช้งานมากที่สุดแต่ละรายการ ในขณะเดียวกันก็เปิดเผยอินเทอร์เฟซที่สอดคล้องกันในทุก ๆ ตัว ดังนั้น Numbat จึงช่วยปลด ภาระให้กับทีมรักษาความปลอดภัยจากการต้องสร้างมาตรการป้องกันและเครื่องมือตรวจสอบแบบกำหนดเองสำหรับเอเจนต์แต่ละตัวที่ผู้ใช้ต้องพึ่งพา Numbat พร้อมให้ระบบนิเวศของผู้ปกป้องระบบใช้งานแล้วในฐานะส่วนหนึ่งของการที่ Perplexity เข้าร่วมเป็นสมาชิกของ Open Secure AI Alliance ร่วมกับ NVIDIA และองค์กรอื่น ๆ

สถาปัตยกรรมระบบของเอเจนต์ที่รักษาความปลอดภัยด้วย Numbat Numbat เน้นการตรวจจับแบบโลคัลเป็นหลักและการพิสูจน์หลักฐานดิจิทัลที่ไม่จำกัดว่าต้องเป็นเอเจนต์ใดเอเจนต์หนึ่ง

บทความนี้เริ่มต้นด้วยการอภิปรายถึงความท้าทายด้านความปลอดภัยที่เป็นแรงจูงใจในการสร้าง Numbat จากนั้นเราจะนำเสนอการออกแบบและสถาปัตยกรรมของ Numbat พร้อมกับบทเรียนที่เราได้รับจากการปรับใช้ Numbat บนปลายทางนับพันรายการของ Perplexity เอง

ทำความเข้าใจภูมิทัศน์ของช่องโหว่

ภูมิทัศน์ของเหตุการณ์ด้านความปลอดภัยของ AI เอเจนต์กำลังพัฒนาอย่างรวดเร็ว เอกสารส่วนใหญ่ที่มีอยู่เกี่ยวกับความปลอดภัยของเอเจนต์มุ่งเน้นไปที่การโจมตีด้วยการฉีดคำสั่ง (injection attacks) ซึ่งมีการใส่เพย์โหลดที่เป็นอันตรายลงในพรอมต์หรือบริบทของโมเดลเพื่อทำให้เอเจนต์สับสนจนแสดงพฤติกรรมที่ไม่เหมาะสม การโจมตีด้วยการฉีดคำสั่งและมาตรการป้องกันได้รับการ ศึกษาอย่างกว้างขวาง และนักพัฒนาเอเจนต์รวมถึง Perplexity ได้คิดค้นการป้องกันที่มีความแข็งแกร่งมากขึ้นเรื่อย ๆ ต่อการโจมตีด้วยการฉีดคำสั่ง

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

นักวิจัยอธิบายโหมดความล้มเหลวนี้ว่าเป็น “ภาวะวิกฤตล่มสลายโดยอุบัติเหตุ” (accidental meltdown): พฤติกรรมที่เป็นอันตรายของเอเจนต์ที่ไม่ได้ถูกกระตุ้นโดยอินพุตจากผู้ไม่หวังดี แต่เกิดจากข้อผิดพลาดทั่วไปในสภาพแวดล้อม ไฟล์ที่หายไป คำขอ API ที่ล้มเหลว ข้อมูลประจำตัวที่หมดอายุ หรือการปฏิเสธสิทธิ์ สามารถส่งผลให้เอเจนต์ต้องค้นหาวิธีแก้ปัญหาเฉพาะหน้า ในการทำตามเป้าหมายเดิมที่ผู้ใช้ระบุ เอเจนต์อาจก้าวข้ามขอบเขตความปลอดภัยผ่านการลาดตระเวนที่ไม่ได้รับอนุญาต การเปลี่ยนแปลงการควบคุมการเข้าถึง การค้นหาความลับ หรือการโจรกรรมข้อมูล (exfiltration) แทนที่เอเจนต์จะถูกชักใยโดยผู้โจมตี ตัวเอเจนต์เองนั่นแหละที่เป็นผู้โจมตี ยิ่งไปกว่านั้น การโจมตีนี้ยังสามารถมุ่งเป้าไปที่ระบบภายใน ระบบภายนอก หรือทั้งสองอย่าง โดยไม่มีทางรู้ได้เลยจนกว่าการโจมตีจะกำลังดำเนินอยู่

ภาวะวิกฤตล่มสลายโดยอุบัติเหตุครั้งแรกที่มีการรายงานอย่างกว้างขวางเกิดขึ้นในเดือนนี้ ด้วยการที่ OpenAI เปิดเผยเกี่ยวกับการโจมตีที่ริเริ่มโดยเอเจนต์ ซึ่งส่งผลกระทบต่อโครงสร้างพื้นฐานการผลิตของ Hugging Face ในระหว่างการประเมินโมเดล GPT รุ่นก่อนวางจำหน่าย โมเดลพบว่าตนเองไม่สามารถดำเนินการประเมินต่อไปได้ด้วยบริบทที่มีอยู่ เพื่อที่จะทะลวงอุปสรรคนี้ โมเดลจึงหาวิธีหลบหนีออกจากสภาพแวดล้อมการทดสอบแซนด์บ็อกซ์และขโมยคำตอบของการประเมินออกจาก Hugging Face โมเดลใช้ประโยชน์จากตัวจัดการ (harness) ของตนเพื่อหลีกหนีข้อจำกัดเครือข่ายที่ตั้ง 0ไว้ ยกระดับสิทธิ์เกินขอบเขตของแซนด์บ็อกซ์ รับข้อมูลลับ และเข้าถึงระบบ Hugging Face ที่ปลอดภัย ทั้งหมดนี้เพื่อบรรลุวัตถุประสงค์แคบ ๆ ในการแก้ปัญหาการประเมิน

ภาวะวิกฤตล่มสลายยังรวมถึงการกลายพันธุ์และการลบระบบโดยไม่ได้ตั้งใจ แม้ว่าอาจจะดูธรรมดากว่าการเจาะระบบภายนอก แต่เหตุการณ์เหล่านี้เกิดขึ้นบ่อยครั้งมากกว่าและมีความสำคัญต่อผู้ใช้ระดับสูง (power user) ของเอเจนต์เขียนโค้ด การลบฐานข้อมูลการผลิตหรือไดเรกทอรีหลัก (home directories)ถือเป็นฝันร้ายที่สุดของนักพัฒนาทุกคน และเอเจนต์จะต้องสามารถหลีกเลี่ยงพฤติกรรมดังกล่าวตลอดการทำงานของตน

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

การรักษาความปลอดภัยให้แก่เอเจนต์เขียนโค้ดผ่านการผสานรวมกับตัวจัดการแบบเนทีฟ (Native Harness Integrations)

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

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

จุดบูรณาการที่สำคัญระหว่าง Numbat และตัวจัดการเอเจนต์ ได้แก่ ฮุก (hooks), อาร์ทิแฟกต์ของเซสชัน และข้อมูลทางไกล (telemetry) แบบ OTLP เราจะอภิปรายทีละประเด็น

ฮุก (Hooks)

เอเจนต์เขียนโค้ดเกือบทั้งหมดมีระบบย่อยของฮุก (hook subsystem) ฮุกช่วยให้เอเจนต์สามารถดำเนินการตามกิจวัตรย่อยได้อย่างแม่นยำ ณ จุดที่กำหนดไว้ล่วงหน้าภายในวงจรชีวิตการทำงานของเอเจนต์ ผู้ใช้เอเจนต์มักกำหนดค่าฮุกเพื่อให้บริบทเพิ่มเติมแก่โมเดลในลักษณะที่คาดเดาได้ ใช้ลูปการทดสอบและการตรวจสอบ และทำการปรับปรุงอื่น ๆ ต่อความสามารถของเอเจนต์

คุณสมบัติที่แม่นยำแบบเดียวกันนี้ที่ทำให้ฮุกน่าสนใจสำหรับวัตถุประสงค์ดังกล่าว ยังทำให้ฮุกน่าสนใจสำหรับการตรวจจับและการตอบสนองอีกด้วย การจับเหตุการณ์ที่อาจน่ากังวลเพียงส่วนใหญ่มักจะไม่เพียงพอ แต่จะต้องครอบคลุมเหตุการณ์ดังกล่าวทั้งหมดเพื่อการตรวจจับและการตอบสนอง Numbat กำหนดค่าฮุกหลายประเภท ซึ่งช่วยให้ทีมรักษาความปลอดภัยและผู้ดูแลระบบ IT สามารถใช้งานตรรกะการตรวจจับที่มีรายละเอียดครบถ้วนได้

ในเอเจนต์เขียนโค้ดส่วนใหญ่ ฮุกบางประเภท (มักเรียกว่าฮุก "ก่อนการดำเนินการ" หรือ pre-action hooks) ยังมีความสามารถในการบล็อกการดำเนินการถัดไปของเอเจนต์ได้ด้วย โดยการใช้ฮุกก่อนการดำเนินการเหล่านี้ Numbat ไม่เพียงแต่สามารถใช้งานตรรกะการตรวจจับได้เท่านั้น แต่ยังรวมถึงกฎความปลอดภัยเชิงป้องกันเพื่อหยุดยั้งไม่ให้เกิดภาวะวิกฤตล่มสลายตั้งแต่แรกอีกด้วย

อาร์ทิแฟกต์ของเซสชัน

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

อาร์ติแฟกต์ของเซสชันประกอบด้วยบันทึกและข้อมูลวิเคราะห์หลายประเภท บางทีบันทึกที่สำคัญที่สุดคือทรานสคริปต์ของเซสชัน ซึ่งบันทึกบทสนทนา LLM ที่กำหนดลำดับการดำเนินการของเอเจนต์ ผู้ใช้ระดับสูงของเอเจนต์สำหรับการเขียนโค้ดคุ้นเคยกับการส่งออกทรานสคริปต์ของเซสชันเพื่อการวิเคราะห์เพิ่มเติมผ่านคำสั่งที่ harness จัดให้แล้ว แต่โดยปกติการส่งออกเหล่านี้อยู่ในรูปแบบข้อความธรรมดา ซึ่งไม่เหมาะสำหรับทีมความปลอดภัยที่ต้องการบันทึกที่เครื่องอ่านได้พร้อมสคีมาที่สอดคล้องและคาดเดาได้

ดังนั้น Numbat จึงดึงข้อมูลอาร์ทิแฟกต์ของเซสชันโดยตรงจากระบบไฟล์เอง เนื่องจากตัวจัดการเอเจนต์ฝั่งไคลเอ็นต์ส่วนใหญ่จัดเก็บอาร์ทิแฟกต์ดั้งเดิมไว้บนระบบไฟล์ (โดยทั่วไปจะอยู่ภายในไดเรกทอรีดอตเฉพาะของเอเจนต์ภายใต้ $HOME) การดึงข้อมูลผ่านระบบไฟล์จึงเป็นเส้นทางที่ตรงที่สุดในการเข้าถึงข้อมูลนี้ในรูปแบบที่ใช้งานได้ง่ายและบริสุทธิ์ที่สุด ทีมรักษาความปลอดภัยที่ใช้ Numbat สามารถรวบรวมอาร์ทิแฟกต์เหล่านี้ในรูปแบบไทม์ไลน์ NDJSON ที่ถูกทำให้เป็นมาตรฐานผ่าน numbat scan ไม่ว่าจะสำหรับการประมวลผลในเครื่องบนปลายทางของไคลเอ็นต์หรือการวิเคราะห์จากระยะไกลแบบอะซิงโครนัส เนื่องมาจากอาร์ทิแฟกต์ของเซสชันเป็นบันทึกแบบสแตติกที่มีในตัวเอง Numbat จึงสามารถสร้างไทม์ไลน์เหล่านี้ขึ้นมาใหม่ได้ แม้แต่สำหรับเซสชันที่เกิดขึ้นนานก่อนที่จะมีการติดตั้ง Numbat

ข้อมูลทางไกล (Telemetry) แบบ OTLP

ตัวจัดการเอเจนต์ฝั่งไคลเอ็นต์ส่วนใหญ่เสนอข้อมูลทางไกลที่ครอบคลุมผ่านโปรโตคอล OpenTelemetry (OTLP) ข้อมูลทางไกลนี้มักจะให้สัญญาณจำนวนมากนอกเหนือจากที่มีให้ผ่านฮุกหรืออาร์ทิแฟกต์ของเซสชัน

Numbat สามารถทำหน้าที่เป็นตัวรับ OTLP ผ่านคำสั่ง numbat collect คำสั่งนี้จะเริ่มการทำงานของเซิร์ฟเวอร์ที่เอเจนต์เขียนโค้ดส่งข้อมูลทางไกล OTLP ไปให้เพื่อการวิเคราะห์ในขั้นตอนต่อไป ที่สำคัญคือ เซิร์ฟเวอร์นี้เป็นเซิร์ฟเวอร์ในเครื่องและโดยค่าเริ่มต้นจะรอรับฟังเฉพาะบน localhost เท่านั้น ซึ่งหมายความว่าข้อมูลทางไกลทั้งหมดจะยังคงอยู่บนอุปกรณ์โดยค่าเริ่มต้น ผู้ดูแลระบบความปลอดภัยจึงสามารถพิจารณาได้ว่าจะทำอย่างไรกับข้อมูลทางไกลที่บันทึกไว้ ไม่ว่าจะเป็นการประมวลผลแบบเบาบนอุปกรณ์ การประมวลผลระยะไกลผ่าน numbat ship หรือการวิเคราะห์ที่ซับซ้อนมากขึ้นบนแพลตฟอร์มการวิเคราะห์อย่าง ClickHouse

การปรับใช้ Numbat ภายใน Perplexity

ภายใน Perplexity เราใช้ Numbat เพื่อรักษาความปลอดภัยในการใช้งานเอเจนต์เขียนโค้ดฝั่งไคลเอ็นต์ของวิศวกรของเรา ซึ่งรวมถึง Claude Code, Codex, OpenCode และ Pi

ทั้งงานด้านการป้องกันและการตรวจจับของเราใช้กฎของ Numbat อย่างกว้างขวาง ซึ่งนำไปใช้ผ่านระบบ hook ของเอเจนต์แต่ละตัว เราได้กำหนดกฎพื้นฐานหลายข้อสำหรับความต้องการของเราเอง โดยหลายข้อเราได้เผยแพร่ไปพร้อมกับ 52 built-in rules ของ Numbat กฎเหล่านี้จัดเป็น 11 หมวดหมู่พฤติกรรม และชุดการตรวจจับลำดับหลายขั้นตอน เช่น การเข้าถึงข้อมูลลับ การขโมยข้อมูล การยกระดับสิทธิ์ และการเคลื่อนย้ายในแนวราบ กฎใช้ CEL expressions บนเหตุการณ์ที่ทำให้เป็นมาตรฐานแล้ว และผู้ปฏิบัติงานสามารถเพิ่มกฎและการทดสอบของตนเองได้โดยไม่ต้องเปลี่ยนโค้ดของ Numbat

ตัวอย่างเช่น กฎในตัว privilege.sudoers_tamper จะตรวจจับการเขียนทับนโยบาย sudoers การใช้ visudo และความพยายามในการติดตั้งสิทธิ์ NOPASSWD สิ่งเหล่านี้คือการกระทำที่มีสัญญาณสูงซึ่งสามารถเปลี่ยนกระบวนการของเอเจนต์ที่มีข้อจำกัดให้กลายเป็นการเข้าถึงระดับ root แบบถาวรได้

yaml
# privilege.sudoers_tamper (simplified for readability) id: privilege.sudoers_tamper severity: high expr: | ( event.event_type == "file.write" && event.file_path.matches("(^|/)etc/sudoers$|(^|/)etc/sudoers\\.d/[^/]+$") ) || ( event.event_type == "command.exec" && event.command.matches("\\bvisudo\\b|\\bNOPASSWD\\s*:") )

คำสั่งแต่ละคำสั่งไม่ได้ดูเหมือนเป็นอันตรายในตัวเองเสมอไป ดังนั้น Numbat จึงมีความสามารถในการเชื่อมโยงลำดับเหตุการณ์ภายในเซสชันของเอเจนต์ด้วย กฎในตัว chain.secret_manager_read_then_egress จะตรวจจับเมื่อเอเจนต์อ่านค่าจากเครื่องมือจัดการความลับทั่วไป และต่อมาพยายามทำคำขอ curl หรือ wget ที่มีการขนถ่ายข้อมูลออกไป การอ่านข้อมูลลับอาจเป็นเรื่องที่ถูกต้องตามกฎหมาย คำขอขาออกอาจเป็นเรื่องที่ถูกต้องตามกฎหมาย แต่เมื่อนำมาเรียงลำดับกันแล้ว สิ่งเหล่านี้จำเป็นต้องมีการตรวจสอบ

yaml
# chain.secret_manager_read_then_egress (simplified for readability) id: chain.secret_manager_read_then_egress severity: high sequence: within_events: 64 steps: - expr: | event.event_type == "command.exec" && event.command.matches("secretsmanager|get-secret|vault read") - expr: | event.event_type == "command.exec" && event.command.matches("curl.*(--data|--upload-file)|wget.*--post")

การจัดการและการตรวจสอบ Numbats ทั่วทั้งฟลีต

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

จากจุดนั้น Perplexity Computer จะตรวจสอบผลการค้นหาและบันทึกการตรวจสอบ (audit logs) ล่าสุดของ Numbat ตามกำหนดเวลาที่เกิดซ้ำเพื่อหากรรมวิธีหรือพฤติกรรมที่น่าสงสัยหรือเป็นอันตราย ระบบจะตรวจสอบการตรวจจับ สร้างเซสชันของเอเจนต์ที่เกี่ยวข้องขึ้นมาใหม่ และตรวจสอบการกระทำที่ Numbat บล็อกไว้อย่างละเอียดถี่ถ้วนยิ่งขึ้น

ท่อส่งข้อมูล (pipeline) ภายในของ Perplexity สำหรับการตรวจสอบข้อมูลทางไกลของ Numbat งาน Perplexity Computer ที่กำหนดเวลาไว้จะตรวจสอบสัญญาณใหม่แบบอะซิงโครนัสและแจ้งเตือนทีมรักษาความปลอดภัยเกี่ยวกับกิจกรรมที่มีความเสี่ยง

Computer ยังคอยมองหาช่องว่างในการครอบคลุมของเราด้วย โดยจะวิเคราะห์พฤติกรรมใหม่ เสนอการปรับปรุงการตรวจจับของ Numbat ทดสอบการเปลี่ยนแปลงเหล่านั้น และเปิดคำขอพูล (pull requests) เพื่อให้มนุษย์ตรวจสอบ เมื่อได้รับการอนุมัติและปรับใช้แล้ว กฎเหล่านั้นจะช่วยปรับปรุงการตรวจสอบทั่วทั้งฟลีตและสร้างหลักฐานที่ดีขึ้นสำหรับการตรวจสอบครั้งถัดไป

สิ่งนี้สร้างวงล้อมการรักษาความปลอดภัยที่พัฒนาตนเองได้: เอเจนต์สร้างกิจกรรม Numbat แปลงกิจกรรมนั้นให้เป็นไทม์ไลน์และข้อมูลทางไกลที่ถูกทำให้เป็นมาตรฐาน Computer ตรวจสอบและปรับปรุงกฎ และการอัปเดตที่ตรวจสอบโดยมนุษย์จะช่วยเสริมความแข็งแกร่งให้กับการควบคุมที่ปกป้องเซสชันของเอเจนต์ในอนาคต

บทสรุป

ที่ Perplexity เราเชื่อว่า AI เอเจนต์จะทำงานข้ามสภาพแวดล้อมทุกประเภท ได้แก่ โลคัล คลาวด์ และไฮบริด การผสมผสานแต่ละแบบระหว่างตัวจัดการเอเจนต์และสภาพแวดล้อมการทำงานก่อให้เกิดความท้าทายด้านความปลอดภัยที่ไม่เหมือนใคร โดยความซับซ้อนของการผสมผสานนี้ขู่ว่าจะสร้างภาระเกินกำลังให้กับทีมรักษาความปลอดภัยที่มีแบนด์วิธจำกัด ภาวะวิกฤตล่มสลายของเอเจนต์และช่องโหว่รูปแบบใหม่ ๆ ยิ่งทำให้ภาพรวมด้านความปลอดภัยซับซ้อนยิ่งขึ้นไปอีก

การป้องกันที่อยู่ในตัวระบบเอเจนต์เองสามารถยกระดับความปลอดภัยของผู้ใช้ได้ ไม่ว่าเอเจนต์จะทำงานอยู่ที่ใดก็ตาม นี่คือสิ่งที่ Numbat มอบให้อย่างแท้จริง: มาตรการป้องกันเอเจนต์ที่ผสานรวมอย่างแน่นหนา ซึ่งช่วยให้ผู้ปกป้องระบบสามารถป้องกัน ตรวจจับ และตอบสนองต่อพฤติกรรมที่น่ากังวลได้แบบเรียลไทม์ การรวม Numbat เข้ากับ Perplexity Computer สร้างแพลตฟอร์มความปลอดภัยของเอเจนต์ที่ทรงพลัง ซึ่งช่วยให้ผู้ปกป้องระบบก้าวนำหน้าภัยคุกคามได้เสมอ

Numbat พร้อมให้ใช้งานแล้วในวันนี้ในฐานะโปรเจกต์โอเพนซอร์สสำหรับ macOS, Linux และ Windows ปลายทางของไคลเอ็นต์ของเราเองได้รับการรักษาความปลอดภัยด้วย Numbat ซึ่งช่วยให้สมาชิกในทีม Perplexity สามารถใช้งานเอเจนต์ได้อย่างมั่นใจในงานที่มีขอบเขตกว้างและระยะยาว เราขอเชิญชวนทีมรักษาความปลอดภัยทุกแห่งใช้ประโยชน์จากแนวทางระดับระบบของ Numbat ในการรักษาความปลอดภัยและปกป้องการปรับใช้เอเจนต์ของตน

การอ้างอิง

BibTeX
@online{perplexity2026SecuringAgentsAcrossPerplexitySClientEndpointsWithNumbat,
  author = {{Perplexity} and Adel Karimishiraz and Bex Brooker and Phi Hoang and Jerry Ma},
  title = {{Securing agents across Perplexity's client endpoints with Numbat}},
  date = {2026-07-29},
  url = {https://perplexity.coolkeypoint.com/hub/blog/securing-agents-across-perplexity-s-client-endpoints-with-numbat}
}