【初心者向け】OSコマンドインジェクション攻撃の仕組みと対策を簡単に紹介
- 知り合いから「OSコマンドインジェクション攻撃でファイルが改ざんされた」って聞いたんですが、「OSコマンドインジェクション」って何でしょうか?
- 「OSコマンドインジェクション攻撃」を簡単に説明すると、Webサーバーに好きな命令を実行させる攻撃です。機密情報の漏洩だけでなく、「ファイルの改ざん」「不正なシステム操作」「ウイルス感染」「他サイトへの攻撃」が発生する可能性もありますよ。
この記事ではOSコマンドインジェクション攻撃の仕組み、事例、対策をご紹介していきます。
OSコマンドインジェクション攻撃を受けないための対策が7分程度でわかりますのでご覧ください。
OSコマンドインジェクションとは?
- 「OSコマンドインジェクション攻撃」は攻撃者の意のまま、Webサーバーに好きな命令を実行させることです。
「OSコマンドインジェクション攻撃」を知るためには、「シェル」と「パラメータ」を理解しなくてはなりません。
シェル
人間が入力したものをコンピュータわかる言語で伝えるソフトウェア。
パラメータ
外から入ってくる値のことで、結果に影響が出るもの。
例)ECサイトで住所や名前を入力
- 次はシェルとパラメータを理解したうえでOSコマンドインジェクションの仕組みについて、詳しく見ていきましょう。
OSコマンドインジェクションの仕組み
- 例えばWebサイトの問い合わせ画面で、メールアドレスを入力することがありますよね?そのときに攻撃者は不正な文字列を入力してパスワードを盗んだり、ログの改ざんや削除を実行します。
Webアプリケーション内では入力されたメールアドレスなどと一緒に、プログラムに命令する文字列が組み立てられます。
そのためシェルはこの悪意ある文字列の命令をそのまま解釈し、「パスワードを盗め」などの命令を実行してしまうのです。
- この結果として攻撃者にパスワードなどが流出したり、ログの改ざんや削除が発生する仕組みになっているんですよ。
- なるほど。今まで入力してきたものは大丈夫だったのかな・・・なんだか心配になってきました。
OSコマンドインジェクション攻撃を受けたときの影響
OSコマンドインジェクション攻撃を受けると以下のような被害を受けます。
- 情報漏洩
- サーバー内にあるファイルへのアクセス・改ざん・削除
- データベースの変更・破壊
- ウイルスなどのマルウェア感染
- サーバー自体の乗っ取り
- DDoS攻撃の踏み台にされ他サイトを攻撃
DDoS攻撃はインターネットを通じて複数のPCから、攻撃相手のPCなどに大量の不正なデータを送りつけ、相手のPCを機能停止させることです。
詳しくDDoS攻撃を知りたい方は以下の記事をご覧ください。
1行プログラムを書くことで複数のプログラムを起動できるソフトウェアの「シェル」が、OSコマンドインジェクション攻撃を受ける原因です。
プログラムで「シェル」を呼び出せるようにしていると、OSコマンドインジェクション攻撃を受けやすくなります。
- では実際に起きたOSコマンドインジェクション攻撃の被害事例をお伝えしていきます。
OSコマンドインジェクション攻撃の事例
- 今まで実際にOSコマンドインジェクション攻撃でどんなことが起こったんでしょうか?
- それでは2つの事例についてご紹介しますね。
日テレ「43万件」の個人情報漏洩
2016年日本テレビにおいて、モバイルサイトで利用する「ケイタイキット」と呼ばれるソフトウェアが、OSコマンドインジェクション攻撃を受けました。
これは「ケイタイキット」に含まれる脆弱性が原因であると、発表されています。
攻撃者は「ケイタイキット」上に不正な遠隔操作プログラムを設置し、それを利用してシステム内部を操作することで、不正に情報を取得した事例です。
このOSコマンドインジェクション攻撃の結果、最大で43万件に及ぶ個人情報(氏名・住所・電話番号など)が、外部に流出しました。
日本テレビでは速やかに、不正アクセスが行われる原因となった脆弱性のあるソフトウェアを削除し、個人情報などのデータを別の安全な場所に移動する対策を講じています。
被害を受けた関係者に対して連絡を取り、外部の専門家による調査委員会を設置し、原因の究明と再発防止策の実施を行いました。
J-WAVE「64万件」の個人情報流出
2016年J-WAVEは同社WebサイトにOSコマンドインジェクション攻撃があり、「最大で64万件の個人情報が流出した可能性がある」と発表しました。
流出した可能性のある情報は、J-WAVEのWebサイトから番組宛に送られたメッセージや、プレゼント応募者の個人情報である名前・住所・メールアドレス・電話番号などです。
OSコマンドインジェクション攻撃はアクセスログの解析から、「ケイタイキット」の脆弱性を突いたものだと判明しています。
開発元の「アイデアマンズ」はセキュリティチェック用のツールを公開しました。
- こんな有名大手企業でも攻撃を受けてしまうんですね・・・。
- そうなんです。中小企業や有名大手企業など関係なく、攻撃者は常にセキュリティの穴を探して攻撃を続けています。なのでセキュリティ意識を高めた「システム運用」と「対策」が必要なんです。
OSコマンドインジェクション攻撃の対策
OSコマンドインジェクション攻撃の一番の対策は、WebサイトでOSコマンド(命令)を呼び出さないプログラムを作ること。
さらに侵入を検知する仕組みの構築、問題発生の影響を小さくする対策も必要です。
では具体的にお伝えしていきます。
対策①OSコマンド呼び出しを使用しない実装方法を選ぶ
OSコマンドインジェクションが起こる原因は、ユーザーが入力したデータによってOSコマンドを作ってしまうことにあります。
日本テレビやJ-WAVEのOSコマンドインジェクション攻撃も、そうした脆弱性から攻撃者に侵入されています。
そのためまずはWebサイトのプログラムでOSコマンドを呼び出しているところを洗い出し、現状を把握します。
現状を把握したら、OSコマンドを使用しないプログラム作りの検討が必要です。
対策②シェル呼び出し機能のある関数を利用しない
OSコマンドインジェクション攻撃の問題は、入力したメールアドレスなどに攻撃者が悪意ある命令を設定し、それをソフトウェアの「シェル」が実行してしまう点です。
OSコマンドインジェクションを防御する別のプログラムに変更できない場合は、プログラムの中で「シェル」を呼び出さない関数を使う必要があります。
例えばユーザーが「あいうえお」と入力したら、「アイウエオ」とカタカナで戻ってくるような仕組みのことです。
別の関数を使うことで「シェル」は呼び出されなくなります。
対策③WAFの導入
OSコマンドインジェクション攻撃の対策として「WAF」の導入が有効です。
「WAF」はOSコマンドインジェクション攻撃がWebサーバーに到達する前に検知し、サイバー攻撃者の悪意あるリクエストをブロックしてくれます。
自社で開発したプログラムではなく、「WordPress」などのCMSで脆弱性が見つかった場合は、開発元がバージョンアップするのを待たなくてはなりません。
そのような場合でも「WAF」はセーフティーネットとしての役割を果たし、攻撃を受けた際の影響を少なくできます。
WAFについて詳しく知りたい方はこちらの記事をご覧ください。
対策④オールインワンで安心!「Cyber Box Pro」
OSコマンドインジェクション攻撃に「Cyber Box Pro」を採用するのも、有効な手段となります。
Cyber Box Proは「バックアップ」「ログ管理」「セキュリティ」が一つになった商品なので、個々にそろえるより便利でコストも大幅に抑えることが可能です。
3つの機能により詳細な分析の実行と、悪意のある振る舞いの特性を識別し、OSコマンドインジェクション攻撃から守ります。
- ソースからプログラムの挙動を推測し、マルウェアが実行しそうな挙動がないかチェック
- パソコン内部のエミュレーターでプログラムを実行させ、異常な挙動がないかチェック
- 亜種のマルウェアに共通する特徴を見つけ、照らし合わせて膨大に増殖する亜種を検知
「Cyber Box Pro」はネットワーク通信を検査してウィークポイントに対する脅威をブロックし、ダウンロード書類の不整合をチェックして脆弱性への攻撃を遮断します。
またウイルスが侵入しそうなところを検査し、メモリー上で不審なプログラムコードをあぶりだし、マルウェアの中心的なサーバーとの通信状態を明らかにすることで、OSコマンドインジェクション攻撃を防ぎます。
まとめ
- OSコマンドインジェクションについて勉強したら「うちの会社のWebサイトも、脆弱性だらけかもしれない」と不安になってきました・・・。
- そうですよね。攻撃者は常にセキュリティホールがあるようなWebサイトを探して、見つけると即攻撃しますからね。事件が起きてから対策するのでは間に合わなくなってしまうんです。
サイバー攻撃も絶えず進化しているため、新しい手法が次々と登場します。
そのため脆弱性への対処にはスピードが要求されます。
まずは脆弱性を洗い出し、会社のWebサイトがOSコマンドインジェクション攻撃を受けた場合も素早く検知し、効率的でスピーディーに対処できるよう準備を整えることが大切です。