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

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

pointこの用語のポイント

point悪いことだよ

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

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

スポンサーリンク

簡単に書くよ

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

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

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


image piyo

詳しく書くよ

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

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

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

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

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

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

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

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

以上を踏まえて

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

piyota@example.com

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

と言えるでしょう。

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

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

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

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

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

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

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

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

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


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

基本的には

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


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


image piyo2

一言でまとめるよ

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

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

おまけ

■訳してみるよ

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

操作システムの命令を注入

となります。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
ウォーターサーバーのキャッチコピーを100本考える方法
サイバー忍者入門 忍者・スパイ・軍隊・ハッカーに学ぶ フルスタック・ハッキング