[go: up one dir, main page]

JP2017033561A - ブートフェーズにおける早期ロードを通じた完全性保証 - Google Patents

ブートフェーズにおける早期ロードを通じた完全性保証 Download PDF

Info

Publication number
JP2017033561A
JP2017033561A JP2016147643A JP2016147643A JP2017033561A JP 2017033561 A JP2017033561 A JP 2017033561A JP 2016147643 A JP2016147643 A JP 2016147643A JP 2016147643 A JP2016147643 A JP 2016147643A JP 2017033561 A JP2017033561 A JP 2017033561A
Authority
JP
Japan
Prior art keywords
driver
component
kernel mode
boot
computing device
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
JP2016147643A
Other languages
English (en)
Inventor
イオネスキュ イオン−アレクサンドル
Ionescu Ion-Alexandru
イオネスキュ イオン−アレクサンドル
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.)
Crowdstrike Inc
Original Assignee
Crowdstrike Inc
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 Crowdstrike Inc filed Critical Crowdstrike Inc
Publication of JP2017033561A publication Critical patent/JP2017033561A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】カーネルモードコンポーネントに関連づけられたドライバがブートフェーズ中に他のドライバよりも前に初期化されることを確実にする技術を提供する。【解決手段】ライブラリコンポーネントはブートフェーズ中に処理され、ライブラリコンポーネントの代替であり得るプリブートコンポーネントはプリブートフェーズ中に処理される。これらのコンポーネントは、ドライバが初期化される最初のドライバとなることを確実にすることにより、他のドライバが初期化される前に、そのドライバがカーネルモードコンポーネントを起動できるようにする。ライブラリコンポーネントはまた、別のドライバがカーネルモードコンポーネントドライバよりも前に初期化されるかどうかを判定してもよく、カーネルモードコンポーネントドライバが最初に初期化されることを確実にしてもよく、カーネルモードコンポーネントに警告してもよい。【選択図】図1

Description

本願は、ブートフェーズにおける早期ロードを通じた完全性保証に関する。
日常生活のさらに大きい部分を占めるインターネット利用に伴い、システムリソース、データおよび個人情報を盗んだり、破壊したりするセキュリティエクスプロイトは、増加しつつある問題である。政府および企業は、これらのセキュリティエクスプロイトに関連する侵入および窃盗を防止することにかなりの資源を投じている。セキュリティエクスプロイトは、コンピュータウィルス、ワーム、トロイの木馬、スパイウェア、キーストロークロガー、アドウェアおよびルートキットなどの多数の形態で現れる。これらのエクスプロイトは、スピアフィッシュ電子メール、クリック可能リンク、文書、実行可能ファイルまたはアーカイブなどの、いくつかのメカニズムにおいて、またはいくつかのメカニズムを通じてもたらされる。セキュリティエクスプロイトによって突きつけられる脅威のいくつかは、サイバーテロリズムまたは産業スパイ活動と言われるほど深刻である。
セキュリティソフトウェアを脆弱化する(compromise)ため、またはセキュリティソフトウェアの存在にもかかわらずコンピューティングデバイスの支配を獲得するために、セキュリティエクスプロイトは、コンピューティングデバイスのブートフェーズにおいて早期に起動するようにしばしば設計されている。セキュリティエクスプロイトは、オペレーティングシステムによってブートフェーズ中に用いられるドライバ初期化順序を修正して、そのセキュリティエクスプロイトに関連づけられたドライバをオペレーティングシステムによって初期化されるドライバのリストにおける最初に配置することによって、これを実現し得る。セキュリティエクスプロイトドライバは、初期化されるときにセキュリティエクスプロイトを起動することができる。
また、セキュリティソフトウェアは、オペレーティングシステムカーネルによるドライバのロードを監視することができ、それがセキュリティソフトウェアにドライバがロードされる時点を通知することができる。しかしながら、一部のオペレーティングシステムにおいて、「ブートドライバ」と称される一部のドライバは、ブートローダによってロードされることが可能であり、それらのオペレーティングシステムはセキュリティソフトウェアにブートドライバのロードについて通知することができない。したがって、ブートフェーズ中にブートローダによってロードされるブートドライバを装うセキュリティエクスプロイトは、セキュリティソフトウェアによる検出を免れ得る。
米国特許出願第13/492672号明細書
詳細な説明は、添付図面を参照しながら示される。図において、参照番号の一番左の数字は、その参照番号が最初に現れる図を識別する。異なる図における同一の参照番号の使用は、同様または同一の項目または特徴を示す。
コンピューティングデバイスの例示的なブートフェーズを示す図である。ここにおいて、ドライバが初期化される前に、カーネルモードコンポーネントに関連づけられたライブラリコンポーネントが処理され、カーネルモードコンポーネントに関連づけられたドライバコンポーネントが他のドライバよりも前に初期化されることを確実にする。 コンピューティングデバイスの例示的なプリブートフェーズおよびブートフェーズを示す図である。ここにおいて、カーネルモードコンポーネントに関連づけられたプリブートコンポーネントがプリブートフェーズにおいて処理され、プリブートコンポーネントは、カーネルモードコンポーネントに関連づけられたドライバコンポーネントが他のドライバよりも前に初期化されることを確実にする。 例示的な環境を示す図である。ここにおいて、カーネルモードコンポーネントは、コンピューティングデバイスのランタイム中に、カーネルモードコンポーネントのドライバがブートフェーズにおいて初期化される最初のドライバとなることを確実にするか、プリブート環境を構成するか、またはブートフェーズアクティビティに基づいてセキュリティイベントを生成し、そのイベントをリモートセキュリティサービスに提供する。 カーネルモードコンポーネントとカーネルモードコンポーネントに関連づけられた完全性マネージャとで構成されたコンピューティングデバイスのコンポーネントレベルビューを示す図である。 ドライバの初期化の前に、カーネルモードコンポーネントに関連づけられたライブラリコンポーネントをブートフェーズ中に処理し、ライブラリコンポーネントは、カーネルモードコンポーネントに関連づけられたドライバコンポーネントが他のドライバよりも前に初期化されることを確実にする、例示的プロセスを示す図である。 少なくとも1つのドライバがカーネルモードコンポーネントに関連づけられたドライバコンポーネントよりも前に初期化されると判定し、これに応答して、ドライバコンポーネントが最初に初期化されるように初期化順序を変更し、初期化順序が変更されたことをカーネルモードコンポーネントに警告する、例示的プロセスを示す図である。 ブートフェーズ中に、カーネルモードコンポーネントに関連づけられたコンポーネントにより、オペレーティングシステムによるドライバの初期化の前にオペレーティングシステムによって削除されるべき情報をリトリーブし、この情報をカーネルモードコンポーネントに提供する、例示的プロセスを示す図である。 カーネルモードコンポーネントに関連づけられたプリブートコンポーネントをプリブートフェーズ中に処理して、プリブートコンポーネントは、カーネルモードコンポーネントに関連づけられたドライバコンポーネントが他のドライバよりも前に初期化されることを確実にする、例示的プロセスを示す図である。
本開示は、部分的に、ライブラリコンポーネントおよびプリブートコンポーネントを利用して、カーネルモードコンポーネントに関連づけられたドライバがブートフェーズ中に他のドライバよりも前に初期化されることを確実にする技術について説明する。ライブラリコンポーネントはブートフェーズ中に処理され、ライブラリコンポーネントの代替であり得るプリブートコンポーネントはプリブートフェーズ中に処理される。これらのコンポーネントは、そのドライバが初期化される最初のドライバとなることを確実にすることにより、他のドライバが初期化される前に、そのドライバがカーネルモードコンポーネントを起動できるようにする。
様々な実施形態において、ライブラリコンポーネントは、カーネルモードコンポーネントに関連づけられた完全性マネージャのドライバの依存ダイナミックリンクライブラリ(DLL)とすることができる。完全性マネージャは、ブートフェーズ中およびランタイムの両方において、カーネルモードコンポーネントの完全性を保証することを担うコンポーネントとすることができる。ライブラリコンポーネントは、オペレーティングシステムによっていかなるドライバが初期化される前にも、他のドライバの他の依存DLLと共に処理される。ライブラリコンポーネントおよび他の依存DLLは、ASCIIまたはUnicode文字で構成され得るそれらの名称のアルファベット順で処理されてもよい。ライブラリコンポーネントは、処理されるときに、カーネルモードコンポーネントに関連づけられた、完全性マネージャドライバなどのドライバコンポーネントがオペレーティングシステムによって初期化される最初のドライバとなることを確実にする。これは、オペレーティングシステムによって利用される初期化順序をドライバについてチェックすることと、ドライバコンポーネントが初期化順序において最初に配置されていない場合、ドライバコンポーネントが最初に処理されることを確実にするために、ドライバコンポーネントをその初期化順序における最初に配置するように初期化順序を更新することとを伴ってもよい。いくつかの実施形態において、ドライバコンポーネントが最初に初期化されることを確実にすることに加え、ライブラリコンポーネントは、ドライバコンポーネントに、他のDLLが処理される前に初期化されるようにさせる。ライブラリコンポーネントはまた、処理されるときに、完全性マネージャまたはカーネルモードコンポーネントの片方または両方の実行可能ファイルを復号してもよい。
オペレーティングシステムは次いで、ドライバコンポーネントから始まる初期化順序に指定された順序で、ドライバを初期化してもよい。完全性マネージャドライバコンポーネント(本明細書では「ドライバコンポーネント」とも称される)は、初期化されるときに、完全性マネージャを起動してもよく、この完全性マネージャは、初期化順序における次のドライバがカーネルモードコンポーネントドライバとなることを確実にしてもよい。オペレーティングシステムは次いで、カーネルモードコンポーネントドライバを初期化して、カーネルモードコンポーネントドライバにカーネルモードコンポーネントを起動させてもよい。
プリブートコンポーネントが使用されるいくつかの実施形態において、基本入出力システム(BIOS)などのプリブート環境は、プリブート環境がプリブートコンポーネントなどのコンポーネントを提供されることを可能にする、インターフェースを有していてもよい。そのインターフェースが次に1または複数のセキュリティ手段を利用してもよい。
上記に説明されたように、完全性マネージャが完全性マネージャドライバによって起動されるときに、完全性マネージャは、カーネルモードコンポーネントドライバが初期化順序における次のドライバであるかどうかを判定してもよい。カーネルモードコンポーネントドライバが次のドライバではない場合、完全性マネージャは、カーネルモードコンポーネントドライバを完全性マネージャドライバの後の最初のドライバとして配置するように初期化順序を変更し、カーネルモードコンポーネントが起動されたら、カーネルモードコンポーネントに、カーネルモードコンポーネントドライバが最初ではなかったこと、および完全性マネージャによって初期化順序における最初に配置されなければならなかったことを警告する。カーネルモードコンポーネントは、この警告を受信すると、構成を更新してもよいし、追加の監視を実行してもよいし、回復措置(healing action)を講じてもよいし、またはリモートセキュリティサービスに通知してもよい。前回のランタイム中に、カーネルモードコンポーネントは、それのドライバを初期化順序における最初に配置しておいてもよく、他のアプリケーションまたはプロセスからのそれらのドライバが最初に配置されるよう求める要求を遮断および変更しておいてもよい。カーネルモードコンポーネントドライバが最初でなかった場合は、セキュリティエクスプロイトなどの悪意のあるアクティビティが原因である可能性がある。
様々な実施形態において、ライブラリコンポーネントはまた、ドライバの初期化の前にオペレーティングシステムによって削除されるべき情報をリトリーブしてもよい。このような情報はブート情報とすることができる。例えば、このブート情報はブートローダに関連づけられたブート情報であってよく、ブートローダのローダパラメータブロックからリトリーブされてもよい。情報の例は、ドライバのリスト、ドライバの初期化順序、BIOS情報、メモリレイアウト、trusted platform module(TPM)情報または乱数発生器シードを含み得る。これに代えてまたはこれに加えて、この情報は、ブートドライバのリストおよびブートドライバのコピーを含み得る。ライブラリコンポーネントは、リトリーブされた情報をライブラリコンポーネントのバッファに格納してもよい。完全性マネージャが起動されたら、それはこの情報をライブラリコンポーネントからリトリーブしてもよく、カーネルモードコンポーネントが起動されたら、この情報をカーネルモードコンポーネントに提供してもよい。
例示的ブートフェーズ
図1はコンピューティングデバイスの例示的なブートフェーズを示す。ここにおいて、ドライバが初期化される前に、カーネルモードコンポーネントに関連づけられたライブラリコンポーネントが処理され、カーネルモードコンポーネントに関連づけられたドライバコンポーネントが他のドライバよりも前に初期化されることを確実にする。図1は、ハードウェアコンポーネントおよびソフトウェアコンポーネントの両方ならびにプロセスまたは動作を示す。プロセスまたは動作は、図1にそれらの発生順に番号が付けられて示されている。
図示されたように、コンピューティングデバイス102は、電源の切入(power cycle)またはリブートの後にブートフェーズ104を開始し得る。完全性マネージャの完全性マネージャドライバ106およびカーネルモードコンポーネントのカーネルモードコンポーネントドライバ108は両方ともブートフェーズ104の早期に初期化されて、コンピューティングデバイス102のオペレーティングシステムによって他のドライバ110が初期化される前に、完全性マネージャおよびカーネルモードコンポーネントを起動されるようにさせる。オペレーティングシステムは、初期化順序112によって指定された順序でドライバを初期化し得る。完全性マネージャドライバ106が初期化順序112において最初となることを確実にするために、完全性マネージャドライバ106は、オペレーティングシステムによっていかなるドライバが初期化されるよりも前に、他のドライバの他の依存DLL116と共に処理される、依存DLLなどのライブラリコンポーネント114に関連づけられてもよい。
示されたように、ブートフェーズ104の第1の部分の間に、DLLが処理されてもよい118。この処理すること118は、ライブラリコンポーネント114を処理することを含み、それが次に完全性マネージャドライバ106が初期化順序112において最初となることを確実にし120、オペレーティングシステムによって削除されるべき情報をリトリーブする122。この情報は次いで、ライブラリコンポーネント114のバッファ124に格納される。次に、ブートフェーズ104の第2の部分の間に、オペレーティングシステムは、ライブラリコンポーネント114によってリトリーブされた122ブート情報を削除する126。その後、ブートフェーズ104の第3の部分の間に、オペレーティングシステムは初期化順序112に従ってドライバを初期化する128。
様々な実施形態において、コンピューティングデバイス102は、サーバもしくはサーバファーム、分散された複数のサーバファーム、メインフレーム、ワークステーション、パーソナルコンピュータ(PC)、ラップトップコンピュータ、タブレットコンピュータ、パーソナルデジタルアシスタント(PDA)、携帯電話、メディアセンタ、組込みシステムまたは他の任意の種類のデバイスとすることができる。コンピューティングデバイス102は、複数のコンピューティングデバイス上に実施されるとき、図1に示されたコンポーネントおよびプロセスを複数のコンピューティングデバイスに分散させてもよい。いくつかの実施において、コンピューティングデバイス102は、1または複数のコンピューティングデバイス上に実施された1または複数の仮想マシンを表す。コンピューティングデバイス102として機能することが可能な例示的コンピューティングデバイスが図4に示され、その図を参照しながら以下に説明される。
ブートフェーズ104は、電源の切入またはリブートに続く、コンピューティングデバイス102のブートプロセスの一部とすることができる。ブートフェーズ104はプリブートフェーズに続いてもよく、いくつかの動作を伴ってもよく、ここにおいて、コンピューティングデバイス102のオペレーティングシステムのブートローダおよびカーネルが、ドライバなどのコンピューティングデバイスコンポーネントをロードおよび初期化する。ブートフェーズ104の第1の部分において、オペレーティングシステムは、ライブラリコンポーネント114および他の依存DLL116などの、ドライバの依存DLLを処理してもよい118。この処理すること118は、ドライバおよびそれらのDLLをコンピューティングデバイス102のメモリにロードすることの後に続いてもよい。依存DLLを処理すること118の後、オペレーティングシステムはブート情報を削除する126。オペレーティングシステムは次いでドライバを初期化すること128へ進む。ブートフェーズ104はまた、図示および説明されたものに加えて、他の段階または動作を伴ってもよい。ブートフェーズ104に続いて、コンピューティングデバイス102はランタイムフェーズに入ってもよく、ここにおいて、オペレーティングシステムならびに様々なコンポーネントおよびアプリケーションは既に起動しており、アクティブプロセスとして実行中である。
上記に説明されたように、ライブラリコンポーネント114は完全性マネージャドライバ106の依存DLLとすることができる。依存DLL114および依存DLL116はそれら自身が実行可能ファイルであり、オペレーティングシステムは、ドライバを初期化する前にドライバの依存DLLを処理して、依存DLLを呼び出すドライバがクラッシュするのを防いでもよい。ドライバが初期化順序112に従って初期化される一方で、それらの関連づけられた依存DLLは別の順序で処理されてもよい。例えば、依存DLLは、ASCII文字列であり得る、それらの関連づけられた名称のアルファベット順で処理されてもよい。このような実施形態において、ライブラリコンポーネント114は、それに他の依存DLL116よりも前に処理されるようにさせる名称を有してもよい。
様々な実施形態において、ライブラリコンポーネント114が処理される118とき、それは、完全性マネージャドライバ106が初期化順序112において最初となることを確実にすること120、ブート情報などの削除されるべき情報をリトリーブすること122、およびそのブート情報をライブラリコンポーネント114のバッファに格納することを含む、いくつかの動作を実行してもよい。完全性マネージャドライバ106が初期化順序112において最初となることを確実にする120ために、ライブラリコンポーネント114は、完全性マネージャドライバ106を最初に配置するように初期化順序112を変更してもよい。いくつかの実施形態において、初期化順序112を変更することに加えてまたは代えて、ライブラリコンポーネント114がオペレーティングシステムに完全性マネージャドライバ106を初期化させて、完全性マネージャドライバ106が完全性マネージャを起動してもよく、それが次に、カーネルモードコンポーネントを他の依存DLLが処理される前にすっかり起動してもよい。
この情報をリトリーブすること122は、ブートローダに関連づけられてブートローダのローダパラメータブロックからリトリーブされたブート情報をリトリーブすること122を含んでもよい。ライブラリコンポーネント114によってリトリーブされる122情報の例は、ドライバのリスト、ドライバの初期化順序、BIOS情報、メモリレイアウト、TPM情報または乱数発生器シードを含み得る。これに代えてまたはこれに加えて、この情報は、ブートドライバのリストおよびブートドライバのコピーを含み得る。
依存DLLを処理すること118およびブート情報を削除すること126の後に、オペレーティングシステムは初期化順序112に基づきドライバを初期化する。初期化順序112はいかなる種類の構造、ファイルであってもよく、またはデータベースでさえあってよく、ドライバは、オペレーティングシステムの実行可能コンポーネントまたはオペレーティングシステムもしくはアプリケーションのコンポーネントをアクティブプロセスとして起動しうるコンピューティングデバイスアプリケーションの実行可能コンポーネントであってもよい。ライブラリコンポーネント114のアクティビティゆえに、完全性マネージャドライバ106は初期化順序112における最初のドライバとなることができ、したがって他のドライバよりも前に初期化され得る。
オペレーティングシステムが完全性マネージャドライバ106を初期化するとき、完全性マネージャドライバ106は他のドライバが初期化される前に完全性マネージャを起動する。上記に説明されたように、完全性マネージャは、ブートフェーズ104およびランタイムの両方において、カーネルモードコンポーネントの完全性を保証することを担うコンポーネントとすることができる。完全性マネージャは単一のコンポーネントであっても、または同一のタイトル/ジョブ/挙動を有するコンポーネントの組合せであってもよい。完全性マネージャは次いで、カーネルモードコンポーネントドライバ108が初期化順序において完全性マネージャドライバ106の後の次のドライバであるかどうかを判定してもよい。カーネルモードコンポーネントドライバ108が次のドライバでない場合、完全性マネージャは、カーネルモードコンポーネントドライバ108を次のドライバとして配置するように初期化順序112を変更する。また、完全性マネージャが初期化順序112を変更する必要がある場合、完全性マネージャは警告を生成し、カーネルモードコンポーネントが起動したら、その警告をカーネルモードコンポーネントに提供する。図3に関して本明細書で説明されるカーネルモードコンポーネントのランタイムアクティビティゆえに、カーネルモードコンポーネントドライバ108は、他のドライバ110よりも前である、次となるべきであり、完全性マネージャは初期化順序112を変更する必要がないはずである。それが初期化順序を変更する必要がある場合、これは悪意のあるアクティビティを示唆し得る。さらに、起動後に、完全性マネージャは、ライブラリコンポーネント114のバッファ124に格納された情報をリトリーブしてもよい。
様々な実施において、完全性マネージャドライバ106は複数のサブコンポーネントを含んでもよい。例えば、完全性マネージャドライバ106は、コンピューティングデバイス102のリブートを必要とすることなくアンロードされ、更新され得るアンロード可能部分と非アンロード可能部分(non-unloadable part)とを含んでいてもよい。完全性マネージャドライバ106の非アンロード可能部分に対する更新は、コンピューティングデバイスのリブートを必要とし得る。また、完全性マネージャドライバ106は、アンロード可能部分および非アンロード可能部分よりも前に、最初にロードされる第3の部分を含んでいてもよい。この第3の部分は、上記に説明されたように、ライブラリコンポーネント114によって初期化順序112における最初に配置されるコンポーネントとすることができる。第3の部分は次いで、完全性マネージャドライバ106のアンロード可能部分および非アンロード可能部分が他のドライバよりも前に初期化されることを確実にしてもよい。
いくつかの実施形態において、オペレーティングシステムは次いで、カーネルモードコンポーネントドライバ108を初期化する。カーネルモードコンポーネントドライバ108が初期化されるとき、カーネルモードコンポーネントドライバ108は、他のドライバ110が初期化される前にカーネルモードコンポーネントを起動する。カーネルモードコンポーネントは、コンピューティングデバイス102のアクティビティを監視し、アクティビティがセキュリティエクスプロイトのインストールまたは動作を示唆しているかどうかを判定してもよく、この判定に基づき、いくつかの措置を講じる。カーネルモードコンポーネントは、完全性マネージャから通信チャネルを介して警告および情報を受信し、アクティブなプロセスとして動作してもよい。
様々な実施形態において、完全性マネージャドライバ106およびカーネルモードコンポーネントドライバ108が初期化され、完全性マネージャおよびカーネルモードコンポーネントが起動された後、オペレーティングシステムは、初期化順序112に基づき他のドライバ110を初期化する。
例示的なプリブートフェーズおよびブートフェーズ
図2はコンピューティングデバイスの例示的なプリブートフェーズおよびブートフェーズを示す。ここにおいて、カーネルモードコンポーネントに関連づけられたプリブートコンポーネントがプリブートフェーズにおいて処理され、プリブートコンポーネントは、カーネルモードコンポーネントに関連づけられたドライバコンポーネントが他のドライバよりも前に初期化されることを確実にする。図2は、ハードウェアコンポーネントおよびソフトウェアコンポーネントの両方ならびにプロセスまたは動作を示す。プロセスまたは動作は、図2にそれらの発生順に番号が付けられて示されている。
図示されたように、コンピューティングデバイス202は、電源の切入またはリブートの後にブートフェーズ204を開始し得る。完全性マネージャの完全性マネージャドライバ206およびカーネルモードコンポーネントのカーネルモードコンポーネントドライバ208は両方ともブートフェーズ204の早期に初期化されて、コンピューティングデバイス202のオペレーティングシステムによって他のドライバ210が初期化される前に、完全性マネージャおよびカーネルモードコンポーネントが起動されるようにさせる。オペレーティングシステムは、初期化順序212に指定された順序でドライバを初期化し得る。完全性マネージャドライバ206が初期化順序212において最初となることを確実にするために、完全性マネージャドライバ206は、プリブート環境216によって実行されるプリブートコンポーネント214に関連づけられてもよい。
示されたように、プリブートフェーズ218の間に、プリブート環境216がプリブートコンポーネント214を処理してもよく220、プリブートコンポーネント214は、処理される220ときに、完全性マネージャドライバ206が初期化順序212における最初のドライバとなることを確実にする222。次に、ブートフェーズ204の間に、オペレーティングシステムは初期化順序212に従ってドライバを初期化する224。
様々な実施形態において、コンピューティングデバイス202は、サーバもしくはサーバファーム、分散された複数のサーバファーム、メインフレーム、ワークステーション、パーソナルコンピュータ(PC)、ラップトップコンピュータ、タブレットコンピュータ、パーソナルデジタルアシスタント(PDA)、携帯電話、メディアセンタ、組込みシステムまたは他の任意の種類のデバイスとすることができる。コンピューティングデバイス202は、複数のコンピューティングデバイス上に実施されるとき、図2に示されたコンポーネントおよびプロセスを複数のコンピューティングデバイスに分散させてもよい。いくつかの実施において、コンピューティングデバイス202は、1または複数のコンピューティングデバイス上に実施された1または複数の仮想マシンを表す。コンピューティングデバイス202として機能することが可能な例示的コンピューティングデバイスが図4に示され、その図を参照しながら以下に説明される。
プリブートフェーズ218およびブートフェーズ204は、電源の切入またはリブートに続く、コンピューティングデバイス202のブートプロセスの一部とすることができる。プリブートフェーズ218は、BIOS、拡張可能なファームウェアインターフェース(EFI)または他の種類のプリブート環境216であってよいプリブート環境216のいくつかの動作を伴ってもよい。プリブート環境216は、コンピューティングデバイス202のハードウェアコンポーネントを初期化およびテストしてもよく、コンピューティングデバイス202のオペレーティングシステムを選択およびロードしてもよい。インターフェースを通じて、プリブート環境216はまた、プリブートフェーズ218の間に処理される220、プリブートコンポーネント214などの他のコンポーネントでプログラムされてもよい。いくつかの実施形態において、このインターフェースは1または複数のセキュリティ手段を利用してもよい。例えば、このインターフェースは、コンポーネントに提供された署名または鍵を要求してもよい。署名または鍵が提供されていない場合、プリブート環境216はプリブートコンポーネント214を処理しないことになる。
様々な実施形態において、プリブートコンポーネント214が処理される220とき、それは、完全性マネージャドライバ206が初期化順序212において最初となることを確実にしてもよい222。完全性マネージャドライバ206が初期化順序212において最初となることを確実にする222ために、プリブートコンポーネント214は、完全性マネージャドライバ206を最初に配置するように初期化順序212を変更してもよい。
ブートフェーズ204は、プリブートフェーズ218の後に続いてもよく、いくつかの動作を伴ってもよく、そこにおいて、コンピューティングデバイス202のオペレーティングシステムのブートローダおよびカーネルがドライバなどのコンピューティングデバイスコンポーネントをロードおよび初期化する。図1に関して上記に説明されたように、ブートフェーズ204はドライバの依存DLLを最初に処理してもよい。この処理することは、ドライバおよびそれらのDLLをコンピューティングデバイス202のメモリにロードすることの後に続いてもよい。依存DLLを処理することの後に、オペレーティングシステムはブート情報を削除する。オペレーティングシステムは次いでドライバを初期化すること224へ進む。ブートフェーズ204はまた、図示および説明されたものに加えて、他の段階または動作を伴ってもよい。ブートフェーズ204に続いて、コンピューティングデバイス202はランタイムフェーズに入ってもよく、ここにおいて、オペレーティングシステムならびに様々なコンポーネントおよびアプリケーションは既に起動しており、アクティブプロセスとして実行中である。
完全性マネージャドライバ206は、完全性マネージャドライバ206が依存DLLとしてのライブラリコンポーネント114を持たなくともよいことを除き、上記に説明された完全性マネージャドライバ106と同様であり得る。カーネルモードコンポーネントドライバ208、他のドライバ210および初期化順序212は、それぞれカーネルモードコンポーネントドライバ108、他のドライバ110および初期化順序112と同一または同様であり得る。また、オペレーティングシステムによるドライバの初期化すること224は、オペレーティングシステムによるドライバの初期化すること128と同一または同様であり得る。
例示的環境
図3は例示的な環境を示す。ここにおいて、カーネルモードコンポーネントは、コンピューティングデバイスのランタイム中に、カーネルモードコンポーネントのドライバがブートフェーズにおいて初期化される最初のドライバとなることを確実にするか、プリブート環境を構成するか、またはブートフェーズアクティビティに基づいてセキュリティイベントを生成し、そのイベントをリモートセキュリティサービスに提供する。図3に示すように、コンピューティングデバイス302は、ネットワーク306を介してリモートセキュリティサービス304に接続されている。リモートセキュリティサービス304は、コンピューティングデバイス302上でアクティブであるカーネルモードコンポーネント308および完全性マネージャ310を通じて、コンピューティングデバイス302にセキュリティサービスを提供する。カーネルモードコンポーネント308および完全性マネージャ310は通信チャネル312を通じて互いに通信を行って、完全性マネージャ310は、カーネルモードコンポーネント308の完全性を確実にし、カーネルモードコンポーネント308の完全性が脆弱化された際のリモートセキュリティサービス304との通信のために、通信モジュール314を含む。さらに示されるように、コンピューティングデバイス302は、ブートフェーズにおいて初期化順序318を利用する、ならびにカーネルモードコンポーネント308およびアプリケーションまたはプロセス320が初期化順序318を更新できるようにする、オペレーティングシステム316を含んでもよい。また、いくつかの実施形態において、コンピューティングデバイス302はプリブート環境322を有してもよく、それがオペレーティングシステム316のプリブート環境インターフェース324によって更新されてもよい。
様々な実施形態において、コンピューティングデバイス302は、サーバもしくはサーバファーム、分散された複数のサーバファーム、メインフレーム、ワークステーション、パーソナルコンピュータ(PC)、ラップトップコンピュータ、タブレットコンピュータ、パーソナルデジタルアシスタント(PDA)、携帯電話、メディアセンタ、組込みシステムまたは他の任意の種類のデバイスとすることができる。コンピューティングデバイス302は、複数のコンピューティングデバイス上に実施されるとき、図3に示されたコンポーネントおよびプロセスを複数のコンピューティングデバイスに分散させてもよい。いくつかの実施において、コンピューティングデバイス302は、1または複数のコンピューティングデバイス上に実施された1または複数の仮想マシンを表す。コンピューティングデバイス302として機能することが可能な例示的コンピューティングデバイスが図4に示され、その図を参照しながら以下に説明される。
さらなる実施形態において、リモートセキュリティサービス304を実施するデバイスはそれぞれ、サーバもしくはサーバファーム、分散された複数のサーバファーム、メインフレーム、ワークステーション、パーソナルコンピュータ(PC)、ラップトップコンピュータ、タブレットコンピュータ、パーソナルデジタルアシスタント(PDA)、携帯電話、メディアセンタ、組込みシステムまたは他の任意の種類のデバイスとしてもよいし、またはそれらを含んでもよい。一つの実施において、リモートセキュリティサービス304を実施するデバイスは、通信して動作する、ノードのクラウドコンピューティングネットワークなどの複数のコンピューティングデバイスを表す。いくつかの実施において、リモートセキュリティサービス304を実施する1または複数のデバイスは、1または複数のコンピューティングデバイス上に実施された1または複数の仮想マシンを表す。
いくつかの実施形態において、リモートセキュリティサービス304は、個別のユーザおよびクライアントエンティティに対する、カーネルモードコンポーネント308および完全性マネージャ310の保守および構成、脅威モデリングならびに/または修復(remediation)などの情報セキュリティサービスのプロバイダとすることができる。リモートセキュリティサービス304は、カーネルモードコンポーネント308から、または完全性マネージャ310からそれの通信モジュール314を介して、警告およびセキュリティイベントを受信してもよい。これに応答して、リモートセキュリティサービス304は、カーネルモードコンポーネント308もしくは完全性マネージャ310の一方もしくは両方の構成を更新してもよく、カーネルモードコンポーネント308もしくは完全性マネージャ310に命令を提供してもよく、または回復措置もしくは修復措置を講じてもよい。
様々な実施形態において、ネットワーク306は、有線ネットワーク、無線ネットワークならびに有線ネットワークおよび無線ネットワークの組合せなどの、1または複数のいかなるネットワークを含んでもよい。さらに、ネットワーク306は、複数の異なるタイプの公衆ネットワークまたはプライベートネットワーク(例えば、ケーブルネットワーク、インターネット、無線ネットワークなど)のいずれか1つまたは組合せを含んでもよい。いくつかの例において、コンピューティングデバイスは、セキュアプロトコル(例えば、https)および/または伝送制御プロトコル/インターネットプロトコル(TCP/IP)などの他の任意のプロトコルもしくはプロトコルのセットを使用して、ネットワーク306を介して通信を行う。
完全性マネージャ310は、上記に説明されたように、コンピューティングデバイス302のブートフェーズ中に、カーネルモードコンポーネント308の完全性を確実にしてもよく、ブートフェーズ中にリトリーブされた情報または生成された警告のランタイム中のルート(conduit)として機能してもよい。例えば、完全性マネージャ310は、完全性マネージャ310が初期化順序318を変更するときに警告を生成してもよく、その警告を通信チャネル312を介してカーネルモードコンポーネント308に提供してもよい。代替方法として、例えば、カーネルモードコンポーネント308が脆弱化されている可能性があることを示唆する1または複数の条件が満たされていると、完全性マネージャ310が判定した場合、完全性マネージャ310は、この情報または警告を通信モジュール314を介してリモートセキュリティサービス304に提供してもよい。通信モジュール314は、コンピューティングデバイス302の、有線または無線通信送受信機(例えば、WiFi送受信機)などの1または複数の送受信機とインターフェースをとって、この警告または情報を通信してもよい。
上記に説明されたように、カーネルモードコンポーネント308は、コンピューティングデバイス302上のアクティビティを監視および記録してもよく、このアクティビティを分析してもよく、警告およびイベントを生成して、それらの警告およびイベントをリモートセキュリティサービス304に提供してもよい。カーネルモードコンポーネント308は、カーネルモードコンポーネント308の再構成を受信し、ライブ状態で(while live)適用して、リモートセキュリティサービス304によってインストールされ、構成可能とされてもよい。例示的なカーネルモードコンポーネント308は、2012年6月8日出願の特許文献1、名称「Kernel−Level Security Agent」にさらに詳しく説明されている。
様々な実施形態において、通信チャネル312を介して完全性マネージャ310から受信された情報は、オペレーティングシステム316のブートローダのローダパラメータブロックからのブート情報などのブート情報を含んでもよい。このようなブート情報は、ブートドライバのリスト、ブートドライバのコピーおよびブートドライバ情報(メモリにおけるサイズ、署名など)を含んでもよい。完全性マネージャ310からブートドライバのリスト、ブートドライバのコピーおよび/またはブートドライバ情報を受信することにより、カーネルモードコンポーネント308は、コンピューティングデバイス302上のメモリにロードされたドライバの全体像を有することができる。オペレーティングシステム316は、メモリにロードされた他のドライバについてカーネルモードコンポーネント308に通知してもよい。ただし、ブートドライバは、オペレーティングシステムカーネル初期化よりも前に、ブートローダによってメモリにロードされており、したがって、オペレーティングシステム316はブートドライバについてカーネルモードコンポーネント308に通知することはできない。受信された情報は、カーネルモードコンポーネント308によって(例えば、データストアのモデルもしくは他の種類のデータストアに)格納されても、分析で利用されても、またはカーネルモードコンポーネント308によってリモートセキュリティサービス304に提供されてもよい。
同様に、完全性マネージャ310から受信された警告−またはそれらの警告に基づきカーネルモードコンポーネント308によって生成されたイベント−もまた、カーネルモードコンポーネント308によって格納されても、分析で利用されても、またはカーネルモードコンポーネント308によってリモートセキュリティサービス304に提供されてもよい。警告はまた、カーネルモードコンポーネント308が1または複数の回復措置または修復措置を実行するという結果をもたらしてもよい。
いくつかの実施形態において、カーネルモードコンポーネント308はまた、それ自身を初期化順序318における最初に配置してもよく、初期化順序318を更新することを求める((例えば、悪意のあるカーネルドライバの場合)OSカーネルそれ自身からの要求を含む)他のアプリケーションまたはプロセス320からの要求を遮断することにより、それ自身を初期化順序318における最初として維持してもよい。オペレーティングシステム316は、カーネルモードコンポーネント308および他のアプリケーションまたはプロセス320が、例えば、それらのドライバを初期化順序318において最初に配置させるよう要求することにより、初期化順序318にアクセスし、更新を行えるようにしてもよい。カーネルモードコンポーネント308は、それのドライバを初期化順序318において最初に配置して、厳密にこれを行ってもよい。それ以降、カーネルモードコンポーネント308は、他のアプリケーションまたはプロセス320からのそれらのドライバを最初に配置させることを求める要求を遮断してよい。カーネルモードコンポーネント308は、遮断されたそれらの要求を更新して、これらの要求が初期化順序318においてドライバをカーネルモードコンポーネントドライバの後に配置させることを求めるようにしてもよい。
また、さらなる実施形態において、コンピューティングデバイス302は、本明細書でより詳細に説明されたプリブート環境216と同一または同様であり得るプリブート環境322を有していてもよい。プリブート環境322を更新するために、オペレーティングシステム316はプリブート環境インターフェース324を提供してもよい。プリブート環境インターフェース324は、プリブート環境322のためのコンポーネントを受信してもよく、それらのコンポーネントをプリブート環境322に提供してもよい。いくつかの実施形態において、プリブート環境インターフェース324は、例えば、いかなるコンポーネントにも鍵または署名が提供されることを要求して、1または複数のセキュリティメカニズムを実施してもよい。
例示的システム
図4は、カーネルモードコンポーネントとカーネルモードコンポーネントに関連づけられた完全性マネージャとで構成されたコンピューティングデバイスのコンポーネントレベルビューを示す。図示されたように、コンピューティングデバイス400は、ブートローダ406およびカーネル408を含むオペレーティングシステム404、カーネルモードコンポーネント410、完全性マネージャ412、アプリケーションおよびデータ414ならびにドライバ416を格納しているメモリ402を含む。また、コンピューティングデバイス400は、プロセッサ418、取外し可能記憶装置420および取外し不能記憶装置422、入力デバイス424、出力デバイス426ならびに他のコンピューティングデバイス430と通信を行うための通信接続428を含む。
様々な実施形態において、メモリ402は揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリなど)または両者の何らかの組合せである。オペレーティングシステム404は、それのブートローダ406およびカーネル408を有し、いかなる種類のオペレーティングシステムであってもよい。オペレーティングシステム404、ブートローダ406およびカーネル408は、オペレーティングシステム、ブートローダまたはカーネルによって実行されるような、上記に説明された動作のいずれかまたは全部を実行するように構成されている。カーネルモードコンポーネント410および完全性マネージャ412は、それらの各々のドライバと共に、図1〜図3に関して上記に詳細に説明されている。アプリケーションおよびデータ414ならびにドライバ416は、図1〜図3に関して上記に詳細に説明されたアプリケーション、データまたはドライバなどのいかなる種類のアプリケーションおよびデータ、またはドライバであってもよい。
いくつかの実施形態において、プロセッサ418は、中央処理装置(CPU)、グラフィック処理装置(GPU)もしくはCPUとGPUとの両方、または当技術分野で周知の他の処理装置もしくはコンポーネントである。
コンピューティングデバイス400はまた、例えば、磁気ディスク、光ディスクまたはテープなどの追加のデータ記憶デバイス(取外し可能および/または取外し不能)を含む。このような追加の記憶装置は、図4に取外し可能記憶装置420および取外し不能記憶装置422によって示されている。有形のコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報の格納のための任意の方法または技術において実施された、揮発性および不揮発性、取外し可能および取外し不能媒体を含み得る。メモリ402、取外し可能記憶装置420および取外し不能記憶装置422はすべて、コンピュータ可読記憶媒体の例である。コンピュータ可読記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または所望の情報を格納するために使用され得る、およびコンピューティングデバイス400によってアクセスされ得る他のいかなる媒体も含むが、これらに限定されない。このような有形のいかなるコンピュータ可読媒体もコンピューティングデバイス400の一部となり得る。
コンピューティングデバイス400はまた、キーボード、マウス、タッチ感応ディスプレイ(touch-sensitive display)、音声入力デバイスなどの入力デバイス424と、ディスプレイ、スピーカ、プリンタなどの出力デバイス426とを有する。これらのデバイスは当技術分野においてよく知られているため、ここで詳しく検討される必要はない。
コンピューティングデバイス400はまた、コンピューティングデバイス400が、リモートセキュリティサービス304のデバイスなどの他のコンピューティングデバイス430と通信を行えるようにする通信接続428を含む。
例示的プロセス
図5〜図8は、例示的プロセス500、600、700および800を示す。これらのプロセスは論理フローグラフとして図示されており、その各動作は、ハードウェア、ソフトウェアまたはそれらの組合せにおいて実施され得る一連の動作を表す。ソフトウェアの文脈において、これらの動作は、1または複数のプロセッサによって実行されたとき列挙された動作を実行する、1または複数のコンピュータ可読記憶媒体上に格納されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実行するか、または特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が説明されている順序は限定として解釈されることを意図されておらず、説明された任意の数の動作は、これらのプロセスを実施するために任意の順序でおよび/または並行して組み合わされ得る。
図5は、ドライバの初期化の前に、カーネルモードコンポーネントに関連づけられたライブラリコンポーネントをブートフェーズ中に処理し、ライブラリコンポーネントは、カーネルモードコンポーネントに関連づけられたドライバコンポーネントが他のドライバよりも前に初期化されることを確実にする、例示的プロセスを示す。プロセス500は、502においてコンピューティングデバイスのブートフェーズを開始することを含み、ここにおいて、オペレーティングシステムのブートローダおよびカーネルは、電源の切入または他の種類のリブートに続いてロードタスクおよび初期化タスクを実行する。504〜510に示された動作はブートフェーズ中に発生する。
504において、コンピューティングデバイスは、カーネルモードコンポーネントに関連づけられたライブラリコンポーネントを処理する。このライブラリコンポーネントはドライバコンポーネントの依存DLLであってもよく、ドライバの他の依存DLLと共に処理されてもよい。いくつかの実施形態において、ライブラリコンポーネントおよび他のDLLが処理される順序は、DLLの名称(例えば、ASCII文字列)に基づいていてもよい。504aにおいて、ライブラリコンポーネントは、処理されるときに、ドライバコンポーネントが他のドライバよりも前に初期化されることを確実にする。この確実にすることは、カーネルモードコンポーネントに関連づけられた完全性マネージャのドライバをドライバの初期化順序において最初に配置することを伴ってもよい。504bにおいて、ライブラリコンポーネントはまた、完全性マネージャおよびカーネルモードコンポーネントの実行可能ファイルを復号して、それらがそれらの関連づけられたドライバによって起動され得るようにする。
506において、コンピューティングデバイスは、初期化順序における最初のドライバを初期化する。ライブラリコンポーネントが完全性マネージャのドライバを最初に配置したために、完全性マネージャドライバは、コンピューティングデバイスのオペレーティングシステムによって他のドライバよりも前に初期化される。506aにおいて、完全性マネージャドライバは完全性マネージャを起動し、506bにおいて、完全性マネージャは、カーネルモードコンポーネントのドライバが完全性マネージャドライバの後の初期化順序において次のドライバとなることを確実にする。
508において、コンピューティングデバイスのオペレーティングシステムは、初期化順序に従ってカーネルモードコンポーネントドライバを初期化する。508aにおいて、カーネルモードコンポーネントドライバはカーネルモードコンポーネントを起動する。
510において、コンピューティングデバイスのオペレーティングシステムは、他のドライバを初期化する。ライブラリコンポーネントのアクティビティゆえに、カーネルモードコンポーネントが起動される前に初期化されたドライバは、完全性マネージャドライバおよびカーネルモードコンポーネントドライバのみである。いくつかの実施形態において、ライブラリコンポーネントは、カーネルモードコンポーネントが他のDLLが処理される前に起動されるようにさせることさえ可能である。
図6は、少なくとも1つのドライバがカーネルモードコンポーネントに関連づけられたドライバコンポーネントよりも前に初期化されると判定し、これに応答して、ドライバコンポーネントが最初に初期化されるように初期化順序を変更し、初期化順序が変更されたことをカーネルモードコンポーネントに警告する、例示的プロセスを示す。プロセス600は、602において、コンピューティングデバイスのランタイム中に、カーネルモードコンポーネントにより、ブートフェーズ中のドライバの初期化においてオペレーティングシステムによって利用される初期化順序を更新することを含む。カーネルモードコンポーネントは、カーネルモードコンポーネントのドライバを初期化順序において最初に配置する。また、602aにおいて、カーネルモードコンポーネントは、他のアプリケーションまたはプロセスからの、それらのドライバを初期化順序において最初に配置するよう求める要求を遮断し、それらのドライバをカーネルモードコンポーネントドライバの後に配置する。
604において、セキュリティエクスプロイトは、カーネルモードコンポーネントドライバの前となる、初期化順序における最初に別のドライバを配置する。セキュリティエクスプロイトは、これをカーネルモードコンポーネントによる検出なしに行う。
606において、コンピューティングデバイスはリブートし、ブートフェーズを開始する。608〜616に示された動作はブートフェーズ中に発生する。
608において、コンピューティングデバイスは、カーネルモードコンポーネントに関連づけられたライブラリコンポーネントを処理し、このライブラリコンポーネントは、カーネルモードコンポーネントに関連づけられた完全性マネージャのドライバを初期化順序において最初に配置する。ライブラリコンポーネントは完全性マネージャドライバの依存DLLとすることができる。
610において、コンピューティングデバイスは初期化順序に従って動作して、他のドライバよりも前に完全性マネージャドライバを初期化し、完全性マネージャドライバは完全性マネージャを起動し、それは、カーネルモードコンポーネントドライバが完全性マネージャドライバの後の初期化順序における最初ではないと判定する。むしろ、セキュリティエクスプロイトによって最初に配置されたドライバが、完全性マネージャドライバの後の次のドライバとなっているであろう。
612において、カーネルモードコンポーネントドライバが初期化順序において次ではないと判定することに応答して、完全性マネージャは、カーネルモードコンポーネントドライバを初期化順序において完全性マネージャの後の次のドライバとして配置するよう、初期化順序を変更する。
614において、完全性マネージャは、カーネルモードコンポーネントドライバが完全性マネージャドライバの後の最初ではなかったとカーネルモードコンポーネントに警告し、616において、カーネルモードコンポーネントはセキュリティイベントを生成する。カーネルモードコンポーネントは次いで、セキュリティエクスプロイトによる将来のアクティビティを分析または防止するために、そのイベントをリモートセキュリティサービスに提供してもよいし、または別の方法で自身を更新もしくは再構成してもよい。
図7は、ブートフェーズ中に、カーネルモードコンポーネントに関連づけられたコンポーネントにより、オペレーティングシステムによるドライバの初期化の前にオペレーティングシステムによって削除されるべき情報をリトリーブし、この情報をカーネルモードコンポーネントに提供する、例示的プロセスを示す。プロセス700は、702において、コンピューティングデバイスのブートフェーズを開始することを含み、ここにおいて、オペレーティングシステムのブートローダおよびカーネルは、電源の切入または他の種類のリブートに続いてロードタスクおよび初期化タスクを実行する。704および706に示された動作はブートフェーズ中に発生し、708に示された動作はブートフェーズ中またはランタイムに発生し得る。
704において、コンピューティングデバイスは、カーネルモードコンポーネントに関連づけられたライブラリコンポーネントを処理してもよく、ライブラリコンポーネントは、オペレーティングシステムによるドライバの初期化の前にコンピューティングデバイスのオペレーティングシステムによって削除されるべき、ブート情報などの情報をリトリーブしてもよい。704aにおいて、ブート情報は、オペレーティングシステムのブートローダのローダパラメータブロックからリトリーブされてもよい。ブート情報は、ドライバのリスト、ドライバの初期化順序、基本入力/出力システム(BIOS)情報、メモリレイアウト、trusted platform module(TPM)情報または乱数発生器シードの内の少なくとも1つを含んでよい。さらにまたはこれに代えて、ブート情報は、コンピューティングデバイスのブートローダによってロードされたブートドライバのリストを含んでもよい。
706において、ライブラリコンポーネントは、この情報をライブラリコンポーネントのバッファに格納してもよい。
708において、ライブラリコンポーネントは、この情報をカーネルモードコンポーネントに提供してもよい。708aにおいて、この提供することは、リストならびにA)ブートドライバのコピーおよび/またはB)ブートドライバ情報をカーネルモードコンポーネントに提供することを含んでもよい。いくつかの実施形態においては、708bにおいて、この提供することがこの情報を完全性マネージャに提供することを含んでもよく、それが次に、この情報をカーネルモードコンポーネントに提供する。
図8は、カーネルモードコンポーネントに関連づけられたプリブートコンポーネントをプリブートフェーズ中に処理して、プリブートコンポーネントは、カーネルモードコンポーネントに関連づけられたドライバコンポーネントが他のドライバよりも前に初期化されることを確実にする、例示的プロセスを示す。プロセス800は、802において、コンピューティングデバイスのプリブートフェーズを開始することを含む。プリブートフェーズは、BIOSなどのプリブート環境によって講じられる措置を伴ってもよい。プリブート環境は、プリブートコンポーネントでのプリブート環境の構成を可能にするインターフェースに関連づけられてもよい。このインターフェースは、セキュリティエクスプロイトでのプリブート環境の構成を防止するセキュリティメカニズムに関連づけられてもよい。
804において、プリブート環境は、カーネルモードコンポーネントに関連づけられたプリブートコンポーネントを処理してもよい。804aにおいて、プリブートコンポーネントは、処理されるときに、カーネルモードコンポーネントに関連づけられたドライバがブートフェーズ中にオペレーティングシステムによって初期化される最初のドライバとなることを確実にする。
806において、コンピューティングデバイスはブートフェーズを実行し、それは、806aにおいて、初期化順序に基づきドライバを初期化することを含む。プリブートコンポーネントのアクティビティに基づき、カーネルモードコンポーネントに関連づけられたドライバがその初期化順序において最初となる。
結論
本主題は構造的特徴および/または方法的行為(methodological act)に特有の文言で説明されているが、添付された特許請求の範囲に定義される主題は、説明された特定の特徴または行為に必ずしも限定されないことを理解されたい。むしろ、この特定の特徴および行為は、特許請求の範囲を実施する例示的形態として開示される。

Claims (27)

  1. コンピューティングデバイスであって、
    プロセッサと、
    前記コンピューティングデバイスのブートフェーズ中に前記プロセッサによって動作可能な複数のコンポーネントであって、
    前記コンピューティングデバイスのオペレーティングシステムによるドライバの初期化の前に処理され、処理されるときに、カーネルモードコンポーネントに関連づけられたドライバコンポーネントが前記オペレーティングシステムによって初期化される前記ドライバの最初となることを確実にするライブラリコンポーネントと、
    初期化されるときに、前記コンピューティングデバイスに他のドライバを初期化することよりも前に前記カーネルモードコンポーネントを起動させる前記ドライバコンポーネントと
    を含む、複数のコンポーネントと
    を含むことを特徴とするコンピューティングデバイス。
  2. 前記ライブラリコンポーネントは前記ドライバコンポーネントの依存ダイナミックリンクライブラリ(DLL)であることを特徴とする請求項1に記載のコンピューティングデバイス。
  3. 前記ライブラリコンポーネントは、前記ライブラリコンポーネントが1または複数の他のライブラリコンポーネントよりも前に処理されるようにする名称に関連づけられていることを特徴とする請求項1に記載のコンピューティングデバイス。
  4. 前記ドライバコンポーネントは、完全性マネージャまたは前記カーネルモードコンポーネントのドライバであり、前記ライブラリコンポーネントは、前記ドライバコンポーネントが初期化される前に前記完全性マネージャまたは前記カーネルモードコンポーネントを復号することを特徴とする請求項1に記載のコンピューティングデバイス。
  5. 前記ドライバコンポーネントは、前記カーネルモードコンポーネントに関連づけられた完全性マネージャのドライバであることを特徴とする請求項1に記載のコンピューティングデバイス。
  6. 前記ドライバコンポーネントは、初期化されるときに、前記完全性マネージャを起動し、前記完全性マネージャは、前記カーネルモードコンポーネントのドライバが前記ドライバコンポーネントの初期化の後に前記オペレーティングシステムによって初期化される前記ドライバの内の次のドライバであることを確実にすることを特徴とする請求項5に記載のコンピューティングデバイス。
  7. 前記カーネルモードコンポーネントの前記ドライバは、初期化されるときに、前記カーネルモードコンポーネントを起動し、前記完全性マネージャおよび前記カーネルモードコンポーネントは両方とも前記オペレーティングシステムが前記他のドライバを初期化する前に起動されることを特徴とする請求項6に記載のコンピューティングデバイス。
  8. 前記ライブラリコンポーネントは、前記ドライバコンポーネントが1または複数の他のライブラリコンポーネントの処理することの前に初期化されるようにすることを特徴とする請求項1に記載のコンピューティングデバイス。
  9. 前記ドライバコンポーネントは少なくとも、前記コンピューティングデバイスのリブートなしに更新され得るアンロード可能部分と、前記コンピューティングデバイスのリブートなしに更新され得ない非アンロード可能部分とを含むことを特徴とする請求項1に記載のコンピューティングデバイス。
  10. コンピュータにより実施される方法であって、
    コンピューティングデバイスのブートフェーズ中に、前記コンピューティングデバイスのオペレーティングシステムによるドライバの初期化の前に、前記ドライバの少なくとも1つがカーネルモードコンポーネントに関連づけられたドライバコンポーネントよりも前に前記オペレーティングシステムによって初期化されるかどうかを判定するステップと、
    前記ドライバの少なくとも1つが前記ドライバコンポーネントよりも前に初期化されると判定することに応答して、
    前記ドライバコンポーネントを前記オペレーティングシステムによって初期化される最初のドライバとして配置するように前記ドライバの初期化順序を変更するステップと、
    前記初期化順序が変更されたことを前記カーネルモードコンポーネントに警告するステップと
    を含むことを特徴とする方法。
  11. 前記ブートフェーズに先立つランタイム中に、前記カーネルモードコンポーネントにより、前記ドライバコンポーネントを前記オペレーティングシステムによって初期化される前記最初のドライバとして配置するように前記ドライバの前記初期化順序を更新するステップをさらに含むことを特徴とする請求項10に記載の方法。
  12. 前記更新するステップの後かつ前記ブートフェーズに先立ち、セキュリティエクスプロイトは前記ドライバの前記少なくとも1つが前記ドライバコンポーネントよりも前に初期化されるように前記初期化順序を変更することを特徴とする請求項11に記載の方法。
  13. 前記ランタイム中に、前記カーネルモードコンポーネントにより、別のドライバを前記初期化順序における前記最初のドライバとして配置するよう求める要求を遮断するステップと、これに応答して、他のドライバを前記初期化順序において前記ドライバコンポーネントの後に配置するステップとをさらに含むことを特徴とする請求項11に記載の方法。
  14. 前記変更するステップは、前記ブートフェーズに続くランタイムにおいて実行され、カーネルモードコンポーネントは前記警告を受信することに応答してセキュリティイベントを生成することを特徴とする請求項10に記載の方法。
  15. 前記判定するステップ、前記変更するステップおよび前記警告するステップは、前記カーネルモードコンポーネントに関連づけられた完全性マネージャによって実行されることを特徴とする請求項10に記載の方法。
  16. 前記完全性マネージャのドライバは、前記完全性マネージャの前記ドライバに関連づけられたライブラリコンポーネントによって前記初期化順序において最初に配置されることを特徴とする請求項15に記載の方法。
  17. コンピュータにより実施される方法であって、
    コンピューティングデバイスのブートフェーズ中に、カーネルモードコンポーネントに関連づけられたコンポーネントにより、前記コンピューティングデバイスのオペレーティングシステムによって前記オペレーティングシステムによるドライバの初期化の前に削除されるべき情報をリトリーブするステップと、
    前記コンポーネントにより、前記情報を前記カーネルモードコンポーネントに提供するステップと
    を含むことを特徴とする方法。
  18. 前記情報は、前記コンピューティングデバイスのブートローダに関連づけられたブート情報であることを特徴とする請求項17に記載の方法。
  19. 前記リトリーブするステップは、前記ブートローダのローダパラメータブロックから前記ブート情報をリトリーブするステップを含むことを特徴とする請求項18に記載の方法。
  20. 前記ブート情報は、前記ドライバのリスト、前記ドライバの初期化順序、基本入力/出力システム(BIOS)情報、メモリレイアウト、trusted platform module(TPM)情報または乱数発生器シードの内の少なくとも1つを含むことを特徴とする請求項18に記載の方法。
  21. 前記情報は、前記コンピューティングデバイスのブートローダによってロードされるブートドライバのリストを含むことを特徴とする請求項17に記載の方法。
  22. 前記提供するステップは、前記ブートドライバの前記リストおよびA)前記ブートドライバのコピーまたはB)ブートドライバ情報を前記カーネルモードコンポーネントに提供するステップを含むことを特徴とする請求項21に記載の方法。
  23. 前記コンポーネントは、前記カーネルモードコンポーネントに関連づけられた完全性マネージャのDLLであり、前記提供するステップは、前記情報を前記完全性マネージャに提供するステップであって、それが次に前記情報を前記カーネルモードコンポーネントに提供する、提供するステップを含むことを特徴とする請求項17に記載の方法。
  24. 前記DLLは、前記完全性マネージャの初期化に先立ち前記情報を格納するバッファを含むことを特徴とする請求項23に記載の方法。
  25. コンピューティングデバイスのプロセッサによって前記コンピューティングデバイスのプリブートフェーズ中に動作可能な複数のコンポーネントを格納したコンピュータ記憶デバイスであって、前記コンポーネントは、
    カーネルモードコンポーネントに関連づけられたプリブートコンポーネントを処理するプリブート環境と、
    処理されるときに、前記カーネルモードコンポーネントに関連づけられたドライバコンポーネントがブートフェーズ中にオペレーティングシステムによって初期化される最初のドライバとなることを確実にする前記プリブートコンポーネントと
    を含むことを特徴とするコンピュータ記憶デバイス。
  26. 前記プリブート環境は、前記プリブートコンポーネントでの前記プリブート環境の構成を可能にするインターフェースと関連づけられていることを特徴とする請求項25に記載のコンピュータ記憶デバイス。
  27. 前記インターフェースは、セキュリティエクスプロイトでの前記プリブート環境の構成を防止するセキュリティメカニズムと関連づけられていることを特徴とする請求項26に記載のコンピュータ記憶デバイス。
JP2016147643A 2015-07-28 2016-07-27 ブートフェーズにおける早期ロードを通じた完全性保証 Pending JP2017033561A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/810,840 US10339316B2 (en) 2015-07-28 2015-07-28 Integrity assurance through early loading in the boot phase
US14/810,840 2015-07-28

Publications (1)

Publication Number Publication Date
JP2017033561A true JP2017033561A (ja) 2017-02-09

Family

ID=56413538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016147643A Pending JP2017033561A (ja) 2015-07-28 2016-07-27 ブートフェーズにおける早期ロードを通じた完全性保証

Country Status (6)

Country Link
US (1) US10339316B2 (ja)
EP (1) EP3125148B1 (ja)
JP (1) JP2017033561A (ja)
AU (1) AU2016204297A1 (ja)
CA (1) CA2934399A1 (ja)
IL (1) IL246854A0 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043903B2 (en) 2012-06-08 2015-05-26 Crowdstrike, Inc. Kernel-level security agent
US9292881B2 (en) 2012-06-29 2016-03-22 Crowdstrike, Inc. Social sharing of security information in a group
US10289405B2 (en) 2014-03-20 2019-05-14 Crowdstrike, Inc. Integrity assurance and rebootless updating during runtime
US10387228B2 (en) 2017-02-21 2019-08-20 Crowdstrike, Inc. Symmetric bridge component for communications between kernel mode and user mode
US10771439B2 (en) * 2017-06-28 2020-09-08 Microsoft Technology Licensing, Llc Shielded networks for virtual machines
US11599641B2 (en) * 2019-04-24 2023-03-07 Crowdstrike, Inc. Firmware retrieval and analysis
US11500649B2 (en) * 2020-09-24 2022-11-15 Dell Products L.P. Coordinated initialization system

Family Cites Families (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355498A (en) * 1992-02-25 1994-10-11 Sun Microsystems, Inc. Method and apparatus for booting a computer system without loading a device driver into memory
US5410703A (en) 1992-07-01 1995-04-25 Telefonaktiebolaget L M Ericsson System for changing software during computer operation
US6052723A (en) 1996-07-25 2000-04-18 Stockmaster.Com, Inc. Method for aggregate control on an electronic network
US6009274A (en) 1996-12-13 1999-12-28 3Com Corporation Method and apparatus for automatically updating software components on end systems over a network
US6088804A (en) 1998-01-12 2000-07-11 Motorola, Inc. Adaptive system and method for responding to computer network security attacks
DE19810814B4 (de) 1998-03-12 2004-10-28 Telefonaktiebolaget Lm Ericsson (Publ) Rechnersystem und Zustandskopierverfahren zur skalierbaren Software-Aktualisierung
US7418504B2 (en) 1998-10-30 2008-08-26 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US20010044904A1 (en) 1999-09-29 2001-11-22 Berg Ryan J. Secure remote kernel communication
US7281268B2 (en) 1999-11-14 2007-10-09 Mcafee, Inc. System, method and computer program product for detection of unwanted processes
US7076647B2 (en) 2000-06-09 2006-07-11 Hewlett-Packard Development Company, L.P. Dynamic kernel tunables
US7099948B2 (en) 2001-02-16 2006-08-29 Swsoft Holdings, Ltd. Virtual computing environment
US20030112781A1 (en) 2001-12-17 2003-06-19 Kermode Roger George Communications unit for secure communications
US7512810B1 (en) 2002-09-11 2009-03-31 Guardian Data Storage Llc Method and system for protecting encrypted files transmitted over a network
US7784044B2 (en) 2002-12-02 2010-08-24 Microsoft Corporation Patching of in-use functions on a running computer system
JP2004293368A (ja) 2003-03-26 2004-10-21 Nissan Diesel Motor Co Ltd 筒内噴射圧縮着火エンジン
US7093116B2 (en) * 2003-04-28 2006-08-15 Intel Corporation Methods and apparatus to operate in multiple phases of a basic input/output system (BIOS)
WO2005058018A2 (en) 2003-12-16 2005-06-30 Aerulean Plant Identification Systems, Inc. System and method for plant identification
US8010459B2 (en) 2004-01-21 2011-08-30 Google Inc. Methods and systems for rating associated members in a social network
US7490356B2 (en) 2004-07-20 2009-02-10 Reflectent Software, Inc. End user risk management
JP4624181B2 (ja) 2004-07-28 2011-02-02 株式会社エヌ・ティ・ティ・データ 不正アクセス対策制御装置および不正アクセス対策制御プログラム
US7571448B1 (en) 2004-07-28 2009-08-04 Symantec Corporation Lightweight hooking mechanism for kernel level operations
US20060070089A1 (en) 2004-08-20 2006-03-30 Shahid Shoaib Method and apparatus for dynamic replacement of device drivers in the operating system (OS) kernel
US7765410B2 (en) 2004-11-08 2010-07-27 Microsoft Corporation System and method of aggregating the knowledge base of antivirus software applications
US7765400B2 (en) 2004-11-08 2010-07-27 Microsoft Corporation Aggregation of the knowledge base of antivirus software
US7478237B2 (en) 2004-11-08 2009-01-13 Microsoft Corporation System and method of allowing user mode applications with access to file data
KR101201118B1 (ko) 2004-11-08 2012-11-13 마이크로소프트 코포레이션 바이러스 방지 소프트웨어 어플리케이션들의 지식 베이스를모으는 시스템 및 방법
WO2006101549A2 (en) 2004-12-03 2006-09-28 Whitecell Software, Inc. Secure system for allowing the execution of authorized computer program code
US7366891B2 (en) * 2004-12-30 2008-04-29 Intel Corporation Methods and apparatus to provide dual-mode drivers in processor systems
US7979889B2 (en) 2005-01-07 2011-07-12 Cisco Technology, Inc. Methods and apparatus providing security to computer systems and networks
US8365293B2 (en) 2005-01-25 2013-01-29 Redphone Security, Inc. Securing computer network interactions between entities with authorization assurances
US10454890B2 (en) 2005-01-31 2019-10-22 Unisys Corporation Negotiation of security protocols and protocol attributes in secure communications environment
US8572733B1 (en) 2005-07-06 2013-10-29 Raytheon Company System and method for active data collection in a network security system
US7874001B2 (en) 2005-07-15 2011-01-18 Microsoft Corporation Detecting user-mode rootkits
US20070094496A1 (en) 2005-10-25 2007-04-26 Michael Burtscher System and method for kernel-level pestware management
US7882560B2 (en) 2005-12-16 2011-02-01 Cisco Technology, Inc. Methods and apparatus providing computer and network security utilizing probabilistic policy reposturing
US8239947B1 (en) 2006-02-06 2012-08-07 Symantec Corporation Method using kernel mode assistance for the detection and removal of threats which are actively preventing detection and removal from a running system
US8201243B2 (en) 2006-04-20 2012-06-12 Webroot Inc. Backwards researching activity indicative of pestware
US7441113B2 (en) * 2006-07-10 2008-10-21 Devicevm, Inc. Method and apparatus for virtualization of appliances
CA2655151C (en) * 2006-07-18 2016-06-21 Certicom Corp. System and method for authenticating a gaming device
US8190868B2 (en) 2006-08-07 2012-05-29 Webroot Inc. Malware management through kernel detection
US9111088B2 (en) 2006-08-14 2015-08-18 Quantum Security, Inc. Policy-based physical security system for restricting access to computer resources and data flow through network equipment
US8321677B2 (en) 2006-09-21 2012-11-27 Google Inc. Pre-binding and tight binding of an on-line identity to a digital signature
US7765374B2 (en) 2007-01-25 2010-07-27 Microsoft Corporation Protecting operating-system resources
US8181264B2 (en) 2007-02-07 2012-05-15 Apple Inc. Method and apparatus for deferred security analysis
US8578477B1 (en) 2007-03-28 2013-11-05 Trend Micro Incorporated Secure computer system integrity check
US8565799B2 (en) 2007-04-04 2013-10-22 Qualcomm Incorporated Methods and apparatus for flow data acquisition in a multi-frequency network
US7908656B1 (en) 2007-04-23 2011-03-15 Network Appliance, Inc. Customized data generating data storage system filter for data security
US8918717B2 (en) 2007-05-07 2014-12-23 International Business Machines Corporation Method and sytem for providing collaborative tag sets to assist in the use and navigation of a folksonomy
US20080301669A1 (en) 2007-05-30 2008-12-04 Google Inc. Dynamically Self-Updating by a Software Application on a Device
WO2008151321A2 (en) 2007-06-08 2008-12-11 The Trustees Of Columbia University In The City Of New York Systems, methods, and media for enforcing a security policy in a network including a plurality of components
US8099740B1 (en) 2007-08-17 2012-01-17 Mcafee, Inc. System, method, and computer program product for terminating a hidden kernel process
US8065728B2 (en) 2007-09-10 2011-11-22 Wisconsin Alumni Research Foundation Malware prevention system monitoring kernel events
US20090094039A1 (en) 2007-10-04 2009-04-09 Zhura Corporation Collaborative production of rich media content
US8255926B2 (en) 2007-11-06 2012-08-28 International Business Machines Corporation Virus notification based on social groups
CA2625274C (en) * 2007-12-13 2018-11-20 Kevin Gerard Boyce Method and system for protecting a computer system during boot operation
US8407698B2 (en) * 2008-01-25 2013-03-26 Citrix Systems, Inc. Driver installation and diskless booting of virtual and physical machines based on machine characteristic
RU2490814C2 (ru) 2008-02-11 2013-08-20 Долби Лэборетериз Лайсенсинг Корпорейшн Система динамической dns для частных сетей
US20090216806A1 (en) 2008-02-24 2009-08-27 Allofme Ltd. Digital assets internet timeline aggregation and sharing platform
JP5053124B2 (ja) 2008-02-28 2012-10-17 株式会社オーディオテクニカ マイクロホンユニットの製造方法およびマイクロホンユニット
JP2009238632A (ja) 2008-03-27 2009-10-15 Fujitsu Microelectronics Ltd イオン注入装置及び半導体装置の製造方法
JP2009238153A (ja) 2008-03-28 2009-10-15 Nec Corp マルウェア対処システム、方法及びプログラム
US7890664B1 (en) 2008-03-31 2011-02-15 Emc Corporation Methods and apparatus for non-disruptive upgrade by redirecting I/O operations
US8413261B2 (en) 2008-05-30 2013-04-02 Red Hat, Inc. Sharing private data publicly and anonymously
US20090307140A1 (en) 2008-06-06 2009-12-10 Upendra Mardikar Mobile device over-the-air (ota) registration and point-of-sale (pos) payment
US8631488B2 (en) * 2008-08-04 2014-01-14 Cupp Computing As Systems and methods for providing security services during power management mode
GB0815587D0 (en) 2008-08-27 2008-10-01 Applied Neural Technologies Ltd Computer/network security application
US8401195B2 (en) 2008-09-22 2013-03-19 Motorola Solutions, Inc. Method of automatically populating a list of managed secure communications group members
US8789202B2 (en) * 2008-11-19 2014-07-22 Cupp Computing As Systems and methods for providing real time access monitoring of a removable media device
US8234693B2 (en) 2008-12-05 2012-07-31 Raytheon Company Secure document management
KR20100078081A (ko) 2008-12-30 2010-07-08 (주) 세인트 시큐리티 커널 기반 시스템 행위 분석을 통한 알려지지 않은 악성코드 탐지 시스템 및 방법
KR101021708B1 (ko) 2009-01-20 2011-03-15 성균관대학교산학협력단 그룹키 분배 방법 및 이를 위한 서버 및 클라이언트
JP4805367B2 (ja) 2009-01-27 2011-11-02 日本電信電話株式会社 電極調整システム
JP2010182019A (ja) 2009-02-04 2010-08-19 Kddi Corp 異常検知装置およびプログラム
US8447969B2 (en) 2009-03-13 2013-05-21 Assa Abloy Ab Transfer device for sensitive material such as a cryptographic key
US8533830B1 (en) * 2009-03-31 2013-09-10 Mcafee, Inc. System, method, and computer program product for mounting an image of a computer system in a pre-boot environment for validating the computer system
US8589904B2 (en) 2009-08-10 2013-11-19 Symantec Corporation Systems and methods for updating a software product
US8510569B2 (en) 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
KR101038048B1 (ko) 2009-12-21 2011-06-01 한국인터넷진흥원 봇넷 악성행위 실시간 분석 시스템
US8621628B2 (en) 2010-02-25 2013-12-31 Microsoft Corporation Protecting user mode processes from improper tampering or termination
US9384112B2 (en) 2010-07-01 2016-07-05 Logrhythm, Inc. Log collection, structuring and processing
KR101329847B1 (ko) 2010-07-26 2013-11-14 주식회사 팬택 인체통신을 이용한 소셜 네트워크 서비스를 제공하는 휴대용 단말기 및 그 방법
US8539584B2 (en) 2010-08-30 2013-09-17 International Business Machines Corporation Rootkit monitoring agent built into an operating system kernel
KR101174751B1 (ko) 2010-09-27 2012-08-17 한국인터넷진흥원 커널 콜백 매커니즘을 이용한 악성코드 자동 분석 방법
US8776227B1 (en) 2010-10-21 2014-07-08 Symantec Corporation User interface based malware detection
KR20120072266A (ko) 2010-12-23 2012-07-03 한국전자통신연구원 전역 네트워크 보안상황 제어 장치 및 방법
US8762298B1 (en) 2011-01-05 2014-06-24 Narus, Inc. Machine learning based botnet detection using real-time connectivity graph based traffic features
EP2487860B1 (en) 2011-02-10 2013-09-25 Telefónica, S.A. Method and system for improving security threats detection in communication networks
US20120246297A1 (en) 2011-03-25 2012-09-27 Vijaya Shanker Agent based monitoring for saas it service management
US8966629B2 (en) 2011-03-31 2015-02-24 Mcafee, Inc. System and method for below-operating system trapping of driver loading and unloading
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
US8549648B2 (en) * 2011-03-29 2013-10-01 Mcafee, Inc. Systems and methods for identifying hidden processes
AU2012236739A1 (en) 2011-03-28 2013-10-03 Mcafee, Inc. System and method for virtual machine monitor based anti-malware security
US8813227B2 (en) 2011-03-29 2014-08-19 Mcafee, Inc. System and method for below-operating system regulation and control of self-modifying code
US8739281B2 (en) 2011-12-06 2014-05-27 At&T Intellectual Property I, L.P. Multilayered deception for intrusion detection and prevention
US8789034B1 (en) 2011-12-31 2014-07-22 Parallels IP Holdings GmbH Method for updating operating system without memory reset
CA2773095C (en) * 2012-03-27 2014-12-02 Yin Sheng Zhang Computer with flexible operating system
US9081960B2 (en) 2012-04-27 2015-07-14 Ut-Battelle, Llc Architecture for removable media USB-ARM
IL219597A0 (en) 2012-05-03 2012-10-31 Syndrome X Ltd Malicious threat detection, malicious threat prevention, and a learning systems and methods for malicious threat detection and prevention
US8997201B2 (en) 2012-05-14 2015-03-31 Cisco Technology, Inc. Integrity monitoring to detect changes at network device for use in secure network access
US9317687B2 (en) 2012-05-21 2016-04-19 Mcafee, Inc. Identifying rootkits based on access permissions
US9043903B2 (en) 2012-06-08 2015-05-26 Crowdstrike, Inc. Kernel-level security agent
US9292881B2 (en) 2012-06-29 2016-03-22 Crowdstrike, Inc. Social sharing of security information in a group
US9158914B2 (en) * 2013-04-19 2015-10-13 Crowdstrike, Inc. Executable component injection utilizing hotpatch mechanisms
US9197654B2 (en) 2013-06-28 2015-11-24 Mcafee, Inc. Rootkit detection by using HW resources to detect inconsistencies in network traffic
US9477835B2 (en) 2013-10-08 2016-10-25 Crowdstrike, Inc. Event model for correlating system component states
US20150128206A1 (en) 2013-11-04 2015-05-07 Trusteer Ltd. Early Filtering of Events Using a Kernel-Based Filter
US9170803B2 (en) 2013-12-19 2015-10-27 Novell, Inc. Runtime patching of an operating system (OS) without stopping execution
KR101554633B1 (ko) * 2014-03-04 2015-09-21 한국전자통신연구원 악성 코드 검출 장치 및 그 방법
US10289405B2 (en) 2014-03-20 2019-05-14 Crowdstrike, Inc. Integrity assurance and rebootless updating during runtime
US9798882B2 (en) 2014-06-06 2017-10-24 Crowdstrike, Inc. Real-time model of states of monitored devices
US10387228B2 (en) 2017-02-21 2019-08-20 Crowdstrike, Inc. Symmetric bridge component for communications between kernel mode and user mode

Also Published As

Publication number Publication date
AU2016204297A1 (en) 2017-02-16
EP3125148A1 (en) 2017-02-01
EP3125148B1 (en) 2018-09-12
CA2934399A1 (en) 2017-01-28
US10339316B2 (en) 2019-07-02
IL246854A0 (en) 2016-12-29
US20170061127A1 (en) 2017-03-02

Similar Documents

Publication Publication Date Title
US11340890B2 (en) Integrity assurance and rebootless updating during runtime
US11494490B2 (en) Endpoint detection and response utilizing machine learning
US11244047B2 (en) Intelligent backup and versioning
EP3125148B1 (en) Integrity assurance through early loading in the boot phase
US10972488B2 (en) Method and system for modeling all operations and executions of an attack and malicious process entry
Oosthoek et al. Sok: Att&ck techniques and trends in windows malware
US10331881B2 (en) User-mode component injection techniques
US12174953B1 (en) Systems and methods of detecting malicious powershell scripts
CN112513846A (zh) 用于基于安全性策略控制应用程序启动的系统和方法
US11687649B2 (en) Securely and efficiently providing user notifications about security actions
WO2023124041A1 (zh) 一种勒索病毒检测方法以及相关系统
EP3462356B1 (en) Using indirection to facilitate software upgrades
CN113886825A (zh) 代码检测方法、装置、系统、设备及存储介质
CA2960615A1 (en) User-mode component injection techniques
Hovmark et al. Towards Extending Probabilistic Attack Graphs with Forensic Evidence: An investigation of property list files in macOS