Peeking into the BPF verifier
以往要近幾年來 (e)BPF 技術在網路、程式追蹤 (tracing)、系統安全等領域展露頭角。它翻轉了原本自訂 Linux 核心行爲很困難這件事,把它一下子變得簡單許多。其中一大原因就是跟傳統的做法(寫 Linux 核心模組)相比,(e)BPF 不會造成系統當機或也不用擔心它導致系統安全問題,而這大部分都要歸功於 Linux 核心裡內建的驗證邏輯。
然而 Linux 核心到底如何驗證 (e)BPF 程式的呢?就讓我們來一窺究竟吧!
想聽這個演講不需要對 Linux Kernel 有深度認識,但因爲需要看程式碼、所以需要對 C 語言有基本的理解(如果你用 bcc 或 libbpf 寫過 BPF 程式那基本上就夠了),例如需要知道 control-flow (e.g. if-else, while, for), array, struct, function, pointer 等概念。如果另外還知道一點組合語言或計算機概論那會更有幫助、但並不是必須。
不管只是單純對 BPF 有興趣、BPF 程式開發者及使用者或是資安研究者都歡迎來聽。