OSコマンドインジェクション【OS command injection】コマンド注入攻撃
概要
OSコマンドインジェクション(OS command injection)とは、コンピュータシステムに対する外部からの攻撃手法の一つで、システムへの入力文字列中にオペレーティングシステム(OS)のコマンド(命令文)として解釈できる断片を紛れ込ませ、不正に実行させるもの。「インジェクション」(injection)とは「注入」という意味で、閲覧者からのデータ送信や操作を受け付けるようなWebサイトで、プログラムに与えるパラメータの扱いに問題がある場合に可能となる。
攻撃者はWebアプリケーションに送信するデータの中に、受信側が想定していない特殊な記号の組み合わせなどを含め、これに続けてOSのシェル呼び出しやコマンド実行を指示する文字列を連結しておく。
受信したシステムではこれを解釈して何らかの処理を行おうとするが、その過程で攻撃者の仕込んだコマンドも実行され、システム環境の破壊、データの不正な抜き取りや改竄、システムの遠隔操作などの攻撃が行われてしまう。
対策としては、プログラミング言語や実行環境の備えるシェル呼び出しやOSコマンド実行などの機能を使わないようにしたり、入力文字列として特定の記号文字などを受け付けないようチェックする処理を行うなどの手法がある。
入力文字列に不正な文字列を組み込んで実行させる攻撃手法は「インジェクション攻撃」と総称される。OSコマンドインジェクション以外にも、データベースシステムに対してSQL文として解釈できる文字列断片を不正に読み込ませる「SQLインジェクション」や、HTTPパケットのヘッダ部分に不正に項目を挿入する「HTTPヘッダインジェクション」などがある。
(2019.8.23更新)