JP2009543186A - ブート環境におけるマルウェアの識別 - Google Patents

ブート環境におけるマルウェアの識別 Download PDF

Info

Publication number
JP2009543186A
JP2009543186A JP2009518096A JP2009518096A JP2009543186A JP 2009543186 A JP2009543186 A JP 2009543186A JP 2009518096 A JP2009518096 A JP 2009518096A JP 2009518096 A JP2009518096 A JP 2009518096A JP 2009543186 A JP2009543186 A JP 2009543186A
Authority
JP
Japan
Prior art keywords
malware
computer
scan
boot
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009518096A
Other languages
English (en)
Other versions
JP2009543186A5 (ja
Inventor
エー.フィールド スコット
アール.フィリップス ロハン
エー.ポリヤコフ アレクセイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009543186A publication Critical patent/JP2009543186A/ja
Publication of JP2009543186A5 publication Critical patent/JP2009543186A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

一般的に述べると、本発明は、マルウェアを識別することを対象とする。一実施形態では、ブートプロセス中にマルウェアの検索を実施する方法が提供される。より具体的には、本方法は、マルウェアがあるか否かスキャンするように構成されたソフトウェアモジュールをコンピュータ起動時に初期化させる。次いで、スキャンイベントの発生を識別するのに応答して、本方法は、ソフトウェアモジュールに、マルウェアの特徴を示すデータをコンピュータメモリ中で検索させる。マルウェアの特徴を示すデータが識別された場合、本方法は、マルウェア感染を処理する。

Description

本発明は、ブート環境におけるマルウェアの識別に関する。
ますます多くのコンピュータおよび他のコンピューティングデバイスがインターネットなど様々なネットワークを介して相互接続されるのに伴い、コンピュータセキュリティ、特に、ネットワークを介してまたは情報ストリームを介して加えられる侵入または攻撃からのコンピュータセキュリティが、ますますより重要になってきている。当業者および他なら理解するであろうが、これらの攻撃は、コンピュータウイルス、コンピュータワーム、システムコンポーネント置換、トロイの木馬、ルートキット(RootKit)、スパイウェア、サービス拒否攻撃、さらには正当なコンピュータシステム機能の悪用/乱用を含めて(ただしもちろんこれらに限定されない)、多くの異なる形でやって来るが、これらは全て、1つまたは複数のコンピュータシステム脆弱性を非合法目的に利用するものである。様々なコンピュータ攻撃が厳密には相互と異なることを当業者なら理解するであろうが、本発明では、また記述を簡単にするために、以下、インターネットなどのコンピュータネットワーク上に散在する全ての悪意あるコンピュータプログラムを、一般にコンピュータマルウェア、またはより単純にマルウェアと呼ぶ。
コンピュータシステムがコンピュータマルウェアに攻撃された、または「感染した」とき、不都合な結果は、システムデバイスを使用不可能にすること、ファームウェア、アプリケーション、またはデータファイルを消去または破損すること、機密を扱う可能性のあるデータをネットワーク上の別の位置に送信すること、コンピュータシステムをシャットダウンすること、あるいは、コンピュータシステムをクラッシュさせることを含めて、様々である。さらに、全てではないものの多くのコンピュータマルウェアのもう1つの有害な面は、感染したコンピュータシステムを使用して、ネットワーク接続によって通信可能に接続された他のコンピュータシステムに感染することである。
コンピュータマルウェアに対する、また特にコンピュータウイルスおよびワームに対する従来の防御の1つは、アンチウイルスソフトウェアである。ほとんどのアンチウイルスソフトウェアは、データ内のパターンをマルウェアの「シグネチャ」と呼ばれるものと照合することによって、マルウェアを識別する。通常、アンチウイルスソフトウェアは、コンピュータ上でデータがストレージデバイスに対して書き込まれようとしているときや読み取られようとしているときなど、何らかのイベントが発生するようにスケジュールされているとき、マルウェアシグネチャがあるか否かスキャンする。当業者および他には知られているように、コンピュータユーザは、ハードドライブなどのストレージデバイスに対してデータを読み書きすることの継続的な必要性を有する。例えば、いくつかのソフトウェアアプリケーションによって提供される一般的な操作の1つは、ハードドライブに記憶されたファイルを開いて、ファイルの内容をコンピュータ表示装置上に表示することである。しかし、ファイルを開くとファイルに関連するマルウェアが実行される場合があるので、アンチウイルスソフトウェアは通常、開く操作が果たされる前に、ファイルのスキャンまたは他の分析を実施する。マルウェアが検出された場合、スキャンを実施したアンチウイルスソフトウェアは、例えば開く操作を失敗させることによって、マルウェアの実行を防止することができる。
コンピュータを保護するように設計されたソフトウェア(例えばアンチウイルスソフトウェア、アンチスパイウェアソフトウェアなど)からマルウェアを「隠蔽する」ように特に設計された1つまたは複数のプログラムを含むマルウェアが、ますます配信されるようになっている。コンピュータにインストールされる他のタイプのアプリケーションと同様、コンピュータをマルウェアから保護するように設計されたソフトウェアは、オペレーティングシステムによって提供されるサービスに依拠する。しかし、マルウェアがコンピュータオペレーティングシステムのコンポーネントまたは他の低レベルコンポーネントに感染する可能性がある場合、マルウェアは、コンピュータを保護するように設計されたソフトウェアに提供される情報を制御する恐れがある。以下、コンピュータ上でマルウェアの特徴を示すデータを隠匿するように特に設計されたマルウェアを、一般に「ルートキット」と呼ぶ。
説明のために、また単に例として、図1に、コンピュータ100をマルウェアから保護するように設計されたソフトウェアに利用可能にされた情報を、ルートキットがどのように制御することができるかを示す。図1に示すように、コンピュータ100は、アプリケーションプログラム102、オペレーティングシステム104、ストレージデバイス106、およびルートキット108を備える。また、オペレーティングシステム104は、コンピュータ100にインストールされたアプリケーションプログラムにアプリケーションプログラミングインタフェース(API)の形のサービスを提供するインタフェース110も備える。アプリケーションプログラム102は、コンピュータ100をマルウェアから保護するように設計された動作を実施する。例えば、アプリケーションプログラム102は、ストレージデバイス106に記憶されたファイルにユーザがアクセスしようとしたとき、マルウェアがあるか否かファイルを「アクセス時に」スキャンすることができる。
しかし、図1に示すように、アプリケーションプログラム102はユーザモードで動作を実施し、また、少なくとも部分的にカーネルモードで動作するオペレーティングシステム104によって提供されるサービスに依拠する。さらに、コンピュータ100は、オペレーティングシステム104に「フック」するルートキット108に感染しており、ルートキット108は、コンピュータ100上で基本機能を実施するのに使用される呼出しをインターセプトする。言い換えれば、ルートキット108は、「中間者(man−in−the−middle)」として振る舞い、オペレーティングシステム104とコンピュータ100にインストールされたアプリケーションプログラムとの間の通信を監視および改変する。アンチウイルスソフトウェアなどのアプリケーションプログラムが、ルートキット108によって使用される1つまたは複数のファイルを含むディレクトリの内容をリストしようとした場合、ルートキット108は、ファイル名を検閲してリストから削除することになる。同様に、ルートキット108は、システムレジストリやプロセスリストなどの中のエントリを隠蔽することもでき、それにより、ルートキット108が隠蔽しておきたい全ての情報を制御することができる。
この概要は、詳細な説明でさらに後述する概念の精選を、単純化した形で紹介するために提供する。この概要は、特許請求する主題の鍵となる特徴を識別するものとはせず、また、特許請求する主題の範囲を限定する際の助けとして使用されるものともしない。
一般的に述べると、本発明の態様は、ブート環境でアクティブ化されるプログラムコードを使用して検出を逃れるマルウェアを、識別することを対象とする。一実施形態によれば、ブートプロセス中にマルウェアの検索を実施する方法が提供される。より具体的には、本方法は、マルウェアがあるか否かスキャンするように構成されたソフトウェアモジュールをコンピュータ起動時に初期化させる。次いで、スキャンイベントの発生を識別するのに応答して、本方法は、ソフトウェアモジュールに、マルウェアの特徴を示すデータをコンピュータメモリ中で検索させる。マルウェアの特徴を示すデータが識別された場合、マルウェアがコンピュータ上で実行されないようにするための機能が実施される。コンピュータ起動時にスキャンを実施する結果として、アンチウイルスソフトウェアから隠れるために難読化技法を実施するマルウェアが識別される。
本発明の前述の態様および付随する利点の多くは、添付の図面と共に以下の詳細な説明を参照することによってよりよく理解されるようになるのに伴い、より容易に認識されるようになるであろう。
本発明の態様は、プログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能命令の一般的なコンテキストで述べることができる。一般的に述べると、プログラムモジュールは、特定のタスクを実施するかまたは特定の抽象データ型を実装するルーチン、プログラム、アプリケーション、ウィジェット、オブジェクト、コンポーネント、データ構造などを含む。さらに、本発明は分散コンピューティング環境で実施することもでき、その場合、タスクは通信ネットワークを介してリンクされたリモート処理デバイスによって実施される。分散コンピューティング環境では、プログラムモジュールは、ローカルおよび/またはリモートのコンピューティング記憶媒体上に位置することができる。
次に図2を参照しながら、本発明の態様を実施するコンポーネントを備えるコンピュータ200について述べる。コンピュータ200は、パーソナルコンピューティングデバイス、サーバベースのコンピューティングデバイス、ミニコンピュータおよびメインフレームコンピュータ、ラップトップ、パーソナルディジタルアシスタント(PDA)、セットトップボックス、娯楽およびゲーミングシステム、あるいは、何らかのタイプのメモリを有する他の電子デバイスを含めて(ただしこれらに限定されない)、様々なデバイスのいずれか1つとすることができることを、当業者および他なら理解するであろう。図2に示すコンピュータ200は、図1に関して上述した同じ名称の同じコンポーネントの多くを備える。これに関して、コンピュータ200は、アプリケーションプログラム202、関連インタフェース205を伴うオペレーティングシステム204、およびストレージデバイス206を備える。説明を容易にするために、また本発明の理解にとって重要ではないので、図2には、キーボード、マウス、プリンタ、表示装置、CPU、メモリなど、多くのコンピュータの典型的なコンポーネントは示していない。しかしこの実施形態では、コンピュータ200は、スキャンエンジン208およびブート検出モジュール210も備える。後でより詳細に述べるが、スキャンエンジン208およびブート検出モジュール210は集合的に、従来のアンチウイルスソフトウェアによって提供されるサービスが利用可能になる前に実行を開始するルートキットなどのマルウェアを識別する方法を提供する。これに関して、コンピュータがブートされている間に、コンピュータ200に感染したルートキットまたは他のマルウェアが識別され、したがってルートキットは、マルウェアの特徴を示すデータを隠蔽し続けることができない。
図2に示すオペレーティングシステム204は、Microsoft(商標)オペレーティングシステム、UNIX(登録商標)オペレーティングシステム、またはLinux(商標)オペレーティングシステムなど、汎用オペレーティングシステムであってよい。また、オペレーティングシステム204は、特殊化されたコンピュータシステム用に設計された非一般的ハードウェアを使用するように構成されてよい。いずれの場合でも、当業者および他には知られているように、オペレーティングシステム204は、コンピュータ200の全般的な動作を制御し、ハードウェアおよび基本的なシステム動作の管理、ならびにアプリケーションプログラムの実行を担う。より具体的には、オペレーティングシステム204は、アプリケーションプログラム202などのコンピュータプログラムがストレージデバイス206のようなリソースを使用できることを保証する。現代のコンピュータでは、オペレーティングシステム204用に確保されたメモリ空間でコードが実行されるための機構を提供することにより、アプリケーションプログラムがオペレーティングシステム204の機能を拡張することができる。これらのタイプのシステムに伴う問題は、オペレーティングシステム204からアンチウイルスソフトウェアなどのアプリケーションプログラムに提供されるデータのインテグリティ(integrity:完全性)を、ルートキットまたは他のマルウェアが損なうことができる場合があることである。その結果、ルートキットは、ルートキットおよび/またはいずれか他の関連マルウェアをアンチウイルスソフトウェアが識別できないようにする難読化技法を実施することができる。
ルートキットは通常、コンピュータ上でオートスタートエクステンシビリティポイント(Auto Start Extensibility Point、以下「ASEP」)にそれ自体を追加することを、当業者および他なら理解するであろう。一般的に述べると、ASEPは、プログラムが明示的なユーザ呼出しなしに実行を開始できるようにする拡張可能性ポイントのことを言う。ASEPに追加された結果として、ルートキットは、ブートプロセス中に、またはユーザが「ログイン」を実施すると、またはその後のどこかの時点で、実行を開始することができる。通常、アンチウイルスソフトウェアは、オペレーティングシステムによって提供されるサービスを使用してマルウェアを検索するのであって、オペレーティングシステムによって提供されるサービスが利用可能になってからしかコンピュータを保護することができない場合がある。その結果、オペレーティングシステムのサービスが利用可能になる前にコンピュータのオペレーティングシステムまたは他の低レベルコンポーネントに感染したルートキットは、マルウェアの特徴を示すデータを隠匿できる恐れがある。本発明の一実施形態では、オペレーティングシステムによって提供されるサービスが利用可能になる前にマルウェアが識別されるようにするブート検出モジュール210が提供される。ブート検出モジュール210の様々な態様については後で図4に関してさらに詳細に述べるので、ここではブート検出モジュール210の詳細な記述は提供しない。しかし一般的に述べると、ブート検出モジュール210は、ブートプロセス中にスキャンエンジン208がメモリにロードされ実行されるようにする。マルウェアが識別された場合、マルウェアをコンピュータから除去することができ、あるいは、コンピュータがブートされてからアンチウイルスソフトウェアが感染を処理できるように、マルウェアを「隔離する」ことができる。
図2にさらに示すように、コンピュータ200は、コンピュータメモリ中のデータがマルウェアの特徴を示すか否かを判断するためのスキャンエンジン208も備える。現在あるまたはこれから開発される任意の技法をスキャンエンジン208によって使用して、オペレーティングシステム204によって提供されるサービスが利用可能になる前に実行を開始するマルウェアを識別することができる。これに関して、スキャンエンジン208は、インテグリティチェックを利用して、オペレーティングシステムを実装するプログラムコードがオペレーティングシステムプロバイダなど信用されるエンティティによってディジタル署名されているか否かを検証することができる。さらに、スキャンエンジン208は、予期されない位置でのジャンプ命令、隠蔽されたプロセス、オペレーティングシステム204に割り振られた範囲の外のメモリアドレスへの参照など、疑わしいアクティビティを検索することもできる。例えば、いくつかのオペレーティングシステムは、現在実行されているプログラムのリストを含んだ、プロセステーブルと呼ばれることもあるデータ構造を維持する。プロセステーブルまたは同様のデータ構造からのエントリの除去は、ルートキットが存在するという強力なヒューリスティックインジケータである場合がある。また、スキャンエンジン208は、従来のシグネチャベースの技法をブート環境で利用して、マルウェアを検出することもできる。これに関して、データ内のパターンをマルウェアの「シグネチャ」と呼ばれるものと照合することによって、マルウェアを実装するファイルデータを識別することができる。この場合、マルウェアを実装するとわかっているデータ、またはこのデータの特徴的なサブセットが、マルウェアを一意に識別するシグネチャにデータを変換する機能によって処理される。マルウェアのシグネチャが利用可能になると、スキャンエンジン208は、メモリ中のデータの中で合致を検索することができる。
当業者および他にはわかるように、図2は、本発明の態様を実施することのできる1つのコンピュータ200の単純化した一例である。コンピュータ200の実際の実施形態は、図2に示されておらず付随する本文にも記載されていない追加のコンポーネントを有することになる。また、図2は、ブート環境でマルウェアの検索を実施することのできる1つのコンポーネントアーキテクチャを示す。したがって、図2に示すソフトウェアコンポーネントは、限定ではなく例示として解釈すべきである。
次に図3を参照しながら、コンピュータがブートされるときに実施されるイベントを示す例示的な時系列300について述べる。時系列300は、コンピュータ起動時に発生することのできるイベントの一般化された非排他的なセットを高度に単純化した一例であることを、当業者および他なら理解するであろう。他の実施形態では、追加のまたはより少ないイベントが発生する場合もあり、あるいは以下に提供する記述とは異なる順序でイベントが発生する場合もある。したがって、図3に示す時系列300は単に説明的なものであり、例として解釈すべきである。
図3に示すように、イベント302で、コンピュータに電力が加えられるように電源が「オン」に切り替えられる。十分な電力が利用可能になったとき、イベント304で、CPUがベーシックインプット/アウトプットシステム(BIOS、Basic Input/Output System)コードの実行を開始する。BIOSコードは、コンピュータのハードウェアを初期化するための機能をコンピュータが実施できるようにするコンピュータ命令を含む。通常、コンピュータに電源が投入されると、コンピュータのBIOSは、パワーオンセルフテスト(POST、Power−On Self Test)と一般に呼ばれるハードウェアチェックを実施して、サポートハードウェアが存在し正しく動いているか否かを判断する。BIOSが常に利用可能であって、揮発性メモリまたは大容量データ記憶装置に影響する障害により損傷しないことを確実にするために、BIOSは通常は不揮発性メモリに位置することを、当業者および他なら理解するであろう。さらに、BIOSは低レベル入出力制御を提供することを、当業者および他なら理解するであろう。例えば、パーソナルコンピュータ中では、BIOSは、キーボードや表示画面やディスクドライブの制御、基本的な入出力(I/O)の実施、および他の雑多な機能に必要とされる、コンピュータ命令を含む。
イベント306で、BIOS中の命令が、制御をオペレーティングシステムローダに向けて送る。通常、オペレーティングシステムローダは、ハードウェア検出を実施し、オペレーティングシステムをコンピュータの揮発性メモリに、例えばランダムアクセスメモリ(RAM)メモリデバイスのバンクにロードし、オペレーティングシステムの初期化を開始する。イベント307で、オペレーティングシステム「カーネル」がロードされ、他のコンポーネントにサービスを提供するために利用可能になる。これに関して、I/Oマネージャとして知られるオペレーティングシステムのコンポーネントが初期化されると、イベント308で、ブートドライバをロードおよび初期化するプロセスが開始する。これに関して、ブートドライバの優先順リストがI/Oマネージャによってまとめられ、リスト上の各ドライバがメモリにロードされる。ブートドライバは通常、ビデオカード、プリンタ、ディスクドライブなど、ハードウェアデバイスのリソースへの最適化されたアクセスを可能にするサービスを提供する。全てのブートドライバがロードされると、イベント310で、ユーザモードサブシステムが起動される。一般的に述べると、ユーザモードサブシステムは、ユーザモードアプリケーション空間にサポートサービスを提供する。これに関して、ユーザモードサブシステムを起動することは、ローカルセキュリティ権限を確立して、最終的に「ログイン」プロンプトをユーザに提示することを含むことができる。イベント312で、ログインが実施され、ユーザモードサービスが利用可能にされる。例えば、サーバメッセージブロック(SMB、Server Message Block)は、ログインが実施されたときに利用可能になる、ファイル、プリンタ、シリアルポート、および通信抽象化をコンピュータ間で共有するためのプロトコルである。ユーザモードサービスが利用可能になると、イベント314で、ユーザモードアプリケーション空間にアクセスしてプログラムを実行することができる。イベント314に到達すると、汎用コンピュータ上で特定のタスクを実施するように設計されたプログラムを実行することができる。これに関して、プログラムがユーザモードアプリケーション空間で実行されるように選択されたとき、オペレーティングシステムは、選択されたプログラムに関連するプログラムコードがストレージデバイス(例えばハードドライブ)からメモリにロードされるようにすることができ、このメモリにおいてプログラムコードはCPUからアクセス可能である。
後でさらに詳細に述べるように、本発明の態様は、ブートプロセス中にマルウェアの検索が実行されるようにする。より具体的には、時系列300における任意の数の異なる位置で、ソフトウェアモジュール(例えばスキャンエンジン208)をメモリにロードすることができる。次いで、マルウェアの特徴を示すデータの検索を実施することができる。これに関して、ブートプロセスが完了した後に従来のアンチウイルスソフトウェアがコンピュータの保護のために利用可能になるまで、ブートプロセス中に実行されるコンポーネントを継続的にスキャンすることができる。
コンピュータの構成に応じて、本発明の態様は、BIOS、オペレーティングシステムローダ、またはブートドライバ中で実施することができる。これに関して、また図3に示すように、スキャンエンジン208は、イベント304、306、または310で、メモリにロードされて実行を開始することができる。一般的に述べると、ブートプロセスにおいてできるだけ早くマルウェアのスキャンを開始して、前のコンポーネントに感染したマルウェアが難読化技法を実施する機会を持てないようにすることが望ましい。しかし、マルウェアがブートプロセス中に難読化技法を実施できるとしても、マルウェアが利用可能なリソースは、検出を逃れるのに十分でない場合がある。これに関して、ブート環境が制限され、本発明を実施するコンピュータ上でマルウェアがそれ自体を隠匿する能力および/または悪意ある行為を実施する能力が制限される。
時系列300またはブートプロセスにおける、マルウェアからの保護が提供される位置は、コンピュータの構成に依存する場合がある。例えば、コンピュータベンダはそれぞれ、コンピュータ上のハードウェアを初期化するための異なるBIOSを提供する場合があることを、当業者および他なら理解するであろう。したがって、BIOSによって提供されるサービスは、本発明の単一の実装形態をコンピュータプラットフォームにかかわらず提供できるように標準化されていない場合がある。言い換えれば、BIOSにおける本発明の態様の実施は、BIOSによって提供されるサービスがコンピュータプラットフォームにまたがって標準化されていれば、より容易に実施することができる。より一般的には、ブートプロセスにおける、スキャンエンジン208がメモリにロードされて実行を開始する位置は、どのようにコンピュータを構成できるかに影響する任意の数の要因に依存する場合がある。
次に図4を参照しながら、図2に関して簡単に上述した例示的なブート検出モジュール210についてより詳細に述べる。一般的に述べると、ブート検出モジュール210は、ブートプロセス中にアクティブになるルートキットなどのマルウェアを識別する方法を提供する。ブートプロセス中にアクティブになることにより、マルウェアはより容易に難読化技法を実施して、従来のアンチウイルスソフトウェアに通信されるデータをフィルタリングすることができる。初期事項として、ブート検出モジュール210が実行される前に、コンピュータに電力が利用可能になるように電源が「オン」に切り替えられる。
図4に示すように、ブロック400でブート検出モジュール210が開始し、マルウェアを探す1つまたは複数のスキャンが現在のブートにおいて実施されるか否かが判断される。前述のように、電力がコンピュータに加えられたとき、コンピュータをブートさせる一連のイベントが発生する。一実施形態では、ブート検出モジュール210は、コンピュータがブートする度にマルウェアがあるか否かスキャンするように構成されてよい。しかし、使用される技法に応じて、マルウェアのスキャンはリソース集約型のプロセスである場合がある。したがって、他の実施形態では、マルウェアのスキャンは、コンピュータリソースの使用を最小限に抑えるための前提条件が満たされたか否かに基づいて選択的に実施される。
マルウェアのスキャンが実施されることになる場合と、実施されないことになる場合とを区別するのに使用することのできる第1の前提条件は、「疑わしい」アクティビティの識別である。マルウェアの特徴を示す可能性があるアクティビティだが、マルウェア感染が存在するとはっきり断言するには不十分な情報を有する可能性があるアクティビティを、アンチウイルスソフトウェアが識別する場合がある。この場合、コンピュータまたはコンピュータネットワークは、マルウェアの拡張検索が実施される高度状態に移行することができる。高度状態に移行することで、マルウェアのスキャンをコンピュータの各ブート中に実施させることができる。これに関して、疑わしいアクティビティが識別されたとき、複数のブートにまたがって存続する変数を設定して、マルウェアのスキャンがコンピュータ起動時に実施されることを示すことができる。この場合、ブート検出モジュール210は、ブロック400で変数の値をチェックして、マルウェアのスキャンが実施されることになるか否かを判断する。
マルウェアのスキャンが実施されることになる場合と、実施されないことになる場合とを区別するのに使用することのできる別の前提条件は、ユーザ入力に基づく。これに関して、マルウェアのスキャンがブートプロセス中に実施されるようにする入力をユーザが生成するのを可能にする制御を、アンチウイルスソフトウェアに統合することができる。また、スキャンを実施すべきか否かに関する入力を提供するよう、ブートプロセス中にユーザに促すこともできる。上に提供した記述と同様、適切なユーザ入力が受け取られたとき、存続する変数を設定して、スキャンが実施されることを示すことができる。
追加の例として、疑わしいアクティビティを識別することなく、またはユーザ入力を受け取ることなく、マルウェアのスキャンを自動的にスケジュールすることもできる。これに関して、本発明の態様は、コンピュータが5回ブートされるごと、または他の任意に確立された値ごとなど、定期的にマルウェアのスキャンを実施するように構成することができる。さらに、マルウェアのスキャンが実施されるか否かの判断は、ランダムに行ってもよい。例えば、アドバンストプログラマブル割込みコントローラ(APIC、Advanced Programmable Interrupt Controller)などのハードウェアデバイスを使用してランダムな値を生成することができることを、当業者および他なら理解するであろう。これに関して、現在のブート中にマルウェアのスキャンが実施されるか否かの判断は、この値に基づくことができる。ブロック400で、適切な前提条件が満たされなかったためにマルウェアのスキャンが実施されないと判断された場合は、ブート検出モジュール210はブロック414に進んで終了する。反対に、スキャンが実施されると判断された場合は、ブート検出モジュール210はブロック402に進む。
ブロック402で、スキャンエンジン208(図2)が初期化され、ブートプロセスにおける所定位置で実行を開始する。前述のように本発明の態様は、コンピュータがブートされているときに、場合によっては様々な位置で、マルウェアの検索を開始することができる。これに関して、本発明を実施するプログラムコードは、BIOS、オペレーティングシステムローダ、またはブートドライバに統合することができる。その結果、ブロック402のスキャンエンジン208の初期化は、時系列300(図3)中の様々な位置で行うことができる。さらに、スキャンエンジン208の初期化は、スキャンエンジン208が統合されたコンポーネント内で最も高い優先順位を割り当てられてよく、また通常はそのようになる。例えば、前述のように、優先順リストを使用して、ブートドライバが初期化される順序が識別される。スキャンエンジン208がブートドライバによって初期化される場合、このブートドライバは、他のブートドライバと比較したとき最も高い優先順位を割り当てられる。その結果、その後に初期化されるブートドライバは、メモリにロードされたときに、マルウェアがあるか否かスキャンされる。このようにして、マルウェアがブートプロセス中にそれ自体を隠匿できる可能性が最小限に抑えられる。
図4に示すように、判断ブロック404で、ブート検出モジュール210は、スキャンイベントが発生するまでアイドル状態に留まる。一実施形態では、マルウェアのスキャンは、スキャンエンジン208が初期化されるとすぐに実施される。しかし、マルウェアを探す追加のスキャンがブートプロセス中に実施されるようにするスキャンイベントを定義することもできる。既存のアンチウイルスソフトウェアによって実施される「アクセス時」スキャンと同様、ブートプロセス中にメモリにロードされた各ソフトウェアを、実行が許可される前にスキャンエンジン208によってスキャンすることができる。例えば、各ブートドライバがメモリにロードされたとき、イベント310(図3)で、マルウェアがあるか否かブートドライバがスキャンされるように、スキャンイベントが生成されてよい。さらに、他の場合にも、特許請求する主題の範囲を逸脱することなく、スキャンエンジン208が初期化された後にスキャンイベントが生成されてよいことを、当業者および他なら理解するであろう。
スキャンイベントが識別されると、ブロック406で、ブート検出モジュール210は、マルウェアのスキャンが実施されるようにする。図2に関して簡単に上述したように、現在あるまたはこれから開発される任意の技法を使用して、マルウェアを検索することができる。これに関して、スキャンエンジン208は、インテグリティチェックを実施して、オペレーティングシステムに割り振られたメモリアドレス空間中のプログラムコードが、信用されるエンティティから生じたものか否かを判断することができる。また、インテグリティチェックに加えて、シグネチャベースの技法、および/または「疑わしい修正」の検索を、スキャンの中で実施できることも企図される。
一実施形態では、ブロック406で実施されるスキャンは、既知のマルウェアのサブセットを検索する。前述のように、マルウェアのスキャンはリソース集約型のプロセスである場合がある。さらに、スキャンの実施時にスキャンエンジン208によって要求されるサービスは、非ブート環境と比較して、ブート環境では素早く満たされない場合がある。これに関して、ブート環境で全ての既知のマルウェアを探すスキャンを実施することは、ユーザ体験に悪影響を及ぼす恐れがある。したがって、ブロック406では、ブート環境で実行を開始する可能性が最も高いマルウェアのタイプ(例えばルートキット)を識別するためのスキャンを実施することができる。しかし、これは単に一最適化技法であって、特許請求する主題を限定するものと解釈すべきでないことを、当業者および他なら理解するであろう。次いで、判断ブロック408で、ブロック406で実施されたスキャンの結果としてマルウェアが識別されたか否かが判断される。マルウェアが識別されなかった場合は、ブート検出モジュール210は、後でさらに詳細に述べるブロック412に進む。反対に、マルウェア感染が識別された場合は、ブート検出モジュール210はブロック410に進む。
図4に示すように、ブロック410で、ブート検出モジュール210は、マルウェア感染が処理されるようにする。ブロック410に到達した場合、ブートプロセス中に、マルウェアの特徴を示すデータが識別されている。一実施形態では、ブロック410で感染を処理することは、プロセスを強制終了したり、ファイルを削除したり、マルウェアに関連する構成ファイル中のエントリを除去したりなどすることによって、マルウェアをコンピュータから除去するよう試みることを含む。しかし、ブート環境で利用可能なリソースは限られているので、ブロック410でマルウェアの全てのコンポーネントをうまく除去するのは困難または不可能な場合がある。例えば、いくつかのマルウェアは自己保存技法を実施するが、この技法では、マルウェアのリソース(例えばファイル、プロセス、構成ファイル中のエントリなど)が監視される。マルウェアを除去する試みが識別されたときは、マルウェアのリソースを保存して感染を維持するように設計された機能が実施される。したがって、マルウェア感染を処理することはまた、ブート環境でアクティブなマルウェアのコンポーネントを「隔離する」ことを含むこともできる。これに関して、マルウェアに対するプレースホルダとして「スタブ」モジュールを使用することができる。例えば、スタブモジュールは、マルウェアプロセスを持続させるか、呼び出されるのに応答して有効データを受容および/または返却するか、あるいはマルウェア自己保存技法のトリガを防止するためのいずれか他の動作を実施するように、構成されてよい。この実施形態では、マルウェアが隔離されたときは、通常、マルウェアの全てのコンポーネントを除去できるように、コンピュータがブートした後に実行されるアンチウイルスソフトウェアにデータが通信されることになる。
図4に示すように、ブロック412で、コンピュータがうまくブートされたか否かが判断される。前述のように、本発明の態様は、従来のアンチウイルスソフトウェアが保護を提供できるようになる前に、ブート環境でアクティブになるマルウェアを識別する。しかし、ブートプロセスが完了すると、従来のアンチウイルスソフトウェアが利用可能になる。本発明による機能は、ブートプロセスが再び開始されるまで休眠状態である。ブートプロセスが完了したときは、ブート検出モジュール210はブロック414に進んで終了する。しかし、ブロック412でブートプロセスが完了していないと判断された場合は、ブート検出モジュールはブロック404に戻り、ブートプロセスが完了するまでブロック404〜412が繰り返す。
例示的な実施形態について図示および記述したが、本発明の趣旨および範囲を逸脱することなく様々な変更をこれらに加えることができることは理解されるであろう。
独占的な所有権または特権が請求される本発明の実施形態は、特許請求の範囲に定義する。
現代のコンピュータの機能を実施するように構成されたソフトウェアコンポーネントと、マルウェアを隠匿するように設計されたルートキットとのブロック図である。 ブート環境でマルウェアを識別するように構成されたコンポーネントを備えるコンピュータの絵図である。 コンピュータ起動時に実施されるイベントを示す例示的な時系列の絵図である。 ブートプロセス中にマルウェアを識別するソフトウェアモジュールの例示的な流れ図である。

Claims (20)

  1. コンピュータ起動時にブートプロセスを利用するコンピュータ(200)において、前記ブートプロセス中にアクティブになるマルウェアを識別するコンピュータ実施方法であって、
    (a)マルウェアを探すスキャンを実施するように構成されたソフトウェアモジュールを前記ブートプロセス中に初期化させること(402)、
    (b)スキャンイベントの発生を識別する(404)のに応答して、
    (i)前記ソフトウェアモジュールに、マルウェアの特徴を示すデータがあるか否かコンピュータ(200)のメモリをスキャンさせること(406)、および、
    (ii)マルウェアの特徴を示すデータが識別された場合にマルウェア感染を処理すること(410)を含むことを特徴とする方法。
  2. マルウェアを探すスキャンを実施するように構成された前記ソフトウェアモジュールは、前記ブートプロセスにおける、BIOSが実行される段階で初期化されることを特徴とする請求項1に記載の方法。
  3. マルウェアを探すスキャンを実施するように構成された前記ソフトウェアモジュールは、前記ブートプロセスにおける、オペレーティングシステムローダが実行される段階で初期化されることを特徴とする請求項1に記載の方法。
  4. マルウェアを探すスキャンを実施するように構成された前記ソフトウェアモジュールはブートドライバ中で実装されることを特徴とする請求項1に記載の方法。
  5. マルウェアを探すスキャンは、前提条件が満たされたとき、コンピュータ起動時に選択的に実施されることを特徴とする請求項1に記載の方法。
  6. ユーザ入力が、現在のブート中にスキャンが実施されるか否かを判断するのに使用される前記前提条件であることを特徴とする請求項5に記載の方法。
  7. マルウェアを探す前記スキャンは、前記コンピュータ(200)の定期的にスケジュールされたブート時に選択的に実施されることを特徴とする請求項1に記載の方法。
  8. マルウェアを探す前記スキャンは、前記コンピュータ(200)のランダムに選択されたブート時に実施されることを特徴とする請求項1に記載の方法。
  9. 前記ソフトウェアモジュールに、マルウェアの特徴を示すデータがあるか否かコンピュータメモリをスキャンさせることは、メモリ中のデータをマルウェアに関連するシグネチャと比較することを含むことを特徴とする請求項1に記載の方法。
  10. 前記ソフトウェアモジュールに、マルウェアの特徴を示すデータがあるか否かコンピュータメモリをスキャンさせること(406)は、インテグリティチェックを実施して、オペレーティングシステムに割り振られたメモリ空間中のプログラムコードが信用されるエンティティから生じたものか否かを判断することを含むことを特徴とする請求項1に記載の方法。
  11. 前記スキャンは、ブート環境でアクティブになる可能性が高い全ての既知のマルウェアのサブセットを識別するように構成されたことを特徴とする請求項1に記載の方法。
  12. 前記マルウェア感染を処理すること(410)は、プロセスを強制終了すること、ファイルを削除すること、および前記マルウェアに関連する構成ファイル中のエントリを除去することを含むことを特徴とする請求項1に記載の方法。
  13. 前記マルウェア感染を処理すること(410)は、スタブモジュールをプレースホルダとして使用してマルウェア自己保存技法のトリガを防止することを含むことを特徴とする請求項1に記載の方法。
  14. コンピュータ(200)によって読取り可能な命令を含むコンピュータ可読媒体であって、起動時にブート環境を実装するコンピュータ(200)中で実行されたとき、前記コンピュータ(200)がマルウェアに感染しているか否かを判断する方法を実施し、前記方法は、
    (a)マルウェアスキャンエンジン(208)を前記ブート環境のコンポーネントに統合すること、
    (b)マルウェアを探すスキャンが現在のブート中に実施されるか否かを判断すること(404)、および、
    (c)マルウェアを探すスキャンが現在のブート中に実施されると判断された場合に、前記スキャンエンジン(208)に前記ブート環境のコンポーネント中でマルウェアを検索させること(406)を含むことを特徴とするコンピュータ可読媒体。
  15. 前記マルウェアスキャンエンジン(208)はBIOS、オペレーティングシステムローダ、またはブートドライバに統合されることを特徴とする請求項14に記載のコンピュータ可読媒体。
  16. マルウェアを探すスキャンが現在のブート中に実施されるか否かの前記判断(404)は、プロンプトに応答してユーザ入力を受け取ることによって行われることを特徴とする請求項14に記載のコンピュータ可読媒体。
  17. 前記スキャンエンジン(208)に前記ブート環境のコンポーネント中でマルウェアを検索させること(406)は、ルートキットの特徴を示す疑わしいアクティビティを検索することを含むことを特徴とする請求項14に記載のコンピュータ可読媒体。
  18. ルートキットの特徴を示す疑わしいアクティビティの前記検索を実施することは、
    (a)予期されない位置でのジャンプ命令を識別すること、
    (b)隠蔽されたプロセスを識別すること、および
    (c)オペレーティングシステム(104)に割り振られた範囲の外のメモリアドレスへの参照を識別することを含むことを特徴とする請求項17に記載のコンピュータ可読媒体。
  19. ブート環境でマルウェアを識別するためのコンピュータ実行可能コンポーネントを有するコンピュータ可読媒体であって、
    (a)マルウェアの特徴を示すデータをコンピュータメモリ中で検索するように構成されたスキャンコンポーネント(208)と、
    (b)ブートプロセス中に前記スキャンコンポーネントを初期化するためのブート検出コンポーネント(210)と、
    (c)前記スキャンコンポーネントに既知のマルウェアのサブセットをメモリ中で検索させる最適化コンポーネントとを備えることを特徴とするコンピュータ可読媒体。
  20. 前記ブート検出コンポーネントはさらに、マルウェアプログラムコードをスタブモジュールで置き換えることによってマルウェア感染を処理するように構成されたことを特徴とする請求項19に記載のコンピュータ可読媒体。
JP2009518096A 2006-06-30 2007-02-21 ブート環境におけるマルウェアの識別 Pending JP2009543186A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/480,774 US20080005797A1 (en) 2006-06-30 2006-06-30 Identifying malware in a boot environment
PCT/US2007/004643 WO2008005067A1 (en) 2006-06-30 2007-02-21 Identifying malware in a boot environment

Publications (2)

Publication Number Publication Date
JP2009543186A true JP2009543186A (ja) 2009-12-03
JP2009543186A5 JP2009543186A5 (ja) 2010-04-08

Family

ID=38878431

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009518096A Pending JP2009543186A (ja) 2006-06-30 2007-02-21 ブート環境におけるマルウェアの識別

Country Status (6)

Country Link
US (1) US20080005797A1 (ja)
EP (1) EP2038753A4 (ja)
JP (1) JP2009543186A (ja)
KR (1) KR20090023644A (ja)
CN (1) CN101479709B (ja)
WO (1) WO2008005067A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013502639A (ja) * 2009-08-17 2013-01-24 ファットスカンク・インコーポレーテッド デバイスの監査
US8949989B2 (en) 2009-08-17 2015-02-03 Qualcomm Incorporated Auditing a device

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8112801B2 (en) * 2007-01-23 2012-02-07 Alcatel Lucent Method and apparatus for detecting malware
US8495741B1 (en) * 2007-03-30 2013-07-23 Symantec Corporation Remediating malware infections through obfuscation
US8225394B2 (en) * 2007-04-13 2012-07-17 Ca, Inc. Method and system for detecting malware using a secure operating system mode
US7917952B1 (en) * 2007-10-17 2011-03-29 Symantec Corporation Replace malicious driver at boot time
US8370941B1 (en) * 2008-05-06 2013-02-05 Mcafee, Inc. Rootkit scanning system, method, and computer program product
RU2467513C2 (ru) * 2008-06-19 2012-11-20 Интердиджитал Пэйтент Холдингз, Инк. Оптимизированное изменение обслуживающей соты в режиме с двумя сотами
US8904536B2 (en) * 2008-08-28 2014-12-02 AVG Netherlands B.V. Heuristic method of code analysis
US9087188B2 (en) * 2009-10-30 2015-07-21 Intel Corporation Providing authenticated anti-virus agents a direct access to scan memory
US8417962B2 (en) 2010-06-11 2013-04-09 Microsoft Corporation Device booting with an initial protection component
US8479292B1 (en) * 2010-11-19 2013-07-02 Symantec Corporation Disabling malware that infects boot drivers
CN101976319B (zh) * 2010-11-22 2012-07-04 张平 基于行为特征的BIOS固件Rootkit检测方法
US8572742B1 (en) * 2011-03-16 2013-10-29 Symantec Corporation Detecting and repairing master boot record infections
US8966624B2 (en) 2011-03-31 2015-02-24 Mcafee, Inc. System and method for securing an input/output path of an application against malware with a below-operating system security agent
US8925089B2 (en) 2011-03-29 2014-12-30 Mcafee, Inc. System and method for below-operating system modification of malicious code on an electronic device
US9087199B2 (en) 2011-03-31 2015-07-21 Mcafee, Inc. System and method for providing a secured operating system execution environment
US9317690B2 (en) 2011-03-28 2016-04-19 Mcafee, Inc. System and method for firmware based anti-malware security
US8959638B2 (en) 2011-03-29 2015-02-17 Mcafee, Inc. System and method for below-operating system trapping and securing of interdriver communication
US9032525B2 (en) 2011-03-29 2015-05-12 Mcafee, Inc. System and method for below-operating system trapping of driver filter attachment
US9262246B2 (en) 2011-03-31 2016-02-16 Mcafee, Inc. System and method for securing memory and storage of an electronic device with a below-operating system security agent
US8966629B2 (en) * 2011-03-31 2015-02-24 Mcafee, Inc. System and method for below-operating system trapping of driver loading and unloading
US8813227B2 (en) 2011-03-29 2014-08-19 Mcafee, Inc. System and method for below-operating system regulation and control of self-modifying code
US8863283B2 (en) 2011-03-31 2014-10-14 Mcafee, Inc. System and method for securing access to system calls
US9038176B2 (en) 2011-03-31 2015-05-19 Mcafee, Inc. System and method for below-operating system trapping and securing loading of code into memory
US9239910B2 (en) * 2011-04-04 2016-01-19 Markany Inc. System and method for preventing the leaking of digital content
CN102867148B (zh) * 2011-07-08 2015-03-25 北京金山安全软件有限公司 一种电子设备的安全防护方法及装置
CN103617069B (zh) * 2011-09-14 2017-07-04 北京奇虎科技有限公司 恶意程序检测方法和虚拟机
RU2472215C1 (ru) 2011-12-28 2013-01-10 Закрытое акционерное общество "Лаборатория Касперского" Способ выявления неизвестных программ с использованием эмуляции процесса загрузки
US9110595B2 (en) 2012-02-28 2015-08-18 AVG Netherlands B.V. Systems and methods for enhancing performance of software applications
US20130239214A1 (en) * 2012-03-06 2013-09-12 Trusteer Ltd. Method for detecting and removing malware
KR101643072B1 (ko) * 2012-03-30 2016-08-10 인텔 코포레이션 인터넷 이용 가능 컴퓨팅 노드에 대한 불변 안티바이러스 페이로드의 제공
US8918879B1 (en) * 2012-05-14 2014-12-23 Trend Micro Inc. Operating system bootstrap failure detection
US9317687B2 (en) * 2012-05-21 2016-04-19 Mcafee, Inc. Identifying rootkits based on access permissions
CN102867141B (zh) * 2012-09-29 2016-03-30 北京奇虎科技有限公司 对主引导记录恶意程序进行处理的方法及装置
KR101412202B1 (ko) * 2012-12-27 2014-06-27 주식회사 안랩 적응적 악성 진단 및 치료 수행장치 및 적응적 악성 진단 및 치료 수행방법
US20140244191A1 (en) * 2013-02-28 2014-08-28 Research In Motion Limited Current usage estimation for electronic devices
US9058488B2 (en) 2013-08-14 2015-06-16 Bank Of America Corporation Malware detection and computer monitoring methods
US9213831B2 (en) 2013-10-03 2015-12-15 Qualcomm Incorporated Malware detection and prevention by monitoring and modifying a hardware pipeline
US9519775B2 (en) * 2013-10-03 2016-12-13 Qualcomm Incorporated Pre-identifying probable malicious behavior based on configuration pathways
WO2015100158A1 (en) 2013-12-23 2015-07-02 The Trustees Of Columbia University In The City Of New York Implementations to facilitate hardware trust and security
CN104008340B (zh) * 2014-06-09 2017-02-15 北京奇虎科技有限公司 病毒查杀方法及装置
RU2583711C2 (ru) 2014-06-20 2016-05-10 Закрытое акционерное общество "Лаборатория Касперского" Способ отложенного устранения вредоносного кода
RU2586576C1 (ru) * 2014-12-05 2016-06-10 Закрытое акционерное общество "Лаборатория Касперского" Способ выполнения обращения к процедурам загрузочного драйвера
US9420094B1 (en) * 2015-10-01 2016-08-16 Securus Technologies, Inc. Inbound calls to intelligent controlled-environment facility resident media and/or communications devices
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
US10826933B1 (en) * 2016-03-31 2020-11-03 Fireeye, Inc. Technique for verifying exploit/malware at malware detection appliance through correlation with endpoints
CN106126291B (zh) * 2016-06-28 2019-08-13 珠海豹趣科技有限公司 一种删除恶意文件的方法、装置及电子设备
US10645107B2 (en) * 2017-01-23 2020-05-05 Cyphort Inc. System and method for detecting and classifying malware
CN110199290B (zh) * 2017-02-01 2024-03-22 惠普发展公司,有限责任合伙企业 利用环境光传感器和超级输入/输出电路的侵入检测系统
US10496822B2 (en) * 2017-12-21 2019-12-03 Mcafee, Llc Methods and apparatus for securing a mobile device
US10757087B2 (en) * 2018-01-02 2020-08-25 Winbond Electronics Corporation Secure client authentication based on conditional provisioning of code signature
US20230099751A1 (en) * 2020-03-17 2023-03-30 Nec Corporation Processing apparatus, security control method, and non-transitory computerreadable medium
US11797682B2 (en) * 2021-07-14 2023-10-24 Dell Products L.P. Pre-OS resiliency

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09288577A (ja) * 1996-04-24 1997-11-04 Nec Shizuoka Ltd コンピュータウイルス感染監視方法および装置
JPH11506856A (ja) * 1995-07-31 1999-06-15 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン コンピュータ・システムにおけるウィルス保護
JP2001075828A (ja) * 1999-07-27 2001-03-23 Compaq Computer Corp コンピュータ・システム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5440723A (en) * 1993-01-19 1995-08-08 International Business Machines Corporation Automatic immune system for computers and computer networks
US9213836B2 (en) * 2000-05-28 2015-12-15 Barhon Mayer, Batya System and method for comprehensive general electric protection for computers against malicious programs that may steal information and/or cause damages
US7152240B1 (en) * 2000-07-25 2006-12-19 Green Stuart D Method for communication security and apparatus therefor
US7237123B2 (en) * 2000-09-22 2007-06-26 Ecd Systems, Inc. Systems and methods for preventing unauthorized use of digital content
US7231637B1 (en) * 2001-07-26 2007-06-12 Mcafee, Inc. Security and software testing of pre-release anti-virus updates on client and transmitting the results to the server
US20040010703A1 (en) * 2001-08-01 2004-01-15 Networks Associates Technology, Inc. Persistent storage access system and method for a wireless malware scan engine
US6792543B2 (en) * 2001-08-01 2004-09-14 Networks Associates Technology, Inc. Virus scanning on thin client devices using programmable assembly language
US7310818B1 (en) * 2001-10-25 2007-12-18 Mcafee, Inc. System and method for tracking computer viruses
US20030212821A1 (en) * 2002-05-13 2003-11-13 Kiyon, Inc. System and method for routing packets in a wired or wireless network
US20040250105A1 (en) * 2003-04-22 2004-12-09 Ingo Molnar Method and apparatus for creating an execution shield
US7549055B2 (en) * 2003-05-19 2009-06-16 Intel Corporation Pre-boot firmware based virus scanner
US20050015606A1 (en) * 2003-07-17 2005-01-20 Blamires Colin John Malware scanning using a boot with a non-installed operating system and download of malware detection files
US20050229250A1 (en) * 2004-02-26 2005-10-13 Ring Sandra E Methodology, system, computer readable medium, and product providing a security software suite for handling operating system exploitations
US7370188B2 (en) * 2004-05-17 2008-05-06 Intel Corporation Input/output scanning
US20050268112A1 (en) * 2004-05-28 2005-12-01 Microsoft Corporation Managing spyware and unwanted software through auto-start extensibility points
US20060101277A1 (en) * 2004-11-10 2006-05-11 Meenan Patrick A Detecting and remedying unauthorized computer programs
US7421244B2 (en) * 2004-12-13 2008-09-02 Broadcom Corporation Method and system for mobile receiver antenna architecture for handling various digital video broadcast channels
US7673341B2 (en) * 2004-12-15 2010-03-02 Microsoft Corporation System and method of efficiently identifying and removing active malware from a computer
US20070113062A1 (en) * 2005-11-15 2007-05-17 Colin Osburn Bootable computer system circumventing compromised instructions
US20070289019A1 (en) * 2006-04-21 2007-12-13 David Lowrey Methodology, system and computer readable medium for detecting and managing malware threats
US20080016339A1 (en) * 2006-06-29 2008-01-17 Jayant Shukla Application Sandbox to Detect, Remove, and Prevent Malware

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11506856A (ja) * 1995-07-31 1999-06-15 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン コンピュータ・システムにおけるウィルス保護
JPH09288577A (ja) * 1996-04-24 1997-11-04 Nec Shizuoka Ltd コンピュータウイルス感染監視方法および装置
JP2001075828A (ja) * 1999-07-27 2001-03-23 Compaq Computer Corp コンピュータ・システム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200600720008; 村上 豊和: '村上師匠の秘伝 ホントに役立つソフト指南 最終回' YOMIURI PC 第11巻 第1号 , 20060101, 第95-99頁, 読売新聞東京本社 *
JPN6012054709; 村上 豊和: '村上師匠の秘伝 ホントに役立つソフト指南 最終回' YOMIURI PC 第11巻 第1号 , 20060101, 第95-99頁, 読売新聞東京本社 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013502639A (ja) * 2009-08-17 2013-01-24 ファットスカンク・インコーポレーテッド デバイスの監査
US8949989B2 (en) 2009-08-17 2015-02-03 Qualcomm Incorporated Auditing a device
US9202051B2 (en) 2009-08-17 2015-12-01 Qualcommincorporated Auditing a device

Also Published As

Publication number Publication date
US20080005797A1 (en) 2008-01-03
EP2038753A1 (en) 2009-03-25
WO2008005067A1 (en) 2008-01-10
CN101479709A (zh) 2009-07-08
KR20090023644A (ko) 2009-03-05
EP2038753A4 (en) 2010-03-31
CN101479709B (zh) 2011-06-22

Similar Documents

Publication Publication Date Title
JP2009543186A (ja) ブート環境におけるマルウェアの識別
RU2531861C1 (ru) Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса
US8230511B2 (en) Trusted operating environment for malware detection
US8104088B2 (en) Trusted operating environment for malware detection
RU2589862C1 (ru) Способ обнаружения вредоносного кода в оперативной памяти
Wang et al. Detecting stealth software with strider ghostbuster
US8677491B2 (en) Malware detection
US8661541B2 (en) Detecting user-mode rootkits
US7647636B2 (en) Generic RootKit detector
US8495741B1 (en) Remediating malware infections through obfuscation
US20050216762A1 (en) Protecting embedded devices with integrated reset detection
US20110219453A1 (en) Security method and apparatus directed at removeable storage devices
RU2724790C1 (ru) Система и способ формирования журнала при исполнении файла с уязвимостями в виртуальной машине
US9251350B2 (en) Trusted operating environment for malware detection
US8418245B2 (en) Method and system for detecting obfuscatory pestware in a computer memory
RU101233U1 (ru) Система ограничения прав доступа к ресурсам на основе расчета рейтинга опасности
KR101588542B1 (ko) 멀웨어 위험 스캐너
RU2583714C2 (ru) Агент безопасности, функционирующий на уровне встроенного программного обеспечения, с поддержкой безопасности уровня операционной системы
US8201253B1 (en) Performing security functions when a process is created
Ries Inside windows rootkits
EP2958045B1 (en) System and method for treatment of malware using antivirus driver
US9342694B2 (en) Security method and apparatus
RU2592383C1 (ru) Способ формирования антивирусной записи при обнаружении вредоносного кода в оперативной памяти
RU2606883C2 (ru) Система и способ открытия файлов, созданных уязвимыми приложениями
Boe et al. Binary Rootkits

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100222

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121019

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130607