LinuCレベル3 セキュリティスペシャリスト システム保護と監査 問1
システム保護と監査/カーネルセキュリティとシステムリソース保護カーネルパラメータ kernel.randomize_va_space に値2を設定したときの動作として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「システム保護と監査」に対応。実際の試験問題ではありません)
- AASLRを無効化し、プロセスを起動するたびに同じアドレスへメモリを配置する
- Bスタック・mmap領域・VDSOの配置はランダム化するが、ヒープ(brk領域)は固定のままにする
- Cスタック・mmap領域・VDSOに加えて、brkで伸びるヒープ領域の開始位置もランダム化する
- Dカーネル自身のロードアドレスもランダム化し、再起動のたびにカーネルの配置を変える
正解:C
解説
kernel.randomize_va_space はユーザー空間プロセスのアドレス空間配置のランダム化(ASLR)を制御するパラメータです。0は無効、1はスタック・mmapのベース・VDSOのランダム化、2はそれに加えてbrkで管理されるヒープ領域もランダム化します。多くのディストリビューションで既定値は2です。ASLRはバッファオーバーフロー等の攻撃で、攻撃者が狙うアドレスを予測しにくくするための対策です。カーネル自身の配置をランダム化するKASLRは別の仕組みで、このパラメータではなくブートパラメータ(nokaslr等)で制御します。
選択肢ごとの解説
- A誤り。ASLRを無効化するのは値0です。デバッグ等の特殊な用途以外で0にするのは推奨されません。
- B誤り。ヒープをランダム化しない動作は値1のものです。値2ではヒープ(brk領域)もランダム化の対象になります。
- C正しい。値2は値1の対象(スタック・mmapのベース・VDSO)に加えてヒープ領域の開始位置もランダム化する、最も強い設定です。
- D誤り。カーネル自身の配置のランダム化はKASLRで、kernel.randomize_va_space ではなくカーネルの構成とブートパラメータで制御します。