現在、Linux LSM (カーネル 4.3.5) のソース コードをアップグレードして、Linux カーネルの最新バージョンと互換性を持たせています。
コードを正常に更新したので、GCC コンパイラは正常にコンパイルされますが、カーネルは起動しません。
この時点まで、モジュールの定義で LSM MAJOR フラグまたは EXCLUSIVE フラグを使用していませんでしたが、動作していないカーネルを起動すると、SMACK および SELinux (どちらがメジャーとして選択されているかによって異なります) がエラーになり、トレースで kmem_cache_free に言及します。私の理解では、このため、私の LSM はレガシー メジャーおよび排他的として実装する必要があります。これは、SMACK や Selinux が私の LSM とうまく連携していないためです。(注意として、SMACK と Selinux はどちらも排他的およびレガシーのメジャー フラグを使用します)
私が開発している LSM は、xattrs を使用してルールを inode に保存し、LSM はルールに基づいて inode を仲介します。
私が読んだすべてのドキュメントで、セキュリティ blob がポップアップし続けています。今では、それらはカーネル データ構造であり、inode にのみアクセスしている場合は実装する必要はないということです。
kmem_cache_create()
LSM は、SELinux も 4.3.5 カーネル バージョンで使用したカーネル キャッシュを使用しますが、これはセキュリティ blob ですか?
要点をまとめると:
このコンテキストでのメジャー LSM またはマイナー LSM の使用例は何ですか?
セキュリティ BLOB は の使用に取って代わります
kmem_cache_create()
か?