世界を動かす技術を、日本語で。

インタラクティブeBPF

概要

eBPF の学習を、 ブラウザ上 で実践的に体験できる教材の紹介。 各章ごとに ハンズオン演習 を通じて、eBPFの基礎から応用まで習得可能。 システムコールのトレースネットワーク接続の追跡 など、実用的なトピックを網羅。 問題や改善案は GitHubリポジトリ で管理。 教材の仕組みや動作原理も案内。

eBPFハンズオン教材の概要

  • eBPF の理解と習得を目的とした ブラウザベース の学習プラットフォーム
  • コードの記述・コンパイル・実行 をすべてWebブラウザ上で完結
  • 各章で 理論解説と演習問題 を組み合わせた構成

Chapter 0: Introduction

  • eBPFの 概要と特徴 の解説
  • プラットフォームの 全体像 の説明

Chapter 1: Concept familiarization

  • プロセスコンテキスト の理解
  • イベントデータの読み取り 手法
  • システムコールのトレース 方法
  • システムコール配列の解析 手順

Chapter 2: Stateful eBPF

  • eBPF Maps複数プログラム の活用
  • システムコールバッファ の読み取り
  • システムコール間の状態追跡
  • ネットワーク接続の追跡 技術

Chapter 3: Kernel probes

  • カーネルプローブ の基礎解説
  • TCPパケットの読み取り 演習

改善・提案・仕組み解説

  • 不具合報告新規演習案GitHubリポジトリ でIssue作成
  • プラットフォームの 動作原理裏側の仕組み も公開
  • 学習者の フィードバック を積極的に反映する運営方針

Hackerたちの意見

サイトをシェアしてくれてありがとう!こういうプラットフォームを作りたいと思ってたんだけど、作るのがすごく楽しかったよ。質問や新しいエクササイズのアイデアがあったら教えてね。

これめっちゃクールだね。デプロイに関する「レッスン」を追加する予定はあるの?例えば、libbccとCO-REの使い方とか。

これを作ってくれてありがとう!試すのが楽しみだよ!

いいね!eBPFに触れてみたかったから、これは試すのに良さそう。ありがとう!

カーネルプログラミングの革新的な方法だけど、eBPFって攻撃面がめっちゃ広くない?ルートキット開発者にとっては天国みたいなもので、eBPFの機能を使って隠れるのが完璧にできるし。

そうだけど、今はebpfプログラムをロードするためにcap_bpfが必要だよ。

それに、バリファイアは現在もアクティブに開発中で、より多くの正当なプログラムを検証するだけでなく、エクスプロイトやサイドチャネルを持つプログラムを拒否するためにも進化してるよ(デッドコードの排除やALUのサニタイズみたいなランタイム防御もあるし)。

@deivid これともっと例を含むPDFや本があったら絶対買うよ(ソースコードも全部ね)。世界を変えたいなら、ちょっとしたヒントだよ :)