対ウイルス多層防御ガイド
第 2 章: マルウェアの脅威
公開日: 2004年9月7日
トピック
はじめに
コンピュータ ウイルスの進化
マルウェアとは何か
マルウェアの特性
マルウェアでないものは何か
ウイルス対策ソフトウェア
一般的な "ユーザー環境 (In-the-Wild)" マルウェアのタイムライン
要約
はじめに
「対ウイルス多層防御ガイド」のこの章では、初期の比較的単純なウイルスから今日の多種多様な悪意のあるソフトウェア ("マルウェア") までのコンピュータ ウイルスの進化を、簡単に説明します。この章では、既知のマルウェアのタイプとテクニックの分類を定義し、マルウェアの伝播とそれによるあらゆる規模の組織に対するリスクに関する情報も提供します。
このトピックは常に進化しているため、このマニュアルでもすべてのマルウェアの要素と発生し得るバリエーションを検出したり説明したりすることはできません。しかし、マルウェアを構成する多様な要素の性質を理解するための、重要な最初のステップにはなります。また、マルウェアに含まれないものについても説明および定義します。たとえば、"スパイウェア" (ユーザーによる適切な同意を得ないで、コンピュータに一定の活動を行わせるプログラム)、"スパム" (不要な電子メール)、および "アドウェア" (ソフトウェアに組み込まれた広告) などです。
コンピュータ ウイルスの進化
最初のコンピュータ ウイルスは、1980 年代初期に作成されました。最初の試みの多くは実験的なものであり、比較的単純な自己複製ファイルで、実行されると単純なあざけりや冗談を表示するものでした。
注: ウイルスの進化の歴史を完全に正確に示すことは不可能であるということをご理解いただく必要があります。マルウェアは違法であるため、加害者の利益のために悪意のあるコードの発生源は隠されるからです。このマニュアルは、ウイルス研究者やウイルス対策業界に一般的に受け入れられているマルウェアの歴史を抜き出しています。
1986 年までに、最初のいくつかのウイルスが Microsoft® MS-DOS® パーソナル コンピュータを攻撃したという報告があり、一般的には Brain ウイルスがこれらのコンピュータ ウイルスの最初のものとみなされています。しかし、1986 年には他にも最初のウイルスとして現れたものがあります。Virdem (最初のファイル ウイルス) と PC-Write (最初の "トロイの木馬"、すなわち、有用なプログラムや無害なプログラムと見せかけて隠されたコードで実行しているシステムを悪用したりシステムに損害を与えたりするプログラム) などです。PC-Write の場合、トロイの木馬は同じ名前の普及したシェアウェアのワードプロセッサ アプリケーションのようにみせかけていました。
より多くの人々がウイルス テクノロジを探求するにつれて、ウイルスの数、標的にされるプラットフォーム、およびウイルスの複雑さと多様性のすべてが大幅に増加しました。ウイルスは、ある時期はブート セクタを狙い、次には実行可能ファイルに感染するようになりました。1988 年には、最初のインターネット "ワーム" (自己増殖する悪意のあるコードで、ネットワーク接続を通して自動的に自己を1つのコンピュータから別のコンピュータに配布する種類のマルウェア) が出現しました。Morris Worm は、インターネット通信の速度を大幅に低下させました。増加しつづけるワームやウイルスの感染拡大に対して、感染やインシデントの対策の調整を支援してインターネットの安定性を保証するために、CERT Coordination Center (https://www.cert.org/ (英語)) が設立されました。
1990 年に Virus Exchange BBS がオンライン化され、ウイルス作成者が互いに共同作業を行ったり知識を共有できるようになりました。また、最初のウイルス作成に関する書籍が出版され、最初の "ポリモフィック型" ウイルス (一般的には Chameleon または Casper と呼ばれます) が開発されました。ポリモフィック型ウイルスは、無限回の暗号化ルーチンを使用して検出を逃れるタイプのマルウェアです。ポリモフィック型ウイルスには、自身を複製するたびに自己を変更する機能があります。そのため、ウイルスを "識別" するために設計された、"ウイルス定義ファイル" ベースのウイルス対策ソフトウェア プログラムでは検出が困難です。 そのすぐ後に、Tequila (最初の大規模なポリモフィック型ウイルス) による攻撃が発生しました。1992 年には、最初のポリモフィック型ウイルス エンジンとウイルス作成ツールキットが出現しました。
それ以来、ウイルスは一層巧妙になってきています。ウイルスは電子メールのアドレス帳にアクセスしてその連絡先に自己を送信するようになりました。マクロ ウイルスはさまざまなオフィスタイプのアプリケーション ファイルに自己を添付してそれらのファイルを攻撃し、また、オペレーティング システムとアプリケーションの脆弱性を悪用することを主な目的としたウイルスが作成されました。電子メール、ピア ツー ピア (P2P) ファイル共有ネットワーク、Web サイト、共有ドライブ、および製品の脆弱性のすべてが、ウイルスの複製と攻撃に悪用されています。侵入されたシステムには "バックドア" (マルウェアによって導入された秘密の隠されたネットワークの入り口) が作成され、ウイルスの作成者 ("ハッカー") が再侵入して任意のソフトウェアを実行します。 このマニュアルでは、ハッカーとはコンピュータ システムやネットワークに違法なアクセスを試みるプログラマまたはコンピュータのユーザーです。マルウェアについては、この章の次のセクションで詳細に説明します。
一部のウイルスでは、それ自体に電子メール エンジンが埋め込まれていて、ユーザーの電子メール クライアントやサーバーの設定をバイパスして、侵入したシステムから直接、電子メールでウイルスを伝播できるようになっています。ウイルス作成者は慎重にその攻撃を構築し、ソーシャル エンジニアリングを使用して本物らしく見える電子メール メッセージを開発するようになりました。このアプローチによって、ユーザーが信用してウイルスが添付されたファイルを開くように仕向け、それによって大規模感染の可能性を劇的に増大させます。
このようにマルウェアの進化する中で、ウイルス対策ソフトウェアも同様に進化を続けてきました。しかし、現在のウイルス対策ソフトウェアの大部分は、ほとんど完全にウイルスの "ウイルス定義ファイル" に依存するか、悪意あるソフトウェアの特性を判別することで、悪意を持つ可能性があるコードを識別するものです。ウイルスが最初に確認されてからウイルス対策ソフトウェア ベンダによってウイルス定義ファイルが広く配布されるまでの間は、依然として危険が残ります。その結果、今日確認されている多くのウイルスは最初の数日に劇的な速さで感染を広げ、それに対抗するウイルス定義ファイルが配布されると急激に減少するようになっています。
マルウェアとは何か
このマニュアルでは、"マルウェア"(「悪意のあるソフトウェア (malicious software)」の略) という語を、コンピュータ システムに対して意図的に悪意のあるタスクを実行するウイルス、ワーム、およびトロイの木馬を示す集合名詞として使用します。
では、コンピュータ ウイルスやワームとは、正確には何でしょうか。それらはトロイの木馬とどのように違うでしょうか。そして、ウイルス対策アプリケーションは、ワームやトロイの木馬に対しても機能するのでしょうか。それともウイルスに対してのみでしょうか。
これらすべての疑問は、悪意のあるコードがわかりにくく、またコードの情報がしばしば誤って伝えられるために起こります。既存の悪意のあるコードの数と種類はかなり多いため、各マルウェアのカテゴリを完全に定義することは困難です。
一般的なウイルス対策の説明には、次の簡素なマルウェア カテゴリの定義が適用されます。
トロイの木馬: 有用なプログラムや無害なプログラムに見せかけて、隠されたコードで、実行しているシステムを悪用したりシステムに損害を与えたりするプログラム。トロイの木馬プログラムは、通常はプログラムの目的と機能を偽った電子メール メッセージによってユーザーに配布されます。トロイ型コードと呼ばれることもあります。トロイの木馬は、実行されると悪意のある "ペイロード" やタスクを実行し、損害を与えます。
ワーム: ワームは自己増殖する悪意のあるコードで、ネットワーク接続を通して自動的に自己を1つのコンピュータから別のコンピュータに配布します。ワームは、ネットワークやローカル システムのリソースを消費したり、サービス拒否攻撃を引き起したりといった、有害なアクションを実行します。ユーザーの介入なしに実行および拡散するワームもありますが、拡散するにはユーザーがワームのコードを実行する必要があるものもあります。ワームも、複製の他にペイロードを実行させることがあります。
ウイルス: ウイルスは、それ自体の複製を明確な目的として作成されたコードを使用します。ウイルスは、宿主になるプログラムに自己を添付することにより、別のコンピュータへの伝染を試みます。ハードウェア、ソフトウェア、またはデータに損害を与える場合があります。宿主プログラムが実行されると、ウイルス コードも実行されて新しい宿主に感染し、さらにペイロードを実行させることもあります。
このガイドでは、"ペイロード" は感染したコンピュータでマルウェア攻撃が実行するアクションを示す集合的な用語です。マルウェアの多様なカテゴリをこのように定義することで、簡単なフローチャートを使用してそれぞれの相違を示すことができます。次の図は、プログラムやスクリプトがどのカテゴリに属するかを判断するための要素を示しています。
図 2.1 悪意のあるコードの判断ツリー
この図により、このマニュアルの目的である、一般的な悪意のあるコードの各カテゴリの区別が可能になります。しかし、単一の攻撃が 1 つまたは複数のカテゴリに当てはまるコードを導入することがあるということを理解することが重要です。これらのタイプの攻撃 ("混合された脅威" と呼ばれ、複数の攻撃経路を使用する複数のタイプのマルウェアからなります) は、高速で拡散することがあります。"攻撃経路" は、マルウェアが攻撃のために使用するルートです。 これらの理由から、混合された脅威に対する防御は特に困難です。
次に、各マルウェア カテゴリをより詳細に説明し、それぞれの重要な要素をいくつか示します。
トロイの木馬
トロイの木馬は自己を増殖しないため、コンピュータ ウイルスやワームではないとみなされます。しかし、攻撃ペイロードの一部としてトロイの木馬を標的のシステムにコピーするためにウイルスやワームが使用されることもあります。これは、"ドロッピング" と呼ばれるプロセスです。トロイの木馬の通常の目的は、ユーザーの作業や正常なシステムの操作を妨害することです。たとえば、トロイの木馬はシステムにバックドアを作成して、ハッカーがデータを盗んだり構成の設定を変更したりできるようにすることがあります。
トロイの木馬やトロイの木馬タイプの活動に言及するときに、しばしば使用される 2 つの用語があります。その用語と説明を次に示します。
リモート アクセス型トロイの木馬: 一部のトロイの木馬プログラムを使用すると、ハッカーやデータ窃盗者がシステムをリモート制御できるようになります。そのようなプログラムは "リモート アクセス型トロイの木馬" (RAT) またはバックドアと呼ばれます。RAT の例は、Back Orifice、Cafeene、および SubSeven です。
このタイプのトロイの木馬の詳細は、Microsoft TechNet の「Danger: Remote Access Trojans」 (英語) を参照してください。 https://www.microsoft.com/technet/security/alerts/info/virusrat.mspx
Rootkit: これらは、ハッカーがコンピュータに対して許可のないリモート アクセスを実行し、さらに攻撃を実行するために使用するソフトウェア プログラムの集合です。これらのプログラムは、キー操作の監視、システム ログ ファイルや既存のシステム アプリケーションの変更、システムに対するバックドアの作成、およびネットワークの他のコンピュータに対する攻撃の開始など、多様な技術を使用することがあります。Rootkit は、通常は特定のオペレーティング システムを標的にした一連のツールとして編成されます。最初の Rootkit は 1990 年代初めに発見され、当時は Sun および Linux のオペレーティング システムが主な標的でした。現在は、Microsoft Windows® プラットフォームなど多くのオペレーティング システムに対応する Rootkit があります。
注: RAT や Rootkits を構成するいくつかのツールには、正当なリモート制御および監視機能がある場合もあります。しかし、それらのツールによって引き起こされるセキュリティおよびプライバシの問題は、それを使用する環境の総合的なリスクを引き上げます。
ワーム
自己を複製する悪意のあるコードがトロイの木馬でない場合、そのマルウェアをより明確に定義するために発する次の質問は、"そのコードは宿主に感染しなくても複製できるかどうか" です。すなわち、実行可能ファイルに感染しなくても複製できるかどうかということです。この質問に対する答えが "はい" の場合は、そのコードはワームの一形態とみなされます。
多くのワームは自己をホスト コンピュータにコピーし、次にそのコンピュータの通信チャネルを使用して複製します。たとえば、Sasser ワームはサービスの脆弱性を悪用してシステムに感染し、次にその感染したコンピュータのネットワーク接続を使用して複製を試みます。最新のセキュリティ更新プログラムをインストールして感染を阻止しているか、環境内のファイアウォールを有効にしてワームが使用するネットワーク ポートをブロックして複製を阻止している場合、その攻撃は失敗に終わります。
ウイルス
悪意のあるコードが複製のために自己のコピーをディスク ドライブのファイル、ドキュメント、またはブート セクタに追加する場合、それはウイルスとみなされます。このコピーは、元のウイルスの直接コピーの場合もありますが、修正されたバージョンの場合もあります。詳細は、この章の後半の「防衛メカニズム」を参照してください。既に説明したとおり、ウイルスにはしばしばペイロードが含まれていてローカル コンピュータを襲うことがあります。たとえばトロイの木馬は、ユーザー データを削除するなど、1 つまたは複数の有害な活動を実行します。しかし、ただ複製するだけでペイロードがないウイルスもマルウェア プログラムです。なぜなら、ウイルス自体が複製時にデータを破壊し、システム リソースを占有し、ネットワーク帯域幅を消費するからです。
マルウェアの特性
各カテゴリのマルウェアが示すさまざまな特性は、しばしば非常に似通っています。たとえば、ウイルスとワームは、両方とも転送メカニズムとしてネットワークを使用します。しかし、ウイルスは感染対象になるファイルを検索するのに対して、ワームは単に自己のコピーを試みます。次に、マルウェアの一般的な特性を説明します。
標的にする環境
マルウェアはホスト システムに対して攻撃しようとするため、その攻撃を成功させるために多くの固有のコンポーネントを必要とすることがあります。次に、マルウェアがホストを攻撃するために必要とするコンポーネントの一般的な例を示します。
デバイス: 一部のマルウェアは、特定のデバイス タイプを標的にします。たとえば、パーソナル コンピュータ、Apple Macintosh のコンピュータ、またはパーソナル デジタル アシスタント (PDA) などです。ただし PDA マルウェアは現在ほとんど見られません。
オペレーティング システム: マルウェアは、特定のオペレーティング システムでのみ効力を発揮する場合があります。たとえば、1990 年代後期の CIH または Chernobyl ウイルスは、Microsoft Windows 95 または Windows 98 を実行しているコンピュータのみを攻撃しました。
アプリケーション: マルウェアによっては、ペイロードを実行させたり自己を複製したりするために、標的のコンピュータに特定のアプリケーションがインストールされている必要のあるものもあります。たとえば、2002 年の LFM.926 ウイルスは、ローカル コンピュータで Shockwave Flash (.swf) ファイルが実行できる場合にのみ攻撃可能でした。
感染対象プログラム
ウイルスの場合、感染する対象 (宿主プログラムとも言います) を標的にしようとします。標的にされる感染対象プログラムの数とタイプはマルウェアによって非常に多岐にわたりますが、通常標的になる対象の例を次のリストに示します。
実行可能ファイル: これは、自己を宿主プログラムに添付する "旧式の" ウイルス タイプの標的です。.exe という拡張子を使用する一般的な実行可能ファイルの他に、.com、.sys、.dll、.ovl、.ocx、.prg といった拡張子のファイルも標的に使用されます。
スクリプト: Microsoft Visual Basic® Script、JavaScript、AppleScript、または Perl Script などのスクリプト言語で作成されたスクリプトを感染の標的ファイルにする攻撃です。このタイプのファイルの拡張子には、.vbs、.js、.wsh、.prl などがあります。
マクロ: これらの感染対象は、ワード プロセッサ、スプレッドシート、データベース アプリケーションなど、特定のアプリケーションのマクロ スクリプト言語をサポートするファイルです。たとえば、ウイルスは Microsoft Word および Lotus Ami Pro に含まれるマクロ言語を使用して、ドキュメント中の語を入れ替えたり色を変更したりするなどのいたずらからコンピュータのハード ドライブをフォーマットするような悪意のあるものまで、さまざまな攻撃を実行できます。
ブート セクタ: コンピュータのディスク (ハード ディスクおよびリムーバブル メディア) の特定の領域であるマスタ ブート レコード (MBR) や DOS ブート レコードなども、感染対象になります。なぜなら、それらは悪意のあるコードを実行できるからです。あるディスクが一度感染すると、そのディスクが他のコンピュータ システムの起動に使用されるたびに、複製が実行されます。
注: ファイルとブート セクタの両方を感染の標的にするようなウイルスは、"マルチパーティ型ウイルス" と呼ばれることがあります。
転送メカニズム
攻撃には、コンピュータ システム間での複製のために 1 つまたは複数の多様な方法が使用されることがあります。ここでは、マルウェアが使用するいくつかのより一般的な転送メカニズムについて説明します。
リムーバブル メディア: コンピュータ ウイルスおよびマルウェアで初期の頃から転送に使用され、少なくとも最近まではおそらく最も感染力が強い手段は、ファイル転送です。このメカニズムはフロッピー ディスクと共に始まり、次にネットワークに移転して、現在ではユニバーサル シリアル バス (USB) デバイスやファイアウォールなどの新しいメディアを使用しています。感染率はネットワークベースのマルウェアほどではありませんが、その脅威は依然として存在し、システム間でデータを交換する必要がある限り、根絶は困難です。
ネットワーク共有: コンピュータ同士をネットワークで直接的に接続するメカニズムが実現されると、これはマルウェア作成者にとって、悪意のあるコードを拡散するうえでリムーバブル メディアの能力を超える可能性がある新たな転送メカニズムとなりました。十分なセキュリティが実装されていないネットワーク共有は、マルウェアにとってネットワークに接続された多数のコンピュータに自己を複製できる環境となります。リムーバブル メディアを使用する手動方式の大部分が、この方式に置き換えられています。
ネットワーク スキャン: マルウェア作成者はこのメカニズムを使用して、ネットワークをスキャンして脆弱なコンピュータを探したり、ランダムに IP アドレスを攻撃したりします。たとえば、特定のネットワーク ポートを使用して一定の範囲の IP アドレスに攻撃用パケットを送信し、攻撃できる脆弱なコンピュータを見つけようとします。
ピア ツー ピア (P2P) ネットワーク: P2P ファイル転送を実行するには、ユーザーはまず P2P アプリケーションのクライアント コンポーネントをインストールする必要がありますが、これはポート 80 などの組織のファイアウォールを通過するように許可されたネットワーク ポートの 1 つを使用します。アプリケーションはこのポートを使用してファイアウォールを通過し、1 つのコンピュータから別のコンピュータにファイルを転送します。このようなアプリケーションはインターネット上ですぐ使用できるようになっていますが、これは、感染したファイルをクライアントのハード ディスクに拡散させる転送メカニズムをマルウェア作成者に提供することにもなります。
電子メール: 電子メールは、多くのマルウェア攻撃の転送メカニズムとして選択されてきました。電子メールは、コンピュータの前を離れる必要なく数十万の人々に届けられるという簡便性によって、マルウェアを使用する犯罪者にとって非常に効果的な転送手段になっています。ソーシャル エンジニアリング技術を使用すれば、ユーザーをだまして電子メールの添付ファイルを開かせるのは、比較的簡単なことです。したがって、最も感染力が強いマルウェアは、転送メカニズムとして電子メールが使用されたものです。転送に電子メールを使用するマルウェアには、次の 2 つの基本的なタイプがあります。
メーラー: このタイプのマルウェアは、限られた数の電子メール アドレスに自己を送信します。それには、宿主 (たとえば、Microsoft Outlook® Express) にインストールされているメール ソフトウェアか、それ自体に組み込まれている Simple Mail Transfer Protocol (SMTP) エンジンが使用されます。
マス メーラー: このタイプのマルウェアは、感染させたコンピュータで電子メール アドレスを検索し、それらのアドレスにいっせいに自己をメール送信します。この場合も、宿主にインストールされているメール ソフトウェアか、マルウェア自体に組み込まれている SMTP エンジンが使用されます。
リモートによる脆弱性悪用: マルウェアは、複製のためにサービスやアプリケーションの特定の脆弱性を悪用しようとすることがあります。この動作はワームによく見られます。たとえば、Slammer ワームは Microsoft SQL Server 2000 の脆弱性を悪用しました。このワームは、SQL Server サービスと同じセキュリティ コンテキストで実行されるコードを使用してシステム メモリの一部の上書きを可能にするバッファ オーバーランを生成します。バッファ オーバーランは、バッファに対して許容量を越えた情報が追加されたために発生する状態です。攻撃者はこの脆弱性を悪用して、システムを支配できます。マイクロソフトは Slammer がリリースされる数か月前にこの脆弱性を確認して修正しましたが、ほとんどのシステムが更新されていなかったため、このワームが拡散し得る結果となりました。
ペイロード
マルウェアが転送手段を介して宿主に到達すると、一般的には "ペイロード" と呼ばれるアクションを実行します。ペイロードには、多様な形態があります。ここでは、一般的なペイロード タイプをいくつか示します。
バックドア: このタイプのペイロードは、コンピュータに対する許可されていないアクセスを可能にします。フル アクセスを実現することもありますが、コンピュータのポート 21 からのファイル転送プロトコル (FTP) アクセスを有効にするなど、限られたアクセスの場合もあります。Telnet を有効にする攻撃の場合、ハッカーは感染したコンピュータを他のコンピュータに対する Telnet 攻撃の準備領域として使用できるようになります。前述のとおり、バックドアはリモート アクセス型トロイの木馬と呼ばれることもあります。
データの破損または削除: ペイロードの中でも最も破壊的なものの 1 つは、データを破損または削除してユーザーのコンピュータの情報を使用不能にする悪意のあるコードです。マルウェア作成者には、2 つの選択肢があります。最初の選択肢は、ペイロードを即時に実行するようにすることです。感染したコンピュータを破壊する可能性がある一方、このマルウェアの設計では露見が早まります。したがって検出されないうちに複製する機会も限られます。もう 1 つの選択肢は、一定期間トロイの木馬形式でローカル システムにペイロードを潜ませ、マルウェアが拡散してからペイロードの実行を試みるようにするものです (この例はこの章の後半の「トリガ メカニズム」を参照)。ユーザーがマルウェアの存在について警告を受けるのは、その後になります。
情報の窃盗: 特に憂慮されるマルウェア ペイロードは、情報を盗むタイプのものです。ペイロードがホスト コンピュータのセキュリティを侵害できる場合、マルウェアの加害者に情報を漏らすためのメカニズムが実現可能になります。これを実現する方法はいくつもあります。たとえば、転送を自動化してマルウェアが単純にローカル ファイルや、(ユーザー名やパスワードを獲得しようとして) ユーザーのキー操作などの情報を獲得できるようにします。もう 1 つのメカニズムは、攻撃者がリモートでホストを支配したりシステムのファイルに直接アクセスしたりできるような環境をローカル ホストに作成することです。
サービス拒否 (DoS): 単純なタイプのペイロードの 1 つとして、サービス拒否攻撃の実行があります。DoS 攻撃は攻撃者によって起動されるコンピュータ化された攻撃で、ネットワーク サービス (Web サーバーやファイル サーバーなど) を過負荷状態にしたり、停止に陥らせます。DoS 攻撃は、特定のサービスを一定期間利用不能にすることを目的としています。
分散サービス拒否 (DDoS): これらのタイプの攻撃は、一般的には感染したクライアントを使用しますが、それらのクライアントは通常、攻撃に利用されていることにまったく気づきません。DDoS 攻撃はサービス拒否攻撃の 1 タイプですが、攻撃者は多数のコンピュータにインストールされた悪意のあるコードを使用して、1 つの標的を攻撃します。攻撃者はこの方法を使用して、1 台のコンピュータから攻撃するよりも大きな打撃を標的に与えることがあります。攻撃が実行される方法のセマンティクスはその攻撃によって多様ですが、通常は大量のデータを特定のホストや Web サイトに送信して、正当なトラフィックに対する応答を阻止したり、応答不能にします。これは標的サイトの利用可能な帯域幅を占有し、実質的にサイトをオフライン状態にします。
このタイプの攻撃に対する防御は非常に困難です。なぜなら、攻撃を担っているホスト自体が、実際には無意識の被害者だからです。DDoS 攻撃は、通常は "Bot" (繰り返しタスクを実行するプログラム) によって制御されます。たとえば、インターネット リレー チャット (IRC) の "Eggdrop" Bot は、ハッカーが IRC チャネルから "被害者" コンピュータを支配するために悪用可能です。そのようなコンピュータがハッカーに支配されると、コンピュータの所有者が知らないうちに攻撃者の指示によって標的を攻撃する "ゾンビ" となリます。
DoS と DDoS の両アプローチは、次のような多様な攻撃技術を含むことがあります。
システム シャットダウン: マルウェアがホスト システムをシャットダウンまたはクラッシュさせることができる場合、1 つまたは複数のサービスを中断できます。ホスト システムを攻撃するには、システムをシャットダウンさせられるようなアプリケーションまたはオペレーティング システムの弱点を発見する必要があります。
帯域幅フラッディング: インターネットで提供されるサービスの大半は、サービスをクライアントに接続するのに使用する限られた帯域幅のネットワーク接続を通じてリンクされています。マルウェア作成者が偽りのネットワーク トラフィックでこの帯域幅を占有するようなペイロードを実行させると、クライアントからサービスへの直接接続を阻止することで容易に DoS を実現できます。
ネットワーク DoS: このタイプのペイロードは、ローカル ホストが使用できるリソースに対して過負荷をかけようとします。"SYN フラッド" 攻撃によって、マイクロプロセッサやシステム メモリのようなリソースはオーバーランになります。この攻撃では攻撃者がプログラムを使用して大量の TCP SYN 要求を送信し、サーバーの未処理接続キューをいっぱいにしてホストからの正当なネットワーク トラフィックを拒否させます。"電子メール爆弾" 攻撃も、記憶域リソースをいっぱいにすることで DoS 攻撃を実現します。この攻撃では極端に大量の電子メール データを 1 つの電子メール アドレスに送信することで、電子メール プログラムの中断やそれ以降の正当なメッセージの受信不能に陥らせます。
サービス中断: このタイプのペイロードも、DoS を発生させることができます。たとえば、ドメイン ネーム システム (DNS) サーバーに対する攻撃によって DNS サービスが不能になる場合、この DoS 攻撃技術が実行されたことになります。しかし、システムの他のサービスはすべて無事である可能性があります。
トリガ メカニズム
トリガ メカニズムとは、悪意のあるソフトウェアが複製やペイロードの実行を起動するために使用する、マルウェアの特性です。一般的なトリガ メカニズムは、次のとおりです。
手動実行: このタイプのトリガ メカニズムは、単に被害者が直接マルウェアを実行することによって達成されます。
- ソーシャル エンジニアリング: マルウェアは、しばしばソーシャル エンジニアリングの形態を使用して被害者をだまし、悪意のあるコードを手動で実行するように仕向けます。このアプローチは比較的単純で、例えばマス メール ワームで使用されているものでは、電子メール メッセージの件名フィールドに被害者となる可能性のあるユーザーが最も開封したくなるようなテキストを選択するためにソーシャル エンジニアリング要素が使用されます。マルウェア作成者はまた、"なりすまし" 電子メールを使用して、電子メールが信頼できる発信元からのものであると被害者に信じさせようとします。なりすましは、Web サイトやデータ転送が正当なもののように見せかける偽装行為です。たとえば、2003 年に最初に発見された最初の Dumaru ワームは、電子メールの "From:" フィールドを変更して、security@microsoft.com から届いたものに見せかけました (この特性の詳細については、この章の次の「いたずら」を参照してください)。
半自動実行: このタイプのトリガ メカニズムは、最初は被害者によって起動され、それ以降は自動的に実行されます。
自動実行: このタイプのトリガ メカニズムでは、手動実行はまったく必要ありません。マルウェアが攻撃を実行するために、被害者が標的コンピュータで悪意のあるコードを実行する必要はありません。
時限爆弾: このタイプのトリガ メカニズムは、ある期間を経過すると行動を開始します。この期間は、感染の最初の実行からの経過時間のこともありますが、事前に決められた日付または日付の範囲のこともあります。たとえば、MyDoom.B ワームは 2004 年 2 月 3 日に Microsoft.com Web サイトに対して、2004 年 2 月 1 日に SCO Group Web サイトに対して、ペイロード ルーチンを開始し、2004 年 3 月 1 日にすべての複製を停止、時限爆弾のバックドア コンポーネントはそれ以降もアクティブの状態のままになるよう設計されていました。
条件付き: このタイプのトリガ メカニズムは、ペイロードの実行のトリガとして事前定義された条件を使用します。たとえば、ファイル名の変更、一連のキー操作、アプリケーションの起動などです。このタイプのトリガ メカニズムを使用するマルウェアは、"論理爆弾" と呼ばれることがあります。
防衛メカニズム
多くのマルウェアの例では、ある種の防衛メカニズムを使用して、検出および削除される可能性を減らそうとしています。次のリストに、これまでに使用されたそのような技術の例を示します。
装甲: このタイプの防衛メカニズムは、悪意のあるコードが解析されないようにするための技術を使用します。このような技術には、デバッガの実行を検出して正しく動作できないようにしたり、意味のないコードを大量に追加して悪意のあるコードの目的を判別できないようにしたりするものがあります。
ステルス: 情報に対するリクエストを傍受して偽りのデータを返すことで、マルウェアは自己を隠します。たとえば、あるウイルスは感染していないブート セクタのイメージを保存して、感染したブート セクタが表示されそうになるたびにそれを表示します。確認されている最も古いコンピュータ ウイルスである "Brain" は、1986 年にこの技術を使用しました。
暗号化: この防衛メカニズムを使用するマルウェアは、それ自体やペイロード (ときには他のシステム データも) を暗号化して、検出やデータ抽出を回避します。暗号化されたマルウェアには、静的解読ルーチン、暗号化キー、および暗号化された悪意のあるコード (暗号化ルーチンを含む) があります。このマルウェアが実行されると、解読ルーチンとキーを使用して悪意のあるコードを解読します。次に、自己のコードのコピーを作成し、新しい暗号化キーを生成します。そのキーと自己の暗号化ルーチンを使用して新しいコピーを暗号化し、そのコピーを起動するための解読ルーチンに新しいキーを追加します。ポリモフィック型ウイルスとは異なり、暗号化マルウェアは常に同じ解読ルーチンを使用します。そのため、キーの値 (およびそれによって暗号化された悪意のあるコードの署名) は通常は感染ごとに変異しますが、ウイルス対策ソフトウェアは静的解読ルーチンを検索してこの防衛メカニズムを使用するマルウェアを検出できます。
オリゴモフィック型: この特性を示すマルウェアは、防衛メカニズムとして暗号化を使用して自己防衛し、その暗号化ルーチンを一定の回数だけ (通常は数回) 変更できます。たとえば、2 つの異なる解読ルーチンを生成できるウイルスは、"オリゴモフィック型" に分類されます。
ポリモフィック型: このタイプのマルウェアは、防衛メカニズムとして暗号化を使用し、自己を変更して検出を回避します。通常は、マルウェア自体を暗号化ルーチンによって暗号化し、次に各変異体に対して異なる解読キーを提供します。それによって、"ポリモフィック型" マルウェアは無限の数の暗号化ルーチンを使用して検出を回避します。マルウェアが複製するときに、解読コードの一部分が変更されます。特定のマルウェア コードによっては、ペイロードや実行されるその他のアクションが暗号化を使用することもしないこともあります。通常は "変異エンジン" があり、ランダムな暗号化ルーチンを生成する暗号化マルウェアの一部になっています。 このエンジンとマルウェアは両方とも暗号化され、それと共に新規の解読キーが渡されます。
マルウェアでないものは何か
悪意を持って作成されたコンピュータ プログラムではないために、マルウェアではないとみなされているさまざまな脅威も存在します。しかし、組織に対するセキュリティと財政面の両方で、それらの脅威の影響は続いています。このため、組織の IT インフラストラクチャと IT ユーザーの生産性に対してそれらが及ぼす脅威を理解することが望ましいでしょう。
ジョーク ソフトウェア
ジョーク アプリケーションは、笑いをもたらしたり、最悪でも誰かの時間を無駄にしたりする程度の意図で作成されます。これらのアプリケーションは、コンピュータが使用されるようになって以来存在しています。悪意を持って開発されたものではなく明確にジョークとわかるため、このマニュアルではマルウェアとはみなしません。ジョーク アプリケーションの例は無数にあり、面白い画面効果から楽しいアニメーションやゲームまで、あらゆるものを実現しています。
デマ ウイルス
一般的には、誰かをだまして何かをさせることは、気づかれないでそうするためのソフトウェアを作成するより簡単です。そのため、IT コミュニティでは多数のデマ ウイルスが存在しています。
マルウェアの形態のように、"デマ ウイルス" はソーシャル エンジニアリングを使用して、コンピュータ ユーザーをだまして、あることを実行させます。しかし、デマ ウイルスの場合は実行するコードがありません。デマ ウイルス作成者は通常、単に被害者をだまそうとするだけです。デマ ウイルスは、数年にわたって多くの形態をとってきました。特に一般的な例としては、新しいタイプのウイルスが発見されたので、警告のためにこのメールを知人に転送するようにと誘う電子メール メッセージです。このようなデマ ウイルスは人々の時間を浪費させ、電子メール サーバーのリソースを占有し、ネットワーク帯域幅を消費します。
詐欺
事実上、どんな場合でも、犯罪者は人々をだましてある行動をとるように誘い込み、それによって金銭を得ようとあらゆる通信手段を利用してきました。インターネット、Web サイト、および電子メールも例外ではありません。偽りの電子メール メッセージによって受信者の個人情報 (銀行の口座情報など) を探り出して違法な目的で使用しようとすることは、よくある例です。特に詐欺の種類の 1 つは、"フィッシング" (発音は魚釣りと同じ。"ブランド詐称" または "カーディング" とも呼ばれます) として知られるようになりました。
フィッシングは、たとえば、送信者が eBay など有名な会社の名前を模倣して、ユーザー アカウント情報にアクセスしようとするものなどです。フィッシング詐欺はしばしば、ある会社の公式 Web サイトの外見をまねた Web サイトを使用します。電子メールは、ユーザーを偽のサイトにアクセスさせてユーザー アカウント情報を入力させるのに使用されます。その情報は保存され、違法な目的で使用されます。これらのタイプの事件は、真剣に取り上げて地域の司法当局に報告する必要があります。
スパム
"スパム" は、サービスや製品を宣伝するために生成された迷惑メールです。一般的には迷惑とみなされますが、スパムはマルウェアではありません。しかし、送信されるスパム メッセージの激増はインターネットのインフラストラクチャにとっては問題で、結果的にはそのようなメッセージを毎日選別して削除しなければならない従業員の生産性低下を招いています。
スパムという用語の起源には諸説ありますが、その起源に関わらず、インターネットベースの通信で最も長続きしている迷惑行為の 1 つであることには疑問の余地はありません。多くの人が、スパムの問題は重大で、世界中の電子メール通信状態を脅かしていると考えています。しかし、電子メール サーバーとスパム対策ソフトウェアに対する負荷を除くと、スパムは実際に複製する能力もなければ、組織の IT システムの運用状態を脅かすこともできないということに注意する必要があります。
マルウェアは、小規模な SMTP 電子メール サーバー サービスをホスト コンピュータにインストールするために、しばしばスパムの発信者 ("スパマ") によって使用されてきました。それはスパム メッセージを他の電子メール受信者に転送するためです。
スパイウェア
このタイプのソフトウェアは、"スパイボット" または "追跡ソフトウェア" と呼ばれることもあります。"スパイウェア" は、別の形態でだますソフトウェアとプログラムを使用します。これらはユーザーから適切な同意を得ないでコンピュータに特定の活動を指示します。 このような活動には、個人情報の収集や、インターネット ブラウザの構成設定の変更などがあります。不快であるだけでなく、コンピュータ全体のパフォーマンスの低下から個人のプライバシーの侵害まで、多様な問題がスパイウェアによって引き起こされます。
スパイウェアを配布している Web サイトは、さまざまな手段でユーザーをだまして、スパイウェアをコンピュータにダウンロードおよびインストールさせます。その手段とは、偽のユーザー体験版を作成したり、無料のファイル共有ソフトウェアなどユーザーが欲しがりそうな別のソフトウェアに密かにバンドルしたりなどです。
アドウェア
"アドウェア" は、ホスト アプリケーションと組み合わせられることがしばしばあり、アドウェアのインストールに同意する限り、無料でホスト アプリケーションを利用できます。アドウェア アプリケーションは、通常、アプリケーションの目的を示す使用許諾契約書にユーザーが同意してからインストールされるため、攻撃はありません。しかし、ポップアップ広告は邪魔になることがあり、システムのパフォーマンスを低下させることもあります。また、このようなアプリケーションが収集する情報によっては、使用許諾契約の文言に十分注意していないユーザーのプライバシ問題が引き起こされることがあります。
注: "スパイウェア" と "アドウェア" という語は、しばしば同義的に相互に交換されて使用されますが、スパイウェアと同列なのは許可されないアドウェアのみです。ユーザーに適切な認識、選択、および制御を提供するアドウェアは、だましているわけでもなければスパイウェアに分類されるものでもありません。また、特定の機能を実行するとしているスパイウェア アプリケーションは、実際には他にも何かを実行していて、トロイの木馬のように動作しているということに注意する必要があります。
インターネット Cookie
インターネット Cookie とは、ユーザーが訪問した Web サイトによってユーザーのコンピュータ上に作成されるテキストファイルです。Cookie には、Web サイトがユーザーの識別に使用する情報が含まれています。そのほかには、そのユーザーのアクセスに関してサイトが保持しようとするあらゆる情報が含まれます。
Cookie は、アクセスしたユーザーの情報を追跡するために使用する正当なツールで、多くのサイトで利用されています。たとえば、ユーザーはオンライン ストアで商品を購入できますが、いったんある商品をオンラインのショッピング カートに入れてから、何かの理由で他の Web サイトに移動することがあります。そのオンライン ショップは、ショッピング カートにどの商品があるかという情報をユーザーのコンピュータの Cookie に保存しているため、ユーザーが再度アクセスしたときにはその商品はショッピング カートに入ったままになっており、買い物を続けることができます。
Web サイトの開発者は、自身の作成した Cookie に格納されている情報のみを抽出できるようにするべきです。このアプローチでは、サイトの開発者以外の誰かがユーザーのコンピュータに残された Cookie にアクセスできないようにして、ユーザーのプライバシを保証する必要があります。
残念ながら、一部の Web サイト開発者が Cookie を悪用して、ユーザーの知らない間に情報を収集していたことが判明しています。Web サイト開発者の中にはユーザーをだましたり、ポリシーを無視したりしている開発者がいる可能性があります。たとえば、ユーザーに通知しないで、他の Web サイトに対するネット サーフィンの習慣を追跡することができます。サイトの開発者はこの情報を使用して、そのユーザーが Web サイトで見る広告をカスタマイズ化できますが、これはプライバシの侵害とみなされます。この形態のターゲット広告や他の形態の "Cookie 悪用" を識別するのは困難です。そのため、自分のシステムでそれらをブロックする場合やその方法の決定も困難になっています。さらに、コンピュータ ユーザーによって許可できる共有情報のレベルは変わるので、環境内のすべてのコンピュータ ユーザーの要求を満たすような "Cookie 対策" プログラムの作成も困難です。
ウイルス対策ソフトウェア
ウイルス対策ソフトウェアは、マルウェアの脅威に対してシステムを防御するために作成されています。マイクロソフトは、ウイルス対策ソフトウェアの使用を強くお勧めしています。なぜなら、このようなソフトウェアは、ウイルスだけでなくすべての形式のマルウェアからコンピュータ システムを防御するからです。
マルウェアを検出するために、ウイルス対策ソフトウェアは多くの技術を使用しています。ここでは、そのような技術のいくつかがどのように機能するかを説明します。
ウイルス定義ファイルによるスキャン: 大半のウイルス対策プログラムは、現在この技術を使用しています。これは対象 (ホスト コンピュータ、ディスク ドライブ、またはファイル) をスキャンして、マルウェアであることを示す可能性があるパターンを探すものです。このようなパターンは一般的にはウイルス定義ファイルと呼ばれるファイルに格納されます。ファイルはソフトウェア ベンダによって定期的に更新され、スキャナが既知のマルウェア攻撃を可能な限り認識できるようにしています。この技術の主な問題は、スキャナがマルウェアを認識できるようになるには、ウイルス対策ソフトウェアが常に更新されてマルウェアに対抗できるようになっている必要があることです。
ヒューリスティック スキャン: この技術は、一般的なマルウェアの特性を検索して、新規のマルウェアと既知のマルウェアの両方を検出しようとするものです。この技術の主な利点は、ウイルス定義ファイルに依存しないでマルウェアを識別および対処できることです。しかし、ヒューリスティック スキャンにも、次のような固有の問題があります。
誤検出: 一般的な特性を使用するため、正当なソフトウェアでもマルウェアに似た特性が含まれる場合は、それをマルウェアと報告することが多くなります。
スキャンが低速: 特性を検索するプロセスは、既知のマルウェアのパターンを検索するのと比べて、ソフトウェアにとっては実行が困難です。そのため、ヒューリスティック スキャンはウイルス定義ファイルによるスキャンよりも時間がかかることがあります。
新しい特性の見逃し: 新しいマルウェア攻撃にそれまで識別されたことがない特性がある場合、ヒューリスティック スキャナが更新されるまではそれを見逃すことが多くなります。
ビヘイビア ブロッキング: この技術は、マルウェア攻撃のコード自体ではなくマルウェアの動作に焦点を絞ります。たとえば、アプリケーションがネットワーク ポートを開こうとする場合、動作をブロックするウイルス対策プログラムはこれを典型的なマルウェア活動として検出し、その動作に対してマルウェア攻撃の可能性があるというフラグを付加します。
多くのウイルス対策ベンダは、それぞれのウイルス対策ソリューションにこれらの技術を組み合わせて、顧客のコンピュータ システムの総合的な防御レベルを改善しようとしています。
ウイルス対策ソフトウェアは、マイクロソフトの多様なパートナからも入手できます。最新の完全なリストは、Microsoft.com の「マイクロソフト パートナー」を参照してください。https://www.microsoft.com/japan/partners/default.mspx
一般的な "ユーザー環境 (In-the-Wild)" マルウェアのタイムライン
パブリック ネットワークで攻撃が確認された新しいマルウェアや "ユーザー環境 (in the wild)" で確認されたマルウェアの存続期間を定義するためのパターンが作成されました。このパターンを確認することで、新しいマルウェア攻撃が確認された後に発生するリスクを認識できます。
新しいライフサイクルはマルウェアが最初に開発されたときに始まり、そのすべての痕跡が監視されたネットワークから除去されたときに終了します。ライフサイクルのステージは、次のように定義されます。
着想: マルウェアの開発は、新しい攻撃や悪用の方法が提案されてハッカー コミュニティで共有されたときに始まることがしばしばあります。そのうちに、これらの方法について議論や探求が進み、ついには攻撃の開発を可能にするアプローチが発見されます。
開発: マルウェアの作成には、かつては攻撃するシステムのコンピュータ アセンブリ言語と詳細な動作の両方を理解する必要がありました。しかし、ツールキットとインターネット チャット ルームの出現によって、ほとんど誰でも悪意があればマルウェアを作成できるようになりました。
複製: 新規のマルウェアが開発されてユーザー環境に流出すると、通常は数回にわたって複製可能なホスト デバイスに複製してから主な機能やペイロードを実行します。
注: これまでにわかっているマルウェア プログラムは何万とありますが、現在ユーザー環境に存在するのはごく一部だけです。マルウェア プログラムの大半は一度もユーザー環境に流出されたことがなく、しばしば "動物園ウイルス" と呼ばれます。
ペイロードの実行: マルウェアが宿主に感染すると、ペイロードを実行することがあります。コードにペイロードの条件付きトリガが含まれている場合、実行メカニズムの条件が満たされたときにこの段階になります。たとえば、いくつかのマルウェアのペイロードは、ユーザーが特定のアクションを実行したり、ホスト マシンの時計が特定の日付になったりしたときに、トリガされます。マルウェアに直接アクション トリガがある場合は、単に感染が完了したときにペイロードの実行が開始されます。たとえば、データ ログ記録ペイロードの場合、マルウェア プログラムは単純に必要なデータの記録を開始します。
識別: ライフサイクルのこの段階では、マルウェアはウイルス対策コミュニティによって確認されます。ほとんどすべての場合、第 4 段階の前か、ときには第 3 段階の前にこの段階になりますが、常にそうとは限りません。
検出: 脅威が識別されると、ウイルス対策ソフトウェアの開発者は、コードを分析して信頼できる検出方法を判断することになります。その方法を判断すると、ウイルス対策ソフトウェアのウイルス定義ファイルを更新し、それによって既存のウイルス対策アプリケーションが新しいマルウェアを検出できるようにします。このプロセスにかかる時間の長さは、感染拡大を制御するために重要です。
除去: 更新プログラムが利用可能になって公開されたら、その更新プログラムをすぐに適用して自分のコンピュータを攻撃から防御する (または既に感染したシステムから除去する) のは、ウイルス対策アプリケーションを使用するユーザーの責任になります。
注: ローカルの定義ファイルの即時更新に失敗すると、ユーザーは自分のウイルス対策製品によって防御されていると信じているのに実際にはそうではないという、非常にリスクの高い状況になります。
多くのユーザーがウイルス対策ソフトウェアを更新するに従って、そのマルウェアは徐々に脅威を失います。このプロセスでは、ユーザー環境からマルウェアのすべてのインスタンスが除去されることはほとんどありません。なぜなら、インターネットに接続している一部のコンピュータはウイルス対策をほとんど、あるいはまったく行わないままなので、そこにマルウェアが常駐可能なためです。しかし、攻撃の脅威は、全体として減少します。
このライフサイクルは新しくマルウェア攻撃が開発されるたびに繰り返されますが、すべての攻撃の典型ではありません。多くの攻撃は単に、元のマルウェア コードを部分的に変更したバージョンです。したがって、基本的なコードとアプローチは変わりませんが、攻撃が検出されたり除去されたりしないように、若干変更されています。通常は、1 つのマルウェア攻撃が成功すると、それから数週間から数か月に渡って多数の改訂版が発生します。この状況は一種の "軍拡競争" のようになります。マルウェア作成者は自分の利得 (金銭的利益、知名度の獲得、または単なる好奇心) のために検出を回避しようとします。更新された脅威を緩和する必要に応じて、ウイルス対策の防衛策は再度更新、修正、または変更されます。
要約
マルウェアは複雑で、コンピュータ テクノロジにおいて一貫して進化し続けている領域です。IT の中で遭遇するあらゆる問題の中で、マルウェア攻撃とそれを処理するための関連コスト以上に広範でコストがかかるものはほとんどありません。その動作方法、時間の経過に伴う進化、および利用する攻撃経路を理解することで、この問題を予防的に処理できるようになります。そして今度は、マルウェアがユーザーや組織を攻撃するときに、より効率的で効果的な対策プロセスが実現できるようになります。
マルウェアは作成、配布、およびコンピュータ システムの悪用に多くの技術を使用するため、そのような攻撃に対して、あるシステムを十分にセキュリティで保護する方法を発見するのは困難です。しかし、リスクと脆弱性が理解されると、自分のシステムを管理できるようになり、攻撃の可能性を大幅に削減する事ができます。
次のステップは、ご使用の IT インフラストラクチャに対し、さまざまな観点からリスクを分析して適切な防衛策を設計することです。これが次の章のテーマとなります。効果的な復旧計画は、このマニュアルの最後の章で取り上げます。
目次
- 概要
- 第 1 章: 対ウイルス多層防御ガイドの紹介
- 第 2 章: マルウェアの脅威
- 第 3 章: 対ウイルス多層防御
- 第 4 章: 感染拡大防止と復旧
- 謝辞