ハクソク

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

インタラクティブ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や本があったら絶対買うよ(ソースコードも全部ね)。世界を変えたいなら、ちょっとしたヒントだよ :)