OSコマンドインジェクション【情報処理安全確保支援士講座】

今回は、情報処理安全確保支援士の試験で問われるOSコマンドインジェクションについて解説します。


OSコマンドインジェクション

OSコマンドインジェクションは、ユーザの入力データからOSコマンドを呼びだして処理するWebページの脆弱性を狙った攻撃です。
不正なコマンドを入力することで任意のファイルを読み出し、変更・削除・パスワードの不正取得などを行います。
OSコマンドインジェクションの実行方法
OSのコマンド呼び出しは、言語によって用意されている関数で実行します。OSコマンドの呼び出しで使用できる関数の一例は以下の通りです。
| 言語 | コマンドの例 |
| Perl | ‘command’ |
| system ‘command’ | |
| exec ‘command’ | |
| C/C++ | system(command) |
| exec(command) | |
| PHP | ‘command’ |
| system(command) | |
| exec(command) | |
| shell_exec(command) | |
| passthru(command) | |
| popen(command) |
Perlのopen関数などは、ユーザが指定したファイルの操作に使われるケースが多いです。しかし、パラメータの指定によって外部コマンドも呼びだせてしまうため、悪用されると任意のコマンドが呼び出されてしまうリスクがあります。
OSコマンドインジェクションの対策
OSコマンドインジェクションの対策方法は下記の通りです。
- OSコマンドの呼び出しが可能な関数を極力使用しない
- 入力データに使用可能な文字種や書式などのルールを明確にする
- ルールに沿って入力データを確認し、従わないデータはエラーとする

また、WAFによる遮断も有効です。
OSコマンドインジェクション・例題
実際に例題を解いて問題に慣れていきましょう。
問1
ア:HTTPヘッダーインジェクション
イ:OSコマンドインジェクション
ウ:クロスサイトリクエストフォージェリ
エ:セッションハイジャック
(ログイン後回答すると、ここに前回の正誤情報が表示されます)
問2
〔HTTPリクエストヘッダーの一部〕
GET /cgi-bin/submit.cgi?user=;cat%20/etc/passwd HTTP/1.1
Accept: */*
Accept-Language: ja
UA-CPU: x86
Accept-Encoding: gzip,deflate
User-Agent: (省略)
Host: test.example.com
Connection: Keep-Alive
ア:HTTPヘッダーインジェクション(HTTP Response Splitting)
イ:OSコマンドインジェクション
ウ:SQLインジェクション
エ:クロスサイトスクリプティング
(ログイン後回答すると、ここに前回の正誤情報が表示されます)
OSコマンドインジェクション・まとめ
今回はOSコマンドインジェクションについて学習しました。午前(科目A)試験で過去に何度か問われているので、攻撃の概要と対策方法は押さえておきましょう。
次回はHTTPヘッダインジェクション攻撃について学習します。
支援士の知識を、実際の問題で確かめよう
理解を得点力につなげる
情報処理安全確保支援士試験の過去問題・シラバス準拠問題を無料で掲載しています。 解説と図解を活用しながら、科目A-2の知識を科目Bで使える理解へつなげましょう。
- 科目Bにつながる体系的な知識 正解を覚えるだけでなく、類題で使える判断軸まで学べます。
- 復習に使える図解シート メモや試験直前の見直しにも使える解説画像を無料でダウンロードできます。
- シラバス準拠問題で未知問題対策 過去問だけでは補いにくい未出・薄出論点にも挑戦できます。
アカウント登録なしでも、すべての問題を無料で利用できます
無料登録すると、解答履歴・正答率・復習状況が保存され、続きから学習できます







Discussion
New Comments
No comments yet. Be the first one!