Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

ギャルのパンティおくれ

Avatar for 北村 北村
September 23, 2025
52

 ギャルのパンティおくれ

Avatar for 北村

北村

September 23, 2025
Tweet

Transcript

  1. 自己紹介 • 出身 ◦ 大阪府枚方市 ◦ 3年前から札幌住み • 業務 ◦

    SIer ◦ デバイスドライバ関係 • 趣味 ◦ テニス、フットサルやってます ◦ お笑いが好きです
  2. eBPF(XDP) という技術を使って、NICが受け取ったパケットを監視する。 ウーロンの正体は以下の動作をする eBPF(XDP) プログラム 1. TCPペイロードが 「願いを言え ……」のパケットを待つ 2.

    パケットを書き換えて、送り返す。 以下の3点を書き換えている。 • TCPペイロードを「ギャルのパンティおくれ」に書き換え • 送信元・先の MAC/IPアドレス、ポートを入れ替え • TCPのSEQ/ACK、チェックサムを再計算して書き換え 何が起きたのか
  3. eBPF (Extended Berkeley Packet Filter) とは? eBPFはLinux カーネル内のVMでバイトコードを実行できる機能。 • ユーザ空間からバイトコードをロードする

    • ロードされたコードはカーネル内のVMで動作する • ロード時にVerifier(検証機)が危険なプログラムを弾くから安全 ◦ 例:無限ループ、不正なメモリアクセスなど • 柔軟で多様な用途 ◦ パケットモニタリング ◦ ファイアウォール ◦ ロードバランサ ◦ システムコールの追跡 などなど この蜂は eBee という名前 自分で書いたプログラムを カーネルで安全に実行できるのが良さ と理解しています(僕は)
  4. プログラムの種類 eBPFプログラムには種類があります。 • XDP : NICがパケットを受信したときに◦◦する • TC : ネットワークスタックを通過したときに◦◦する

    • kprobe : 特定のカーネル関数が実行されたときに◦◦する 他にも色々あります。 ◦◦の部分を自分で書く
  5. XDPとは NICがパケットを受信したときに、任意の処理を加える。 XDPプログラムはXDP Actions(終了コード)によってパケットを制御する。 サポートされているXDP Actionsは以下 • XDP_PASS : パケットを通過させる

    • XDP_TX : パケットを受信したNICから送信 • XDP_REDIRECT : パケットを別のNICから送信 • XDP_DROP : パケットを破棄する • XDP_ABORTED : プログラムがエラーの時に使う。パケットは破棄する