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
160
カーネルレベルでTwitterを禁止しよう
Yuto Takamune
July 10, 2023
Tweet
Share
More Decks by Yuto Takamune
See All by Yuto Takamune
GPT-3.5 Turbo をファインチューニングして自分のクローンを作った話
shinbunbun_
0
230
RustのLINEBot SDKを自作した話
shinbunbun_
0
860
セキュリティキャンプ2023 Y3分散合意ゼミ 最終発表
shinbunbun_
0
2.6k
NixOSでもご自宅k8sがしたい!
shinbunbun_
2
2.4k
CRDTで始めるコンフリクトしないデータ同期
shinbunbun_
0
280
Haskell初心者がHaskellの楽しさについて語る
shinbunbun_
0
150
Rustで楕円曲線暗号の署名アルゴリズムをフルスクラッチ実装してみた話
shinbunbun_
0
760
IEEE802.1X認証を導入してみた
shinbunbun_
0
190
UBICの食材管理APIを作った話
shinbunbun_
0
170
Other Decks in Programming
See All in Programming
Why Prism?
kddnewton
3
240
メモリ最適化を究める!iOSアプリ開発における5つの重要なポイント
yhirakawa333
0
370
Web技術を駆使してユーザーの画面を「録画」する
yukukotani
13
6.3k
Amebaチョイス立ち上げの裏側 ~依存システムとの闘い~
daichi_igarashi
0
220
connect-go で面倒くささと戦う / 2024-08-27 #newmo_layerx_go
izumin5210
2
600
Regular Expressions, REXML, Automata Learning
makenowjust
0
180
最高の構文木の設計 2024年版
yui_knk
7
2.4k
Meet BrowserEngineKit
swiftty
0
190
ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained
petamoriken
3
370
デザインシステムとコンポーネント指向によるフロントエンド開発プロセスの革新 / Innovation in Frontend Development Processes through Design Systems and Component-Oriented Architecture
nrslib
7
5k
What is Parser
yui_knk
4
250
ウォンテッドリーにおけるモバイルアプリ開発 / iOSDC Japan 2024 Sponsor Session
kubode
0
220
Featured
See All Featured
WebSockets: Embracing the real-time Web
robhawkes
59
7.3k
Unsuck your backbone
ammeep
667
57k
How to Ace a Technical Interview
jacobian
275
23k
How to name files
jennybc
75
97k
It's Worth the Effort
3n
182
27k
BBQ
matthewcrist
83
9.1k
Large-scale JavaScript Application Architecture
addyosmani
508
110k
Intergalactic Javascript Robots from Outer Space
tanoku
268
26k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
190
16k
Building Better People: How to give real-time feedback that sticks.
wjessup
359
18k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
3k
We Have a Design System, Now What?
morganepeng
48
7.1k
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まだ入門しただけなので、もっと深いところまで触っていきたい