第5回 ソフトウェアの脆弱性を狙ったネットからの攻撃を防ぐ

今回の記事で一旦セキュリティ関連の記事を終わりにしたいと思います。
つまりこの記事も含め、これまでの記事の内容を実施すれば一通りのセキュリティ対策がなされたということになるので、頑張ってください。

このページは、ソフトウェアの脆弱性(セキュリティホール)を狙ったネットからの攻撃について、その攻撃方法と対策を解説しています。様々なセキュリティベンダーが実施を推奨している操作なのでしっかり覚えてください。


ソフトウェアの『脆弱性』

ソフトウェアとは、第2回目の講座でも書いた通りコンピューター上で様々な処理を行う為の手順を書いたもので、OSやWordなどのことを指します。

もちろん、これらソフトウェアは私たち人間が制作しています。なので、どうしても思った通りの動作をしてくれなかったり不具合を出してしまったりします。制作者の意図しない動作をしてしまうことがあるのは仕方のないことです。

この不具合の中で、本来実行できないはずの操作をしてしまったり、第三者から個人情報など見えてはならない情報を閲覧可能な状態にしてしまったりなど、セキュリティ上問題のある不具合のことをそのソフトウェアの『脆弱性(ぜいじゃくせい)、セキュリティホール』といいます。

脆弱性とは、一般的に言う「欠陥」とは違い、ソフトウェアの作動に関して言えば全く問題は無い場合が多いです。しかし、外部からこの脆弱性を狙った攻撃をされると意図しない操作を実行したり、情報をもらしたりするなど、セキュリティ上非常に問題のある処理を実行してしまいます。

代表的な脆弱性『バッファオーバーフロー』

ここで有名な脆弱性である『バッファオーバーフロー』について解説します。

バッファオーバーフロー

バッファオーバーフロー【buffer overflow】 、又はバッファオーバーラン (buffer overrun) と呼ばれるこの脆弱性は、バッファ領域と呼ばれる領域を超えてデータが記録されてしまうことで不具合を出します。

ソフトウェアがある処理を実行する際には、それらを実行する為の作業台となるような場所を必要とします。それに当たる場所がメモリと呼ばれる場所で、ソフトウェアはそのメモリの一部を作業領域として確保し、処理を実行するため一時的にデータを記録していきます。この領域の事をバッファ領域と言います。

ソフトウェアには、予め確保するバッファ領域の上限が記述されています。コンピューターはこの記述に則ってバッファ領域を確保して情報を格納しますが、コンピューターは記述通りに実行するので、確保されたバッファ領域以上のデータがソフトウェアで生成された場合、コンピューターはそれを無理矢理格納してしまいます。しかし、確保された容量以上のデータは入らないので外側の領域へ記録されてしまいます。

バッファオーバーフロー

バッファ領域からデータがはみ出す、これがバッファオーバーフローです。

バッファオーバーフローがなぜ脆弱性となるか

バッファ領域が確保されるメモリには、バッファの利用方法によって主にスタックとヒープの2種類が存在します。この2種類のうちスタックの中には、リターンアドレスという次に実行するプログラムへの住所のようなものが記述されています。

では、このスタックメモリ中のデータが不正なソフトウェアによって上書きされバッファオーバーフローを起こしたとします。ある領域から漏れ出したデータはリターンアドレスにまで及ぶことがあります。

もし、このリターンアドレスにまで及んだデータの中にウイルスなどの不正なプログラムへのアドレス(住所)が記述されていたらどうなるでしょう。

コンピューターはリターンアドレスに記述されている場所まで行って不正なプログラムを実行してしまいますね。これが、バッファオーバーフローがソフトウェアの脆弱性となる所以です。
(以上のようにオーバーフローを利用した攻撃を「バッファオーバーフロー攻撃」と言います。)

バッファオーバーフロー攻撃

ソフトウェアのアップデートで脆弱性を修正する

ソフトウェアの脆弱性をそのままにしておくと先ほど解説したバッファオーバーフロー攻撃などを受けてウイルスに感染したり、最悪パソコンを乗っ取られてしまう可能性があります。(ボット化など)

そうならないためにも、ソフトウェアを定期的にアップデートする習慣をつけてください。
(ソフトウェアの更新をアップデートと言います)

ソフトウェアを制作した会社や個人は、脆弱性が見つかった場合それを修正したバージョンのソフトウェアを無償で公開しているはずです。最新のソフトウェアは脆弱性だけでなく様々な改良を施しているので、積極的にアップデートしてください。

実際にアップデートをしてみる

それでは、いくつかのソフトウェアやプログラムのアップデート方法を解説します。
以下のソフトウェアは多くの方が利用している有名なソフトウェアですが、それだけに攻撃の対象となりやすいので、アップデートはこまめに行いましょう。

アップデート方法(ソフトウェア)

ソフトウェアのアップデートは大体どれも一緒で、起動したら一番上の「ヘルプ」から「ソフトウェアのアップデート」とか「更新の確認」という項目があるのでここをクリック、アップデートできるのであれば指示に従ってアップデートすればOKです。特にAdobe Readerやウェブブラウザ(Internet ExplorerやFirefoxなどサイトを閲覧するソフト)は攻撃対象になりやすいので、最新バージョンが公開されていたらすぐにアップデートしておいてください。(Internet ExplorerはWindows Updateでアップデートできます)

Adobe Reader 9のアップデート画面
▲Adobe Reader 9

iTunesのアップデート画面
▲iTunes

因みにアップデートを自動でやってくれたり、またはお知らせするタイプのものもあります。表示がされたらアップデートしましょう。最新のAdobe Readerには自動アップデート機能が追加されています。

アップデート方法(OS)

OSもソフトウェアなので様々なバグなどがあります。こちらは最低でも1ヶ月に1度マイクロソフトから修正パッチが配布されるので忘れずにアップデートしましょう。
ただ、こちらも変に設定を弄っていなければ自動でアップデートしてくれているのでちゃんとアップデートがなされているかの確認のみでいいと思います。

確認場所は、Vistaも7も同様で「スタートメニュー」→「コントロールパネル」→「Windows Update」で確認出来ます。

コントロールパネルには主に2類のの表示方法があります。コントロールパネルにある項目をカテゴリ別に分類した表示方法(ホーム)と、それぞれの項目を一覧表示させた表示方法(クラシック)のふたつです。

この講座では分かりやすく解説するために画像を多様していますが、ホーム表示の場合で解説していくと画像数が増えてしまい手間がかかってしまいます。なので、今後はクラシック表示であることを前提に解説していきます。

表示方法の切り替えは、Vistaの場合はコントロールパネル画面の左上「クラシック表示」、7の場合はコントロールパネル画面右上の「表示方法」で「大きいアイコン」又は「小さいアイコン」を選択してください。

7のコントロールパネル(クラシック)

▲クラシック表示のコントロールパネルにある「Windows Update」をクリックします。

Windows Update

▲Windows Updateの画面がでます。ここで「Windowsは最新の状態です」となっていたらアップデートの必要はありません。アップデートの確認は画面左の「更新プログラムの確認」で行えます。

以下のような表示がでていたらすぐに更新プログラムを適用してください。再起動の指示があったら作業データを保存してから再起動をしてください。
(以下の画像はVistaの場合ですが7も同様の表示がでます)

更新プログラムあり(Vista)

Windows Updateは、自動で更新を行うか確認をとってから行うかなどの設定をすることもできます。画面左にある「設定の変更」をクリックしてください。

Windows Updateの設定

基本は推奨設定でいいと思います。自分で更新したい方はいくつか設定を弄ってみるといいでしょう。しかし、設定の変更は自己責任で。

またWindows UpdateはInternet Explorerや、Microsoft Officeのアップデートも行います。

アップデート方法(Java)

最後に見落としがちな「Java」をアップデートしてみましょう。
Javaとはプログラミング言語の1つでコンピューターに命令を出すための人工言語のことです。これをアップデートすることで脆弱性の修正だけでなく、新しく追加された機能を利用することができます。

Javaコントロールパネル

▲コントロールパネルから「Java」を選択し、「アップデート」タブを選択するとこのような画面が出てきます。この画面の「今すぐアップデート」で最新のJavaが利用できるようになります。すでに最新であった場合はその旨を表示します。

Javaは自動でアップデートされます。そのときはタスクバーの通知領域で通知されるので見落とさないように気をつけてください。

これでも完璧ではない!「ゼロデイ攻撃」の恐怖

自分が導入している様々なソフトウェアのアップデートを行ったら、現在確認されている脆弱性はこれで修正され攻撃を受けなくなります

しかし、発見される前の脆弱性というものもあります。もしこの脆弱性を利用されたら正直私たちには為す術がありません。
脆弱性が発見され修正される以前の脆弱性を利用する攻撃を『ゼロデイ攻撃』といいます。

このゼロデイ攻撃は、問題の脆弱性が広く知れ渡る前の攻撃であるので防ぎようがありません。実際、修正パッチが公開され適用するまでの間にある時間差が問題になっています。

有効な対策法が発見されるまでは諦めるしかないでしょう。

この記事のまとめ

今回の記事では、ソフトウェアの脆弱性についてバッファオーバーフローを例にその問題を解説しました。
また、脆弱性を修正するためのアップデート方法も解説しました。

  • ソフトウェアの脆弱性について理解する。
  • アップデートを行って問題を修正する。

特にOSやAdobe Reader、ウェブブラウザはよく狙われるソフトウェアなのでこまめにアップデートできるかどうか確認する習慣をつけましょう。

スポンサーリンク

Track Back

Track Back URL

コメントする

非公開。必須ではありません。

(いくつかのHTMLタグ(a, strong, ul, ol, liなど)が使えます)

このページの上部へ

サイト内検索

広告

最近のコメント

Powered by Movable Type 6.3.2