Microsoft đã chuẩn bị triển khai eBPF cho Windows

Microsoft tiết lộ gần đây thông qua một bài đăng việc triển khai hệ thống con eBPF cho Windows cho phép bạn chạy các trình điều khiển tùy ý chạy ở cấp nhân của hệ điều hành.

eGMP cung cấp trình thông dịch bytecode tích hợp sẵn trong hạt nhân để tạo trình điều khiển mạng tải không gian người dùng, kiểm soát truy cập và giám sát hệ thống. eBPF đã được đưa vào nhân Linux kể từ phiên bản 3.18 và cho phép bạn xử lý các gói mạng đến / đi, gói chuyển tiếp, kiểm soát băng thông, chặn các cuộc gọi hệ thống, kiểm soát truy cập và theo dõi.

Thông qua quá trình biên dịch JIT, mã bytecode được dịch thành các lệnh máy một cách nhanh chóng và chạy với hiệu suất của mã đã biên dịch. EBPF cho Windows là mã nguồn mở theo giấy phép MIT.

Hôm nay, chúng tôi vui mừng thông báo một dự án mã nguồn mở mới của Microsoft để làm cho eBPF hoạt động trên Windows 10 và Windows Server 2016 trở lên. Dự án ebpf-for-windows nhằm mục đích cho phép các nhà phát triển sử dụng các công cụ eBPF quen thuộc và các giao diện lập trình ứng dụng (API) trên các phiên bản Windows hiện có. Dựa trên công việc của những người khác, dự án này sử dụng một số dự án eBPF mã nguồn mở hiện có và thêm "keo" để làm cho chúng chạy trên Windows.

eBPF dành cho Windows có thể được sử dụng với các công cụ eBPF hiện có và cung cấp một API chung được sử dụng cho các ứng dụng eBPF trên Linux.

Đặc biệt, dự án cho phép bạn biên dịch mã được viết bằng C thành bytecode eBPF sử dụng trình biên dịch eBPF dựa trên Clang tiêu chuẩn và chạy trình điều khiển eBPF đã được xây dựng cho Linux trên nhân Windows, cung cấp lớp tương thích đặc biệt và hỗ trợ API Libbpf tiêu chuẩn để tương thích với các ứng dụng tương tác với chương trình eBPF.

Điều này bao gồm các lớp giữa cung cấp các liên kết giống như Linux cho XDP (Đường dẫn dữ liệu eXpress) và các liên kết socket tóm tắt quyền truy cập vào ngăn xếp mạng Windows và trình điều khiển mạng. Các kế hoạch nhằm cung cấp hỗ trợ mức nguồn đầy đủ cho các trình điều khiển eBPF Linux chung.

Sự khác biệt chính trong việc triển khai eBPF cho Windows là việc sử dụng trình kiểm tra bytecode thay thế, được đề xuất ban đầu bởi các nhân viên VMware và các nhà nghiên cứu từ các trường đại học Canada và Israel.

Trình xác minh được bắt đầu trong một quy trình cô lập riêng biệt trong không gian người dùng và được sử dụng trước khi thực thi các chương trình BPF để phát hiện lỗi và chặn hoạt động nguy hiểm tiềm ẩn.

Để xác thực, eBPF dành cho Windows sử dụng phương pháp phân tích tĩnh diễn giải trừu tượng, gì, So với trình xác minh eBPF dành cho Linux, nó cho thấy tỷ lệ dương tính giả thấp hơn, hỗ trợ phân tích vòng lặp và cung cấp khả năng mở rộng tốt. Phương pháp này có tính đến nhiều mẫu hiệu suất điển hình thu được từ việc phân tích các chương trình eBPF hiện có.

eBPF là một công nghệ nổi tiếng nhưng mang tính cách mạng, cung cấp khả năng lập trình, khả năng mở rộng và sự nhanh nhẹn. eBPF đã được áp dụng cho các trường hợp sử dụng như bảo vệ từ chối dịch vụ và khả năng quan sát.

Theo thời gian, một hệ sinh thái quan trọng gồm các công cụ, sản phẩm và chuyên môn đã được xây dựng xung quanh eBPF. Mặc dù hỗ trợ cho eBPF lần đầu tiên được triển khai trong nhân Linux, ngày càng có nhiều sự quan tâm trong việc cho phép eBPF được sử dụng trong các hệ điều hành khác và cũng để mở rộng daemon và các dịch vụ chế độ người dùng ngoài nhân.

Sau khi xác minh, mã bytecode được chuyển tới trình thông dịch cấp hạt nhân, hoặc nó được chuyển qua trình biên dịch JIT, tiếp theo là chạy mã máy kết quả với quyền hạt nhân. Để cô lập các trình điều khiển eBPF ở cấp nhân, cơ chế HVCI (HyperVisor Enhanced Code Integrity) được sử dụng, sử dụng các công cụ ảo hóa để bảo vệ các quy trình trong nhân và đảm bảo rằng tính toàn vẹn của mã được thực thi được ký điện tử.

Một hạn chế của HVCI là khả năng chỉ kiểm tra các chương trình eBPF được thông dịch và không có khả năng sử dụng chúng cùng với JIT (bạn có thể lựa chọn: hiệu suất hoặc bảo vệ bổ sung).

Cuối cùng nếu bạn muốn biết thêm về nó, bạn có thể tham khảo liên kết sau.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.