HeadlinesBriefing favicon HeadlinesBriefing.com

メモ化でeBPFのCPUコストを90%削減

Hacker News •
×

兄と私は、eBPFセキュリティエージェントを最初から本当に高速に設計するために多くの時間を費やしましたが、最近、メモ化を使用することでさらに高速にできることを発見しました!数週間前、eBPFコードをプロファイリングし、保護の中で最も高価な部分は実際にはポリシーを強制することではなく、特定のファイルオープンにどのポリシーが適用されるかを判断することであることを発見しました。

私たちのポリシーはパスベースであるため、eBPFはファイルオープン時にトリガーされるLSMフックを活用しています。次にパスを再構築し、親のdentryをたどり、ファイルまたはその祖先ディレクトリに一致するポリシーがあるかどうかを確認します。これは機能しますが、パフォーマンスが良くなく、既に見たファイルに対して多くの作業を繰り返してしまいます。

私たちの解決策は、マウントネームスペースID、マウントID、inode番号の3つのフィールドキーを使用して、各inodeに適用されるポリシーをキャッシュすることでした。キャッシュ値はaccess_indexとキャッシュ状態を格納します。このキャッシュアプローチはカーネルのCPUコストを約90%削減しました。効率的な検索のために、最大10000エントリのLRUハッシュマップを使用しています。

キャッシュにより、繰り返しのファイルアクセスに対する冗長なパスのたどりが防止され、Postgresなどのデータベースワークロードで同じファイルパスを頻繁に再アクセスする場合に特に役立ちます。オープンソースの実装はhttps://github.com/bomfather/agentで入手可能です。

主要エンティティ:人物:bomfather