Microsoftは、拡張Berkeley Packet Filter(eBPF)サポートをWindowsに導入するために取り組んでいます

読書時間アイコン 2分。 読んだ


読者は MSpoweruser のサポートを支援します。私たちのリンクを通じて購入すると、手数料が発生する場合があります。 ツールチップアイコン

MSPoweruser の編集チームの維持にどのように貢献できるかについては、開示ページをお読みください。 続きを読む

ZDNetレポート Microsoftは、Linuxセキュリティツールの拡張Berkeley Packet Filter(eBPF)をWindows10に導入するために取り組んでいます。

このツールは現在、Windows SubSystem for Linuxで実行できますが、Microsoftはネイティブサポートに取り組んでおり、ツールがカーネルコンテキストでコードを実行するため、あらゆる種類のセキュリティが複雑になります。

ただし、eBPFはネットワークのフィルタリング、分析、管理、およびシステムコールのフィルタリングとプロセスコンテキストのトレースに広く使用されており、Cilium、Falco、Traceeなどの複数のセキュリティアプリケーションの基盤を形成しているため、この作業は価値があります。 ハッブルやピクシーなどのKubernetes観測プログラム、およびClangなどのツールチェーン。

ebpf-for-windowsプロジェクトは、いくつかの既存のeBPFオープンソースプロジェクトを取得し、それらをWindowsで実行するための「接着剤」を追加することを目的としています。

図に示すように、既存のeBPFツールチェーン(clangなど)を使用して、さまざまな言語のソースコードからeBPFバイトコードを生成できます。 バイトコードは、任意のアプリケーションで使用することも、Libbpf APIを公開する共有ライブラリを使用するNetshコマンドラインツールを介して使用することもできますが、これはまだ進行中です。

eBPFバイトコードは、ユーザーモードで保護されたプロセス(カーネルコンポーネントが信頼するキーによって署名されたユーザーモードデーモンを信頼できるようにするWindowsセキュリティ環境)でホストされる静的ベリファイア(PREVAILベリファイア)に送信されます。 バイトコードがすべてのベリファイアチェックに合格した場合、(カーネルモード実行コンテキストのuBPFから)インタープリターにロードするか、(uBPF JITコンパイラーを介して)JITコンパイルして、カーネルモード実行にネイティブコードをロードすることができます。コンテキスト(ただし、HVCIについては下部のFAQを参照してください)。

カーネルモード実行コンテキストにインストールされたeBPFプログラムは、さまざまなフック(現在、XDPとソケットバインドフックのXNUMXつのフック)に接続し、パブリックWindowsカーネルAPIを内部的にラップするeBPFシムによって公開されるさまざまなヘルパーAPIを呼び出すことができます。 Windowsの既存のバージョンでのeBPFの使用。 今後、フックとヘルパーが追加されます。

最終的には、Windows開発者が再コーディングせずにオープンソースのeBPFプログラムを使用できるようにするeBPF用のWindows固有のホスティング環境になります。

チェックアウトします GitHubのebpf-for-windowsプロジェクトはこちら.

トピックの詳細: eGMP, マイクロソフト, 10窓

コメントを残す

あなたのメールアドレスは公開されません。 必須フィールドは、マークされています *