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

 2020.05.19  株式会社ジェイピー・セキュア

私たちは日頃からインターネットを通じて、Webアプリケーションやサービスを利用し、その恩恵を受けています。その一方でWebサイトの改ざんや情報漏えいといった事件・事故が後を絶たないという実情もあり、Webサイトの運営者はセキュリティに対する正しい知識が身に付ける必要があります。

本稿では、OSコマンドを不正に実行することでファイルの参照や削除などを行うOSコマンドインジェクションについて解説します。安心・安全なWebサイトを運営するために様々な攻撃手法についての知識を身に付けるようにしましょう。

OSとコマンド

OS(Operating System)はコンピュータを動作させるためのソフトウェアです。コンピュータシステム全体を管理するのはもちろんのこと、さまざまなアプリケーションを動かすための最も基本的なソフトウェアです。私たちが当たり前のように利用しているパソコンにもOSが入っていますし、会社で利用するサーバーにもOSが入っています。有名なOSとしては、Microsoft社のWindowsやApple社のMac OSが挙げられます。サーバー用途では、Linuxなどが有名です。

OSはパソコンやサーバーだけでなく、急速に普及したスマートフォンやタブレットなどにも入っています。聞いたことがあると思いますが、AndroidやiOSなどがそうです。私たちはこれらの機器に対して、キーボードやタッチパッドなどを利用して情報を送りることでアプリケーションを利用しますが、これらの中枢的な制御の役割を果たすのがOSです。サーバーを構築する際など、用途にあったOSを自ら選定してインストールすることもありますが、一般利用においては、購入時に予めインストール(プリインストール)されたOSを利用することが多くなっています。

利用者とコンピューター間のやり取りでは、なんらかの操作であったり、命令を送ることで行われます。パソコンの利用においては、広く普及したGUI(Graphical User Interface)によりグラフィカルな環境で直感的に操作していることが多いと思いますが、文字(キャラクタ)による命令をコマンド形式で受け付けるCUI(Character User Interface)もあります。CUIはコンピュータを利用する状況によっては馴染みのない方が多いかもしれませんが、Webサーバーなどのサーバーを構築する際には、CUIを利用してコマンドを実行して必要なプログラムをインストール、設定するなど、今でも技術者にとっては当たり前のことになっています。

一例となりますが、LinuxなどのUnix系のOSでファイルやディレクトリの情報を表示するのであれば、「ls」というコマンドを実行します。

$ ls ファイル・ディレクトリの情報を表示
backup.tar.gz    data.txt    data.txt.old    logs

通常、コマンドは何を実行するかの命令に加えて、オプションが指定できるようになっており、「ls」コマンドで詳細を一覧表示する場合には「-l」オプションを使用します。

$ ls -l
-rw-r--r-- 1 user user 843095 Jan 25 16:57 backup.tar.gz
-rw-r--r-- 1 user user 159435 May 15 16:05 data.txt
-rw-r--r-- 1 user user 148063 May 12 18:30 data.txt.old
drwxr-xr-x 6 user user 4096 Oct 17 2019 logs

ファイルの参照であれば「cat」などのコマンドが使用され、コピーであれば「cp」コマンド、削除であれば「rm」コマンドのように実行してコンピュータを操作します。

$ cat data.txt ファイルの参照
$ cp data.txt data.txt_20200515 ファイルのコピー
$ rm data.txt ファイルの削除

このようにコマンドを使用することで、コンピュータに様々な命令を送ることができます。

SITEGUARD
ジェイピー・セキュアソフトウェアライセンス価格表

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

Webの利用者である私たちが日頃から利用している検索サービスやオンラインショッピングなどのWebアプリケーションにおいて、OSコマンドを呼び出す機能を有している場合、その実装に不備があると外部の第三者によってOSコマンドを実行されてしまい、意図しない不正な命令を許してしまう恐れがあります。このような脆弱性およびそれを悪用した攻撃をOSコマンドインジェクションと呼びます。

自らが運営していたり関わっているWebサイトに対して、先ほど例示したようなコマンドが外部から不正に実行されたとしたら、どのように思うでしょうか?被害や影響のインパクトが非常に大きいということがお分かりいただけると思います。それだけでなく、攻撃ツールをダウンロードされて更なる侵入を許したり、スパムメール配信の踏み台に悪用されるなど、攻撃者の意のままにWebサーバーが操られることになってしまいます。

  • 攻撃者によってWebサーバーのファイルを参照されたり、改ざん、削除される
  • 攻撃者によってマルウェアがダウンロードされたり、バックドアが設置される
  • 攻撃者によってスパムメール配信や他者への攻撃の踏み台に悪用される など

安心・安全なWebサイトを運営するためにも、Webサイトの運営者やアプリケーション開発者は、OSコマンドインジェクションの脆弱性のないプログラミングを徹底する必要があります。

いかがでしょうか?OSコマンドインジェクションがどのようなものかを解説しました。以下の記事ではOSコマンドインジェクションの対策について、開発面での対策のほか、セキュリティ製品を活用した対策を紹介しています。OSコマンドインジェクションについてより詳しく知りたい方は、ぜひ参考にしてください。

関連記事:WAFによるOSコマンドインジェクション攻撃の防御

信頼の純国産ソフトウェア型WAF SiteGuardシリーズ製品概要

SITEGUARD
ジェイピー・セキュアソフトウェアライセンス価格表

RECENT POST「入門」の最新記事


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

RANKING人気資料ランキング

RECENT POST 最新記事

ブログ無料購読

RANKING人気記事ランキング

TOPIC トピック一覧