Microsoft ได้เตรียมการใช้งาน eBPF สำหรับ Windows

Microsoft เปิดตัว เมื่อเร็ว ๆ นี้ผ่านโพสต์ การใช้งานระบบย่อย eBPF สำหรับ Windows ซึ่งช่วยให้คุณสามารถเรียกใช้ไดรเวอร์โดยพลการที่ทำงานในระดับเคอร์เนลของระบบปฏิบัติการ

eGMP มีตัวแปล bytecode ในตัว ในเคอร์เนลเพื่อสร้างไดรเวอร์เครือข่ายที่โหลดพื้นที่ผู้ใช้การควบคุมการเข้าถึงและการตรวจสอบระบบ eBPF ถูกรวมไว้ในเคอร์เนล Linux ตั้งแต่เวอร์ชัน 3.18 และ ช่วยให้คุณสามารถประมวลผลแพ็กเก็ตเครือข่ายขาเข้า / ขาออกแพ็คเก็ตส่งต่อควบคุมแบนด์วิดท์สกัดกั้นการโทรของระบบควบคุมการเข้าถึงและติดตาม

ด้วยการคอมไพล์ JIT bytecode จะถูกแปลเป็นคำสั่งของเครื่องได้ทันทีและทำงานด้วยประสิทธิภาพของโค้ดที่คอมไพล์ EBPF สำหรับ Windows เป็นโอเพ่นซอร์สภายใต้ใบอนุญาต MIT

วันนี้เรามีความยินดีที่จะประกาศโครงการโอเพ่นซอร์สใหม่จาก Microsoft เพื่อให้ eBPF ทำงานบน Windows 10 และ Windows Server 2016 และใหม่กว่า โครงการ ebpf-for-windows มีจุดมุ่งหมายเพื่อให้นักพัฒนาสามารถใช้ห่วงโซ่เครื่องมือ eBPF และอินเตอร์เฟสการเขียนโปรแกรมแอปพลิเคชัน (API) ที่คุ้นเคยกับ Windows เวอร์ชันที่มีอยู่ จากผลงานของผู้อื่นโครงการนี้ใช้โครงการ eBPF แบบโอเพนซอร์สที่มีอยู่หลายโครงการและเพิ่ม "กาว" เพื่อให้ทำงานบน Windows

eBPF สำหรับ Windows สามารถใช้กับเครื่องมือ eBPF ที่มีอยู่ได้ และจัดเตรียม API ทั่วไปที่ใช้สำหรับแอปพลิเคชัน eBPF บน Linux

โดยเฉพาะอย่างยิ่ง โครงการช่วยให้คุณสามารถรวบรวมโค้ดที่เขียนด้วยภาษา C เป็น bytecode eBPF โดยใช้คอมไพเลอร์ eBPF ที่ใช้เสียงดังมาตรฐาน และเรียกใช้ไดรเวอร์ eBPF ที่สร้างขึ้นสำหรับ Linux ที่ด้านบนของเคอร์เนล Windowsซึ่งมีเลเยอร์ความเข้ากันได้พิเศษและรองรับ Libbpf API มาตรฐานสำหรับความเข้ากันได้กับแอปพลิเคชันที่โต้ตอบกับโปรแกรม eBPF

ซึ่งรวมถึงเลเยอร์กลางที่มีการเชื่อมโยงแบบ Linux สำหรับ XDP (eXpress Data Path) และการเชื่อมต่อซ็อกเก็ตที่สรุปการเข้าถึงสแตกเครือข่าย Windows และไดรเวอร์เครือข่าย แผนมุ่งหวังที่จะให้การสนับสนุนระดับซอร์สเต็มรูปแบบสำหรับไดรเวอร์ Linux eBPF ทั่วไป

ความแตกต่างที่สำคัญในการใช้ eBPF สำหรับ Windows คือการใช้ตัวตรวจสอบรหัสไบต์ทางเลือกซึ่งเดิมเสนอโดยพนักงานและนักวิจัยของ VMware จากมหาวิทยาลัยในแคนาดาและอิสราเอล

ตัวตรวจสอบจะเริ่มต้นในกระบวนการแยกต่างหากในพื้นที่ผู้ใช้และใช้ก่อนดำเนินการโปรแกรม BPF เพื่อตรวจหาข้อผิดพลาดและบล็อกกิจกรรมที่อาจเป็นอันตราย

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

eBPF เป็นเทคโนโลยีที่มีชื่อเสียง แต่ปฏิวัติวงการที่ให้ความสามารถในการเขียนโปรแกรมความสามารถในการขยายและความคล่องตัว eBPF ถูกนำไปใช้กับกรณีการใช้งานเช่นการปฏิเสธการคุ้มครองบริการและการสังเกต

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

หลังจากตรวจสอบแล้ว bytecode ถูกส่งผ่านไปยังตัวแปลระดับเคอร์เนล หรือส่งผ่านคอมไพเลอร์ JIT ตามด้วยการรันโค้ดเครื่องที่เป็นผลลัพธ์ด้วยสิทธิ์เคอร์เนล ในการแยกไดรเวอร์ eBPF ที่ระดับเคอร์เนลจะใช้กลไก HVCI (HyperVisor Enhanced Code Integrity) ซึ่งใช้เครื่องมือการจำลองเสมือนเพื่อปกป้องกระบวนการในเคอร์เนลและทำให้แน่ใจว่าความสมบูรณ์ของโค้ดที่ดำเนินการนั้นได้รับการเซ็นชื่อแบบดิจิทัล

ข้อ จำกัด ประการหนึ่งของ HVCI คือความสามารถในการตรวจสอบเฉพาะโปรแกรม eBPF ที่ตีความแล้วและไม่สามารถใช้ร่วมกับ JIT ได้ (คุณมีทางเลือก: ประสิทธิภาพเพิ่มเติมหรือการป้องกัน)

ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติม คุณสามารถปรึกษา ลิงค์ต่อไปนี้


แสดงความคิดเห็นของคุณ

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

*

*

  1. รับผิดชอบข้อมูล: AB Internet Networks 2008 SL
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา