技術用語解説

OSコマンドインジェクションとは?被害事例や発生する原因と防止策を解説

OSコマンドインジェクションとは、Webアプリケーションの脆弱性を突き、不正なコマンドを実行させるサーバー攻撃のことで、情報漏洩やファイルの改ざん・削除などのリスクがあります。本記事では、OSコマンドインジェクションの概要や被害事例、原因と防止策について解説します。

目次

  1. 1OSコマンドインジェクションとは
  2. 2OSコマンドインジェクションの被害内容
  3. 3OSコマンドインジェクションによる被害事例
  4. 4OSコマンドインジェクションの発生原因
  5. 5OSコマンドインジェクションの防止策
  6. 6まとめ

OSコマンドインジェクションとは、Webアプリケーションにおけるセキュリティ上の穴を突き、不正なコマンドを実行させサーバーを攻撃する手法のことです。被害に遭えば、情報漏洩やファイルの改ざん・削除、不正プログラムのダウンロードと実行などのリスクがあります。

本記事では、OSコマンドインジェクションの概要や被害事例、原因と防止策について詳しく解説します。OSコマンドインジェクションについて知りたい方、被害を防ぎたい方は、ぜひ参考にしてください。

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

OSコマンドインジェクションとは、Webアプリケーションを介して不正なコマンドを実行させるサイバー攻撃のことです。システムやソフトウェアに存在するセキュリティ上の欠陥である脆弱性を突いた攻撃の一種で、実行されれば情報漏洩やデータの改ざんなどの被害を被ります。

ここからは、OSコマンドインジェクションの仕組みと流れやSQLインジェクションとの相違点について解説します。

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

OSコマンドインジェクションは、攻撃者がWebサイトに対してプログラムに影響を与える命令文(コマンド)を入力し、サーバーで想定していなかった動作を実施させる仕組みになっています。具体的な流れは以下の通りです。

  1. 攻撃者が、入力を受理する場所を発見する
  2. 悪意あるOSコマンドを含めた命令文を入力する
  3. アプリケーション内でコマンド文字列が組み立てられる
  4. 不正なコマンド文字列がシェルに受け渡され、実行される
  5. ファイルの削除など、攻撃者の入力したコマンドが実行される

OSコマンドインジェクションの被害発生原因は、入力値に対する検証の怠りです。

SQLインジェクションとの相違点

OSコマンドインジェクションとSQLインジェクションは、攻撃の対象が異なります。OSコマンドインジェクションはシステムを対象にしている一方で、SQLインジェクションの攻撃対象はデータベースです。SQLインジェクションとは、Webアプリケーションにおけるセキュリティ上の脆弱性を利用し、不正なSQL文を注入してデータベースを不正操作するサイバー攻撃のことです。

SQLインジェクションの詳細を知りたい方は、以下をご覧ください。
⇒SQLインジェクションとは?リスクと6つの対策について解説

OSコマンドインジェクションの被害内容

OSコマンドインジェクションにより発生する主な被害内容は、以下の通りです。

  • 情報漏洩
  • ファイルの改ざんや削除
  • 不正プログラムのダウンロードと実行
  • 他のシステムへの攻撃

順に解説します。

情報漏洩

OSコマンドインジェクションを受ければ、情報漏洩につながる可能性はあります。サーバーに格納された重要なファイルを表示させるコマンドも存在します。万が一、個人情報や機密データが漏洩すれば、企業の信用性やブランドイメージが低下するでしょう。

ダークウェブアイ紹介資料ダウンロード

ファイルの改ざんや削除

OSコマンドインジェクションにより、ファイルを改ざん・削除される可能性もあります。重要なファイルが改ざん・削除されれば、システムを正常に稼働できなくなるケースもあるでしょう。

不正プログラムのダウンロードと実行

悪意のある不正プログラムのマルウェアなどを、ダウンロード・実行させられる被害も存在します。例えば、ファイルを暗号化して使えない状態にし、身代金を要求するランサムウェアに感染すれば、金銭的な被害を受けます。また、マルウェアには自己増殖する仕組みや、他のコンピューターに感染する機能があるため、被害が広範囲に及ぶリスクもあるでしょう。

他のシステムへの攻撃

ID・パスワードといったID情報や権限変更などにより、サーバー自体を乗っ取られ、システム攻撃の踏み台に利用されるケースもあります。例えば、他システムへの不正アクセスやDDoS攻撃、迷惑メール送信などが実施されます。DDoS攻撃とは、大量の通信でサーバーに負荷をかけ、サービス提供の停止などに追い込む攻撃のことです。
⇒DDoS攻撃とは?受けた場合の被害や4つの対策をわかりやすく解説

OSコマンドインジェクションによる被害事例

OSコマンドインジェクションによる被害は、後を絶ちません。ここからは、以下の被害事例について詳しく解説します。

  • ラジオ局からの情報漏洩
  • テレビ局からの情報漏洩
  • 学術情報提供サービスのWebサイト改ざん

ラジオ局からの情報漏洩

2016年4月にFMラジオ局であるJ-WAVEのWebサイトが不正アクセスされ、以下が含まれた約64万件の個人情報が流出しました。

  • 氏名
  • 住所
  • メールアドレス
  • 電話番号
  • 性別
  • 年齢
  • 職業

原因は、アクセスログの解析で活用していたソフトウェアのセキュリティーホールを突かれたことです。
参考:J-WAVE WEBサイトへの不正アクセスによる個人情報流出の可能性に関する概要|株式会社J-WAVE

テレビ局からの情報漏洩

2016年4月に日本テレビは、不正アクセスされ以下の情報が含まれた約43万件の個人情報が流出した可能性があると公表しました。

  • 氏名
  • 住所
  • 電話番号
  • メールアドレス

調査の結果、原因はモバイル機器向けWebアプリケーションに対するOSコマンドインジェクションと判明しました。
参考:弊社ホームページへの不正アクセスによる個人情報流出の可能性について|日本テレビホールディングス株式会社

学術情報提供サービスのWebサイト改ざん

学術情報を提供するサンメディアは、2021年11月にWebサイトの不正アクセスと改ざん被害にあったと公表しました。原因は、Webサイト構築で利用されていたMovable Typeというソフトウェアに、脆弱性が存在したことです。なお、ベンダーが迅速な対応を行ったため情報漏洩被害はありませんでした。
参考:弊社ホームページへの不正アクセスと改ざんの経緯と原因、今後の対策について|株式会社サンメディア

OSコマンドインジェクションの発生原因

OSコマンドインジェクションの主な発生原因は、以下の2つです。

  • 外部プログラムを呼び出す関数の使用
  • 入力情報をそのまま受け渡す設計

ここからは、上記それぞれの原因について詳しく解説します。

外部プログラムを呼び出す関数の使用

コマンド実行時に、外部プログラムを呼び出す関数を用いる設計は、被害を受ける原因になります。とくに、以下の関数を使用しているケースでは、攻撃を受けるリスクが高まるでしょう。

  • Perl:open()、system()、eval()
  • PHP:exec()、passthru()、shell_exec()

呼び出し機能のある関数を用いる場合には、注意が必要です。

入力情報をそのまま受け渡す設計

入力データがそのままシェルに伝わる設計になっている場合も被害に遭う可能性が高まります。入力値を検証せずにシェルに送られれば、不正コマンドが簡単に実行されます。

セキュリティ大全資料ダウンロード

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

OSコマンドインジェクションの防止には、以下の方法が有効です。

  • OSコマンド呼び出しを使わない
  • シェル呼び出し機能の関数を使わない
  • エスケープ処理やサニタイジングを実施する
  • 脆弱性診断の実施とアップロードを行う
  • WAFを導入する
  • セキュリティ対策ツールを利用する

ここからは、上記それぞれの方法について詳しく解説します。

OSコマンド呼び出しを使わない

そもそも、OSコマンドの呼び出しが行われなければOSコマンドインジェクションは起こりません。自社のWebサイトで、OSコマンドの呼び出しが行われている個所がないかを確認しましょう。あった場合、OSコマンドを使わないプログラムに変更すれば、攻撃を防止できます。

シェル呼び出し機能の関数を使わない

シェル呼び出し機能の関数が使えないようにすることも、OSコマンドインジェクションの防止に効果的です。入力フォームにコマンドを設定する文字列の入力ができない仕様にすれば、不正な操作を不可にできます。

エスケープ処理やサニタイジングを実施する

エスケープ処理とは、特定の記号文字などに続けて記された文字に、その文字本来の意味とは異なる特別な意味や機能を与えることで、サニタイズとは、入力データに含まれる特別な意味を持つ可能性がある文字や文字列を、一定の規則に基づき別の表記に置き換えることです。実施すれば「&」を「&」に変換するなど、危険な文字・文字列を無害なものに置き換えられます。

サニタイズの詳細は、以下をご覧ください。
⇒サニタイズ・サニタイジングとは?必要な理由や行わないリスク、実施方法を解説

脆弱性診断の実施とアップロードを行う

定期的に診断し脆弱性を無くすアップデートをするのも良いでしょう。脆弱性を無くすことができれば、外部からの攻撃を受けるリスクを減らせます。脆弱性診断の実施には、外部に委託する方法とツールを利用する方法の大きく2つが存在します。

なお、脆弱性診断の詳細は以下をご覧ください。
⇒脆弱性診断とは?脆弱性を放置するリスクやおすすめの診断ツールも紹介

WAFを導入する

WAF(Web Application Firewall)の導入も有効です。WAFとは、Webアプリケーションの脆弱性を狙う攻撃に特化したツールのことで、サーバーへの攻撃を検知してブロックする機能が実装されてます。通信を常に監視して、ファイアウォールやIDS/IPSなど、従来のネットワークセキュリティでは対応できない攻撃からも、Webサイトやサーバーを防御します。

セキュリティ対策ツールを利用する

WAF以外にも、OSコマンドインジェクションを防止可能なセキュリティ対策ツールは複数あります。多くのセキュリティ対策ツールでは、リアルタイム監視により攻撃の迅速な発見と対処が可能です。セキュリティ対策ツールを活用すれば、OSコマンドインジェクション以外にもさまざまなサイバー攻撃を防ぐことが可能で、総合的なセキュリティ対策を実施できます。

まとめ

OSコマンドインジェクションとは、Webアプリケーションを介して不正なOSコマンドを実行させるサイバー攻撃のことです。発生原因は、外部プログラムを呼び出す関数の使用や、入力情報をそのまま受け渡す設計です。被害に遭えば、情報漏洩やファイルの改ざん・削除、不正プログラムのダウンロードと実行などのリスクがあります。

OSコマンドインジェクションの防止には、エスケープ処理・サニタイジングの実施やWAFの導入、セキュリティ対策ツールの利用などが効果的です。

ただ、近年のサイバー攻撃は高度化・巧妙化しており、OSコマンドインジェクション以外にも多様な方法が駆使されています。万が一、情報漏洩が発生すれば、企業の信用性やブランドイメージが低下してしまうでしょう。漏洩を早く察知し、適切な対応を取れる体制の整備が重要です。情報漏洩監視ツール「ダークウェブアイ」は、会社のドメイン情報を入れるだけで「いつ」「どこから」「どんな情報が」漏れてしまったのか、一瞬で分かります。

自社のアカウント情報が漏洩していないか不安な方は、まず自社の漏洩状況を確認してみてはいかがでしょうか?
⇒メールアドレスを入れるだけ!自社の漏洩状況をチェック!