私たちは日頃からインターネットを通じて、Webアプリケーションやサービスを利用し、その恩恵を受けています。その一方でWebサイトの改ざんや情報漏えいといった事件・事故が後を絶たないという実情もあり、Webサイトの運営者はセキュリティに対する正しい知識を身に付ける必要があります。
本稿では、OSコマンドを不正に実行することでファイルの参照や削除などを行うOSコマンドインジェクションについて解説します。安心・安全なWebサイトを運営するために様々な攻撃手法についての知識を身に付けるようにしましょう。
OSとコマンド
OS(Operating System)はコンピュータを動作させるためのソフトウェアです。コンピュータシステム全体を管理するのはもちろんのこと、さまざまなアプリケーションを動かすための最も基本的なソフトウェアです。
私たちが当たり前のように利用しているパソコンにもOSが入っていますし、会社で利用するサーバーにもOSが入っています。有名なOSとしては、Microsoft社のWindowsやApple社のmacOSが挙げられます。サーバー用途では、Linuxなどが有名です。
OSはパソコンやサーバーだけでなく、急速に普及したスマートフォンやタブレットなどにも入っています。聞いたことがあると思いますが、AndroidやiOSなどがそうです。私たちはこれらの機器に対して、キーボードやタッチパッドなどを利用して情報を送ることでアプリケーションを利用しますが、これらの中枢的な制御の役割を果たすのがOSです。
サーバーを構築する際など、用途にあったOSを自ら選定してインストールすることもありますが、一般利用においては、購入時に予めインストール(プリインストール)されたOSを利用することがほとんどです。
利用者とコンピューター間のやり取りでは、なんらかの操作であったり、命令を送ることで行われます。パソコンの利用においては、広く普及したGUI(Graphical User Interface)によりグラフィカルな環境で直感的に操作していることが多いと思いますが、文字(キャラクタ)による命令をコマンド形式で受け付けるCLI(Command Line Interface)もあります。
CLIはコンピュータを利用する状況によっては馴染みのない方が多いかもしれませんが、Webサーバーなどのサーバーを構築する際には、CLIを利用してコマンドを実行し、必要なプログラムをインストール、設定するなど、今でも技術者にとっては当たり前のことになっています。
一例となりますが、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 ファイルの削除 |
このようにOSに対して直接操作を行うためのコマンドをOSコマンドと呼び、様々な命令を送ることができます。
OSコマンドインジェクションとは
私たちは日頃から検索サービスやオンラインショッピングなど、様々なWebアプリケーションを利用しています。このWebアプリケーションにおいて、OSコマンドを呼び出す機能を有している場合、その実装に不備があると攻撃者によってOSコマンドを実行されてしまい、意図しない不正な命令を許してしまう恐れがあります。このような脆弱性およびそれを悪用した攻撃をOSコマンドインジェクションと呼びます。
自らが運営していたり関わっているWebサイトに対して、先ほど例示したようなコマンドが外部から不正に実行されたとしたら、どのように思うでしょうか?被害や影響のインパクトが非常に大きいということがお分かりいただけると思います。
それだけでなく、攻撃ツールをダウンロードされて更なる侵入を許したり、スパムメール配信の踏み台に悪用されるなど、攻撃者の意のままにWebサーバーが操られることになってしまいます。
- Webサーバーのファイルを参照されたり、改ざん、削除される
- マルウェアがダウンロードされたり、バックドアが設置される
- スパムメール配信や他者への攻撃の踏み台に悪用される など
安心・安全なWebサイトを運営するためにも、Webサイトの運営者やアプリケーション開発者は、OSコマンドインジェクションの脆弱性のないプログラミングを徹底する必要があります。
いかがでしょうか?OSコマンドインジェクションがどのようなものかを解説しました。以下の記事ではOSコマンドインジェクションの対策について、開発面での対策のほか、セキュリティ製品を活用した対策を紹介しています。OSコマンドインジェクションについてより詳しく知りたい方は、ぜひ参考にしてください。
- カテゴリ:
- 用語
この記事に関する製品のご紹介
ホスト型WAF「SiteGuard Server Edition」
SiteGuard Server Editionは、ウェブサーバーのモジュールとして動作するホスト型WAF製品です。Webサーバー自体にインストールするため、専用ハードウェアが必要ありません。ネットワーク構成を変更せず、できるだけシンプルに導入したいお客様に最適な製品です。
詳細はこちら