過去問ドリル

LinuCレベル3 セキュリティスペシャリスト アクセスおよび権限制御の強化 問29

アクセスおよび権限制御の強化/システムコールの制御

手元のプログラム ./server は、起動直後に自分でseccompのフィルタを設定している。ソースコードは無いが、どのシステムコールが許可・拒否されるのかを知りたい。プログラムを実行して設定されるフィルタを取り出し、逆アセンブルした形で表示するコマンドとして適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「アクセスおよび権限制御の強化」に対応。実際の試験問題ではありません)

正解:D

解説

seccomp-tools は、seccompのフィルタ(BPFプログラム)を調べるためのツールです。dump サブコマンドは指定したプログラムを実行し、そのプログラムが prctl や seccomp システムコールで設定しようとしたフィルタを取り出して、システムコール名を含む読みやすい形に逆アセンブルして表示します。disasm は、取り出し済みの生のBPFデータのファイルを逆アセンブルするもので、実行ファイルを渡す使い方ではありません。asm は逆にフィルタのコードをBPFへアセンブルし、emu はフィルタに特定のシステムコールを与えたときの結果を模擬実行して確かめます。

選択肢ごとの解説

  • A誤り。asm はテキストで書いたフィルタのコードを生のBPFへアセンブルするサブコマンドで、プログラムからフィルタを取り出すものではありません。
  • B誤り。emu は、フィルタに特定のシステムコール番号などを与えたときの判定を模擬実行するサブコマンドで、実行ファイルからフィルタを取り出すものではありません。
  • C誤り。disasm は、取り出し済みの生のBPFデータのファイルを逆アセンブルするサブコマンドで、実行ファイルを実行してフィルタを取り出す機能ではありません。
  • D正しい。dump はプログラムを実行して設定されるseccompのフィルタを取り出し、逆アセンブルして表示します。
LinuCレベル3 セキュリティスペシャリストの問題を演習モードで解く