問題タブ [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.

0 投票する
1 に答える
261 参照

kubernetes - デフォルトの secomp および apparmor プロファイルを有効にする、クラスタ レベル

クラスタ レベルで、Pod がデフォルトの secomp および apparmor プロファイルを使用できるようにすることはできますか?それとも、オブジェクトに innotation を挿入するために独自のアドミッション コントローラを作成する必要がありますか?

ユーザーに任せるという選択肢はありません。

0 投票する
1 に答える
425 参照

linux - sigreturn は、SECCOMP_SET_MODE_STRICT で SIGKILL と SIGSTOP 以外のすべてのシグナルをどのようにブロックできますか?

man 2 seccompのセクションSECCOMP_SET_MODE_STRICTでは、次のように述べられています。

呼び出しスレッドは sigprocmask(2) を呼び出すことはできなくなりましたが、sigreturn(2) を使用して、SIGKILL と SIGSTOP 以外のすべてのシグナルをブロックできることに注意してください。

これを行う方法がわかりません。それsigreturnsyscall

この sigreturn() 呼び出しは、プロセスのシグナル マスクの変更、シグナル スタックの切り替え (sigaltstack(2) を参照) など、シグナル ハンドラを呼び出すために行われたすべての操作を元に戻します。

すなわち:

以前にユーザー空間スタックに保存された情報を使用して、
sigreturn() は、プロセスのシグナル マスクを復元し、スタックを切り替え、プロセスのコンテキスト (スタック ポインターと命令ポインターを含むプロセッサ フラグとレジスター) を復元します。

情報は次の方法で保存されます。

保存されたプロセス コンテキスト情報は、ucontext_t 構造体に配置されます ( を参照)。その構造は、SA_SIGINFO フラグを使用して sigaction(2) を介して確立されたハンドラーの 3 番目の引数として、シグナル ハンドラー内で表示されます。

以下の2点の理由から不可能と判断しました。

  1. シグナルに対するTERMアクションはユーザー空間に戻る必要がないので、dying使用atexitなどで防ぐ方法はありません。

    2. man 2 getcontextまたはman 3 makecontextucontext_tを入力することは可能ですが、ハンドラーをインストールしてシグナルをマスクするためのすべてのシステムコールが無効になっているため、プロセスがシグナルをブロックするのに役立ちません(シグナルマスクを行わない限り) 。もの自体)sigreturn