マルウェア

マルウェア (malware) とは、不正かつ有害に動作させる意図で作成された悪意のあるソフトウェアや悪質なコードの総称。コンピュータウイルスやワームなどが含まれる。 悪意のコード（malicious code）、悪意のソフトウェア（malicious software）、悪意のある不正ソフトウェア、有害なソフトウェア、不正プログラムとも呼ばれる。 マルウェアの行う活動としてはデータの破壊やデータの盗難などがあるが、こうした「悪意のある」行動をするソフトのみならず、ユーザの望まない広告を勝手に出すアドウェアのような「迷惑ソフト」(の中で悪質なもの)もマルウェアの範疇に含める場合がある。 マルウェア(malware) は、「悪意のある」という意味の英語「malicious（マリシャス）」と「software」を組み合わせて創られた混合語である。 類義語としてクライムウェアがあり、これはマルウェアの中で特に犯罪(crime)に使われるものを指すとするものもあるが、必ずしもこれを要件としないものもあり、マルウェアとの関係は判然としない。 マルウェアの種類の代表例として以下のものがあげられる。なお、以下の種類は排他的ではなく、複数の種類の定義を満たすマルウェアも存在しうる。 狭義のコンピュータウイルスあるいは単に狭義のウイルスとは他のプログラムやファイルの一部を書き換え（寄生、感染）、自己複製する機能を持つマルウェアのことである。感染対象のプログラムの事をウイルスの宿主もしくはホストプログラムという。 狭義のウイルスは感染経路を秘匿するなどの目的で、プログラムなどに感染したあと一時的に潜伏し、その後しばらく経ってから活動を開始（発病）するものも多い。 広義のウイルスは文脈によって定義が様々であるが、 「コンピュータウイルス対策基準」では、自己伝染機能、潜伏機能、発病機能のいずれかをもつ加害プログラムの事をウイルスの定義として採用している。後述するワームやトロイの木馬は狭義のウイルスではないが、この意味での広義のウイルスには属する。最広義では「ウイルス」という語はマルウェアと同義であり、マスメディアなどではこの最広義の意味に用いられるが、これは誤用であるとされることもある。 ワームはウイルス同様自己増殖するが、ホストプログラムを持たず、単体で存在するプログラムの事を指す。 バックドアとは外部からコンピューターを操るために作られたコンピューターへの不正な侵入経路の事でRAT(Remote Administration Tool)とも呼ばれる。バックドアをしかけるマルウェアをバックドア型と呼ぶ。 トロイの木馬は一見無害なファイルやプログラムに偽装した上でコンピューターに侵入したあと悪意のある振る舞いをするものを指すことが多いが、偽装を行わずにOS等の脆弱性を悪用して勝手にインストールされてしまうもの(ドライブバイダウンロード)もトロイの木馬に含める場合がある。狭義のウイルスと違い自己増殖機能は持たない。またトロイの木馬の定義として単体で存在し宿主を必要としないことを要件に加えるものもあるが、これを要件としない場合もある。 トロイの木馬の定義として、コンピューター内部に侵入したあと攻撃者による外部からの命令で悪意のある振る舞いをする事やバックドア型である事を要件にする場合もある。 スパイウェアは情報収集を主な目的とし、コンピューターの内部情報を外部に勝手に送信するソフトウェアで、ユーザーが気づかないうちにパソコンにインストールしているパターンが多い。 IPAとJNSAの定義によればスパイウェアとは「利用者や管理者の意図に反してインストールされ、利用者の個人情報やアクセス履歴などの情報を収集するプログラム等」のことである。 スパイウェアはマルウェアの一種とみなすことが多いが、シマンテックはスパイウェアをマルウェアに含めていない（クライムウェアには含めている）。 キーロガーもしくはキーストロークロガーはキーボードからの入力を記録するプログラムのことで、キーロガーというものそれ自体はマルウェアではなく、コンピューターの所有者自身がデバッグのためにしかけるなどの使い方もあるが、パスワードや個人情報などを奪取するため悪意を持ってしかけられるなどマルウェア（スパイウェア）として用いられることもある。同様にネットワークを通るパケットを監視するスニッファも盗聴目的で使われる場合がある。 ボットも、その言葉自体は常駐してチャットで会話するなどといった機能を持つ任意のプログラムを指すもので、必ずしもマルウェアを指すものではない。マルウェアとしては、ボットネットと呼ばれる仕組みにより、IRCなどを利用して攻撃者から命令を受け取り、命令に応じてDDoS攻撃やスパムメール送信などを行うマルウェアを指す。ボットに感染したコンピューターによって構成されたネットワークをボットネットもしくはゾンビクラスタという。それに対しボットネットに指令を出すサーバをC&Cサーバ（Command and Control server)という。またボットなどの感染により攻撃者による遠隔操作が可能なコンピューターをゾンビマシンという。 ルートキットは攻撃者が被害者のコンピューターに侵入したあとに用いるツールを集めたパッケージで、マルウェアとして被害者のコンピューターにしかける。侵入の発覚を防ぐログ改ざんツール、バックドアをしかけるツール、キーロガー、パスワードやクレジットカード情報等の窃盗ツール、DDoS攻撃用のボット化ツール、セキュリティソフトの無効化ツールなどが含まれていることがある。こうした攻撃を容易にするため、システムバイナリを含めたファイルを数百個単位で改ざんする。ルート権限を奪うなど管理者レベルのアクセス権を取得する事を定義とする場合もある。 ランサムウェア(ransomware)は、コンピューターをロックしたり重要なファイルを暗号化して読めなくするなどして被害者を困らせ，身代金(ransom)を払えば元に戻すと脅迫するマルウェア。 スケアウェア(scareware)とはユーザの恐怖(scare)心を煽る偽の警告メッセージ（「PCから違法ポルノやウイルスが検出された」等）を表示し、問題を解決するには所定の金額を支払うようにと脅すマルウェア。 ダウンローダーはサイズの小さなマルウェアで、攻撃者のサーバから被害者のコンピューターに実行ファイルなどをダウンロードするなどさらなる攻撃の足がかりにする。 アドウェア（Adware）はユーザの望まない広告を勝手に出すソフトウェアである。アドウェアないしその中の悪質なものもマルウェアの範疇に含める場合がある。 不正行為を実行するために、攻撃者はマルウェアを作成するが、その不正な試みが検出されてしまっては、その目的を達成することはできない。セキュリティベンダーがセキュリティ技術を進化させると、それに合わせて攻撃者も技術を進化させる。セキュリティベンダーと攻撃者の間では、いたちごっこが繰り返されている。回避技術は、検出、分析、把握を回避するためにマルウェアが使用する手段の総称である。 セキュリティ技術に対する回避技術は次の3つに分類できる。 セキュリティ対策の回避: マルウェア対策エンジン、ファイアウォール、アプリケーション隔離などの保護ツールによる検出を回避するために使用される。 サンドボックスの回避: 自動分析を検出し、マルウェアの挙動を報告するエンジンを回避するために使用される。仮想環境に関連するレジストリキー、ファイル、プロセスを検出することで、サンドボックス内で実行されているかどうかをマルウェアに通知する。 分析の回避: マルウェア分析を検出して欺くために使用される。たとえば、Process ExplorerやWiresharkなどの監視ツールを検出するだけでなく、リバースエンジニアリングを回避するために圧縮や難読化などを行う。 高度なマルウェアの中には、このような技術を組み合わせて利用しているものもある。たとえば、RunPE（メモリー内で自身のプロセスをもう1つ実行する）などの技術を使用して、マルウェア対策ソフトウェアやサンドボックス、分析を回避している。また、仮想環境に関連する特定のレジストリキーを検出し、サンドボックスでの自動分析や仮想マシン上での動的分析を回避するマルウェアもある。 ウイルスをはじめとしたマルウェアはセキュリティーソフトに発見されないよう、下記のようなツールや手法を用いていることがほとんどである。また、サイバーセキュリティの回避技術で、よく使われる用語がある。ここで、攻撃者が使用するツール、手法や用語をいくつか紹介する。 Crypter（クリプター）: マルウェアの実行時に、マルウェア対策エンジンや静的分析による検出を回避するため、マルウェアの暗号化と復号を行う。クリプターは、攻撃対象に合わせて作成されることが多く、闇市場で購入することもできる。クリプターをカスタマイズすることで、復号や逆コンパイルがさらに困難になる。既知の高度なクリプターとしては、Aegisクリプター、Armadillo、RDG Tejonなどがある。 Packer（パッカー）: クリプターと似ているが、マルウェアファイルの暗号化ではなく圧縮を行う。UPXが代表的なパッカーである。 Binder（バインダー）: 複数のマルウェアファイルを1つに結合する。マルウェアの実行ファイルの拡張子を変更せず、JPGファイルに結合できる。マルウェア作成者は、正規のEXEファイルにマルウェアファイルを結合しようとする。 Pumper（ポンパー）: ファイル サイズを増やす。これにり、マルウェア対策エンジンによる検出を回避できる場合がある。 FUD: マルウェアの販売者がツールの説明やアピールに使用するもので、あらゆるマルウェア対策ソフトで完全に検出不可（FUD/Fully UnDetectable）であることを表す。有効なFUDプログラムは、スキャンタイムとランタイムの両方を組み合わせ、100%検出不可を実現する。既知のFUDとして、次の2種類が知られている。 FUD scantime: マルウェアファイルの実行前に、マルウェア対策エンジンで検出されないように保護する。 FUD runtime: マルウェアファイルの実行中に、マルウェア対策エンジンで検出されないように保護する。 Unique stub generator（ユニークスタブ ジェネレーター）: 実行中の各インスタンスに固有のスタブを作成し、検出と分析を困難にする。（スタブとは、通常、元のマルウェアファイルのメモリーへの読み込み（復号または解凍）に使用するルーチンが含まれる。） ファイルレス マルウェア: ディスクにファイルを書き込むことはせず、自身をメモリーに挿入することでシステムに感染する。 難読化: マルウェアのコードを簡単に人が理解できないようにする。プレーンテキストの文字列をエンコード（XOR、Base64など）し、マルウェアファイルに挿入したり、ジャンク関数をファイルに追加する。 ジャンクコード: 無駄なコードや偽の命令をバイナリに追加し、逆アセンブルを欺いたり、簡単に分析されないようにする。 アンチ: 保護ツールや監視ツールの回避、無効化、終了に使用するすべての手法を指す。地下フォーラムや闇市場で使用される。 Virtual machine packer（仮想マシン パッカー）: 仮想マシンの概念を取り入れた高度なパッカーである。マルウェアのEXEファイルが圧縮されると、元のコードが仮想マシンのバイトコードに変換され、プロセッサーの動作をエミュレートする。既知のものではVMProtect、CodeVirtualizerでこの手法が利用されている。 最も一般的な回避技術は次のとおりである。 難読化: データ、変数、ネットワーク通信を保護する。変数または関数の名前をランダム化する。XORなどのエンコーディング方法を使用する。 環境のチェック: 仮想環境に関連するツールやアーティファクトを検出し、セキュリティーソフトやベンダー等の分析を回避する。 サンドボックスの検出: サンドボックス関連のファイルやプロセスを検出するためにディスクをチェックする。 マルウェアは、下記のように、様々な感染経路によって、感染活動を行っている。 ネットワーク感染やメール添付感染等の感染手法の他に、ホームページを見ただけで感染する「Web閲覧感染型」も感染手法の一つとして確認されており、その方法も高度化・巧妙化している。 下記に感染経路の例を示す。 Web閲覧感染型：ブラウザで閲覧したサイトに埋め込まれたマルウェアをダウンロードし、感染させるタイプである。サイトを見ただけで感染することもあり、インターネット利用者が自身で感染を認識することが難しくなっている。表示された広告を通して感染する場合もある。 Web誘導感染型：メールに添付されたURLをクリックし、アクセスしたサイトからマルウェアをダウンロードするよう誘導して感染させるタイプである。 偽セキュリティソフト配布サイト誘導感染型： あたかも無料のウイルス対策ソフトのように見せかけて、悪意のあるプログラムをインストールさせようとする「偽セキュリティソフト」の被害が増えている。その代表的な手口は、ホームページなどで「あなたのコンピュータはウイルスに感染しています」のようなメッセージを表示し、利用者を偽のウイルス対策ソフトを配布するWebサイトに誘導するタイプである。 ネットワーク感染型：Windows OS等の基本ソフトの設定の不備を悪用し、感染させるタイプである。 メール添付型：メールの添付ファイルにマルウェアが埋め込まれており、この添付ファイルをクリックすることにより、感染させるタイプである。 外部記憶媒体感染型：USBメモリ、デジタルカメラ、ミュージックプレーヤー等の外部記憶媒体を介して感染させるタイプである。 ファイル共有ソフト感染型： ファイル共有ソフトでは、不特定多数の利用者が自由にファイルを公開することができるため、別のファイルに偽装する等の方法で、いつの間にかウイルスを実行させられてしまうタイプである。暴露ウイルスなどがその一例である。 マクロプログラム悪用感染型：Officeアプリケーションでは、マクロを作成する際に、高度なプログラム開発言語であるVBA（Visual Basic for Applications）を使用できるため、ファイルの書き換えや削除など、コンピュータを自在に操ることが可能である。そのため、マクロウイルスに感染した文書ファイルを開いただけで、VBAで記述されたウイルスが実行されしまい、脅威となるコードが実行されるタイプである。 CMS改ざん型：個人や企業が運営するCMS(コンテンツマネジメントシステム・ワードプレスサイトの被害が特に多い)の脆弱性を利用して、管理者権限を乗っ取ったうえで、不正なコードをウェブサイトに埋め込む。改ざんによりマルウェアを埋め込まれたサイトはスパムメールの配信元となったり、そのサイトにアクセスしたユーザーを意図しないサイトに転送したりする。 マルウェアの検出には、マルウェア検出回避技術に対抗するために様々な技術を用いている。下記に例を示す。ただし、いかなる方法・手段・技術を用いても未知のマルウェアを100％検出・発見できるわけではない。また、いかなる方法・手段・技術を用いても未知のマルウェアからパソコンを100％保護してくれるわけではない。 パターンマッチング検出技術：セキュリティソフトなどがマルウェアを発見するための、最も一般的な方式である。セキュリティソフトは、パターンファイルと呼ばれるマルウェアの特徴（パターン）を記録したリストを持っている。そして、そのリストとパソコン内のファイルを比較して、一致すればマルウェアと判定して除去する。これが、パターンマッチングと呼ばれる方式である。パターンマッチングは、すでに存在が知られているマルウェアは間違いなく検出できる可能性が高い。ただし、そのためには常にパターンファイルを最新の状態にしておく必要がある。新しいマルウェアが登場したとき、その存在が知られて、パターンファイルに新しいマルウェアの情報が登録されるまでは効果がない。亜種・変種といって、既知のマルウェアを僅かに改変したマルウェアにも対応できない。 ヒューリスティック検出技術：ヒューリスティック検出技術とは、セキュリティソフトなどがマルウェアを探索する際に、パターンマッチングではなくマルウェアに特徴的な挙動の有無を調べる手法である。ヒューリスティック検知では、実行ファイルの挙動などを解析し、ライブラリファイルの書き換えなど、一般的なプログラムではあまり見られないような特異な挙動を探し出し、感染したマルウェアによるものと類推する。未知のマルウェアや亜種などに対して、ある程度の対応が可能である。ただし、この方法では未知のマルウェアを100％発見できるわけではなく、また、マルウェアではないものをウイルスと誤認する場合もある。 サンドボックス検出技術：パソコンの内部に「サンドボックス」と呼ぶ仮想化環境を用意して、そこで不審なプログラムを動作させてみてマルウェアかどうかを判定する手法である。仮想化環境でなら不審なプログラムを動作させても、実環境に被害が及ぶことはない。 ビヘイビアブロッキング（振る舞い検知）技術：サンドボックス検出技術のサンドボックス上の実環境におけるプログラムの挙動を見てウイルスを検出するものを「振る舞い検知」あるいは「ビヘイビアブロッキング」と呼ぶ。 ジェネリック検出技術：短期間に大量発生するウイルスの亜種に迅速に対応する検出技術として採用されているのがジェネリック検出である。ジェネリック検出では、特定のマルウェアの既知の亜種から共通点を抽出し、既知の亜種だけでなく亜種と想定される複数のマルウェアを検出する。また、パターンマッチング方式では検出できない新しい亜種であっても、共通点が一致していれば発生した時点で検出できる。 パッカー検出技術：使われたパッカー・クリプターなどのコード改変ツールの「種類」から、怪しいかどうかを判定してマルウェアの疑いのあるファイルを検出する手法である。マルウェアに使われることの多いコード改変ツールが利用されたファイルを、疑わしいファイルとして検出する。 ホストベース不正侵入検知システム (Host-based Intrusion Detection System, HIDS) ：Host IDSはシステム設定の変更を行ったユーザーや設定ファイルの変更箇所など、ファイルやレジストリへの変更をリアルタイムで監視し不正動作を検出する手法である。 ホストベース不正侵入防止システム (Host-based Intrusion Prevention System, HIPS) ：アプリケーションに対しての最小権限アクセス制御機能によりゼロデイ攻撃を防ぎ、承認されたアプリケーションのプロセスであっても所定の動作に制限し、不正な攻撃からシステムを防御する手法である。 エクスプロイト対策技術：アプリケーション（PDFビューア、ブラウザなど）の脆弱性を突くエクスプロイト攻撃により、パソコンが不正侵入を受けないように保護する機能である。一般的なエクスプロイト対策としてはアプリケーションを最新の状態に更新することが非常に重要であるが、未知のエクスプロイト攻撃があった場合、更新を行っているだけでは完全に防げない可能性がある。どうしても防ぎきれない未知のエクスプロイト攻撃から出来る限りパソコンを保護する機能である。脆弱性攻撃防御技術とも呼ばれる。 コンピュータウイルス ワーム スパイウェア アドウェア バッドウェア ボットネット クラッカー ソフトウェア アンチウイルスソフトウェア インターネットセキュリティスイート ^ a b NIST p=11 ^ a b トレンドマイクロ:セキュリティ用語集 ^ 有害なソフトウェア-英語翻訳-bab.la辞書 ^ OS X Yosemite: 有害なソフトウェアを避ける方法 ^ IT用語辞典e-words「マルウェア」 2016年7月30日閲覧 ^ ITPro Networkキーワード「マルウェア」 ^ a b コンピュータへの脅威 : FAQカスペルスキー。2016年7月29日閲覧 ^ weblio IT用語辞典バイナリ「クライムウェア」 2016年7月29日閲覧 ^ カスペルスキー「クライムウェア」 ^ a b c d e f g h i Norton Blog「マルウェアとウイルスの違い｜端末保護の基本をシンプルに知る」2014.11.10 2015年7月29日閲覧 ^ a b c d e f g h i NISTp=19-28 ^ a b c d IPAネットワークセキュリティ関連用語集「ウイルス」 ^ a b IT用語辞典e-words「マルウェア」 ^ 基礎から学ぶ！サイバー攻撃対策のポイント外部からやってくる多種多様なウイルスたち ITPro Active 2016年7月30日閲覧 ^ a b c d マルウェアにはどんな種類がある？ KASPERSKY Lab Daily ^ IT用語辞典BINARY「バックドア型」 2016年7月29日閲覧 ^ IT用語辞典BINARY「トロイの木馬」 2016年7月29日閲覧 ^ a b c d e Norton Blog「トロイの木馬とは? | ウイルスとの違いや感染被害例について」 2014.12.19 2016年7月29日閲覧 ^ a b c 日本ネットワークセキュリティ協会「マルウェアとは」 2016年7月29日閲覧 ^ JNSA「スパイウェア対策啓発」 2016年7月29日閲覧 ^ IPA「パソコンユーザのためのスパイウェア対策5箇条」 2016年7月29日閲覧 ^ 情報セキュリティ読本四訂版－IT時代の危機管理入門－（第３章見えない脅威とその対策－個人レベルのセキュリティ対策－） (パワーポイント)、4頁。IPA。 2016年7月29日閲覧 ^ 第5回：今だから学ぶ！ セキュリティの頻出用語 : マルウェアとは? McAfee Blog 2015年7月 1日 。2016年7月29日閲覧 ^ ACTIVE（総務省による官民連携マルウェア対策プロジェクト）のマルウェアQ&A「マルウェアについて」 「マルウェアは、ウイルスとは違うのですか？」への返答のところでスパイウェアをマルウェアに含めている。2016年7月29日閲覧 ^ Norton「クライムウェア: トロイの木馬とスパイウェア」 2016年7月29日閲覧 ^ a b c IT用語辞典e-words「キーロガー」 2016年7月30日閲覧 ^ a b IT用語辞典e-words「ボット」 2016年7月30日閲覧 ^ IT用語辞典BINARY「C&Cサーバー」 2016年7月30日閲覧 ^ IT用語辞典e-words「ゾンビPC」 ^ a b c d IT用語辞典e-words「ルートキット」 ^ a b c d ルートキットとは何か — その動作と感染した場合に取るべき措置 KASPERSKY Daily 2013年3月28日。2016年7月30日閲覧。 ^ シマンテック「Rootkit（ルートキット）」 ^ ランサムウェア Trend Micro。2016年7月30日閲覧。 ^ 組織化するサイバー犯罪に対し、FTC、FBIを支援 McAfee Blog 2010年8月10日。2016年7月30日閲覧 ^ スケアウェア感染から復旧するまでの 7 つのステップ KASPERSKY Lab 2012年11月7日。2016年7月30日閲覧 ^ IT用語辞典e-words「マルウェア」 2016年7月30日閲覧 ^ ITPro Networkキーワード「マルウェア」 ^ a b c d e f g h i j k l m n o p q r s t u v w x McAfee Labs 脅威レポート 2017年6月 ^ a b c ACTIVE「マルウェアについて知る」 ^ ウイルスの感染経路 - 国民のための情報セキュリティサイト ^ “Yahoo!の広告からマルウェアが送り込まれて何千人も感染する事態が発生”. GIGAZINE (2014年1月6日). 2017年12月21日閲覧。 ^ 「Hacked Website Report 2017 ^ 「ワードプレスのマルウェア・リダイレクトハックの手法の分析 ^ a b c d e f g h 用語解説辞典 -【公式】NTTPC - パターンマッチング ^ a b c ヒューリスティック検知とは？ - IT用語辞典 ^ a b c Networkキーワード - ヒューリスティック：ITpro ^ a b c d e ASCII.jp：大量の亜種を検出するために ^ a b Symantec Critical System Protection ^ a b マニュアル - G DATA インターネットセキュリティ マルウェアの定義 : FAQ - Microsoftによるマルウェア解説 “マルウェアによるインシデントの防止と対応のためのガイド (PDF)”. 米国国立標準技術研究所 (NIST) (2005年11月). 2016年7月29日閲覧。