Microsoft работает над внедрением расширенной поддержки Berkeley Packet Filter (eBPF) в Windows.

Значок времени чтения 2 минута. читать


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

Прочтите нашу страницу раскрытия информации, чтобы узнать, как вы можете помочь MSPoweruser поддержать редакционную команду. Читать далее

ZDNet сообщает что Microsoft работает над внедрением инструмента безопасности Linux, расширенного 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 (через JIT-компилятор uBPF) и загрузить собственный код в выполнение в режиме ядра. контексте (но см. часто задаваемые вопросы внизу о HVCI).

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

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

Попробуйте проект ebpf-for-windows на GitHub здесь.

Подробнее о темах: eGMP, Microsoft, Окна 10

Оставьте комментарий

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