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

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

pointこの用語のポイント

point悪いことだよ

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

スポンサーリンク

簡単に書くよ

OSコマンドインジェクション攻撃(読:オーエスコマンドインジェクションコウゲキ 英:OS command injection attack)とは

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

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


image piyo

詳しく書くよ

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

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

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

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

コマンドは「コンピュータさんに対する命令(命令文)」です。
コマンドをポチポチ打ち込むと、その内容に従って、コンピュータさんは動いてくれます。

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

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

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

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

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

以上を踏まえて

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

piyota@example.com

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

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

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


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

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

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

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

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

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

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

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

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

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


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

OSコマンドインジェクション攻撃11

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

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

と言えるでしょう。

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

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

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

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

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

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


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

基本的には

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


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


image piyo2

一言でまとめるよ

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

一番上に戻るよ
スポンサーリンク
書籍画像035
書籍画像022

おまけ

■訳してみるよ

「OS」は「Operating System(オペレーティング・システム)」の略です。
「operating(オペレーティング)」の意味は「動作する」とか「操作する」とか「作用する」とかです。
「system(システム)」はカタカナで「システム」と解釈してください。
「command(コマンド)」の意味は「命令する」とか「指揮する」とかです。
「injection(インジェクション)」の意味は「注入」とか「注射」とかです。
「攻撃」は日本語ですね。
何となく くっつけると

操作システムの命令を注入する攻撃

となります。





書籍画像
わわわ説明術コラム
宣伝だよ
つくって、壊して、直して学ぶ Kubernetes入門
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
ソフトウェア開発現場の「失敗」集めてみた。 42の失敗事例で学ぶチーム開発のうまい進めかた