コンピュータウイルス
コンピュータウイルスの説明
コンピュータウイルス (computer virus) とは、広義ではコンピュータに被害をもたらす不正なプログラムの一種である。
概要
日本工業規格(JIS X0008「情報処理用語-セキュリティ」)では単に「ウイルス」 (virus) と定義され、一般に医学・生物学上の原義のウイルスと混同する恐れがない場合は「ウイルス」と呼ぶことが多い(なお、英語ではヴァイラスと発音する)。
具体的には感染先のファイル(「宿主」と呼ぶ)の一部を書き変えて自分のコピーを追加し (感染)、感染した宿主のプログラムが実行された時に自分自身をコピーするコードを実行させることによって増殖していくというものである。
ウイルスが含まれたファイルは、「ウイルスに感染している」という。感染したファイルを(多くの場合、感染していることを知らずに)複製することによりウイルスが広がっていくさまが、生物と同様の特徴を持つウイルスが増殖していくさまに似ていることからこの名前がついた。
コンピュータウイルスの感染を阻止したり、感染したウイルスを検出したりする技術をアンチウイルス (anti-virus) と呼び、それらを支援するソフトウェアをアンチウイルスソフトウェアや、ウイルス対策ソフト・ワクチンなどと呼ぶ。(詳しくは通産省の告示[2]を参照のこと)
日本でコンピュータウイルスを感染させる行為をした場合、電子計算機損壊等業務妨害罪、偽計業務妨害罪、器物損壊罪、電磁的記録毀棄罪、信用毀損罪、業務妨害罪等の規定が適用される可能性がある。電子計算機損壊等業務妨害罪が適用された場合、5年以下の懲役又は100万以下の罰金に処せられる。ウイルスに感染した被害者から損害賠償を請求された場合は、作成者はさらに多額の賠償をしなければならなくなる。自分のコンピュータがウイルスに感染したが対策をとらず、他のコンピュータに感染を広げてしまった場合も賠償の責任を負う可能性がある。
さらに、2003年3月、法務省は、サイバー犯罪条約の批准要件を満たす為ウイルスの作成・所持を犯罪構成要件とする「ウイルス作成罪」を新設する方針を発表した。2004年2月、ウイルスに関する刑事罰を盛り込んだ刑法改正案を国会提出。その後、継続審議、廃案、再提出を繰り返しながら、2011年6月に情報処理の高度化等に対処するための刑法等の一部を改正する法律が国会で可決成立した(2011年7月に施行予定)。正当な理由がなく無断で他人のコンピューターにおいて実行させる目的でウイルスの「作成」「提供」「取得」「保管」した場合の刑事罰(不正指令電磁的記録に関する罪)が規定された。
アメリカ合衆国などではウイルスの作成者の情報に多額な懸賞金がかけられ、作成者が逮捕されることも多い。米マイクロソフトはMSBlastワームとSoBigウイルスの作成者逮捕につながる情報に、25万ドルずつの報奨金を懸けている。2004年5月、ドイツの警察はSasserを作成したとして18歳の少年を逮捕した。
企業がウイルス対策を怠って、取引先にウイルス付きのメールを送ってしまった場合、信用問題、訴訟問題に発展する可能性がある。
ユーザーを驚かせるために作られた、感染能力、破壊能力のないジョークプログラムはコンピュータウイルスに含まれない。ウイルス対策ソフトも駆除しないが一部のジョークプログラムはウイルス対策ソフトで駆除される場合もある。
歴史
空想上の概念としては、1972年にデイヴィッド・ジェロルドによるSF小説 H・A・R・L・I・E において、「ウイルス」プログラムと、それに対抗する「ワクチン」プログラムが登場している。情報科学の世界ではじめて「ウイルス」の語が使われたのは、1984年に当時ニューヘブン大学の学生であった Fred Cohen が発表した研究論文中といわれている[3]。
実装上のウイルスの起源は1960年代にC言語の開発者としても知られるデニス・リッチーらによって作成されたDarwinおよびその移植Core Warsという対戦型のコンピュータゲームにまでさかのぼる。DarwinはPDP-1上で動作する仮想機械上で、ターゲットを上書きすることで勝利する、疑似アセンブリコード同士を競わせるプログラムであり、当初は生命の定義や人工生命の可能性についての研究― 自身を複製できるものが生命なのか、生命が存在するために最低限必要なことはなにか(捕食対象の識別、あるいは自己と他者の認識や自己防衛とは何か)―を研究するための“仮想環境と生態系”として研究者に利用されていた。やがてプラットフォームの更新による仮想機械や実行環境の整備、という工程を短絡させる形で現在の、『ネイティブなソフトウェア』としてのウイルスにその流れが引き継がれることになった[4]。
現在ある形での最初のウイルスがどれであるかについては諸説ある。1970年代にはCreeperと呼ばれるワームがARPANET上で確認されていた。狭義のコンピュータウイルスとして世界初のものは、1982年に当時ピッツバーグの高校生であった Richard Skrenta によって作製されたElk Clonerで、Apple IIにのみ感染するものであった[5]。1986年には、パキスタンのコンピューター店を経営するアムジャット兄弟(プログラマー)が、不正コピー防止を訴えるために「Brain」を作製し、これがIBM PCに感染する初のウイルスといわれている。日本では1988年、パソコン通信を介してウイルスに感染したものが最初とされる。
Elk Clonerをはじめ、1980年代初期のウイルスは単に自らのコピーを複製し、フロッピーディスクなどを媒介としてコンピュータ間に感染するだけで、時にメッセージを表示して利用者を驚かせる程度の無害なものであった。ところが、1980年代後半以降ウイルスは徐々に進化し、現実的な被害をもたらす原因になりはじめる。
1988年にMorris Wormが稼動しはじめたばかりのインターネットに被害をあたえ、1992年3月6日にMichelangeloが感染者のデータを一斉に破壊すると、コンピューターウイルスは現実的な脅威として認識され、マスコミ等でも報道されるようになった。1999年には電子メールの添付ファイルによって感染する初のウイルスMelissaがつくられ、感染力が飛躍的に増大した。2001年にはサーバ上のセキュリティホールを悪用するCode Redが登場、同年にはウェブサイトを閲覧するだけで感染するNimdaも作成され、爆発的に広がった。
一方、ウイルスを除去する「ワクチン」の開発もウイルスの進化と平行して進められ、1988年には最初期のアンチウイルスソフトウェアの1つDr. Solomon's Anti-Virus Toolkitがリリースされている。今日では、単なる愉快犯的ウイルスから、クレジットカード番号などの個人情報を引き出して悪用するものまで、数万種のウイルスが存在していると言われ、アンチウイルスソフトウェアを含めたコンピュータセキュリティの市場規模は2008年には全世界で数十億ドルに達するものと予測されている[6]。
ウイルスの目的
くだらないメッセージを表示して世間を騒がせて目立つという、愉快犯的な目的で作られたと思われるものは多い。ハードディスクをフォーマットしたり、BIOSを書き換えたりされてコンピュータが起動しなくなることもあるが、データのバックアップを取っていれば修復は可能である。しかし、中にはコンピュータに侵入してパスワードやデータを盗み出したり、バックドアを作成してコンピュータの制御を奪ったりしてしまうような悪質な目的のものも存在する。派手に騒ぎ立てるようなウイルスは発見が早いが、こっそりと活動し微妙な改変を加えるようなものは発見が難しく対処が遅れることもある。ウイルスの作成自体は高度な技術がなくても可能である(感染が拡大するか否かは別であるが)。スクリプトで作成したウイルスは改変が容易で、またオープンソースのもの(SourceForge.net内でも平然と開発されている。しかし、それを禁止するような規約等が存在しないのが現状である)や多くのプラットフォームで動作可能のため、多くの亜種が登場する。特定のメーカーのソフトウェアを標的にして、そのソフトウェアの信用を失墜させようとしていると思われるウイルスもある。
また近年では、別の目的のための手段としての利用がみられる。一種のP2P用ネットワーク(ボットネット)を形成する事で、感染したコンピュータの情報を盗んだり、DoS攻撃やスパムの発信プラットフォームとする物を製作・流布させたりするグループも幾つか確認されている。金銭目的の犯罪の道具として使われる点で、同じ目的のスパイウェアやマルウェアとの垣根も低くなってきている。
最近の例では有益なツールとされるもの(主にP2Pネットワークを媒介とし、感染者のパソコンをサーバ化しHDD内のデータやスクリーンショットしてアップロードするウイルスの感染者を探し出すためのツール)にウイルスが含まれていたことがある。ウイルスの亜種がインターネット掲示板にホスト名を公開しながら犯罪予告をする等の動作を行うため、一部で話題になった(山田オルタナティブ)。
ウイルスの感染経路
ネットワーク普及以前は、フロッピーディスクなどで感染が広がった。書籍や雑誌の付録として付いていたフロッピーディスクにウイルスが含まれていた事例もある。現在ではネットワークソフトウェアのセキュリティホールを使って感染するもの、電子メールの添付ファイルを使って感染するものなどがある。簡単に自身の複製をばら撒けるため、現在では電子メールによる感染がほとんどである。LANケーブルを抜くなど、ネットワークから物理的に隔離してしまえば感染が広がるのを確実に防ぐことができる。
一般的な対策
対策法
コンピュータウイルスの感染を防ぐには、ウイルス対策ソフト(アンチウイルスソフトウェア)の導入がもっとも効果的かつ手軽である。ウイルス検出の方法にもよるが、ウイルス対策ソフトはウイルス検知用のデータがないと十分に機能しないので、頻繁に定義ファイルをアップデートしなければ役に立たない。自動アップデート機能がついていれば、自動的にウイルス対策ソフトの開発元のサーバからウイルス定義ファイルをダウンロードし更新してくれるので、オンにしておくほうが良い。できるならウイルス検出が出来るウェブサイトで検査し、定期的にハードディスク全体をスキャンすると良い。
インターネットサービスプロバイダ(ISP)によっては、個人・小規模ユーザ向けに、メールゲートウェイ型のウイルスチェックサービスを提供している。(メールの送受信時に、ISPのサーバで添付ファイル等のウイルスチェックを行う。)
また、ルーター・ファイアウォール機といった通信のゲートウェイとなる機器に、ウイルスや不正アクセスの検出・遮断機能を持たせる場合もある。(主に企業での接続の場合)
なおこれらの対策法は、それぞれサービスによって得手・不得手が異なり、1つの対策法で全ての種類のウイルスや不正アクセス等に対応ができるわけではないため、可能ならば複数の対策法を組み合わせて利用した方が良い(対策法の詳細な技術的検討も必要である)。また、これらの対策法を導入しただけでは不十分であり、併せて次項のユーザの注意すべき点を遵守する事もまた肝要である。
基本的なセキュリティ
今日(2011年初頭)、サポートが継続されているオペレーティングシステムの全て(Windows NT系 - Microsoft Windows 7、Vista、XPや、UNIX系OS - Mac OS X、Linux、*BSDなど)が、アクセス権・アクセス制御リストをサポートしている。また、マルチユーザー機能を備え、複数のユーザーが利用する事が出来る。これは、コンピューターウイルス対策において大変重要な対策を提供してくれる。
* 通常利用するユーザーは、特権ユーザー (root, administrator) ではないユーザーを使用する。 UNIX(系OS)ではデフォルトがこの様になっている。Windows(NT系)では通常権限のユーザーを追加する事で実現できる。
* 通常利用するユーザーには、システムファイルを含む実行ファイルへの書き込み権限を削除する。 ほぼ全てのOSはシステムファイルへの書き込み権限が通常ユーザーでは行えない様になっている。
* カレントディレクトリ・データディレクトリからプログラム実行権限を削除する。pathにカレントディレクトリを示す"."があれば削除し、chmodやcaclsコマンドでディレクトリから実行権限を削除する。テンポラリディレクトリも同様に削除する。Windowsはユーザー毎にテンポラリディレクトリを持てるので、管理者以外のテンポラリディレクトリ全部から削除する必要がある。
これはUNIX系では、通常標準的な機能として実装されている。Windows NT系OSでは名称は異なれど全く同じ機能を利用することができる(Windows 9x系にはこの機能は無く、9x系はMicrosoftのサポート対象外となっている)。
このオペレーティングシステムが提供するセキュリティ機能を利用する手段は、アンチウイルスソフトウエアほど強力な機能ではないが、逆にアンチウイルスソフトが検出できなかったウイルスの活動を抑制する防波堤としては十分に機能する。
ユーザの注意すべき点
現在の多くのウイルスはEメール経由で感染するため、Eメールの添付ファイルは安易に開いてはならない。知らない相手から届いた添付ファイルは即削除するのはもちろん、よく知った相手でも本文にファイルを添付した旨が書かれていない場合、その添付ファイルは非常に危険である。どちらにせよ、不審なファイルにはウイルスチェックを十分に行うことが必要である。電子メールクライアント(Eメール受信ソフト)でHTMLメールを自動的に表示させると、次に述べるWebブラウザのセキュリティホールを突かれる場合もあるので、できればそのような機能はオフにした方が良い。
Webブラウザやアドオン(拡張機能)のセキュリティホールを突いて感染するウイルスもある。この場合サイトを閲覧しただけでウイルスに感染してしまう事もある。不審なサイトを閲覧する場合や閲覧に必要のない場合は、ActiveXやJava、JavaScriptなどの機能は無効にしておいたほうがより安全である。そもそも不審なサイトにはアクセスしない方が良いし、ポリシー・政治・ルールによってはWeb閲覧専用のシステムをセットアップするなど、注意深い対処が必要である。
(ただ、「不審なサイトを訪問しない」と言うポリシーのユーザが通常にアクセスするようなサイト(ポータルサイトなど)が、クラックされて不正ソフトウェア類を仕込まれた場合もある。)
他にも、ソフトウェアのセキュリティホールを塞ぐパッチ(修正プログラム)がリリースされた場合はすぐにインストールすること、OSに限らずなるべくソフトウェアのバージョンを最新に保つこと、出所不明の怪しいソフトウェアは実行しないこと、ウイルスに感染していないことが明確でないファイルは、ウイルス対策ソフトで感染していないかスキャンすることなどが挙げられる。不要なアプリケーションやサービスをアンインストールもしくは停止すること、パーソナルファイアウォールを導入することなども被害拡大を防ぐ上で効果がある。
(なお、セキュリティホールを塞ぐパッチが出てすぐにインストールするのは良いが、そのパッチが原因で他の障害等を引き起こしてしまうこともままあるため、パッチの適用にも細心の注意が必要である。)
たびたび特定のサーバやプロバイダからウイルスメールが送られてくる場合は、そのサーバ管理者やそのプロバイダの利用者がウイルス対策を怠っている可能性があるので、連絡を取ってウイルスを駆除するように要請した方が良い。個人レベルではウイルス対策ソフトのみでもかなり対処できるが、企業のネットワークでは被害に遭ったときの被害が甚大であり、セキュリティの知識がある管理者が求められる。
もし感染してしまった場合は、感染の拡大を防ぐためすぐさま物理的にネットワークと切り離す(LANケーブルを抜くなど)。その後必要なファイルを適切な媒体に移して別のパソコンでウイルススキャンを行ってウイルスを取り除く。それでもウイルスが駆除できないようなら、専門家に依頼してハードディスク・フラッシュメモリ、その他記録可能な部分から全て検査し、ウイルスを取り除いてもらう。
最終手段としては、パソコンのハードディスク、フラッシュメモリなどの記憶領域の内部のデータを完全に消去するか、場合によってはハードディスクなどを換装(メーカー製のパソコンの場合、保証対象外となるおそれがある)した後、OSを再インストール(フルリカバリー)することが挙げられる。
ステルス技術
ウイルス対策ソフトに駆除されないよう、ウイルス側(ウイルス作成者)もいろいろと巧妙な手段を使っている。ステルス技術はウイルス対策ソフトに見つからないようにする技術である。
* ポリモーフィック - ウイルス自身を感染のたびに暗号化する。毎回そのウイルスのデータが変化する。ただし暗号化の動作が記述されている部分は同一のため、検出が可能である。
* メタモーフィック - プログラムを分割して順番を入れ替える。これだけでも単純なパターンマッチングでは検出できない。ウイルス対策ソフトでは、仮想的な環境に閉じ込めて動作させてみることで、それがウイルスかどうか判別する。
* rootkit型 - OSのカーネルに侵入し、マルウェア(不正プログラム)自体のファイルやプロセスに、アンチウイルスソフトウェアなどの他のプロセスがアクセスできないように隠蔽する。
アンチウイルス技術
* パターンマッチング手法 - ウイルスの特徴的な部分をパターンとしてリストし、そのパターンに合致したものをウイルスとして検出する。ただし、定義ファイルにない未知のウイルスを検知することは出来ない。
* ジェネリック手法
* ヒューリスティック手法 - ウイルスと思われる挙動を認識して定義ファイルにない未知のウイルスを検知することができる。
* ルールベース手法
* チェックサム手法
また、誹謗中傷対策サービスに関するご質問などがございましたら、専門スタッフが、親切丁寧にお応えいたします。
個人様・法人様の場合でも、匿名でのご相談(お電話)も承っておりますので、お気軽にご連絡くださいませ。