Slide 1

Slide 1 text

カーネルレベルでTwitterを禁 止しよう 会津大学 学部3年 しんぶんぶん

Slide 2

Slide 2 text

自己紹介 ● 名前: しんぶんぶん ● 所属: 会津大学学部 3 年 ● Twitter: @shinbunbun_, @4fa19623 ● Rust いっぱいちゅき ● LINE API Expert / seccamp ’23 / Cybozu labyouth 13th

Slide 3

Slide 3 text

みなさん、Twitterやりすぎてませんか?

Slide 4

Slide 4 text

Twitterを禁止する方法 ● Chrome拡張 ● ファイアウォールでブロック ● etc…

Slide 5

Slide 5 text

実はそれ、カーネルレベルでブロックできます

Slide 6

Slide 6 text

そう、eBPFならね!

Slide 7

Slide 7 text

eBPFとは ● カーネルのソースコードを変更したり、カーネルモジュールをロードしたりすることな く、安全にカーネルの機能を拡張できる ● ユーザースペースはGo,C++, Rustなどでかける ● eBPFプログラム自体はCやRustでかける

Slide 8

Slide 8 text

つまり...

Slide 9

Slide 9 text

全部Rustでかける!!!

Slide 10

Slide 10 text

今回作ったもの ● ayaというRustのライブラリを使用 ● 公式チュートリアルにXDPを使ってパケットのdropをするコードが載っているのでそ れを使用 ● コード: https://github.com/aya-rs/book/tree/main/examples/xdp-drop

Slide 11

Slide 11 text

実際に動かしてみよう!

Slide 12

Slide 12 text

まとめ ● やっぱり低レイヤーやりたかったらRustめちゃめちゃ良いなと思った ● eBPFまだ入門しただけなので、もっと深いところまで触っていきたい