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

OSコマンドインジェクションとは?仕組みや実例・対策を解説

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

外部からWebサイトやシステムに不正に侵入するサイバー攻撃のひとつに、OSコマンドインジェクションがあります。企業は、重要なデータの漏えいやさまざまな脅威を引き起こす攻撃などに対して、どう対策するのかを考えることが重要です。
この記事では、OSコマンドインジェクションの概要・仕組みから、被害の実例、対策方法まで解説します。

 

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

OSコマンドインジェクションとは、Webアプリケーションの脆弱性を狙って行われるサイバー攻撃の一種です。攻撃者はWebサイトにサーバーOSへの命令文(コマンド)を含めた不正な文字列を入力し、プログラムを実行させて情報漏えいや情報改ざんなどの攻撃を行います。
具体的には、Webアプリケーション内のメールアドレス入力欄へ、メールアドレスと一緒に命令文に変換される恐れがある不正な文字列を入力します。入力されたデータに含まれる不正な文字列が実行されると、サーバー上のプログラムが操作されるという攻撃方法です。
攻撃の被害に遭うと、入力データから行われると想定されていないコマンドが強制的に実行されるトラブルが生じます。

 

 

OSコマンドインジェクションの仕組み

OSコマンドインジェクションは、ユーザーが情報を入力するフォームがあるWebサイト上で行われる攻撃です。仕組みの詳細は以下です。

  1. サイトのフォームやWebサイトを通じて、攻撃パターンを記載した入力データをWebサーバー上にある”Webアプリケーション”に送信
  2.  入力文字列の組み立ての際に不正なOSコマンドが含まれた文字列を生成
  3.  不正な命令コマンドがシェルに受け渡され、実際にOSコマンドが実行される

OSコマンドインジェクションは、一定の文字列を入力した場合に、複数のプログラムを起動・実行できるソフトウェア「シェル」を使って行われます。不正な命令コマンドは、シェルを呼び出して攻撃者が意図した通りにプログラムを実行し、データ漏えいなどの攻撃を行います。

 

 

OSコマンドインジェクションで発生しうる脅威

攻撃者がWebアプリケーションを通じてOSを動かすコマンドを送る際、さまざまな操作を行うため、攻撃内容は多様です。システムを操作されて甚大な被害につながるケースもあります。
攻撃により発生しうる脅威には、サーバー内にあるファイルへのアクセス、改ざん、削除などがあります。さらに機密情報の漏えいや、ウイルスやワームといった不正なプログラムをダウンロード・実行されるなど、マルウェアへの感染にも注意が必要です。
気づかないうちに侵入されてサーバー自体を乗っ取られるケースや、迷惑メールの送信・システムを攻略するための調査など、他のシステムに対する攻撃の踏み台に使われるケースもあり、大きな問題が生じる恐れがあります。

 

 

OSコマンドインジェクションの事例

実際に、多くの企業がOSコマンドインジェクションの被害に遭っています。企業Webサイトへの不正アクセスや個人情報流出など、さまざまな被害事例を紹介します。

 

・企業Webサイトへの不正アクセスと改ざん

企業WebサイトにOSコマンドインジェクションによる攻撃が行われた事例では、Webサイトへの不正アクセス、改ざんによる被害が発生しました。サイトを運営しているベンダーが異常に気づき、不正が発見された事例です。
海外からMovableTypeの脆弱性を利用して行われた攻撃により、Webサイトのインデックスファイルと、作成・表示するCMS(Content Management System)であるWordPressファイルの一部が改ざんされました。個人情報などのファイルはWebサーバー上には保存されていなかったため、情報の漏えいや改ざん被害には遭っていません。
この事例では、攻撃者がWebサイトに不正にアクセス・改ざんした後、さらにWebサイト上のファイルに変更や不正ファイルを挿入しようとした際にWordPressが不安定になったため、攻撃者からのアクセスができなくなりました。

 

・テレビ局における個人情報流出

テレビ局がOSコマンドインジェクションの被害に遭った事例もあります。急激にサーバーの負荷が上昇したことから調査を行った結果、不正アクセスが行われた事実を確認、さらにデータベース内の非公開情報もコピーされていました。コピーされた情報は番組への応募フォームに投稿した約43万件の個人情報で、データから氏名・住所・電話番号などが分かってしまいます。
ログ解析の結果からOSコマンドインジェクションによる攻撃と判明したため、被害が発見されたソフトウェアを削除、データを安全な場所に移動する対策でそれ以降の被害を防止しています。テレビ局側は、より高度なセキュリティ対策の採用も検討しているとの発表もしています。

 

 

OSコマンドインジェクションの対策

OSコマンドインジェクション被害に遭わないためには、対策を立てなければなりません。Webサイトのシステム側に不正な文字列を実行しないように設定するさまざまな対策方法で、被害を防ぐことが可能です。

 

・シェルを利用する関数が使用できないようにする

入力フォームに書き込んだ内容からシェルが使用されると、不正な操作が実行されるため、攻撃を受けることになります。被害を防ぐための対策には、シェルを利用する関数が入力できないルールを設ける方法が有効です。
ユーザーがデータを入力した後に受付メールを送信する処理がある場合、データの入力・送信に伴い、別のプログラムも実行しなければなりません。そこでの対策として、シェル本来の働きを妨げずに不正なコマンドを防ぐ必要があります。入力フォームにコマンドを設定する文字列の入力を禁止することで、不正な操作は行えなくなります。
PHPの場合はexec()、passthru()、Perlの場合はopen()、system()など、コマンドの入力を防ぐ設定を設ける対策が可能です。

 

・エスケープ処理、サニタイジングを行う

エスケープ処理とは、特別な意味を持つ記号を、意味のない別の記号に変換して出力する処理です。また、サニタイジングは「無害化」を意味する言葉。特別な意味を持つ記号を削除したり変換したりして無害化することを意味し、エスケープ処理よりも幅広いケースで使われます。
エスケープ処理では、入力フォームに書き込まれたデータの中から「;」「|」「&」「<」などの危険な文字を見つけほかの無害な文字に置き換えて、コマンドが生成されない対策を取ります。PHPにはhtmlentities()、Perlはquotemeta()関数、Pythonはbleachといったライブラリが用意されているため、ライブラリを使用して置き換えの設定が可能です。

 

・WAFの導入による対策

Webアプリケーションの脆弱性に対する攻撃を防止するためには、脆弱性への対策が必要です。使用しているWebアプリケーションに脆弱性が見つかった場合は、すぐにプログラムの修正をしなければなりません。サイバー攻撃に備えるにはWebアプリケーションの修正を何度も行わなければならず、管理にコストや手間がかかります。
Webアプリケーションへの攻撃に対策する際には、WAF(Web Application Firewall)の導入が効果的です。WAFは、Webアプリケーションの脆弱性に対するOSコマンドインジェクションなどの攻撃を検知し、防御するサービスです。
ファイアウォールややIDS/IPSなど、従来のネットワーク・セキュリティ製品では対応しきれない危険なサイバー攻撃を検知して、WebサイトやWebサーバーなどの安全を守ります。

【関連記事】Cloudbric(クラウドブリック) Webセキュリティ

Webセキュリティについてさらに詳しく知りたい方はこちら

 

まとめ

OSコマンドインジェクションとは、Webアプリケーションの脆弱性を狙って仕掛けられるサイバー攻撃です。ユーザーが情報を書き込む入力フォームを使用して攻撃者が不正な文字を入力・送信すると、意図しないコマンドが強制的に実行され、攻撃の被害に遭います。
OSコマンドインジェクションでは、サーバー内のファイルへのアクセス・改ざん、マルウェア感染、システムの乗っ取りなど、さまざまなトラブルが発生します。Webアプリケーションが攻撃されないためには、シェルを利用されない工夫や、サニタイジング、WAFの導入などの対策をして攻撃に備え、重大なリスクを避けなければなりません。

 

securiy report

今でも続くWebアプリケーションへの攻撃!JPCERT/CCの最新レポートから読み解く攻撃手法を解析

10月15日、一般社団法人 JPCERTコーディネーションセンター(JPCERT/CC)が、2020年第2四半期のインシデント報告対応レポートを発表しました。国内外で発生するコンピューターセキュリティインシデントの報告をとりまとめたもので、今回は2020年7月1日~9月30日までの間に受け付けたインシデント報告の統計および事例について紹介されています。それによると、今期のインシデント件数は8386件で、前四半期の約1.2倍へと拡大しています。またフィッシング攻撃やWebサイトの改ざん、マルウェアサイトなどで増加が見られたということです。今回はこのレポートを基に、今危機感を持つべきWebサイトへの攻撃への高まりとは具体的に何か、その対処法はあるのかを重点においてお届けしていきたいと思います。

 

インシデント報告対応レポート統計

JPCERT/CCは、インターネット利用組織におけるインシデントの認知と対処、インシデントによる被害拡大の抑止に貢献することを目的として活動しています。今回発表されたレポートの統計についてまとめてみました。

インシデント報告関連件数

引用:JPCERT/CC

 こちらの図に示されているWebフォーム、メール、FAX等でJPCERT/CCに寄せられた報告の総件数は13,831件で、前四半期の1万416件から33%増加しています。JPCERT/CC が国内外の関連するサイトとの調整を行った件数は 4,807件で、前年比で調整件数は14%増加しました。

インシデントのカテゴリーごとの内訳

引用:JPCERT/CC

 インシデントの内訳を見ると、「フィッシングサイト」が5845件で前四半期から11%増加しています。7月は1842件、8月は1849件、9月は2154件と後半にかけて増加傾向が見られます。今期気になるのは、「サイト改ざん」と「スキャン」行為といったWebサイトを狙った攻撃の増加です。「サイト改ざん」は374件で、前四半期の291件から増加、「スキャン」行為も1380件で、前四半期の982件から拡大しています。その他「マルウェアサイト(158件)」「標的型攻撃(16件)」といった攻撃も前期を上回っています。

 

Webサイトを狙った攻撃の増加

JPCERT/CCのレポートに基づいたWebサイトを狙った攻撃の増加には主に、「サイト改ざん」と「スキャン」がありました。これらについて具体的に解説していきたいと思います。

サイト改ざん

Webサイト改ざんとは、企業などが運営する正規Webサイト内のコンテンツやシステムが、攻撃者によって意図しない状態に変更されてしまう攻撃です。攻撃者がWebサイトを改ざんする際の攻撃手法としては主に脆弱性攻撃による改ざん、管理用アカウントの乗っ取りによる改ざん、パスワードリスト攻撃の3種類があります。

1. 脆弱性攻撃による改ざん

  • Webサーバ上の脆弱性を攻撃することにより、最終的に改ざんを実現します。
  • 脆弱性の利用方法として、SQLインジェクション、Stored XSS、などの脆弱性攻撃により直接コンテンツの改ざんを行う方法と、脆弱性攻撃によりバックドアを設置するなどして遠隔操作で改ざんを行う方法の2つがあります。
  • 主に、サーバOS、Webサーバ、CMS、管理ツールなどのミドルウェアの脆弱性が狙われます。

改ざんの手口のうち、サーバーソフトウェアの脆弱性攻撃は、サーバ上で動いているCMS(コンテンツマネジメントシステム)やサービスの脆弱性を狙われるものです。例えばブログや簡易な企業サイトで使われているWordPress、Joomla!、Movable Type、XOOPSといったCMSの脆弱性がよく狙われています。

また「SQLインジェクション」攻撃もよく使われる手法です。セキュリティの対策が十分でないウェブサイトに、サイト内を任意のキーワードで検索できるフォームがあるとします。攻撃者がそのフォームへ不正な内容を盛り込んだSQL文を入力し検索を行うことで、そのSQL文の内容が実行されてしまうのです。これにより、本来は隠されているはずのデータが奪われてしまったり、ウェブサイトが改ざんされてしまったりします。攻撃者がウェブサイトに対してSQLインジェクション攻撃をしかけることで、不正なSQLの命令が実行されてしまい、ウェブサイトを利用者するユーザーのID・パスワード・クレジットカードの番号をはじめとした個人情報がすべて奪われてしまう可能性があります。

2. 管理用アカウントの乗っ取りによる改ざん

  • Webサーバにリモートアクセス可能な管理用アカウントの情報を窃取して乗っ取り、正規の方法でWebサイト操作を行って改ざんします。
  • 正規のWebサイト操作方法により改ざんが行われるため、被害に気づきにくい特徴があります。

正規のWebサイトに攻撃を仕掛け、中身を改ざんする手法ですが、その目的は、Webサイトにコンピューターウイルスを仕込んで閲覧者に感染させることです。以前は、いたずら目的でのWebサイトの改ざんが多く見られましたが、最近では、金銭が目的の被害が増えています。自社のサイトがこのような改ざん被害にあって、逆に顧客に被害を与える「加害者」になれば失墜する信頼は計り知れないものとなるでしょう。

3. パスワードリスト攻撃

  • パスワードリスト攻撃とは、攻撃対象となるWebサイトではない別のWebサイトから搾取したユーザー情報を使い、攻撃対象となるWebサイトで不正ログインを試みるサイバー攻撃です。
  • アカウントIDやパスワードをすべて別々に管理することが面倒なため、管理者PCや複数のWebサイトで同じアカウントIDやパスワードを使用しているケースがあります。

パスワードリスト攻撃とは、オンラインサービス等への不正ログインを狙った不正アクセス攻撃の一です。不正ログインのためにIDとパスワードがセットになったリストを利用することから本名称となっています。パスワードリスト攻撃を受けたとなると、Webサービスに対するユーザーからの印象が著しく低下します。「リスト型攻撃は他のウェブサービスから入手したアカウントとパスワードを使って不正アクセスする攻撃だ。ユーザーのアカウントとパスワードの管理の問題だ。」という見解の方もいらっしゃるでしょう。しかし、ユーザーの視点では「不正アクセスを許して個人情報の流出があったサービス」のように見えてしまうのです。

スキャン

スキャン攻撃とは、サイバー攻撃者が、攻撃先を探すために行うポートスキャンです。脆弱性の探索や侵入、感染の試行などを検知した件数が今回のレポートで増加し、警告されています。ポートスキャン自体は、サーバなどに対して稼働しているサービスを探り、開放されているポートを調べる行為で違法なものではありません。しかし、攻撃の事前準備として行われることが多いため、日常から適切な対処が必要となります。サイバー攻撃の手口は年々巧妙化していますが、システムの脆弱性を突くのが攻撃の基本となります。その脆弱性を見つけ出すためにポートスキャンは使われるのです。例えば、空いているポートがわかれば、そのポートを侵入経路として利用することができます。またサーバのOSやバージョンがわかれば、OSに依存する脆弱性を突くことができるのです。ポートスキャンも同様に、これ自体はサイバー攻撃ではなくても、これから被害が発生するかもしれないサイバー攻撃の予兆としてとらえることが重要です。

 

WAFで防御できること

こうした警鐘をならされているWebサービスへの攻撃の増加に対し、有効なのがWAFを用いた防御システムです。例えばWAFで防御できることには以下の様な項目があります。

  • SQLインジェクション
  • クロスサイトスクリプティング(XSS)
  • クロスサイトリクエストフォージェリ(CSRF)
  • OSコマンドインジェクション
  • ディレクトリリスティング
  • メールヘッダインジェクション
  • パス名のパラメータの未チェック/ディレクトリトラバーサル
  • 意図しないリダイレクト
  • HTTPヘッダインジェクション
  • 認証とセッション管理の不備
  • 認可制御の不備、欠落
  • クローラへの耐性

Webアプリケーションに関する脅威をブロックできるのが「WAF」です。WAFを使えばWebアプリケーションに脆弱性があったとしても安全に保護することができます。最近となっては、システムのクラウドへの移行という傾向もあり、クラウド型WAFが注目を集めています。従来のアプライアンス型WAFと比べ、専門の機器の導入やセキュリティ担当者による運用が必要ありません。そのため、リーズナブルな価格で短期間で導入できるといったメリットがあります。クラウド型セキュリティ・プラットフォーム・サービス「クラウドブリック(Cloudbric)」はWAF(Web Applicaion Firewall)サービスに加え、DDoS攻撃対策、SSL証明書、脅威情報データベースに基づく脅威IP遮断サービス、ディープラーニング(AI)エンジンによるWebトラフィック特性学習サービス、といったWebアプリケーションを守るトータル・セキュリティサービスを提供します。

Webアプリケーションを業務で利用するときは、セキュリティ上の脆弱性に注意しなくてはいけません。アプリケーションの開発者がセキュリティ対策を行っていても、人の手で作成されているため、脆弱性を完全になくすのは難しいでしょう。WAFはWebアプリケーションを保護する専用のファイアウォールのため、導入することでWebアプリケーションを安全に利用できます。
今現在、JPCERTのレポートからもわかるようにWebアプリケーションやサービスへの攻撃は劣えてはいません。それらの攻撃に備え、防御するにはWAFを導入することが望ましいといえます。
クラウド型セキュリティ・プラットフォーム・サービス「クラウドブリック(Cloudbric)」につきまして、詳しくは下記リンク先をご確認ください。

https://www.cloudbric.jp/cloudbric-security-platform/