OSコマンドインジェクション
更新日:
用語解説
OSコマンドインジェクションは、アプリケーションが外部入力をシェルコマンドへ不安全に組み込み、攻撃者に意図しないOSコマンドや引数を実行される脆弱性・攻撃です。
■ 試験で押さえるポイント
シェルの区切り記号や置換機能だけでなく、先頭がオプションとして解釈される引数注入にも注意し、入力を単なる文字列として渡しただけで安全とは限りません。
最優先の対策はOSコマンドの起動を避け、同じ機能を提供する言語ライブラリやAPIを使うことです。必要な場合もシェルを介さず引数を分離します。
許可する値を列挙し、長さと形式を検証し、実行アカウントを最小権限にして、コンテナ等で影響範囲を限定します。エスケープだけへ依存しません。
SQLインジェクションはDBのSQL構造、OSコマンドインジェクションはOSのシェル又は実行プログラムへの命令・引数を改変する点が異なります。
■ 選択肢での判断ポイント
外部入力がOSコマンドの一部として解釈される実装を選びます。コマンドを使わないAPIへの置換が最も根本的な対策です。
例: 利用者指定のファイル名をシェルの圧縮コマンドへ連結せず、圧縮ライブラリを使い、サーバ側で割り当てた許可済みパスだけを処理します。