問題タブ [linux-security-module]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - セキュア ブートとカーネル ロックダウンの間に関係はありますか?
今までグーグルで調べた限りでは、2 つの機能は独立しているように見えます。
セキュア ブートはカーネル署名に依存しているため、有効な場合、ブートローダーは (カーネル/単一イメージ アプリケーション) 署名をチェックし、カーネル開始関数を呼び出します。
ロックダウンは、「ロックダウン コードは、起動の早い段階でカーネルをロックダウンできるようにすることを目的としていますが、まだ機能していないほど早い段階ですkmalloc()
。特権ユーザーでさえ、カーネル メモリに存在する機密データにアクセスできないようにします。」
ロックダウンは、カーネルが有効であると認証された後、ブート パラメーター/sysfs 制御を介して行われます。
私の理解は正しいですか?
そのため、セキュア ブートを無効にしても、ロックダウン機能は引き続き機能するはずです。
linux-kernel - Dynamically loadable Linux security modules
I have seen many articles on LWN about allowing for dynamically loadable Linux security modules (LSM), but it is impossible to find concrete information on how it can be done. The LSM hooks (I don't know if this is the right term) aren't exported in the kernel anymore, but their addresses can be retrieved with kallsyms_lookup_name
and then assigned to function declarations.
There are some mentions of LSM hooks not being unloadable, but is this true? What does it even mean? If a Linux loadable kernel module registers some hooks, is it unable to unregister them later? Why is this case? Is there a workaround or a way to force them to unload?
Do dynamically loadable LSMs have to be written differently than built-in LSMs? Or do both use the same conventions and interfaces?
c - Linux カーネルの bprm_check_security から argv を取得します。ドキュメントは間違っていますか?
Linuxカーネルのドキュメントによると:
bprm_check_security
: このフックは、バイナリ ハンドラの検索が開始される時点を仲介します。これにより、前の呼び出しbprm->cred->security
で設定された値に対するチェックが可能になります。リストと リストcreds_for_exec
はで確実に利用できます。このフックは、1 回の実行中に複数回呼び出すことができます。 構造が含まれています。argv
envp
bprm
execve
bprm
linux_binprm
ただし、argv
とenvp
(たとえばbprm->mm->arg_start
) の値は、実際にNULL
はこの時点にあります。これは、これらの値が で設定され、フックの後setup_arg_pages
に呼び出されるためです。また、構造体はまだ古いプロセスを指しているため、これらのデータを取得するために使用することはできません。current
私の質問は次のとおりです。ドキュメントは正しくありませんか、それともこの時点で引数を確実に取得する別の方法はありますか?
補足:この投稿で既に非常によく似た質問がされていることは知っていますが、この投稿では から argv を取得する方法を尋ねているため、重複しているとはbprm_check_security
思いません。 doc から来ています。また、この投稿には正解がありませんでした。