OSコマンドインジェクションとは?おーえすこまんどいんじぇくしょん
OSコマンドインジェクションとは、利用者からの入力がシェルを起動する種類の関数へ組み立てて渡される実装のとき、区切り記号などを混ぜた入力によってサーバ上で意図しないOSコマンドを実行させられる脆弱性。Webサーバの実行権限で内部の探索や追加ツールの取得まで行われる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
外部プログラムを呼び出す処理を、文字列を組み立ててシェルへ渡す形で書くと短く済むため、この書き方が広く残った。ネットワーク側から見ると厄介なのは、攻撃が正規の80/443番の通信に紛れて届く点で、境界のポート制御では止められない。だから侵入の可否だけでなく、侵入後に何ができるかを絞る設計が問われる。
具体例
対策の基本はシェルを経由しない実行方法(引数を配列で渡す形式)へ変えることである。加えてDMZのWebサーバから外向きの通信先を必要な宛先だけに制限しておくと、侵入後の追加ツール取得や外部への持ち出しの段階で断てる。
試験での引っ掛け
同じ入力値の不備でも、SQL文を組み立てる箇所ならSQLインジェクション、HTMLへ出力する箇所ならクロスサイトスクリプティングであり、入力がどこへ渡るかで名前が変わる。入力値の検査だけを対策とみなすのも誤りで、渡し方そのものを変えるのが本筋である。
関連用語
出た過去問
出典:令和3年度 春期 ネットワークスペシャリスト試験 午前Ⅱ 問21(IPA)
Webアプリケーションソフトウェアの脆弱性を悪用する攻撃手法のうち、入力した文字列がPerlのsystem関数、PHPのexec関数などに渡されることを利用し、…
正解:OSコマンドインジェクション
要点:シェル実行関数に入力が渡る脆弱性がOSコマンドインジェクション
OSコマンドインジェクションは、Webアプリケーションが外部入力をシェル経由でコマンドとして実行する関数(Perlのsystem、PHPのexecなど)に渡してしまうことを悪用し、意図しないコマンドを実行させる攻撃である。対策は、シェルを介す関数の使用を避けること、やむを得ない場合は入力値をエスケープまたは許可リストで厳密に検証することである。
出典・参考
高度試験 午前I(高度午前I 相当)のシラバスの3 技術要素 > 1. 情報セキュリティ > (7) 攻撃手法に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。