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

更新日:

用語解説

OSコマンドインジェクションは、アプリケーションが外部入力をシェルコマンドへ不安全に組み込み、攻撃者に意図しないOSコマンドや引数を実行される脆弱性・攻撃です。

■ 試験で押さえるポイント

  • シェルの区切り記号や置換機能だけでなく、先頭がオプションとして解釈される引数注入にも注意し、入力を単なる文字列として渡しただけで安全とは限りません。

  • 最優先の対策はOSコマンドの起動を避け、同じ機能を提供する言語ライブラリやAPIを使うことです。必要な場合もシェルを介さず引数を分離します。

  • 許可する値を列挙し、長さと形式を検証し、実行アカウントを最小権限にして、コンテナ等で影響範囲を限定します。エスケープだけへ依存しません。

  • SQLインジェクションはDBのSQL構造、OSコマンドインジェクションはOSのシェル又は実行プログラムへの命令・引数を改変する点が異なります。

■ 選択肢での判断ポイント

外部入力がOSコマンドの一部として解釈される実装を選びます。コマンドを使わないAPIへの置換が最も根本的な対策です。

例: 利用者指定のファイル名をシェルの圧縮コマンドへ連結せず、圧縮ライブラリを使い、サーバ側で割り当てた許可済みパスだけを処理します。

音声で聞く

同じ分野の用語