LinuCレベル3 セキュリティスペシャリスト システム保護と監査 問27
システム保護と監査/カーネルセキュリティとシステムリソース保護Linuxのカーネルパラメータ kernel.randomize_va_space の値と効果に関する説明として、正しいものをすべて選べ。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「システム保護と監査」に対応。実際の試験問題ではありません)
- A値を0に設定すると、スタック・mmap・ヒープを含むすべてのアドレス空間のランダム化が無効になる
- B値を1に設定すると、スタックとmmapのランダム化は有効だが、brkで確保されるヒープの開始アドレスはランダム化されない
- C値を2に設定すると、ASLRが完全に無効化されすべてのアドレスが固定になりデバッグが容易になる
- Dこのパラメータの値は root 権限なしでも sysctl -w コマンドで変更できる
正解:A、B
解説
kernel.randomize_va_space カーネルパラメータはASLRの動作を制御します。値0でASLRを完全に無効化、値1でスタック・mmap領域・VDSOをランダム化、値2でさらにbrkで確保されるヒープの開始アドレスもランダム化します。RHEL 9やDebian 12の既定値は2です。このパラメータの変更にはroot権限(またはCAP_SYS_ADMIN)が必要で、/etc/sysctl.conf または /etc/sysctl.d/ に記述することで再起動後も設定を維持できます。
選択肢ごとの解説
- A正しい。kernel.randomize_va_space = 0 はASLRを完全に無効化し、スタック・mmap領域・ヒープを含むすべての仮想アドレスが毎回固定になる。デバッグや再現性確認のために一時的に設定されることがある。
- B正しい。kernel.randomize_va_space = 1 はスタック・mmap領域・VDSOをランダム化するが、brkシステムコールで伸びるヒープ領域の先頭アドレスはランダム化しない。ヒープもランダム化するには値2を使う。
- C誤り。kernel.randomize_va_space = 2 はASLRを無効化するのではなく、値1の範囲に加えてbrkで確保されるヒープのアドレスもランダム化する最も強力なランダム化設定である。RHEL 9・Debian 12の既定値でもある。
- D誤り。kernel.randomize_va_space はセキュリティ上重要なカーネル設定であり、変更には root 権限(またはCAP_SYS_ADMIN)が必要である。root 権限のない一般ユーザーが sysctl -w で変更しようとすると Permission denied エラーになる。