Microsoft работает над портированием extended Berkeley Packet Filter (eBPF) в Windows


ZDNet сообщает, что Microsoft работает над тем, чтобы портировать инструмент extended Berkeley Packet Filter (eBPF) в Windows 10 и Windows Server 2016 (и более поздние версии).

В настоящее время инструмент можно запускать в Subsystem for Linux, но Microsoft работает над нативной поддержкой, при этом проблема заключается в том, что инструмент запускает код в контексте ядра, что вызывает всевозможные сложности с безопасностью.

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

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

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

Программы eBPF, установленные в контексте выполнения режима ядра, могут подключаться к различным перехватчикам (на данный момент два перехватчика: XDP и перехватчик привязки сокета) и вызывать различные вспомогательные API-интерфейсы, предоставляемые eBPF shim, которая внутренне обертывает публичные API-интерфейсы ядра Windows, позволяя использование eBPF в существующих версиях Windows. Со временем будет добавлено больше перехватчиков и помощников.

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
pohozhie-programmy.ru
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: