ここではOSコマンドインジェクションとはどのようなサイバー攻撃なのかを調査。攻撃を受けるとどうなるのか、その仕組みや発生理由、代表的な被害事例などをご紹介します。
攻撃者が脆弱性のあるWebアプリケーションなどを通して、不正なOSへのコマンドを送信することでPCやサーバを不正操作するサイバー攻撃のことをOSコマンドインジェクションと言います。ユーザーからのデータや数値入力にプログラムに与えるパラメータを紛れ込ませ、OSに対する誤った命令を行う仕組みになっています。
コマンドによってサーバーに不正な処理を行わせることができるので、発生する脅威・被害もさまざま。サーバ内ファイルの閲覧や改ざん、OSのシャットダウンやユーザーアカウント変更、ウイルス・ワームなどの不正プログラムをダウンロードしたり、バックドアの設置、迷惑メールの送信などサーバーコントロールを失います。
OSコマンドインジェクションの被害として最初に心配すべきことは情報漏えいです。攻撃先のOSを不正に操作するため、機密情報にもアクセスされてしまいます。重要なファイルへ不正アクセスして、企業の機密情報や個人情報を盗み、それらの情報を悪用したり転売したりするかもしれません。
また、こうして得た情報を元に、次の攻撃に広がる可能性も高いです。情報漏えいを起こした企業は、信用失墜や顧客離れなど、大きなダメージを受けることになります。被害の規模が大きければ、事業の継続に影響しかねません。
サーバー内に保存されているファイルへ不正アクセスが実行されると、アカウント情報などの機密情報やサーバーの設定情報の閲覧ができてしまいます。閲覧だけではなく、メールで送信したり、不特定多数にばらまくといった情報流出につながりかねません。
また、別のファイルで上書きする、削除する、勝手に暗号化するといった不正な操作が行われる可能性もあります。必要なファイルを暗号化されて復元できなければ、事業の継続に影響が生じるかもしれません。
OSコマンドインジェクションの被害には、マルウェアに感染させられるというものもあります。サーバーがマルウェアに感染させられて、データが破壊されるだけではなく、コンピュータウイルスやトロイの木馬などマルウェアの「感染源」になるリスクがあります。アクセス者を感染させてしまい、甚大な被害を発生させかねません。社会的な信用を失い、システムの利用者が離れてしまいます。
ログイン情報を盗まれてしまうと、不正にアクセスされ、保存されているファイルの窃取や改ざん・破壊といった攻撃をうける可能性があります。さらに、サーバー自体を乗っ取られる可能性も高いです。バックドアを設置されると好きにアクセス・遠隔操作されてしまい厄介なことに。システムの運用が困難になり、サービスの提供ができなくなります。事業の基盤を揺るがしかねません。
一度の攻撃で終わらないこともOSコマンドインジェクションリスクのひとつです。ログインIDやパスワード情報などを盗み、権限変更などを経てサーバーを乗っ取ると、他のシステムへの不正アクセスやDDoS攻撃、迷惑メール送信などの踏み台として悪用されることがあります。攻撃対象とは別のサーバーやパソコンへの攻撃や組織内部への侵入に繋がってしまいます。乗っ取られたコンピュータが攻撃者に操られている状態のため、攻撃に加担してしまう形となり、第三者へ被害を与えかねません。
ここまでに見てきたように、OSコマンドインジェクションは、IDやパスワードを盗んで不正ログインをしたり、高い権限が必要な操作を行ったりする攻撃です。サーバーに不正なプログラムをダウンロードし、実行することもできてしまいます。サーバーをウイルス、ボット(BOT)、バックドアなどに感染させることも、不正なシステム操作のひとつです。意図しないOSのシャットダウンやユーザアカウントの追加・変更といった被害も考えられます。
日本テレビは2016年4月、自社ホームページに不正アクセスがあり個人情報が流出した可能性があることを発表。対象となったのは応募フォームなどから投稿された情報で、氏名・住所・電話番号・メールアドレスなどを含む約43万件です。調査の結果、原因はソフトウェアの脆弱性を突いたOSコマンドインジェクションと判明しました。
2016年4月にJ-WAVEはサーバーへのサイバー攻撃により番組聴取者の個人情報約64
万件が流出した可能性があることを発表しました。原因は使用するブログプログラムのコマンドインジェクション脆弱性を悪用した不正アクセスと判明。同局は安全確保のため対象ソフトウェアと該当データをWEB サーバーから削除に至りました。
学術情報提供サービスを提供するサンメディアは2021年11月に不正アクセスによるホームページ改ざんがあったことを発表しました。原因はMovableTypeの脆弱性を利用したOSコマンド・インジェクションによるもので、サイト運営ベンダーが不正アクセスをブロックしたため被害の拡大を抑えることができました。
脆弱性のあるアプリケーションを攻撃するのがOSコマンドインジェクションの手口です。事例にある企業が被害を受けてしまった理由はWebアプリケーションの脆弱性に適切に対応していなかったためです。
脆弱性診断(セキュリティ診断)とは?
目的や必要性について詳しく見る
対象となったプログラムの脆弱性はIPA(情報処理推進機構)で既に指摘されていました。サーバー管理はさまざまな業務があるためすぐに対応できないこともありますが、遅れるほどサイバー攻撃のリスクは高くなっていきます。
OS コマンド インジェクションの脆弱性を検出するには、入力処理がアプリケーション内部でシェルコマンドの一部として実行されることがないかを確認する必要があります。アプリケーションのパラメータへOSコマンドを追加して悪意ある操作に結び付かないかを確認します。攻撃者が任意のコマンドを実行できる場合、組織内外に甚大な被害を及ぼす危険性があるため、OSコマンドインジェクションの脆弱性を診断することは非常に重要です。
OSコマンドインジェクションの脆弱性が特定された場合は、できる限りOSコマンドを利用しない実装方法への変更をお勧めします。どうしてもOSコマンドを呼び出す必要がある場合は、アプリケーションの入力値の適切な検証とOSコマンドを実行するシステムユーザ権限を制限して、悪意のあるコマンドを実行できないようにします。
根本的な対策としては、OSコマンドを呼び出せる関数は使用しないようにしましょう。OSコマンドを呼び出さないようになっていれば、そもそもOSコマンドインジェクション攻撃を受けることがありません。OSコマンドを呼び出せる関数やメソッドを使用しないことが最強のOSコマンドインジェクション攻撃対策です。
OSコマンドを実行できる関数の利用を避けるために、「使用不可の関数リスト」などを共有するのも良い対策と言えます。
どうしてもOSコマンドを呼び出さざるを得ない場合は、「シェルの呼び出し機能がある関数を使わない」ことが対策になります。
たとえばPerlのopen関数は、引数として与えるファイルパスに「|」(パイプ)を使うことでOSコマンドの実行が可能です。OSコマンドインジェクションの脆弱性が生じます。open関数ではなくsysopen関数を使うといった対策を行い、シェルの機能を悪用した攻撃を防ぐことが可能です。
シェルには複数のコマンドを一行で指定できる機能があり、用意したOSコマンドに任意のOSコマンドを追加して入力値を渡すことでOSコマンドインジェクション攻撃を許してしまいます。
Webサイトやアプリが入力された値をそのまま処理することが、OSコマンドインジェクション攻撃が成立する原因です。HTMLタグや本文に頻出する特定の文字に対して、無害化(エスケープ処理)を行うことで、攻撃を防御できます。
また、特定の文字以外の入力を制限することも対策のひとつです。入力値の制限は保険的な対策のため、エスケープ処理などの対策との組み合わせがいいでしょう。また、シェルのエスケープ処理は複雑なため、ライブラリの利用がおすすめです。
攻撃性のある通信を検知して遮断する仕組みを持つWAF(Web Application Firewall)サービスの導入も検討してみましょう。Webアプリケーションそのものを改修して脆弱性を排除するには、コストも時間もかかります。その改修中に攻撃を受けるかもしれません。根本的な防御策が完成するまでの間や万が一対策に漏れがあった場合に備えて、WAFサービスを導入しておくと安心です。
本サイトの監修者であるアルファネットではOSコマンドインジェクションなどのサイバー攻撃による被害を出さないためのアドバイスや社員のセキュリティ教育にも対応していますので、不安な場合は相談してみるとよいでしょう。
当ページの監修協力であるホワイトハッカーが所属する株式会社アルファネット。事務機器用品を中心とするカタログ通販サービス「たのめーる」が有名な大塚商会のグループ企業です。
大塚商会はコンピュータ・ネットワーク関連のシステムインテグレーション事業や、コンピュータ機器の保守、アウトソーシングのサービスも中核にしており、その中でアルファネットはサイバーセキュリティ対策の専門グループ企業として活躍しています。
巨大なデータベース・ネットワークを日々守り続けているのは、ホワイトハッカーの主導による正確な診断と、ツールによる包括的な診断によるもの。大塚商会のグループ企業や顧客を中心に、そのサービスを提供してきました。
またメール訓練など、社員育成の提供にも力を入れています。
ペネトレーションテスト(Webアプリケーション侵入試験)/標的型メール訓練サービス/情報セキュリティ教育/CSIRT構築/クラウド型WAFサービス/セキュリティ診断サービス/ランサムウェア対策調査サービス
サーバー上で実行される
OSコマンドインジェクションは、攻撃者のWebアプリケーションに対する入力がサーバ上でOSコマンドとして実行される脆弱性です。OSレベルでシステムを制御可能となるため、サーバ内のデータ改ざん、機密情報の取得の他、対象サーバを踏み台として他のホストへの攻撃(ウイルス拡散、DoS攻撃)に利用される危険性もあります。