Microsoft กำลังทำงานเพื่อขยายการสนับสนุน Berkeley Packet Filter (eBPF) ให้กับ Windows

ไอคอนเวลาอ่านหนังสือ 2 นาที. อ่าน


ผู้อ่านช่วยสนับสนุน MSpoweruser เราอาจได้รับค่าคอมมิชชันหากคุณซื้อผ่านลิงก์ของเรา ไอคอนคำแนะนำเครื่องมือ

อ่านหน้าการเปิดเผยข้อมูลของเราเพื่อดูว่าคุณจะช่วย MSPoweruser รักษาทีมบรรณาธิการได้อย่างไร อ่านเพิ่มเติม

รายงาน ZDNet ที่ Microsoft กำลังทำงานเพื่อนำเครื่องมือรักษาความปลอดภัย Linux ขยาย Berkeley Packet Filter (eBPF) ไปยัง Windows 10

เครื่องมือนี้สามารถเรียกใช้บน Windows SubSystem สำหรับ Linux ได้ แต่ Microsoft กำลังทำงานเกี่ยวกับการสนับสนุนแบบเนทีฟ โดยมีปัญหาอยู่ที่เครื่องมือเรียกใช้โค้ดในบริบทเคอร์เนล ซึ่งทำให้เกิดปัญหาด้านความปลอดภัยทุกประเภท

อย่างไรก็ตาม งานนี้อาจคุ้มค่า เนื่องจาก eBPF ถูกใช้อย่างกว้างขวางในการกรอง วิเคราะห์ และจัดการเครือข่าย และสำหรับการกรองการเรียกระบบและการติดตามบริบทของกระบวนการ และสร้างรากฐานของแอปพลิเคชันความปลอดภัยหลายตัว เช่น Cilium, Falco และ Tracee โปรแกรมสังเกตการณ์ Kubernetes เช่น Hubble และ Pixie และ toolchains เช่น Clang

โปรเจ็กต์ ebpf-for-windows มีเป้าหมายที่จะใช้โปรเจ็กต์โอเพ่นซอร์ส eBPF ที่มีอยู่หลายโปรเจ็กต์ และเพิ่ม "กาว" เพื่อให้ทำงานบน Windows

ดังที่แสดงในไดอะแกรม สามารถใช้ toolchains eBPF ที่มีอยู่ (clang ฯลฯ) เพื่อสร้าง eBPF bytecode จากซอร์สโค้ดในภาษาต่างๆ Bytecode สามารถถูกใช้โดยแอปพลิเคชันใดๆ หรือผ่านเครื่องมือบรรทัดคำสั่ง Netsh ซึ่งใช้ไลบรารีที่ใช้ร่วมกันที่แสดง Libbpf APIs แม้ว่าการดำเนินการนี้จะยังคงดำเนินการอยู่

ไบต์โค้ด eBPF จะถูกส่งไปยังตัวตรวจสอบแบบคงที่ (ตัวตรวจสอบ PREVAIL) ที่โฮสต์อยู่ในกระบวนการป้องกันโหมดผู้ใช้ (สภาพแวดล้อมความปลอดภัยของ Windows ที่อนุญาตให้ส่วนประกอบเคอร์เนลเชื่อถือ Daemon โหมดผู้ใช้ที่ลงนามโดยคีย์ที่เชื่อถือ) หาก bytecode ผ่านการตรวจสอบตัวตรวจสอบทั้งหมด จะสามารถโหลดลงในล่ามได้ (จาก uBPF ในบริบทการดำเนินการโหมดเคอร์เนล) หรือ JIT ที่คอมไพล์แล้ว (ผ่านคอมไพเลอร์ uBPF JIT) และมีการโหลดโค้ดเนทีฟในการดำเนินการโหมดเคอร์เนล บริบท (แต่ดูคำถามที่พบบ่อยที่ด้านล่างเกี่ยวกับ HVCI)

โปรแกรม eBPF ที่ติดตั้งในบริบทการดำเนินการในโหมดเคอร์เนลสามารถแนบกับ hook ต่างๆ ได้ (ปัจจุบันมีสอง hooks: XDP และ socket bind hook) และเรียก API ตัวช่วยต่างๆ ที่เปิดเผยโดย eBPF shim ซึ่งหุ้ม API เคอร์เนลของ Windows สาธารณะภายใน ทำให้ การใช้ eBPF บน Windows รุ่นที่มีอยู่ ตะขอและผู้ช่วยเพิ่มเติมจะถูกเพิ่มเมื่อเวลาผ่านไป

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

วันที่ออก โครงการ ebpf-for-windows ที่ GitHub ที่นี่.

ข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อต่างๆ: eGMP, ไมโครซอฟท์, หน้าต่าง 10

เขียนความเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมาย *