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






