Microsoft працює над наданням розширеної підтримки фільтра пакетів Berkeley Packet Filter (eBPF) до Windows

Значок часу читання 2 хв. читати


Читачі допомагають підтримувати MSpoweruser. Ми можемо отримати комісію, якщо ви купуєте через наші посилання. Значок підказки

Прочитайте нашу сторінку розкриття інформації, щоб дізнатися, як ви можете допомогти MSPoweruser підтримувати редакційну команду Читати далі

Звіти ZDNet що Microsoft працює над впровадженням розширеного фільтра пакетів Berkeley Packet Filter (eBPF) у Windows 10.

Наразі цей інструмент можна запускати в підсистемі Windows для Linux, але Microsoft працює над підтримкою вбудованої системи, причому проблема полягає в тому, що інструмент запускає код у контексті ядра, що викликає всі види ускладнень безпеки.

Однак ця робота може бути того варта, оскільки eBPF широко використовується в мережевій фільтрації, аналізі й управлінні, а також для фільтрації системних викликів і відстеження контексту процесів і є основою багатьох програм безпеки, таких як Cilium, Falco і Tracee; Програми спостереження Kubernetes, такі як Hubble і Pixie, і набори інструментів, такі як Clang.

Проект ebpf-for-windows має на меті взяти кілька існуючих проектів з відкритим кодом eBPF і додає «клей», щоб запустити їх у Windows.

Як показано на схемі, існуючі ланцюги інструментів eBPF (clang тощо) можна використовувати для створення байт-коду eBPF з вихідного коду різними мовами. Байт-код може використовуватися будь-якою програмою або за допомогою інструменту командного рядка Netsh, який використовує спільну бібліотеку, яка надає API Libbpf, хоча це все ще триває.

Байт-код eBPF надсилається до статичного верифікатора (перевірка PREVAIL), який розміщується в захищеному процесі в режимі користувача (середовище безпеки Windows, яке дозволяє компоненту ядра довіряти демону режиму користувача, підписаному ключем, якому він довіряє). Якщо байт-код проходить всі перевірки верифікатора, його можна або завантажити в інтерпретатор (з uBPF в контексті виконання режиму ядра), або скомпілювати JIT (через компілятор uBPF JIT) і мати завантаження рідного коду в режимі ядра. контекст (але див. поширені запитання внизу про HVCI).

Програми eBPF, встановлені в контексті виконання в режимі ядра, можуть підключатися до різних гачків (наразі два зачіпки: XDP і гачок прив’язки сокета) і викликати різні допоміжні API, доступні за допомогою прокладки eBPF, яка внутрішньо обгортає загальнодоступні API ядра Windows, дозволяючи використання eBPF в існуючих версіях Windows. З часом буде додано більше гачків і помічників.

Кінцевим результатом буде специфічне для Windows середовище розміщення для eBPF, яке дозволить розробникам Windows використовувати програми eBPF з відкритим кодом без необхідності перекодування.

Від'їзд Проект ebpf-for-windows на GitHub тут.

Детальніше про теми: eGMP, Microsoft, windows 10

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *