Microsoft pracuje nad wprowadzeniem rozszerzonej obsługi Berkeley Packet Filter (eBPF) do systemu Windows

Ikona czasu czytania 2 minuta. czytać


Czytelnicy pomagają wspierać MSpoweruser. Możemy otrzymać prowizję, jeśli dokonasz zakupu za pośrednictwem naszych linków. Ikona podpowiedzi

Przeczytaj naszą stronę z informacjami, aby dowiedzieć się, jak możesz pomóc MSPoweruser w utrzymaniu zespołu redakcyjnego Czytaj więcej

Raporty ZDNet że Microsoft pracuje nad wprowadzeniem narzędzia zabezpieczającego Linux rozszerzonego Berkeley Packet Filter (eBPF) do systemu Windows 10.

Narzędzie można obecnie uruchomić w systemie Windows Subsystem for Linux, ale Microsoft pracuje nad natywną obsługą, przy czym problem polega na tym, że narzędzie uruchamia kod w kontekście jądra, co powoduje wszelkiego rodzaju komplikacje związane z bezpieczeństwem.

Praca może być jednak tego warta, ponieważ eBPF jest szeroko stosowany w filtrowaniu, analizie i zarządzaniu siecią, a także w filtrowaniu wywołań systemowych i śledzeniu kontekstu procesów oraz stanowi podstawę wielu aplikacji zabezpieczających, takich jak Cilium, Falco i Tracee; programy obserwacyjne Kubernetes, takie jak Hubble i Pixie, oraz łańcuchy narzędzi, takie jak Clang.

Projekt ebpf-for-windows ma na celu przejęcie kilku istniejących projektów open-source eBPF i dodanie „kleju”, aby działały w systemie Windows.

Jak pokazano na diagramie, istniejące łańcuchy narzędzi eBPF (clang itp.) mogą być używane do generowania kodu bajtowego eBPF z kodu źródłowego w różnych językach. Kod bajtowy może być wykorzystany przez dowolną aplikację lub za pośrednictwem narzędzia wiersza poleceń Netsh, które korzysta ze współdzielonej biblioteki udostępniającej interfejsy API Libbpf, chociaż jest to nadal w toku.

Kod bajtowy eBPF jest wysyłany do statycznego weryfikatora (weryfikatora PREVAIL), który jest hostowany w procesie chronionym w trybie użytkownika (środowisko bezpieczeństwa Windows, które pozwala komponentowi jądra zaufać demonowi trybu użytkownika podpisanemu kluczem, któremu ufa). Jeśli kod bajtowy przejdzie wszystkie testy weryfikatora, może zostać załadowany do interpretera (z uBPF w kontekście wykonania w trybie jądra) lub skompilowany JIT (za pośrednictwem kompilatora uBPF JIT) i załadować kod natywny do wykonania w trybie jądra kontekst (ale zobacz FAQ na dole o HVCI).

Programy eBPF zainstalowane w kontekście wykonania trybu jądra mogą dołączać do różnych hooków (obecnie dwa hooki do tej pory: XDP i socket bind hook) i wywoływać różne pomocnicze API ujawnione przez podkładkę eBPF, która wewnętrznie opakowuje publiczne API jądra Windows, umożliwiając korzystanie z eBPF w istniejących wersjach systemu Windows. Z czasem dodamy więcej haków i pomocników.

Efektem końcowym będzie specyficzne dla Windows środowisko hostingowe dla eBPF, które pozwoliłoby programistom Windows korzystać z programów eBPF o otwartym kodzie źródłowym bez konieczności przekodowywania.

Zapoznaj się z Projekt ebpf-for-windows na GitHub tutaj.

Więcej na tematy: eGMP, Microsoft, Okna 10

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *