LinuCレベル3 セキュリティスペシャリスト アクセスおよび権限制御の強化 問10
アクセスおよび権限制御の強化/システムコールの制御seccompの動作モード SECCOMP_MODE_STRICT の説明として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「アクセスおよび権限制御の強化」に対応。実際の試験問題ではありません)
- ABPFで書いたフィルタで、システムコールの番号や引数ごとに許可・拒否・エラー返却を細かく決める
- B一度有効にしても、prctl で SECCOMP_MODE_DISABLED を指定すればいつでも元の状態に戻せる
- Cread・write・_exit・sigreturn 以外のシステムコールを呼ぶと、スレッドがSIGKILLで終了させられる
- D許可されていないシステムコールを呼んでもEPERMが返るだけで、プロセスはそのまま処理を続ける
正解:C
解説
SECCOMP_MODE_STRICTは、read・write・_exit(exit_groupは含まない)・sigreturnの4つだけを許可し、それ以外のシステムコールを呼ぶとSIGKILLで終了させる最も単純なモードです。システムコールごとに細かく規則を書けるのはSECCOMP_MODE_FILTERで、BPFプログラムによって許可・エラー返却・終了などの動作を選べます。どちらのモードも一度有効にすると解除できず、fork・execveを経ても子プロセスへ引き継がれます。
選択肢ごとの解説
- A誤り。BPFのフィルタでシステムコールごとの動作を決めるのはSECCOMP_MODE_FILTERです。
- B誤り。seccompは一度有効にすると解除できません。SECCOMP_MODE_DISABLEDは有効化前の状態を表すもので、戻す手段にはなりません。
- C正しい。STRICTモードでは4つのシステムコール以外はすべて禁止され、呼び出すとSIGKILLが送られます。
- D誤り。エラー番号を返して処理を続けさせるのは、FILTERモードでSECCOMP_RET_ERRNOを返した場合の動作です。STRICTモードは強制終了させます。