web-dev-qa-db-ja.com

SELinuxのコンテキストでのマップアクセスとは何ですか

SELinuxで問題が発生し、SELinux is preventing sh from map access on the file /bin/busybox.

そしてそれは私に教えてくれます

If you believe that sh should be allowed map access on the busybox file by default.
Then you should report this as a bug.

マップアクセスが実際に何を意味するのかを教えてくれる場所がどこにも見つからないため、これがデフォルトの動作であるかどうかを判断するのが困難になっています。

マップアクセスとは何ですか?それが何を意味するかについてのドキュメントはありますか?

3
Qwertie

マッピングとは、メモリマッピング( mmap(2) を使用するファイル)を指します。 パーミッションとオブジェクトクラス のSELinux wikiページはほとんどのSELinuxパーミッションを文書化していますが、2013年以降更新されておらず、マップパーミッションは含まれていません。

コミットメッセージ[1][2] さらに詳細を提供します。

ファイルが開かれ、read(2)/ write(2)などのシステムコールを介して読み取りまたは書き込みが行われると、selinux_file_permission()を介して各読み取り/書き込み操作のアクセスが再検証されるため、プロセスコンテキスト、ファイルコンテキスト、または、アクセスが許可されなくなるような方法でポリシーが変更されます。ファイルを開いてmmap(2)を介してメモリをマップし、その後メモリに直接読み取りまたは書き込みを行った場合、現在、アクセスを再検証または取り消す方法はありません。 mmap(2)での個別のマップ許可チェックの目的は、すべてのアクセスが再検証されることを保証する必要がある特定のファイルのメモリマッピングを禁止するポリシーを許可することです。これは、実行時にファイルのラベルが変更されることが予想されるシナリオで特に役立ちます。状態の変化を反映するため(クロスドメインソリューション、データコピーなしの確実なパイプラインなど)。

3
sebasth