9章セキュリティ用eBPF

ここまで、eBPFがシステム全体のイベントをどのように観測し、イベントに関する情報をユーザ空間のツールにどうやって報告しているかを説明してきました。本章では、不正な活動を検出・禁止するeBPFベースのセキュリティツールを作成するためにイベント検出の概念を活用する方法を説明します。まずはセキュリティと他のタイプの可観測性の違いは何なのかについて理解していきましょう。

[注記]

本章のサンプルコードはGitHubリポジトリ(http://github.com/lizrice/learning-ebpf)のchapter9ディレクトリからダウンロードできます。

9.1 セキュリティの可観測性に必要なポリシーとコンテクスト

セキュリティツールは、一般的なイベントを観測するためのツールと違い、通常の状態で起こるイベントと、不正な活動が行われていると考えられるイベントを区別しなければなりません。例えば、通常の処理の一環としてローカルファイル/home/<username>/<filename>にデータを書き込むアプリケーションを考えます。アプリがこのファイルに書き込んでいる限りはセキュリティの観点で懸念はありません。しかし、このアプリがLinuxのマシン内にあるセキュリティ上重要なファイルに書き込んだ場合は管理者に通知するのが望ましいでしょう。例えばアプリが/etc/passwdに保存されたパスワード情報を更新する必要があるとは思えません。

ポリシーはシステムが完全に機能しているときの通常の振る舞いだけではなく、エラー時に想定されている振る舞いについても考慮する必要があります。例えば、物理ディスクの容量がなくなったら、アプリケーションはこの状況をネットワークメッセージを通してシステム管理者に警告するでしょう。このようなネットワークメッセージはセキュリティイベントとしてみなしてはいけません。この種のメッセージは非常時のものですが、不正を疑う状況ではありません。エラー時の振る舞いを考慮に入れると効果の高いポリシーの作成が難しくなります。これについては本章の後半で再び触れます。 ...

Get 入門 eBPF ―Linuxカーネルの可視化と機能拡張 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.