- 締切済み
Web閲覧での感染
Webサイトを普通に閲覧しただけで感染する場合があるというのは知っているのですが、なぜ閲覧者のPC上でウイルスが実行されてしまうのかがイマイチ理解できません。 詳しく知っている方教えてもらえるでしょうか。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- parts
- ベストアンサー率62% (6366/10152)
技術的な回答をするとこの攻撃はエクスプロイトコード攻撃(脆弱性攻撃)といいます。 脆弱(ぜいじゃく)とは、いわゆる弱った部分を攻撃するということで、具体的にはたとえば動画を再生するという仕組みがあると仮定して、その動画再生には、特定のソフトウェアやスクリプトと呼ばれる簡易なマークアップランゲージが使われています。これには、多少の命令が含まれており、たとえば動画のサイズはこうしなさい、音声を再生しなさいと言った命令が含まれています。 さらに、こういう高度な処理をするランゲージは、標準セットコードやオプションコードセットに、当該のコンピュータ機器の情報制御に関する命令を備えていることもあります。 通常は、必要以上の命令を搾取することはできませんが、脆弱性があるとたとえばその機能から、コンピュータの管理者に関する情報を搾取できるモードが見つかることがあります。要は、ある命令を延長線上にいくつかたどると、スーパーユーザーと呼ばれる最上位権限を掌握するためのパスワードと、ユーザー名を取得することができる場合があるのです。 これが、脆弱性であり、この脆弱性を攻撃するための、道筋をエクスプロイトコードと言います。 このコードはWindowsアップデートや、Firefox Update、Google Chromeのアップデート、Adobe Flash Playerアップデート、Javaアップデートなどで定期的に埋められていますが、ここに書いたように、それぞれのアップデートは別物なのです。Windowsアップデート一つを適用していても、FirefoxやGoogle Chromeと呼ばれるブラウザソフト(Internet Explorerに相当するソフト)を利用しているユーザーは、それぞれのソフト更新を有効にしていないと更新されません。(尚、当該のソフトは原則自動更新されます) 何より危険なのは、JavaとFlashの2つで、この2つは更新ウィンドウが表示されても更新しない人がいることは有名です。これらの脆弱性を狙われると、管理者権限が奪われ、恒常的に常駐するウィルスを注入しなくとも、一定の攻撃が可能になるケースもあります。 ちなみに、脆弱性が脆弱性であるとメーカーにや世間一般に認識されていない状態で、攻撃されることもあります。これを、Zero Dya(ゼロデイ) Attack(アタック/攻撃)といいます。これは、2000年代初頭から頻繁に発生しているもので、大規模な攻撃が発覚してから、それがエクスプロイトコードによる浸食であることが見つかるパターンです。これは、主にサポートが完了した古いソフトウェアや、最新のソフトでも、アップデート管理があまり行き届いていないもので発生します。 また、安全性の確認されていないWebサイトや、有料ソフトを無料で提供するようないかがわしいサイトなどでは、これらの攻撃を受けることが多々あります。 といったところです。
- 日吉 龍(@VDSL)
- ベストアンサー率68% (176/258)
こんばんわ。 Webサイトにアクセスすると、Webサイトのデータが閲覧者のPCに転送され、閲覧者のPCのブラウザがそのデータを解釈し、画像や文字を表示しています。 非常に単純な仕組みに見えますが、これは膨大な決まりごとの上に成り立っており、誰かが(たとえばインターネットエクスプローラならばマイクロソフトのエンジニアが)その決まりごとのルールをプログラムとして書いているのです。たとえば文字のデータを文字として表示し、画像データを画像として表示し、大きく表示する指示があれば大きく表示し、小さく表示する指示があれば小さく表示する...というようなプログラムを誰かが書いていて、みんながそれを利用しているわけです。 プログラムをする人は、決まりごとに則ったデータが来た時の動作だけでなく、決まりごとに則っていない異常なデータが来た時にどのように対処するかも書くわけですが、そこは人間がやっていることですので、特定のデータの組み合わせや想定していない特殊なデータ、もしくは尋常ではない量のデータなどを受け取った時に、プログラムをした人が想定していなかった動きをしてしまう場合が出てしまうのです。 さて、攻撃する側は異常な振る舞いを可能にするような"穴"を見つけ出し、その穴を利用して自分が送り込んだデータをプログラムとして動かすように心を砕くわけです。"穴"には色々な種類があり、単純にPCのブラウザにエラーが出るだけのものもあれば、書かれているようにウイルスを実行することができるものもあります。それを見つけるのは容易ではなく、攻撃者側にも非常に高いスキルが求められます。 "穴"をどのように利用して自分が送り込んだデータをプログラムとして実行するのかを解説するには、PCの上でどのようにプログラムがメモリを利用し、どのように動作するかを理解している必要があるため、この辺で。