KubernetesでeBPFを使ってCopy Fail問題を回避する
(github.com/iwanhae)K8sを運用していたところ、この問題について緊急対応の依頼が入ったので、手頃なものを1つ作りました。
Copy Failという、AF_ALGを使うソケットを開くだけでK8s Pod内からホストのroot権限を奪取できる脆弱性が見つかりました。
https://ja.news.hada.io/topic?id=29031
カーネルパッチは出ていますが、多くの運用環境ではすぐに適用しにくい状況の中、最近のカーネルではこの機能がkernel built-inとして有効化されていて、カーネルモジュールの無効化もできませんでした。
この問題をもう少し簡単に解決するため、eBPFで関連するfunction callが検出されたら
- (カーネルが対応していれば)そのfunction callを失敗させる
- (対応していなければ)そのプロセスをkillしてしまう
プログラムです。
単一のK8s DaemonSetをデプロイするだけで使えるようにしてあるので、必要な方がいれば持っていって使ってください〜
1件のコメント
ありがとうございます!
FYI) Docker seccomp profile も @achimnol さんが作ってくださいました。 https://github.com/moby/profiles/issues/19