過去問ドリル

LinuCレベル3 セキュリティスペシャリスト アクセスおよび権限制御の強化 問12

アクセスおよび権限制御の強化/システムコールの制御

eBPFの基本的な仕組みに関する説明として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「アクセスおよび権限制御の強化」に対応。実際の試験問題ではありません)

正解:B

解説

eBPFは、ユーザー空間から読み込んだ小さなプログラム(BPFプログラム)をカーネル内で実行する仕組みです。読み込み時にカーネル内の検証器(verifier)が、無限ループや不正なメモリアクセスが無いこと等を確認し、通過したものだけが(多くの場合JITコンパイルされて)kprobe・トレースポイント・ネットワークのフック等に接続されて動きます。再起動やカーネルモジュールを使わずに、システムコールの監視・トレーシング・セキュリティ制御などを追加できるのが特徴で、bpftraceやBCCといったツールがこれを利用しています。

選択肢ごとの解説

  • A誤り。BPFプログラムはbpf(2)システムコールで読み込まれ、カーネルモジュールではありません。署名の有無にかかわらず検証器による確認を受けます。
  • B正しい。検証器で安全性が確認されたプログラムだけが、kprobeやトレースポイント等のフックに接続されてカーネル内で実行されます。
  • C誤り。BPFプログラムはカーネル内で実行されます。ptraceでシステムコールを横取りするのはstraceなどの方式です。
  • D誤り。eBPFは実行中のカーネルへ動的に読み込めるのが利点で、再構築や再起動は不要です。
LinuCレベル3 セキュリティスペシャリストの問題を演習モードで解く