SC情報処理安全確保支援士試験 午前Ⅱ
平成29年度春期 情報処理安全確保支援士 午前Ⅱ 問12
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- アHTTPヘッダインジェクション
- イ0Sコマンドインジェクション
- ウクロスサイトリクエストフォージェリ
- エセッションハイジャック
解き方のヒントを見る
午前II 問12:OSに命令を勝手に足される攻撃を見抜こう
Perl の `system` 関数や PHP の `exec` 関数に、チェックしていない入力をそのまま渡すと、攻撃者が用意した文字列まで OS のコマンドとして実行されてしまうことがあるよ。これは、アプリに頼んだつもりが、裏でパソコン本体の操作命令まで混ぜられてしまうイメージで、OS コマンドインジェクションに分類されるんだ。
この問題で問われていること
ポイントは、入力が最終的に何を動かしているかを見ることだよ。HTTP ヘッダを書き換える話なら HTTP ヘッダインジェクション、利用者に意図しない操作をさせる話なら CSRF。でも今回は `system` や `exec` で OS コマンドを実行しているから、OS コマンドインジェクションだと判断しよう。
OS Command Injection
passing untrusted input into functions like system or exec leads to OS command injection
untrusted input\nsystem or exec\nshell command execution\nOS command injection
確認ポイント
- 実行先が OS コマンドかを見る。
- exec/system を手掛かりにする。
- CSRF などと混同しない。
正解と解説を見る
正解
イ
出典
問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。
選択肢ア
HTTPヘッダインジェクションは不正解だよ。これは、Webサーバが返す封筒の宛名欄や注意書きに、改行などを使って勝手な情報を書き足すような攻撃なんだ。Cookieを勝手に付けたり別ページへ誘導したりする話で、今回のようにOSの命令を実行させる攻撃ではないよ。
選択肢イ(正解)
OSコマンドインジェクションが正解だよ。たとえるなら、窓口に『この書類を処理して』と頼む紙に、こっそり『金庫も開けて』みたいな余計な命令を書き足す感じだね。Perlのsystem関数やPHPのexec関数に入力文字が渡され、サーバ上で不正なOSコマンドやシェルスクリプトを実行させる攻撃なので、問題文にぴったり合うよ。
選択肢ウ
クロスサイトリクエストフォージェリは不正解だよ。これは、本人がログイン中なのを利用して、悪いサイトから勝手に送金ボタンを押させるような攻撃なんだ。今回のように、入力欄からOSの命令を混ぜてサーバに実行させる話とは別物だよ。
選択肢エ
セッションハイジャックは不正解だよ。これは、ログイン中の人の通行証みたいなセッションIDを泥棒が奪って、本人になりすます攻撃なんだ。今回の問題は、入力文字を使ってサーバにシェルスクリプトを実行させる話なので、合鍵を盗むタイプではないよ。
出典:独立行政法人 情報処理推進機構(IPA)平成29年度春期 情報処理安全確保支援士試験 午前Ⅱ 問12(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針