LSM 属性/上限実装のユーティリティーや使用法を見るのに問題があります。
私は私の懸念と質問を表現するためにいくつかの類似コードをまとめました。 (p 3)の図に従ってモデル化されます。 https://www.kernel.org/doc/ols/2002/ols2002-pages-604-617.pdf
カーネルアクセスチェック(おおよそ)とLSM呼び出し:
DAC
op:__? // ? what operation would pass a DAC check yet not the LSM hook ?
file:___
perms: u.. g.. o..
euid:100
egid:500
OK ----> LSM hook ( args )
1) I don't know the args here,
2) Regardless of the args I can't make out what operation would pass a DAC check
and be restricted here and why?
? read file ? allready handled by DAC
? network device ? allready handled by DAC, it's a file.
? execution ? x bit , allready handled
? executing a specific function ? no function call references here
? executing a specific syscall ? would be handled on exec on the target (read, write etc..)
?
**What exactly can the LSM hook accomplish here that DAC hasn't allready addressed ??**
Answers are welcome.
sp
私はコーダーがsetuidルートを使用せずにいくつかのCAP属性を使用してより安全な特権の昇格のためにこれを行うようにすることについての議論を読んだが、個人的に動作の変更に依存したり、特権の確認をフックしたりする専門家ではありません。マシンセキュリティ私が実行しているコードの整合性を考えると、私だけであるようです。
また、これはLSMの意図ではないという内容も読みました。ここ
設計上の問題は解決されますが、現在のDAC権限確認の正確な目的は依然として不明です。フックがある理由は説明されていますが、DACよりも重要なタスクを実行するためにフックを効果的に使用する方法については説明しません。
答え1
この機能は setuid に似た特権エスカレーション階層ですが、より細かく分類されています。たとえば、プログラムはCAP_NET_RAW権限を取得するためにフルルートレベルのアクセスを必要としません。これは「必要最小限の権限」とサーバー制御の面で大きな進歩なのでいいねただし、必須アクセス制御ではありません。特権の上昇です。
SELinuxはタグの概念とタグ間の権限を研究しています。そのためhttpd
、プロセスに「Webサーバー」ラベルを付け、Webツリー内のすべてのファイルに「Webファイル」ラベルを付けてから、「Webサーバーラベルを持つプロセスはWebファイルのみを読み取ることができます」を付与できます。
このラベル設定は、既存のファイルシステム権限とACL権限の上に設定されます。ファイルが誰でも読むことができる場合でも、SELinuxは否定的なそれにアクセスしてください。プロセスへのアクセスを許可するには、ファイルシステム権限(DAC)とSELinux(MAC)権限を渡す必要があります。
ビジネスの観点から見ると、eTrust Access Control(またはControl Minder、または今は何と呼んでも)検索エンジン最適化システム)は別のMAC層です。これは、コンテンツを制御するためにタグを使用しませんが、パスで定義されたルールを許可し、そのルールがルールで使用されている場合はプログラムをチェックサムします。これはSELinuxタグよりも柔軟です(そしてクロスプラットフォームです(例:Solaris、AIX、HPUX))。繰り返しますが、これはファイルシステムDAC層の上にあり、両方の当事者が要求を承認する必要があります。