Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
カーネルレベルでTwitterを禁止しよう
Search
Yuto Takamune
July 10, 2023
Programming
0
210
カーネルレベルでTwitterを禁止しよう
Yuto Takamune
July 10, 2023
Tweet
Share
More Decks by Yuto Takamune
See All by Yuto Takamune
GPT-3.5 Turbo をファインチューニングして自分のクローンを作った話
shinbunbun_
0
290
RustのLINEBot SDKを自作した話
shinbunbun_
0
1.3k
セキュリティキャンプ2023 Y3分散合意ゼミ 最終発表
shinbunbun_
0
3.2k
NixOSでもご自宅k8sがしたい!
shinbunbun_
2
3.1k
CRDTで始めるコンフリクトしないデータ同期
shinbunbun_
0
440
Haskell初心者がHaskellの楽しさについて語る
shinbunbun_
0
180
Rustで楕円曲線暗号の署名アルゴリズムをフルスクラッチ実装してみた話
shinbunbun_
0
1.2k
IEEE802.1X認証を導入してみた
shinbunbun_
0
240
UBICの食材管理APIを作った話
shinbunbun_
0
200
Other Decks in Programming
See All in Programming
AtCoder Heuristic First-step Vol.1 講義スライド(山登り法・焼きなまし法編)
takumi152
3
980
リアクティブシステムの変遷から理解するalien-signals / Learning alien-signals from the evolution of reactive systems
yamanoku
2
1k
本当だってば!俺もTRICK 2022に入賞してたんだってば!
jinroq
0
250
私の愛したLaravel 〜レールを超えたその先へ〜
kentaroutakeda
12
3.6k
AtCoder Heuristic First-step Vol.1 講義スライド
terryu16
2
1k
remix + cloudflare workers (DO) docker上でいい感じに開発する
yoshidatomoaki
0
120
なぜselectはselectではないのか
taiyow
2
310
Go1.24 go vetとtestsアナライザ
kuro_kurorrr
2
480
Modern Angular:Renovation for Your Applications @angularDays 2025 Munich
manfredsteyer
PRO
0
140
バックエンドNode.js × フロントエンドDeno で開発して得られた知見
ayame113
5
1.3k
GDG Super.init(version=6) - From Where to Wear : 모바일 개발자가 워치에서 발견한 인사이트
haeti2
0
560
DomainException と Result 型で作る型安全なエラーハンドリング
karszawa
0
150
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Docker and Python
trallard
44
3.3k
Side Projects
sachag
452
42k
Scaling GitHub
holman
459
140k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
31
4.8k
YesSQL, Process and Tooling at Scale
rocio
172
14k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.6k
Site-Speed That Sticks
csswizardry
4
450
It's Worth the Effort
3n
184
28k
Building an army of robots
kneath
304
45k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Transcript
カーネルレベルでTwitterを禁 止しよう 会津大学 学部3年 しんぶんぶん
自己紹介 • 名前: しんぶんぶん • 所属: 会津大学学部 3 年 •
Twitter: @shinbunbun_, @4fa19623 • Rust いっぱいちゅき • LINE API Expert / seccamp ’23 / Cybozu labyouth 13th
みなさん、Twitterやりすぎてませんか?
Twitterを禁止する方法 • Chrome拡張 • ファイアウォールでブロック • etc…
実はそれ、カーネルレベルでブロックできます
そう、eBPFならね!
eBPFとは • カーネルのソースコードを変更したり、カーネルモジュールをロードしたりすることな く、安全にカーネルの機能を拡張できる • ユーザースペースはGo,C++, Rustなどでかける • eBPFプログラム自体はCやRustでかける
つまり...
全部Rustでかける!!!
今回作ったもの • ayaというRustのライブラリを使用 • 公式チュートリアルにXDPを使ってパケットのdropをするコードが載っているのでそ れを使用 • コード: https://github.com/aya-rs/book/tree/main/examples/xdp-drop
実際に動かしてみよう!
まとめ • やっぱり低レイヤーやりたかったらRustめちゃめちゃ良いなと思った • eBPFまだ入門しただけなので、もっと深いところまで触っていきたい