
eBPFを使用してLinuxカーネル内で動作するSigmaルールエンジン。予防機能に焦点を当てています。
🛡️ owLSM は Linux 向けの防止と検出のゴールドスタンダードを目指しています 🛡️
owLSM は、防止に重点を置いたステートフルな Sigma ルールエンジンを実装する eBPF LSM エージェントです。
プロジェクトの概要: owLSM は主に以下の3つに焦点を当てています:
1) eBPF LSM を介して実装された Sigma ルールエンジンを使用した防止機能。
2) ステートフルな防止機能のための eBPF プローブ間のデータ相関。
3) 各イベントにセキュリティ専門家が必要とするすべてのコンテキストが含まれるセキュリティ重視のシステム監視。
対象者: Linux システムを防御するチーム、Linux/クラウドセキュリティソリューションを提供する企業、複雑な eBPF ソリューションの実装例を求めている開発者やエージェント。
現在の利用環境: セキュリティ企業 Cybereason および LevelBlue の顧客。
プロジェクト作成の理由: Falco、Tetragon、KubeArmor などのプロジェクトを長年使用してきましたが、同じ課題に繰り返し直面しました。これらのソリューションは防止(強制)機能をほとんどまたはまったく提供しません。強制ポリシーを提供するものでも、部分文字列マッチング、正規表現マッチング、完全なプロセスコマンドマッチング、悪意のあるプロセスの親プロセスの終了などの基本的な機能が欠けています。
私たちはまったく異なるアプローチを取ることにしました:
1) 標準の Sigma ルール構造を使用し、可能な限り多くの Sigma ルール機能をサポートする(常に追加中)。
2) 現在の eBPF LSM プロジェクトの核心的な制限であるステートレス性を解決する。強制ルールで利用可能なデータのほとんどは、現在のフックからのみ取得されます。
私たちは、複数の連続したフックポイントを使用し、それらの間でデータを相関させるステートフルな eBPF プログラムを作成しました。これにより、防止判断の時点でユーザーは必要なすべてのデータを利用できます。このステートフルなアプローチは、例えば書き込みイベントを監視する際に、書き込みを開始したシェルコマンドに基づいて防止ルールを指定できるほどにまで発展させました。
スターを付けて、私たちと共に世界を守り、成長させてください ⭐
クラウドサポートは将来提供予定です
# Pull the Docker image
docker pull ghcr.io/cybereason-public/owlsm-ci:latest
# Start the build container
docker run -it --rm -v "$PWD":/workspace -w /workspace ghcr.io/cybereason-public/owlsm-ci:latest bash
# Build owlsm and rules_generator binaries
make -j$(nproc)
# Build unit tests
make test -j$(nproc)
# Exit container, can't run owlsm or the tests inside the docker
exit
Do this outside the docker
cd build/owlsm/bin
# run without config
sudo ./owlsm
# "-c" run with config
sudo ./owlsm -c /config/path.json
# "-e" excluded pid's (usually we want to exclude parent processes)
sudo ./owlsm -c /path/to/config.json -e 123 -e 456
# "-p" protected pid's. These pid's are protected by the anti-tamepering
sudo ./owlsm -c /path/to/config.json -e 123 -e 456 -p 123 -p 789
# run owlsm and pass config via stdin (when you don't want to save your config file on the disk)
# owLSM expects to recive the config in under 10 seconds.
sudo ./owlsm --stdin
注記: owLSM の起動にはシステムによって 10~50秒 かかります。これは eBPF 検証器がすべてのプログラムをカーネルにロードする前に検証するためです。完了すると、owLSM は完全にアクティブになります。
Rules/README.md を参照
cd build/unit_tests/bin
# Run the unit tests
sudo ./unit_tests
owLSM を実行する前に、システムが要件を満たしていることを確認してください:
chmod +x scripts/check_compatibility.sh && ./scripts/check_compatibility.sh
自動化テストの実行については src/Tests/Automation/README.md を参照
owLSM プロジェクトに参加するには、Discord にアクセスしてください。
ご質問があれば、Discord で質問するか、関連する Issue を開いてください。
📖 プロジェクトの使い方、ルールの書き方、アーキテクチャの理解など、必要なすべての情報はドキュメントをご覧ください。
owLSM へのご貢献に興味を持っていただきありがとうございます!
ルール、規約、そして非常に役立つクールな AI ツールやエージェントについては、CONTRIBUTING.md をご確認ください。
owLSM は GNU General Public License v2.0 (GPL-2.0) の下でライセンスされています。
このプロジェクトには、それぞれ独自のライセンスを持ついくつかのサードパーティライブラリが含まれています(すべて GPL 互換)。詳細は THIRD_PARTY_LICENSES を参照してください。