Command Injection
コマンドインジェクションとは、攻撃者がプログラムが組み立てるシステムコマンドへシェルメタキャラクタを注入し、任意コマンド実行に至る脆弱性である。
目的
システムコマンドの文字列連結が引き起こすコマンドインジェクションとその防御を理解する。シェルを呼び出すプログラムでよく見られる脆弱性である。
メカニズム
プログラムが system("cmd " + input) のように連結すると、攻撃者は「;rm -rf /」を入力し、シェルに追加コマンドを実行させる。防御策は、シェルの回避、パラメータ化された実行 API、入力バリデーションとエスケープである。
ユースケース
- シェルコマンドのセキュリティ
- システムコールの監査
- コマンド連結への防御