[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

コマンド注入攻撃

pointこの用語のポイント

point悪いことだよ

pointパラメータを介して任意のコマンドを実行させるよ

スポンサーリンク

簡単に書くよ

コマンド注入攻撃とは

パラメータに対する【焼】肉【定】食型攻撃のこと。
もう少し真面目に書くと

作った人が意図しない内容をパラメータとして渡すことで、好きなコマンドを実行させる攻撃のこと
です。

image piyo

詳しく書くよ

コマンド」+「注入」+「攻撃」で「コマンド注入攻撃」です。

コマンド注入攻撃

コマンドは「パソコンさんに対する命令」ね。
ファイルの一覧を見せろ!」とか「空を飛べ!」とかです。

コマンド注入攻撃2

注入は、プスっと挿して、ギュっと押し込む行為です。

コマンド注入攻撃3

攻撃は、そのまんまの意味ですね。
攻撃です。

コマンド注入攻撃4

つまり

コマンド注入する攻撃

もう少し噛み砕いて書くと

コンピュータさんに対する命令を突っ込む攻撃

が「コマンド注入攻撃」です。
OSコマンドインジェクション」とも呼ばれます。

「命令を突っ込む」と言っても、具体的には、どうやるのでしょうね?

答えは「パラメータ(外から入ってくる値)を使う」です。
プログラムに渡すパラメータを介して、実行させたいコマンドを突っ込みます。

例えば、メールアドレスをパラメータとして受け取って、メールを送るシステムがあったとしましょう。

コマンド注入攻撃5

中身の処理は、以下のように書いてあります。

パラメータを受け取るよ。

メールを送るよ。宛先は「【パラメータ】」ね。


このプログラムをピヨ太君が動かしました。

コマンド注入攻撃6

ピヨ太君は、パラメータとして

piyota@example.com

を渡しました。
そうすると、以下のように解釈されて、処理が行われます。

パラメータを受け取るよ。

メールを送るよ。宛先は「piyota@example.com」ね。


処理が進むと「piyota@example.com」宛てにメールが送られます。

コマンド注入攻撃7

これは、作った人が想定している動きです。

次に、同じプログラムをアクマ君が動かしました。

コマンド注入攻撃8

アクマ君はいたずらっ子です。
パラメータとして

akuma@example.com」だよ。あと「空を飛んで

を渡しました。
今度は、以下のように解釈されて、処理が行われます。

パラメータを受け取るよ。

メールを送るよ。宛先は「akuma@example.com」だよ。あと「空を飛んで」ね。


処理が進むと「akuma@example.com」宛てにメールが送られた後、パソコンさんが空を飛びます。

コマンド注入攻撃9

アクマ君は、作った人が想定していないようなパラメータを渡すことで、本来メールを送るだけのプログラムを使って、パソコンさんに空を飛ばせました。
これは

パラメータを介して、パソコンさんに対する命令を送り込んだ

と言えるでしょう。

このような攻撃がコマンド注入攻撃です。
作った人が想定していない形でパラメータを渡すことで、コンピュータに任意のコマンドを実行させる攻撃を指します。

コマンド注入攻撃は、作った人の盲点を突く攻撃です。
きちんと対策を取っておけば、できません。

例えば先ほどのプログラムも、以下のように変更すればイタズラできなくなります。

パラメータを受け取るよ。

パラメータがメールアドレスの形式になっているかチェックするよ

メールを送るよ。宛先は「【パラメータ】」ね。


作る立場の人は、常に頭の片隅に置いておいてください。

基本的には

1.パラメータの入力チェックを必ず行う
2.パラメータの値を用いたコマンド実行は、できるだけ避ける


を意識しておけば、避けられるはずです。

image piyo2

一言でまとめるよ

まぁ「コマンド注入攻撃」って単語が出てきたら「パラメータを介してコマンドを実行させる攻撃なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク