BPF LSM
BPF LSM とは何ですか?
BPF LSM検証済み eBPF プログラムを LSM フックに装着し、システムコール・ファイル・ソケット・capability に対するカスタム MAC 判定を強制できる Linux Security Module。
BPF LSM(BPF Linux Security Module)は 2020 年に Linux 5.7 へマージされ、Google の KP Singh 氏らが中心となって開発しました。Linux Security Module フレームワークは inode_permission、socket_connect、bprm_check、file_open、capable など数百のセキュリティフックを定義しており、SELinux・AppArmor・Smack・Tomoyo といった従来の LSM はこれを利用しています。BPF LSM は検証済みの eBPF プログラムを同じフックに実行時にアタッチでき、ポリシーをカーネルへのパッチではなくコンパイル済みバイトコードとして配信できます。Cilium Tetragon、KubeArmor、bpfd といったツールが BPF LSM を用いて MAC 制御を実装し、例えばコンテナ内で /tmp 下バイナリの execve を拒否したり、機微なプロセスへの ptrace を阻止したりしつつ、ホットロードと cgroup 認識を維持します。SELinux や AppArmor を置き換えるのではなく補完するものです。
● 例
- 01
KubeArmor 経由で BPF LSM プログラムを投入し、Kubernetes Pod 内で /usr/bin 以外のバイナリの execve を拒否する。
- 02
Tetragon を用いて bpf/security_ptrace_access_check フックでハードニング済みプロセスへの ptrace 試行を遮断する。
● よくある質問
BPF LSM とは何ですか?
検証済み eBPF プログラムを LSM フックに装着し、システムコール・ファイル・ソケット・capability に対するカスタム MAC 判定を強制できる Linux Security Module。 サイバーセキュリティの ID とアクセス カテゴリに属します。
BPF LSM とはどういう意味ですか?
検証済み eBPF プログラムを LSM フックに装着し、システムコール・ファイル・ソケット・capability に対するカスタム MAC 判定を強制できる Linux Security Module。
BPF LSM はどのように機能しますか?
BPF LSM(BPF Linux Security Module)は 2020 年に Linux 5.7 へマージされ、Google の KP Singh 氏らが中心となって開発しました。Linux Security Module フレームワークは inode_permission、socket_connect、bprm_check、file_open、capable など数百のセキュリティフックを定義しており、SELinux・AppArmor・Smack・Tomoyo といった従来の LSM はこれを利用しています。BPF LSM は検証済みの eBPF プログラムを同じフックに実行時にアタッチでき、ポリシーをカーネルへのパッチではなくコンパイル済みバイトコードとして配信できます。Cilium Tetragon、KubeArmor、bpfd といったツールが BPF LSM を用いて MAC 制御を実装し、例えばコンテナ内で /tmp 下バイナリの execve を拒否したり、機微なプロセスへの ptrace を阻止したりしつつ、ホットロードと cgroup 認識を維持します。SELinux や AppArmor を置き換えるのではなく補完するものです。
BPF LSM からどのように防御しますか?
BPF LSM に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
BPF LSM の別名は何ですか?
一般的な別名: LSM BPF, eBPF LSM。
● 関連用語
- defense-ops№ 367
eBPF セキュリティ
Linux カーネル内で動作する eBPF(extended Berkeley Packet Filter)プログラムを用い、プロセス、ネットワーク、システムコールに対する深いオブザーバビリティとポリシー実施を実現するセキュリティ技術。
- identity-access№ 615
Linux Capabilities
POSIX.1e ドラフトに基づく Linux カーネル機能で、全能の root 権限を 40 以上の細分化された capability に分割し、プロセスやファイルへ個別に付与できるようにする。
- identity-access№ 585
カーネルモードとユーザーモード
現代の OS が CPU 上で強制する 2 つの特権レベル。カーネルモード(スーパーバイザ、リング 0)はハードウェアへのフルアクセスを持ち、ユーザーモード(リング 3)は自身のアドレス空間と一部命令のみに制限される。
- cryptography№ 1006
SELinux
米国家安全保障局(NSA)が開発した Linux 用強制アクセス制御フレームワーク。LSM フックとタイプ強制ポリシーで実装される。
- cryptography№ 053
AppArmor
Linux 向けのパスベース強制アクセス制御システム。Ubuntu と SUSE が個別プログラムを制限するため、SELinux のより簡素な代替として採用している。
- cloud-security№ 600
Kubernetes セキュリティ
Kubernetes クラスター(API サーバー、コントロールプレーン、ノード、ワークロード、ネットワーク)を構成ミス・侵害・横移動から守ること。