El nuevo proyecto de Microsoft lleva Linux eBPF a Windows 10, Server

Microsoft ha lanzado un nuevo proyecto de código abierto que tiene como objetivo agregar a Windows los beneficios de eBPF, una tecnología implementada por primera vez en Linux que le permite vincular programas tanto en el kernel como en las aplicaciones de usuario.

Los beneficios asociados con Extended Berkeley Packet Filter (eBPF) van desde el rendimiento y la seguridad de la red hasta el análisis y la observación de eventos.

La tecnología EBPF permite que un programa proporcionado por el usuario se ejecute aislado (en un espacio aislado) dentro del kernel de un sistema operativo en un evento específico, un punto de enlace como una llamada al sistema, una entrada / salida de una función, un punto de rastreo del kernel o eventos de red.

eBPF - gancho para llamada al sistema
Gancho de llamada del sistema para programas eBPF

Estar conectado a un gancho predefinido y trabajar a un nivel tan bajo le da a un programa eBPF la capacidad de inspeccionar datos en tiempo real que no han sido alterados por actividades maliciosas.

Por estas razones, los programas eBPF son particularmente útiles para actividades de filtrado, monitoreo y análisis que tienen aplicaciones en las industrias de redes y seguridad.

Ejemplo de programa EBPF
Ejemplo de programa EBPF

También son adecuados para fines de depuración en sistemas en vivo, ya que los programas eBPF pueden acceder a la estructura de datos del kernel y no es necesario volver a compilar el kernel para ejecutarlos.

El desarrollo de EBPF obtiene el capítulo de Windows

El compromiso de Microsoft se basa en el trabajo de la comunidad eBPF al agregar una capa de compatibilidad que transforma los proyectos de código abierto eBPF existentes en submódulos que pueden ejecutarse en Windows 10 y Windows Server 2016 y versiones posteriores.

"La ebpf-para-windows el proyecto tiene como objetivo permitir a los desarrolladores utilizar cadenas de herramientas eBPF familiares e interfaces de programación de aplicaciones (API) además de las versiones existentes de Windows "- Microsoft

Una vista de la arquitectura del proyecto muestra que un programa eBPF puede usar la cadena de herramientas para generar código de bytes eBPF en una variedad de idiomas para que cualquier aplicación pueda usarlo e incluso conectarse a la herramienta de línea de comandos Windows Netsh, con la ayuda de una biblioteca compartido.

Arquitectura EBPF en Windows
Descripción general de la arquitectura EBPF en Windows

Como se ve en la imagen de arriba, Microsoft usa la extensión PREVALECIENDO El verificador eBPF alojado en un proceso protegido en modo usuario y IO Visor uBPF ejecutándose en el contexto de ejecución en modo kernel, para verificar la legitimidad del código de bytes resultante y para ejecutar un programa eBPF en Windows.

Microsoft explica que "los programas eBPF instalados en el contexto de ejecución del modo kernel pueden conectarse a varios ganchos para manejar eventos y llamar a varias API auxiliares expuestas por la corrección eBPF, que envuelve internamente las API públicas del kernel de Windows, lo que permite el uso de eBPF en versiones existentes de Windows. . "

Actualmente, solo hay dos ganchos disponibles: XDP y enlace de socket, ambos relacionados con las redes. Sin embargo, Microsoft espera agregar más en el futuro para cubrir otras áreas también.

Con este proyecto, Microsoft quiere "traer" ganchos y ayudantes escritos para Linux que tienen una aplicación en Windows a su sistema operativo.

“Asimismo, el proyecto eBPF para Windows expone API de libbpf proporcionar compatibilidad de código fuente para aplicaciones que interactúan con programas eBPF ”- Microsoft

La ebpf-para-windows El proyecto está todavía en su infancia y el objetivo a largo plazo es "llevar el poder de eBPF a los usuarios de Windows" y formar parte de la comunidad eBPF más amplia que también liderará su desarrollo.

Hay un tutorial sobre cómo crear un programa eBPF y ejecutarlo en Windows Aquí.

Descubre más contenido

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir Change privacy settings