問題タブ [seccomp]
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.
kubernetes - デフォルトの secomp および apparmor プロファイルを有効にする、クラスタ レベル
クラスタ レベルで、Pod がデフォルトの secomp および apparmor プロファイルを使用できるようにすることはできますか?それとも、オブジェクトに innotation を挿入するために独自のアドミッション コントローラを作成する必要がありますか?
ユーザーに任せるという選択肢はありません。
linux - sigreturn は、SECCOMP_SET_MODE_STRICT で SIGKILL と SIGSTOP 以外のすべてのシグナルをどのようにブロックできますか?
man 2 seccompのセクションSECCOMP_SET_MODE_STRICT
では、次のように述べられています。
呼び出しスレッドは sigprocmask(2) を呼び出すことはできなくなりましたが、sigreturn(2) を使用して、SIGKILL と SIGSTOP 以外のすべてのシグナルをブロックできることに注意してください。
これを行う方法がわかりません。それsigreturn
はsyscall
この sigreturn() 呼び出しは、プロセスのシグナル マスクの変更、シグナル スタックの切り替え (sigaltstack(2) を参照) など、シグナル ハンドラを呼び出すために行われたすべての操作を元に戻します。
すなわち:
以前にユーザー空間スタックに保存された情報を使用して、
sigreturn() は、プロセスのシグナル マスクを復元し、スタックを切り替え、プロセスのコンテキスト (スタック ポインターと命令ポインターを含むプロセッサ フラグとレジスター) を復元します。
情報は次の方法で保存されます。
保存されたプロセス コンテキスト情報は、ucontext_t 構造体に配置されます ( を参照)。その構造は、SA_SIGINFO フラグを使用して sigaction(2) を介して確立されたハンドラーの 3 番目の引数として、シグナル ハンドラー内で表示されます。
以下の2点の理由から不可能と判断しました。
シグナルに対する
TERM
アクションはユーザー空間に戻る必要がないので、dying
使用atexit
などで防ぐ方法はありません。2. man 2 getcontextまたはman 3 makecontext
ucontext_t
を入力することは可能ですが、ハンドラーをインストールしてシグナルをマスクするためのすべてのシステムコールが無効になっているため、プロセスがシグナルをブロックするのに役立ちません(シグナルマスクを行わない限り) 。もの自体)。sigreturn