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

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

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

pointこの用語のポイント

point悪いことだよ

pointもしくは、悪いことができる状態(セキュリティ上の欠陥、脆弱性)だよ

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

スポンサーリンク

簡単に書くよ

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

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

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

image piyo

詳しく書くよ

OS」+「コマンド」+「インジェクション」で「OSコマンドインジェクション」です。

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

OSは「パソコンさんの人格に相当するソフト」ね。
「これが無いとパソコンじゃねーよ」な基本ソフトです。
パソコンさんは、中にOSを入れることによって、パソコンとして動くことができます。

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

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

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

インジェクションの意味は「注射」とか「注入」です。
プスっと挿して、ギュっと押し込むわけです。

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

つまり

OSが解釈できるコマンドインジェクションする

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

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

攻撃が「OSコマンドインジェクション」です。
あるいは、そのような攻撃ができる状態(セキュリティ上の欠陥、脆弱性)を指します。

それでは、どうやって命令を突っ込むのでしょうね?

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

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

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

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

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

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


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

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

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

piyota@example.com

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

と言えるでしょう。

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

あるいは、OSコマンドインジェクション攻撃ができる状態を指して「OSコマンドインジェクション」と呼ぶこともあります。

どちらを指すかは前後の文脈から判断してください。
OSコマンドインジェクションには「攻撃」と「脆弱性(弱いところ)」の2つの意味があります。

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

OSコマンドインジェクション攻撃は、作った人の盲点を突く攻撃です。
きちんと対策を取っておけば、できません。

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

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

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

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


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

基本的には

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


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

image piyo2

一言でまとめるよ

まぁ「OSコマンドインジェクション」って単語が出てきたら「パラメータを介してコマンドを実行させる攻撃、もしくは、それが可能な状態のことなんだな~」と、お考えください。

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