コマンド注入攻撃
悪いことだよ
パラメータを介して任意のコマンドを実行させるよ
簡単に書くよ
コマンド注入攻撃(読:コマンドチュウニュウコウゲキ 英:command injection attack)とは
パラメータに対する【焼】肉【定】食型攻撃のこと。
もう少し真面目に書くと
作った人が意図しない内容をパラメータとして渡すことで好きなコマンドを実行させる攻撃のこと
です。
詳しく書くよ
「コマンド」+「注入」+「攻撃」で「コマンド注入攻撃」です。
コマンドは「コンピュータさんに対する命令(命令文)」です。
コマンドをポチポチ打ち込むと、その内容に従って、コンピュータさんは動いてくれます。
注入は、プスっと挿して、ギュっと押し込む行為です。
攻撃は、そのまんまの意味ですね。
攻撃です。
以上を踏まえて
コマンドを注入する攻撃
もう少し噛み砕いて書くと
コンピュータさんに対する命令を突っ込む攻撃
が「コマンド注入攻撃」です。
「OSコマンドインジェクション」とも呼ばれます。
「命令を突っ込む」と言っても、具体的には、どうやるのでしょうね?
答えは「パラメータ(外から入ってくる値)を使う」です。
プログラムに渡すパラメータを介して、実行させたいコマンドを突っ込みます。
例えば、メールアドレスをパラメータとして受け取って、メールを送るシステムが あったとしましょう。
中身の処理は、以下のように書いてあります。
パラメータを受け取るよ。
メールを送るよ。宛先は「【パラメータ】」ね。
このプログラムをピヨ太君が動かしました。
ピヨ太君は、パラメータとして
piyota@example.com
を渡しました。
そうすると、以下のように解釈されて、処理が実行されます。
パラメータを受け取るよ。
メールを送るよ。宛先は「piyota@example.com」ね。
処理が進むと「piyota@example.com」宛てにメールが送られます。
これは、作った人が想定している動きです。
次に、同じプログラムをアクマ君が動かしました。
アクマ君はいたずらっ子です。
パラメータとして
akuma@example.com」だよ。あと「空を飛んで
を渡しました。
今度は、以下のように解釈されて、処理が実行されます。
パラメータを受け取るよ。
メールを送るよ。宛先は「akuma@example.com」だよ。あと「空を飛んで」ね。
処理が進むと「akuma@example.com」宛てにメールが送られた後、パソコンさんが空を飛びます。
アクマ君は、作った人が想定していないようなパラメータを渡すことで、本来メールを送るだけのプログラムを使って、パソコンさんに空を飛ばせました。
これは
パラメータを介して、パソコンさんに対する命令を送り込んだ
と言えるでしょう。
このような攻撃がコマンド注入攻撃です。
作った人が想定していない形でパラメータを渡すことで、コンピュータに任意のコマンドを実行させる攻撃を指します。
コマンド注入攻撃は、作った人の盲点を突く攻撃です。
きちんと対策を取っておけば、できません。
例えば先ほどのプログラムも、以下のように変えればイタズラできなくなります。
パラメータを受け取るよ。
パラメータがメールアドレスの形式になっているかチェックするよ
メールを送るよ。宛先は「【パラメータ】」ね。
作る立場の人は、常に頭の片隅に置いておいてあげてください。
基本的には
1.パラメータの入力チェックを必ずやる
2.パラメータの値を用いたコマンド実行は、できるだけ避ける
を意識しておけば、避けられるはずです。
一言でまとめるよ
まぁ「コマンド注入攻撃」って単語が出てきたら「パラメータを介してコマンドを実行させる攻撃なんだな~」と お考えください。
おまけ
■訳してみるよ
「command(コマンド)」の意味は「命令する」とか「指揮する」とかです。
「注入攻撃」は日本語ですね。
何となく くっつけると
命令を注入する攻撃
となります。
■検索してみる?






