[問題文・解答]
平成26年度10月に実施された情報セキュリティスペシャリスト試験の午後1試験の問題・解答はIPA公式ページからダウンロード出来ます。(以下リンク)
[H26秋 午後1 問題文] [H26秋 午後1 解答]
[問題概要]
題材は、スマホのルート特権化についてです。スマホのルート特権化の手段としてよく利用されるバッファオーバーフロー攻撃の詳細と対策について調査する、という内容です。
単語を知らないと答えられない設問が多く、記述問題も解答しづらい設問が多いです。難易度は高めです。
[設問1]
バッファオーバフロー攻撃
C/C++で書かれたプログラムのメモリ内に攻撃者の手による機械語プログラムが送り込まれて実行され、最悪の場合、コンピュータ全体の制御が奪われることになる攻撃。
主にスタック領域を標的とするもの、ヒープ領域を標的とするもの、静的領域を標的とするものがある。
参考ページ
主にスタック領域を標的とするもの、ヒープ領域を標的とするもの、静的領域を標的とするものがある。
参考ページ
return-to-libc攻撃
C言語の標準ライブラリlibcがロードされているアドレスにジャンプすることでデータ実行防止機能を回避し、任意の標準APIを実行する攻撃。
a) OSやソフトウェアのセキュリティホールが発覚した時点で配布される修正プログラムであるセキュリティパッチが当てはまります。
b) 上記説明より、問題文中に出てきていないヒープバッファオバーフロー攻撃が当てはまります。
d) これは単語を知らないと厳しいですね。
b) 上記説明より、問題文中に出てきていないヒープバッファオバーフロー攻撃が当てはまります。
d) これは単語を知らないと厳しいですね。
[答] a) セキュリティパッチ b) ヒープ d) return-to-libc
[設問2]
(1)
図2にもあるようにスタックバッファオーバフロー攻撃ではスタック領域に攻撃用のコード(shellコード)が配置されて、shellコードで命令の実行が可能となってしまいます。
従って、スタック領域にデータ実行防止機能を適用し、コードの実行を禁止すればよいです。
従って、スタック領域にデータ実行防止機能を適用し、コードの実行を禁止すればよいです。
[答] スタック領域
(2)
図3中の「41」は文字の"A"を表します。従って、適当な長さの文字列"AAA…"でバッファを溢れさせた後にshellコードを入れたい部分の先頭メモリアドレス→shellコードと記述すればよいので、図2よりcの部分にはメモリアドレス「c8048026」が入ります。
ただし、問題文にバイトオーダはリトルエンディアンとあるため、メモリアドレスは下位のバイトから順に書いていく必要があります。図3の注記に「メモリアドレスは4バイトの16進数表記である。」とあるので、2桁で1バイトとなります。よって、下位から2桁ずつ順に並べるため「268004c8」となります。
ただし、問題文にバイトオーダはリトルエンディアンとあるため、メモリアドレスは下位のバイトから順に書いていく必要があります。図3の注記に「メモリアドレスは4バイトの16進数表記である。」とあるので、2桁で1バイトとなります。よって、下位から2桁ずつ順に並べるため「268004c8」となります。
[答] エ
(3)
アドレス空間配置ランダム化技術
return-to-libc攻撃に対して、実行プログラムの各モジュールが配置される位置をランダム化することで、狙い撃ちでコードを実行されることを防ぐ。
上記説明より、攻撃者が攻撃を行うためのジャンプ先アドレス(共有ライブラリ格納アドレス)を特定出来ないようにすることで攻撃を防ぐことが出来ます。
アドレス空間配置ランダム化技術
return-to-libc攻撃に対して、実行プログラムの各モジュールが配置される位置をランダム化することで、狙い撃ちでコードを実行されることを防ぐ。
上記説明より、攻撃者が攻撃を行うためのジャンプ先アドレス(共有ライブラリ格納アドレス)を特定出来ないようにすることで攻撃を防ぐことが出来ます。
[答] 攻撃を成功させるためのジャンプ先アドレスの特定
[設問3]
(1)
Webサーバへのバッファオーバフロー攻撃をIPSやWAFで検知・破棄すれば良いことはすぐに連想出来ます。問題文には「具体的に述べよ」とあるため、今回の問題で攻撃者が攻撃を成立させるために挿入するデータとして挙げられているインジェクションベクタを検知・破棄します。
[答] インジェクションベクタを検知・破棄する。
(2)
P.3下段「あらゆる命令の実行がshellコードで可能となる」ためには、ルート特権でプログラム(Vuln)を実行している必要があります。
[答] ルート特権があること
[設問4]
(1)
この問題は、解答が難しい問題です。
スマホでは許可が無い限りは、あるアプリから他のアプリのデータへのアクセスは出来ない仕様となっています。そのため、ルート特権で無ければスマホ内のアプリデータを不正に読み出されることはありません。
スマホでは許可が無い限りは、あるアプリから他のアプリのデータへのアクセスは出来ない仕様となっています。そのため、ルート特権で無ければスマホ内のアプリデータを不正に読み出されることはありません。
[答] あるアプリから、ほかのアプリのデータへのアクセスを禁止するという仕様
(2)
この問題も若干答えづらい問題だと思います。
意図しないルート特権化が起こるのは、スマホがルート特権化するマルウェアに感染したときというそのまんまの解答でよいみたいです。
意図しないルート特権化が起こるのは、スマホがルート特権化するマルウェアに感染したときというそのまんまの解答でよいみたいです。
[答] ルート特権化するマルウェアに感染したとき
(3)
P.2上段で「スマホを遠隔で管理するシステム(Mシステム)を導入し、スマホのOSやアプリのバージョンなどの構成情報の管理や、スマホの紛失時のデータ消去などのセキュリティ対策を実現した」とあることからMシステムを用いてスマホのOSバージョンを確認すればよいことが分かります。
[答] Mシステムを使って確認する。
平成26年度秋のSC午後1試験の他の問題の解説は下記投稿で行っています。
また、平成26年度秋のSC午後1試験のオススメ問題について下記投稿に記載しています。
上記の解説は問題と解答を元に自分なりの考え方を記述しており、間違っている部分もあるかと思いますので、ご了承願います。また、誤りについては正しい考え方をご指摘・ご教授頂けると助かります。
0 件のコメント:
コメントを投稿