Microsoft已為Windows準備了eBPF的實現

微軟揭幕 最近通過帖子 Windows的eBPF子系統的實現 這使您可以運行在操作系統內核級別運行的任意驅動程序。

eGMP 提供內置的字節碼解釋器 在內核中創建加載用戶空間的網絡驅動程序,訪問控制和系統監控。 eBPF 從3.18版開始,Linux內核已包含該版本,並且 允許您處理傳入/傳出的網絡數據包,轉發數據包,控制帶寬,攔截系統調用,控制訪問和跟踪。

通過JIT編譯,字節碼可以即時轉換為機器指令,並以編譯後的代碼的性能運行。 Windows的EBPF是根據MIT許可開放的源代碼。

今天,我們很高興地宣布微軟推出了一個新的開源項目,以使eBPF在Windows 10和Windows Server 2016及更高版本上都能正常工作。 ebpf-for-windows項目旨在使開發人員能夠在現有Windows版本之上使用熟悉的eBPF工具鍊和應用程序編程接口(API)。 基於其他人的工作,該項目採用了幾個現有的開源eBPF項目,並添加了“膠水”以使其在Windows上運行。

Windows版eBPF 可以與現有的eBPF工具一起使用 並提供用於Linux上的eBPF應用程序的通用API。

特別是 該項目允許您將用C編寫的代碼編譯為字節碼 使用基於標準Clang的eBPF編譯器的eBPF 並在Windows內核之上運行已經為Linux構建的eBPF驅動程序,它提供了一個特殊的兼容性層,並支持標準的Libbpf API,以便與與eBPF程序進行交互的應用程序兼容。

這包括為XDP(eXpress數據路徑)提供類似於Linux的綁定的中間層,以及概述對Windows網絡堆棧和網絡驅動程序的訪問的套接字綁定。 計劃旨在為通用Linux eBPF驅動程序提供完整的源代碼級支持。

在Windows中實現eBPF的主要區別在於使用了備用字節碼檢查器,該檢查器最初由VMware員工以及來自加拿大和以色列大學的研究人員提出。

驗證程序在用戶空間中一個單獨的隔離過程中啟動,並在執行BPF程序之前用於檢測錯誤並阻止潛在的惡意活動。

為了驗證, Windows的eBPF使用抽象解釋靜態分析方法, 什麼, 與Linux的eBPF驗證程序相比,它的誤報率更低,支持循環分析並提供良好的可伸縮性。 該方法考慮了從現有eBPF程序分析中獲得的許多典型性能模式。

eBPF是一項眾所周知的但具有革命性的技術,可提供可編程性,可擴展性和敏捷性。 eBPF已應用於諸如拒絕服務保護和可觀察性之類的用例。

隨著時間的流逝,圍繞eBPF建立了重要的工具,產品和專業知識生態系統。 儘管最初在Linux內核中實現了對eBPF的支持,但是人們越來越關注允許eBPF用於其他操作系統,並且除了內核之外還擴展了守護程序和用戶模式服務。

驗證後, 字節碼被傳遞給內核級解釋器, 或者它通過JIT編譯器傳遞,然後運行具有內核權限的結果機器代碼。 為了在內核級別隔離eBPF驅動程序,使用了HVCI(HyperVisor增強代碼完整性)機制,該機制使用虛擬化工具來保護內核中的進程並確保對執行代碼的完整性進行數字簽名。

HVCI的局限性是只能檢查已解釋的eBPF程序的能力,以及無法與JIT結合使用的能力(您可以選擇:附加性能或保護)。

終於 如果您有興趣了解更多信息, 你可以諮詢 以下鏈接。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。