令和3年度 春期 午前Ⅱ 問21
情報セキュリティ
Web アプリケーションソフトウェアの脆弱性を悪用する攻撃手法のうち,入力した文字列が Perl の system 関数,PHP の exec 関数などに渡されることを利用し,不正にシェルスクリプトを実行させるものは,どれに分類されるか。
- アHTTP ヘッダインジェクション
- イOS コマンドインジェクション
- ウクロスサイトリクエストフォージェリ
- エセッションハイジャック
答えと解説を見る
✓ これが正解イOS コマンドインジェクション
解説
入力を OS コマンドとして実行させる OS コマンドインジェクション。
OS コマンドインジェクションは、Web アプリケーションが利用者の入力を OS のコマンドを実行する関数にそのまま渡している場合に、入力に OS のコマンドを紛れ込ませて実行させる攻撃です。Perl の system 関数や PHP の exec 関数などは、渡された文字列をシェルを通して実行するため、入力の中の区切り記号の後ろに別のコマンドを書かれると、それも実行されてしまいます。対策は、こうした関数をできるだけ使わないことや、入力を検査して特別な意味をもつ文字を無害にすることです。入力が最終的にどこへ渡されるか(OS、データベース、HTTP ヘッダなど)で攻撃の名前が決まる、と整理すると見分けやすくなります。
ほかの選択肢はなぜ違うのか
- アHTTP ヘッダインジェクション:HTTP ヘッダインジェクションは、入力に改行を表す文字を紛れ込ませ、Web アプリケーションが出力する HTTP の応答ヘッダに任意のヘッダや本文を加える攻撃です。入力が渡る先は応答ヘッダであり、OS のコマンドを実行させるものではありません。
- ウクロスサイトリクエストフォージェリ:クロスサイトリクエストフォージェリは、ログイン中の利用者に罠のページを開かせ、本人が意図しない処理の要求を正規のサイトへ送らせる攻撃です。利用者の権限を悪用するもので、サーバ上でシェルを動かすものではありません。
- エセッションハイジャック:セッションハイジャックは、セッション ID などを盗んだり推測したりして、正規の利用者になりすまして通信を乗っ取る攻撃です。他人のセッションを奪う手口であり、入力した文字列で OS のコマンドを実行させるものではありません。
この問題の用語
- セッションハイジャックログイン中の利用者のIDを盗み、なりすましてアクセスする攻撃です。推測しにくい乱数をセッションIDに使うことが対策になります。
- アプリケーションソフトウェア利用者の目的に直接こたえるソフトウェアで、表計算や会計、業務用の専用ソフトなどがあたります。機器そのものを動かす基本ソフトウェアの上で動きます。
- 脆弱性OSやソフトに残っている、攻撃の足掛かりになりうる弱点のこと。開発元が配る修正パッチを当ててふさぎます。
- HTTPWebブラウザとWebサーバがページをやり取りするための決まりごと。ブラウザが要求を送り、サーバが応答を返す形で通信します。
出典:令和3年度 春期 ネットワークスペシャリスト試験 午前Ⅱ 問21
同じ用語が出る問題
- 令和7年度 春期 午前Ⅱ 問21:OP25Bの例(脆弱性)
- 令和7年度 春期 午前Ⅱ 問18:DRDoS攻撃に該当するもの(脆弱性)
- 令和6年度 春期 午前Ⅱ 問17:RLOに関する問題(脆弱性)
- 令和5年度 春期 午前Ⅱ 問20:OP25Bの例(脆弱性)
- 令和4年度 春期 午前Ⅱ 問16:RLOに関する問題(脆弱性)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)