JP4629796B2 - 限定的プロセスでのファイル変換 - Google Patents

限定的プロセスでのファイル変換 Download PDF

Info

Publication number
JP4629796B2
JP4629796B2 JP2009552004A JP2009552004A JP4629796B2 JP 4629796 B2 JP4629796 B2 JP 4629796B2 JP 2009552004 A JP2009552004 A JP 2009552004A JP 2009552004 A JP2009552004 A JP 2009552004A JP 4629796 B2 JP4629796 B2 JP 4629796B2
Authority
JP
Japan
Prior art keywords
file
limited
format
converter
file format
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.)
Expired - Fee Related
Application number
JP2009552004A
Other languages
English (en)
Other versions
JP2010519662A (ja
JP2010519662A5 (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 JP2010519662A publication Critical patent/JP2010519662A/ja
Publication of JP2010519662A5 publication Critical patent/JP2010519662A5/ja
Application granted granted Critical
Publication of JP4629796B2 publication Critical patent/JP4629796B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

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

Description

本発明は、限定的プロセスでのファイル変換に関する。
ウイルスおよびトロイの木馬などの悪意のあるコードに対処することは、ソフトウェア開発者にとって変わらない関心事である。ハッカーは一般に、アプリケーションまたはファイル形式の脆弱性が知られるとすぐに、その脆弱性を利用する。既知の脆弱性を、その脆弱性が一般に知られるようになったその日に利用する悪意のあるコードは、ゼロデイエクスプロイト(zero day exploit)と呼ばれる。今日まで、ゼロデイエクスプロイトに有効に対処する解決策はほとんどない。
ゼロデイエクスプロイトにおいて悪意のあるコードが循環されるその速さのため、開発者たちは、その脆弱性に対処するためのパッチまたはその他の解決策を実装するのに十分な時間がない。しばしば、利用可能な解決策は、不必要なサービスを止める、パッチのレベルを最新に保つ、未知の発信元からのものである、または予期しない添付物を開かないなどのセキュリティ上の最良慣行に従うようにユーザーに勧めることによって悪意のあるコードを開く可能性を低減することのみである。脆弱性が知られた後は、ユーザーは、その脆弱性の影響を受けるファイルを開かないようにすることができる。しかしながら、ユーザーがそのファイルにアクセスしなければならない場合には、これは適切な解決策にはならない。
更に、悪意のあるコードを探索し、削除するために使用される現在利用可能なソフトウェアアプリケーション(例えば、ウイルス対策ソフトウェア)は、悪意のあるコードまたは利用される脆弱性について何らかの事前知識を有していなければならない。例えば、いくつかのアプリケーションは、悪意のあるものとして既に識別されたコードを求めて文書を探索する。他のアプリケーションは、異常なコードを求めて探索すべき構造内の特定のフィールドなど脆弱性に関する知識を必要とする。これらの方法のぞれぞれは、(コードのまたは脆弱性の)事前知識を必要とする。ゼロデイエクスプロイトでは、脆弱性はわからないことになり、ハッカーは一般に悪意のあるものとして識別されない新たなコードを作成する。このことが、現在利用可能なソフトウェアアプリケーションを、ゼロデイエクスプロイトに対して効果のないものにしている。
米国特許出願第11/679048号明細書
これらのまたその他の考慮すべき事柄に関して、本発明の実施形態は構築されている。また、比較的特定の問題が論じられているが、本発明の実施形態は、背景技術で識別された特定の問題の解決に限定されるべきではないことを理解されたい。
本項は、後述の「発明を実施するための形態」の項で更に詳述する、簡易化された形態の選択された概念を紹介するために提供される。本項は、特許請求されている主題の主要な特徴または本質的な特徴を特定するものではなく、また特許請求されている主題の範囲を決定する助けとして使用されるものでもない。
第1のファイル形式のファイルを第2のファイル形式の変換済みファイルに変換することによって、その第1のファイル形式のファイルから悪意のあるコードを除去するまたは無効にするための実施形態について述べる。実施形態では、ファイル内に含まれている悪意のあるコードを、そのファイルを変換済みファイルに変換する間に除去するまたは無効にする。その変換は、限定的コンピュータープロセス内にロードされたコンバーターによって実行される。そのコンピュータープロセスは、基礎となるオペレーティングシステムおよびコンピューターシステムへのそのアクセスを制限する限定的な特権を有する。従って、ファイルに組み込まれた悪意のあるコードが変換中にうまく実行したとしても、そのコードは限定的プロセス内でロードされるため、それが引き起こすことができる被害は制限される。
実施形態は、コンピュータープロセス、コンピューティングシステムとして、或いは、コンピュータープログラム製品またはコンピューター可読媒体などの製品として、実装することができる。このコンピュータープログラム製品は、コンピューターシステムによって読み取ることができ、コンピュータープロセスを実行するための命令のコンピュータープログラムを符号化するコンピューター記録媒体でもよい。また、このコンピュータープログラム製品は、コンピューティングシステムにより読み取ることができ、コンピュータープロセスを実行するための命令のコンピュータープログラムを符号化する搬送波上の伝搬信号でもよい。
非制限的および非網羅的な実施形態について、特別の定めのない限り様々な図全体にわたって同様の参照番号が同様の部分を参照する以下の図を参照して述べる。
実施形態による、ファイルから悪意のあるコードを除去するまたは無効にするために使用されるシステムの図である。 実施形態による、悪意のあるコードを含み得るファイルを安全に開くために使用することができるシステムの図である。 ファイルから悪意のあるコードを除去するまたは無効な状態にするための動作フローの図である。 悪意のあるコードを含み得るファイルを安全に開くための動作フローの図である。 悪意のあるコードを含み得るファイルを安全に開くための第2の動作フローの図である。 実施形態を実装するのに適したコンピューター環境の構成図である。
様々な実施形態については、本明細書の一部を成し、また本発明を実行するための具体的な実施形態を示す添付の図を参照して、更に詳しく後述する。しかしながら、実施形態は、多数の異なる形態で実装することができ、本明細書に記載された実施形態に制限されるものとして解釈されるべきではない。むしろ、これらの実施形態は、本開示が当業者に徹底したまた完全なものとなるようにまた本発明の範囲を十分に伝えるものとなるように提供される。実施形態は、方法、システム、または装置として実行されることができる。従って、実施形態は、ハードウェア実装、完全なソフトウェア実装、またはソフトウェアおよびハードウェア態様を組み合わせた実装の形態を取ることができる。従って、下記の詳細な説明は、限定的な意味で理解されるべきではない。
様々な実施形態の論理オペレーションは、(1)コンピューティングシステム上で動作する一連のコンピューター実装ステップとして、および/または(2)コンピューティングシステム内の相互接続された機械モジュールとして実装される。この実装は、実施形態を実装するコンピューティングシステムの性能要件次第で選択することができるものである。従って、本明細書に記載された実施形態を構成する論理オペレーションは、別法として、オペレーション、ステップ、またはモジュールと称される。
簡単に説明したとおり、実施形態は、第1のファイル形式のファイルを第2のファイル形式に変換することによって、その第1のファイル形式のファイルから悪意のあるコードを除去するまたは無効にすることを対象とする。悪意のあるコードは、そのコードまたはそのコードを運ぶために利用される脆弱性についての事前知識なしに、除去または無効な状態にされる。その変換は、限定的コンピュータープロセスにロードされたコンバーターによって実行される。そのコンピュータープロセスは、基礎となるオペレーティングシステムおよびコンピューターシステムへのそのアクセスを制限する限定的な特権を有する。従って、ファイルに組み込まれた悪意のあるコードが変換中にうまく実行したとしても、この限定的なアクセスのため、コードが引き起こすことができる被害は制限される。本出願において、「悪意のあるコード」は、広義であり、無許可の目的のためのファイルまたはアプリケーションに含まれるソフトウェアを含むことが意図されている。悪意のあるコードの例には、ウイルス、ワーム、トロイの木馬、その他の不要なソフトウェアが含まれる。
図1は、実施形態による、悪意のあるコードを含み得るファイルを安全に開くために使用されるシステム100を示す。この実施形態では、システム100は、レジストリー112を備えたオペレーティングシステム102、アプリケーション104、コンバーター106、およびファイル110を含む。ファイル110は、データ110Aおよびファイル拡張子110B(例えば、ファイル名の一部として)を含む。更に、この実施形態によれば、アプリケーション104は、ブロックポリシー114を含む。いくつかの実施形態では、ブロックポリシー114は、どのタイプのファイル(即ち、ファイル形式)がアプリケーション104によって開かれるのを阻止されるかを示す。更に、ブロックポリシー114は、どのファイルのタイプが保存されるのを阻止されるかを示すこともできる。ブロックポリシーおよびファイルを開くことおよび/または保存することを阻止する際のその使用については、本出願の所有者が所有し本出願と同日に提出された、また、その内容全体を参照することによってここに援用する「FILE BLOCKING MITIGATION(ファイルブロッキングの軽減)」という名称の特許文献1に詳述されている。
コンバーター106は、ファイルを第1のファイル形式から第2のファイル形式に変換するために使用される。ファイルを第1のファイル形式から第2のファイル形式に変換することにより、ファイル内に組み込まれている可能性がある悪意のあるコードが除去または無効にされる。コンバーター106は、オペレーティングシステムの機能にアクセスするなどの目的でオペレーティングシステム102と通信することができる。図1に示す実施形態では、コンバーター106は限定的プロセス120にロードされ、第1のファイル形式から第2のファイル形式へのファイルの変換は限定的プロセス120内で実行される。限定的プロセス120は、オペレーティングシステム102とオペレーティングシステム102が実行される基礎となるコンピューターシステムとに対して制限されたアクセス特権を有する。言い換えれば、プロセス120は、オペレーティングシステムの機能を要求するための制限された特権を有する。
ここでアプリケーション104を参照すると、それは、オペレーティングシステムの機能にアクセスするなどの目的のためにオペレーティングシステム102と通信することができる。図1に示す実施形態では、アプリケーション104は、コンバーター106のように限定的プロセス内にはなく、従って、オペレーティングシステムの機能を要求するためのより大きな特権を有する。更に、アプリケーション104は、ファイルを開く、編集する、保存する、および/または作成することができる。図1に示す実施形態では、アプリケーション104は、ファイル110と対話している。一例として、アプリケーション104は、ワードプロセッシングアプリケーションでもよい。ユーザーは、アプリケーション104を起動し、次にアプリケーション104でファイル(例えば、ファイル110)を開き、アプリケーション104がファイル110をメモリにロードし、ファイルへのアクセスを提供する。ユーザーは次に、ファイル110のデータ(例えば、データ110A)を追加および編集することができる。アプリケーション104は、特定のタイプのアプリケーションに限られず、ワードプロセッシング、表計算、グラフィックプレゼンテーションなど、任意の種類のアプリケーションでよい。
実施形態において、アプリケーション104は、ファイル110が特定のタイプであることを示すために、ファイル拡張子110Bも設定する。例えば、この実施形態において、ファイル拡張子110Bは、そのファイルが「保存」されるまたは「名前を付けて保存」されるときにそのファイルに割り当てられるファイル110のファイル名の一部である。例えば、ワードプロセッシングアプリケーションは、そのファイルがバイナリファイル形式であることを示すためのファイル拡張子「.doc」をファイル(例えば、テキスト文書)に持たせることができる。
110Bなどのファイル拡張子は、ファイルがネットワークによって受信される前に潜在的な悪意のあるファイル(悪意のあるコードを持ち込むために不当に利用される可能性のある既知の脆弱性を持つファイル)を検出または阻止するために管理者によって度々使用される。例えば、電子メールサーバは、特定のファイル拡張子を有するファイルを伴うすべての電子メールを検出および阻止し、一方でその他のファイル拡張子を有するファイルを伴う電子メールが電子メールのクライアントネットワークに入ることを許すように構成することができる。しかしながら、ファイル拡張子は、単に異なる拡張子でファイル名を付け直すことによって簡単に操作することができるため、ファイル拡張子の使用は、ネットワークに持ち込まれようとしている悪意のあるコードを伴うファイルを識別するための信頼できる機構ではない。更に、ネットワークに入る前にファイルを阻止することにより、そのファイルを期待しているユーザーは、ファイルが阻止されたことおよび/またはそのファイルにセキュリティ上の問題があることを知ることができない。
図1に示す実施形態では、アプリケーション104は、タイプインスペクターモジュール124を含む。タイプインスペクターモジュール124は、ファイルデータ(例えば、110A)を検査し、ファイルの真のファイル形式を判定する。本出願では、ファイルの実際の形式を表すために「真のファイル形式」という表現が使用される。一例では、ワードプロセッシング文書は、ファイル形式「*.doc」、「*.dot」、または「*.wiz」を有することができる。図1に示す実施形態では、ファイルの真のファイル形式は、拡張子110Bなどのファイル拡張子を調べることによっては判定されないことを理解されたい。そうではなくて、タイプインスペクターモジュール114は、ファイルデータの一部、例えば110Aを検査し、その検査に基づいてそのファイルの真のファイル形式を判定する。
一実施形態では、タイプインスペクターモジュール124は、ファイルからデータの最初の数バイトを読み取り(ファイルを傍受し)、検査されたデータ内のヘッダ情報およびデータ構造などの特徴に基づいて、ファイルの真のファイル形式を判定することができる。本出願では、真のファイル形式は、ファイル拡張子を使用して記載される。例えば、ファイル形式は、「*.doc」、「*.dot」、および/または「*.wiz」として記載することができる。しかしながら、真のファイル形式をファイル拡張子として記載することは、ファイル拡張子の検査を含まない真のファイル形式の判定と混同されるべきではない。
動作時には、システム100は先ず、アプリケーション104などのアプリケーションを起動する。アプリケーション104の起動は、例えばアプリケーション104を表すアイコンをダブルクリックすることによって、ユーザーがアプリケーション104の起動を要求することにより起こり得る。別法として、ユーザーは、例えばファイル110のアイコンをダブルクリックすることによって、ファイル110を開くことを要求することができる。この場合、オペレーティングシステム102は、ファイル拡張子110Bをアプリケーション104と関連付け、アプリケーション104の起動を開始する。
アプリケーション104は、起動されると、設定情報をロードする。いくつかの実施形態では、設定情報はオペレーティングシステム102のレジストリー112に格納されている。これらの実施形態では、アプリケーション104は、起動すると、オペレーティングシステム102に設定情報を要求し、オペレーティングシステム102はレジストリー112から情報を取り出すことになる。一実施形態では、ブロックポリシー114は、オペレーティングシステム102のレジストリー内に、例えばレジストリー鍵の形態で、設定情報として格納される。従って、アプリケーション104は起動すると、レジストリー112からブロックポリシー114を取り出すことになる。
いくつかの実施形態では、ブロックポリシー114へのアクセスは、レジストリー112を書き込む/修正する特権を有するユーザー、例えば管理特権を有するユーザーに制限される。従って、管理者は、アプリケーション104を使用して開かれるまたは保存されるのを阻止されるファイル形式を実際に制御することができる。
起動された後、アプリケーション104は、ファイルを開く、編集する、また保存するために使用することができる。第1の例として、アプリケーション104がファイル110を開こうとするとき、タイプインスペクターモジュール124が先ずデータ110Aの一部を検査してファイル110の真のファイル形式を判定する。前述のとおり、一実施形態では、タイプインスペクターモジュール124は、データ110Aの最初の数バイトを検査することによって、その真のファイル形式を判定する。タイプインスペクターモジュール124は、データ110A内のヘッダ情報またはデータ構造を利用してファイル110の真のファイル形式に関する判定を行うことができる。ファイル110の真のファイル形式が判定されると、アプリケーション104は、真のファイル形式をブロックポリシー114と比較する。ファイル110の真のファイル形式が、ブロックポリシー114によって、開かれることを阻止されるものとして識別されなかった場合、アプリケーション104は、そのファイルをメモリにロードし、ファイル110内のデータを追加、編集および保存するためのファイルへのアクセスをユーザーに与えることによってファイル110を開く。
ファイル110の真のファイル形式が、ブロックポリシー114によって、開かれることが阻止されるものとして識別された場合、アプリケーション104はファイル110が開かれることを阻止する。一実施形態では、アプリケーション104は、そのファイルが開かれることを阻止されるファイル形式であることを示すメッセージをユーザーに対して表示する。
別の実施形態では、ファイル110が開かれることを阻止されると判定されたことに応答して、ファイル110をその真のファイルタイプから開かれることを阻止されない第2のファイルタイプに変換するために、コンバーター106を起動することができる。この実施形態では、コンバーター106は、限定的プロセス120にロードされ、アプリケーション104によって開かれることを阻止されない第2のファイルにファイル110を変換するために使用される。
システム100のいくつかの実施形態では、管理者は、特定のファイル形式のファイルに対するデフォルトのハンドラーとしてコンバーター106を設定することができる。特定のファイル形式が脆弱であると識別されたゼロデイエクスプロイトが発生した場合、管理者は、コンバーター106を脆弱な形式のファイルに対するデフォルトのハンドラーとして設定することによって、コンピューターシステムまたはネットワークへの起こり得る被害を軽減することができる。これにより、ユーザーが脆弱なファイル形式で格納されたファイルを開こうとするといつでもコンバーター106が起動されてそのファイルを別の形式に変換するため、ゼロデイエクスプロイトの被害の可能性を低減する。前述のとおり、この変換は、悪意のあるコードが変換済みファイルに移される/格納されることをなくす。更に、コンバーター106は、限定的プロセス120にロードされるため、実行した悪意のあるコードがコンピューターシステムまたはネットワークに及ぼす影響も制限される。
いくつかの実施形態では、管理者は、脆弱な形式のファイルを阻止するようにアプリケーション104のブロックポリシーを設定することにより、ゼロデイエクスプロイトへの追加予防措置を講じることができる。従って、コンバーター106をデフォルトのハンドラーとして設定することと組み合わせて、コンピューターシステムまたはネットワークは、脆弱な形式のファイルに含まれる悪意のあるコードによって起こされ得る被害に対する堅固な防衛を有する。
図2は、システム200を示し、コンバーター106をより詳細に示す。システム200は、第1のファイル形式(ファイル形式1)のファイル202A、コンバーター106、第2のファイル形式(ファイル形式2)の変換済みファイル202B、ならびに、レジストリー112を有するオペレーティングシステム102を含む。図2に示す実施形態では、コンバーター106は、限定的プロセス120にロードされ、ファイル形式1からファイル形式2への変換が限定的プロセス120内で実行される。限定的プロセス120は、オペレーティングシステム102とオペレーティングシステム102が実行される基礎となるコンピューターシステムとに対する制限されたアクセス特権を有する。これにより、悪意のあるコード204などの悪意のあるコードが実行された場合でも、それがオペレーティングシステム102および基礎となるコンピューターシステムに与える被害は確実に制限されるようにする。図2は、第1のファイル形式のファイル202Aを第2のファイル形式の変換済みファイル202Bに変換し、そのプロセスで変換済みファイルのデータから悪意のあるコード204を除去するまたは無効にするコンバーター106の実施形態の詳細を示す。
動作中、システム200は先ず、コンバーター106を起動する。コンバーター106の起動は、例えばコンバーター106を表すアイコンをダブルクリックすることによって、ユーザーがコンバーター106の起動を要求するよって起こり得る。別法として、ユーザーは、例えばファイル202Aのアイコンをダブルクリックすることによって、ファイル202Aが開かれることを要求することができる。この場合、オペレーティングシステム102は、ファイル202A(またはそのファイル拡張子)をコンバーター106と関連付け、コンバーター106の起動を開始することができる。
コンバーター106は、起動されると、限定的プロセス120にロードされる。起動されたコンバーター106は、レジストリー112から設定情報をロードすることができる。設定情報は、プロセス120がそれにより限定される特定の機構を示す情報を含むことができる。プロセス120は、オペレーティングシステム102とオペレーティングシステム102が実行する基礎となるコンピューターシステムとに対する制限されたアクセス特権を有する。当業者には理解されるように、プロセス120に課される特定の制限ならびにプロセス120がそれにより限定される機構は、具体的なオペレーティングシステム102によって、またファイル202Aに帰されたリスクのレベルなどの他の設計考慮事項によって異なる。
いくつかの実施形態で、プロセス120は、特定の動作を実行するためのおよび/またはオペレーティングシステム102の特定の機能をコールするための許可を拒否される。例えば、レジストリー112は様々なアプリケーションで感知可能な設定情報を格納するため、プロセス120は、オペレーティングシステム102のレジストリー112の情報の読取りまたは書込みのための許可を拒否される。しかしながら、プロセス120は、他の記憶位置でデータを読み取るまたは書き込むことを許容される。他の実施形態では、プロセス120は、ファイル形式1からファイル形式2へのファイルの変換に必要な機能だけを実行するように限定される。例えば、プロセス120は、変換途中のファイル(例えば、ファイル202A)からデータを読み取ることだけを許容され、ファイル形式2の変換済みの情報を有する変換済みファイル(例えばファイル202B)にデータを書き込むことだけを許容される。
前述のとおり、プロセス120がそれにより限定される機構は、特定のオペレーティングシステム102によって決まる。一実施形態では、オペレーティングシステム102は、1つのプロセスのアクセス特権を制限するためにいくつかの方法を提供する「WINDOWS(登録商標)」オペレーティングシステムの1つのバージョンである。例えば、「WINDOWS(登録商標)」オペレーティングシステムの複数のバージョンにおいては、各プロセスは、プロセスのシステム規模の特権の一覧を含む、そのプロセスのセキュリティコンテキストを記述した、関連付けられたアクセストークンを有する。限定的なセキュリティコンテキストを一般に記述するアクセストークンは、限定的トークンと呼ばれる。限定的トークンは、システム規模の特権の制限されたセットを記述する。一実施形態では、プロセス120は、システム規模の特権の制限されたセットを記述する限定的トークンに関連付けられることによって限定される。
「WINDOWS(登録商標)」オペレーティングシステムの1つのバージョンを使用するシステム200の他の実施形態では、プロセス120は、ジョブオブジェクトと関連付けられることによって限定されることがある。1つのジョブオブジェクトは、プロセスの1群を1つの単位として管理できるようにする。ジョブオブジェクトは、それらに関連付けられたプロセスの属性を制御する。ジョブオブジェクトは、ワーキングセットのサイズ、プロセスのプライオリティおよびエンドオブジョブ時間制限などの関連付けられたプロセスへの制限を実施するために使用することができる。一実施形態では、プロセス120は、プロセス120の事前定義の制限を実施するジョブオブジェクトと関連付けられることによって限定される。
他の実施形態では、プロセス120は、デスクトップコンテナまたはウィンドウステーションを使用して限定されることがある。「WINDOWS(登録商標)」オペレーティングシステムの複数のバージョンは、数人のユーザーが1つのウィンドウステーションにログオンできるようにするために、デスクトップコンテナを提供する。デスクトップコンテナは、ウィンドウステーション内に含まれる保護されたコンテナオブジェクトである。デスクトップコンテナは、「WINDOWS(登録商標)」オペレーティングシステムの複数のバージョンによって実装されるように、ユーザーインタフェース要素の論理的集まりであり、この集まりが、ウィンドウステーションによって収容される。「WINDOWS(登録商標)」オペレーティングシステムのバージョン内で動作するプロセス間の通信のある特定の態様は、それらのプロセスが同一デスクトップに割り当てられているかどうかに基づいて統制され、ある場合において、通信は、それらのプロセスが同一のウィンドウステーションを共用しているかどうかによって統制される。プロセス間の通信は、セキュリティインプリケーションを有し、このために、いくつかの実施形態では、限定的プロセス120は別のウィンドウステーション(すべてのデスクトップはコンテナとしてウィンドウステーションを1つだけ有するので、別のデスクトップを暗に示す)で動作する。
「WINDOWS(登録商標)」オペレーティングシステムを使用して実装されるシステム200の実施形態では、プロセス120は、限定的トークン、ジョブオブジェクト、およびウィンドウステーション/デスクトップコンテナの組合せを使用して限定される。これらの機構のうちの2つ以上を使用することによって、ファイル202Aをファイル形式1からファイル形式2の変換済みファイル202Bに変換する間に、プロセス120で実行する悪意のあるコードによって引き起こされ得る被害を制限する堅固なセキュリティを提供する。1つの特定の実施形態では、プロセス120は、限定的トークン、ジョブオブジェクト、およびデスクトップコンテナの3つのすべてを使用して限定される。
コンバーター106は、限定的プロセス120にロードされた後、ファイル202Aをファイル形式1からファイル形式2の変換済みファイル202Bに変換する。前述のとおり、コンバーターはファイル202A内に存在し得る悪意のあるコード204の知識を有さず、その脆弱性の知識も有さない。実施形態では、コンバーター106は、パーサーおよびエンジンを使用してファイル202Aを変換する。パーサーは、ファイルを構文解析して、異なるファイル形式、即ちファイル形式2でエンジンによって表されるデータを抽出する。新たに表されたデータは、変換済みファイル202Bに格納される。一実施形態では、ファイル202Aを構文解析するプロセス中、パーサーは、ファイル202Aのヘッダ情報およびデータ構造などのファイル202A内の特徴を識別し、それを使用して、どのデータを変換済みファイル202Bに移すかを決定する。悪意のあるコード204は、変換済みファイル202Bに格納するデータを決定するためにコンバーター106によって使用される特徴を含まず、従って、変換済みファイル202Bには含まれない。コンバーター106のパーサーは、悪意のあるコード104を構文解析するときに、ファイル202Bにそのデータを移すために必要な特徴を認識しない。従って、悪意のあるコード204は、変換済みファイル202Bに移されるファイルデータから削除されることになる。その後、変換済みファイル202Bは安全に開かれ、限定的プロセス120の外部からアクセスすることができる。
他の実施形態では、悪意のあるコード204は、変換済みファイル202Bへと渡されることがある。アプリケーションは通常、ファイルを開く前にファイルをスキャンするためにパーサーを使用する。しばしば、悪意のあるコード204などの悪意のあるコードは、特定のファイル形式のファイルを開くように設計されたパーサーを狙う。即ち、悪意のあるコード204が、ファイル形式1のファイルを開くために使用されるパーサーを狙うことがある。従って、悪意のあるコード204が、変換済みファイル202Bに含まれていても、変換済みファイル202Bはファイル形式2のファイルを開くように設計されたパーサーによって開かれることになるので、大きなセキュリティ脅威をもたらすことにはならない。従って、実施形態では、ファイル形式1のファイル202Aをファイル形式2の変換済みファイル202Bにただ変換することにより、たとえ変換済みファイル202Bに悪意のあるコード204が含まれていても、その悪意のあるコードの脅威をなくす。
状況によっては、悪意のあるコード204は、コンバーター106がファイル202Aを変換しようとしているときにコンバーター106を攻撃することがある。詳述したように、コンバーター106は、限定的特権を有する限定的プロセス120内で動作する。従って、ファイル202Aの変換中に悪意のあるコード204がうまく実行したとしても、それが引き起こすことができる被害は制限されることになる。
実施形態では、コンバーター106によって実行される変換は、具体的にファイルから悪意のあるコードを除去するように設計されるソフトウェアアプリケーションに対する優位性を提供する。通常は、悪意のあるコードを除去するように設計されるアプリケーションは、悪意のあるコードまたは悪意のあるペイロードの格納に脆弱である場合がある検査すべき構造を識別するために探すべき特徴などの何らかの知識を有することを必要とする。一方、コンバーター106は、悪意のあるコード204の知識を有さず、むしろ、悪意のあるコード204が、そのデータをファイル形式1からファイル形式2に変換するのに必要な特徴を含まないという事実だけにより、変換済みファイル202Bに移されるデータから悪意のあるコード204が除去される。更に、悪意のあるコード204が変換済みファイル202Bに移された場合でも、変換済みファイル202Bの新しいファイル形式(例えば、ファイル形式2)のため、それは深刻なセキュリティ脅威をもたらさない。
いくつかの実施形態では、コンバーター106は、ファイル形式1をファイル形式2に変換することもまたファイル形式2をファイル形式1に変換し戻すこともできることを意味する両方向のコンバーターである。一実施形態では、コンバーター106は、変換済みファイル202Bを生成し、悪意のあるコード204を変換済みファイル202Bに移されることから取り除いた後、ファイル202Bをファイル形式1に変換し戻す。一例では、ファイル202Aは、セキュリティの脆弱性を有するものとして識別されたバイナリファイル形式(ファイル形式1)であることもある。結果として、ファイル202Aは、コンバーター106によって、悪意のあるコード204を除去または無効にしたXMLファイル形式(ファイル形式2)の変換済みファイル202Bに変換される。しかしながら、ユーザーは、XML形式のファイルを開くことができるアプリケーションを有さないことがある。そのため、次にファイル202Bは、ユーザーがそのファイルデータを開いてアクセスできるようにするために、バイナリファイル形式(ファイル形式1)に変換し戻される。
図3〜5は、実施形態による動作フロー300、400、および500を示す。動作フロー300、400、および500は、任意の適切なコンピューティング環境で実行されることができる。例えば、動作フローは、悪意のあるコードをファイルから除去し、ファイルを安全に開くために、システム100および200(図1および図2)などのシステムによって実行されることができる。従って、動作フロー300、400、および500の説明は、図1および図2のコンポーネントのうちの少なくとも1つを参照することができる。しかしながら、図1および図2のコンポーネントの参照は、説明のみを目的としたものであり、図1および図2の実装は、動作フロー300、400、および500のための非制限的な環境であることは理解されよう。
更に、動作フロー300、400、および500は、順次に特定の順番で示され、記載されているが、他の実施形態では、これらのオペレーションは、異なる順番で、複数回、および/または並行して実行することができる。更に、いくつかの実施形態では、1つまたは複数のオペレーションが省略または組み合わされることもある。
図3は、一実施形態による、ファイルから悪意のあるコードを除去するための動作フロー300を示す。オペレーション302では、ファイルを第1の形式から第2の形式に変換することができるコンバーターが限定的プロセスにロードされる。実施形態では、コンバーターは限定的プロセス120(図1および図2)にロードされるコンバーター106(図1および図2)である。限定的プロセス120は、例えばオペレーティングシステム102などのオペレーティングシステムにアクセスするための制限された特権を有する。このプロセスに設定された限定が、コンバーターによるファイルの変換中に実行された悪意のあるコードによって生み出される被害の可能性を制限する。
オペレーション302は、例えばコンバーターを表すアイコンをダブルクリックすることによって、コンバーターの起動をユーザーが要求した結果として開始されることができる。別法として、ユーザーは、例えばファイルのアイコンをダブルクリックすることによって特定のファイルが開かれることを要求することができ、それに応答して、オペレーション302でコンバーターを限定的プロセスにロードすることによってコンバーターの起動が開始する。
コンバーターが限定的プロセスにロードされた後、動作フローはオペレーション304に移り、ファイルを第1の形式から第2の形式に変換することによって悪意のあるコードが除去される。オペレーション304は、限定的プロセス内で実行される。一実施形態では、変換は、限定的プロセス120内でコンバーター106によって実行される。前述のとおり、コンバーター106は第1のファイル形式のファイルを構文解析し、そのファイルからデータを抽出するために使用されるファイル内の特徴を識別する。抽出されたデータは次に、第2のファイル形式の変換済みファイルに格納される。変換済みファイルは、第1のファイルに組み込まれている可能性がある悪意のあるコードを含まない。変換済みファイルは次に、ファイルを変換する際に使用された限定的プロセスよりも限定の少ないプロセスで安全に開くことができる。
図4は、一実施形態による、ファイル内のデータにアクセスために安全にファイルを開くための動作フロー400を示す。オペレーション402で、ファイルを開くことを求める要求が受信される。一実施形態では、その要求はコンバーター106(図1および図2)などのコンバーターによって受信される。例えば、ユーザーは、コンバーターを起動し、次にコンバーターを介してファイルを選択することによってファイルを開こうとすることができる。別の実施形態では、要求はアプリケーション104(図1)などのアプリケーションによって受信される。ユーザーは、アプリケーションを起動し、次にファイルを選択することによって、ファイルを開こうとすることができる。いくつかの実施形態では、ファイルのアイコンをダブルクリックすることなどによって、ユーザーがファイルを選択するときに、要求が受信される。
動作フローは次にオペレーション404へと移り、ファイルを第1の形式から第2の形式に変換することができるコンバーターが限定的プロセスにロードされる。実施形態では、コンバーターは、限定的プロセス120(図1および図2)にロードされる、コンバーター106(図1および図2)である。限定的プロセスは、オペレーティングシステムに機能を要求するための、また基礎となるコンピューターシステム内のリソースにアクセスするための制限された特権を有する。これにより、プロセス120内で実行する悪意のあるコードによってもたらされ得る被害を軽減する。
オペレーション406で、コンバーターはファイルを第1のファイル形式から変換して第2のファイル形式の第2のファイルを生成する。実施形態では、ファイルを変換するプロセスで、ファイル内に組み込まれている可能性がある悪意のあるコードを第2のファイルに格納されないように削除する。悪意のあるコードの削除は、悪意のあるコードの知識または悪意のあるコードによって利用される脆弱性の知識なしに行われる。他の実施形態では、ファイルを第1のファイル形式から第2のファイル形式に単に変換することによって、ファイル内の悪意のあるコードを無効にすることができる。実施形態では、コンバーターは、ファイルを構文分析してそのファイルからデータを抽出し、第2のファイルに格納するコンバーター106(図1および図2)である。
オペレーション406の後、フローはオペレーション408に移り、ファイルが開かれる。実施形態では、オペレーション408は、第2のファイル形式の変換済みファイルを開き、そこへのアクセスを提供することができるアプリケーションの起動を含む。他の実施形態では、オペレーション408は、変換済みファイルを再度変換するなどのいくつかの追加オペレーションを含むことがある。例えば、オペレーション406で使用されるコンバーターは、ファイルを第1のファイル形式から第2のファイル形式に変換することができ、また第2のファイル形式のファイルを第1のファイル形式に変換することもできる両方向のコンバーターでもよい。一実施形態では、オペレーション408は、コンバーターを使用して、第2のファイル形式のファイルを元の第1のファイル形式に変換し戻すことを含む。このオペレーションに、第1のファイル形式でファイルを開くことができるアプリケーションの起動を続けることができる。
他の実施形態では、ファイルを第2のファイル形式から第3のファイル形式に変換するために別のコンバーターが使用されることがある。この実施形態では、オペレーション408は、第2のファイル形式のファイルを第3のファイル形式に変換する第2のコンバーターの起動を含む。このオペレーションに、第3のファイル形式のファイルを開き、そこへのアクセスを提供することができるアプリケーションの起動を続けることができる。
図5は、一実施形態による、ファイルを安全に開くための動作フロー500を示す。オペレーション502で、ファイルを開くことを求める要求が受信される。一実施形態では、その要求はアプリケーション104(図1)などのアプリケーションによって受信される。例えば、ユーザーは、アプリケーションを起動し次に、ファイルを選択することができる。いくつかの実施形態では、ユーザーはファイルを選択し、それがファイルを開くための適切なアプリケーションを自動的に起動する(またはファイルを開くためのアプリケーションを選択するようにユーザーに促す)ことができる。
オペレーション504では、ファイルからのファイルデータが検査されて、真のファイル形式を判定する。一実施形態では、タイプインスペクターモジュール124(図1)などのタイプインスペクターモジュールを有するアプリケーションが、ファイルがメモリにロードされる前にファイルデータを検査するために使用される。タイプインスペクターモジュールによって検査されるファイルデータは、ファイル内のデータのほんの一部分だけである。ヘッダ情報およびデータ構造などのデータ内の特徴を識別することによって、タイプインスペクターモジュールは、ファイル内のデータのすべてまたは大部分を検査する必要なしに、真のファイル形式について判定を行うことができる。
オペレーション506では、そのファイルの真のファイルタイプが開かれることを阻止されるものかどうかについて判定が行われる。実施形態では、この判定は、どのファイル形式が開くのを阻止されているかを示す、ブロックポリシー114A(図1)などのブロックポリシーにアクセスすることによって行われる。オペレーション506で、その真のファイル形式は阻止されないと判定された場合、次にフローはオペレーション508へ移り、そこでファイルをメモリにロードし、ファイルへのアクセスを提供することによって、ファイルが開かれる。例えば、一実施形態では、アプリケーション104などのアプリケーションは、ユーザーがファイル内のデータを編集、追加、および保存することができるようにするために、ファイルをメモリにロードし、アプリケーションを介してユーザーにアクセスを提供することによって、オペレーション508を実行する。
オペレーション506で、ファイルの真のファイル形式が開くことを阻止されると判定された場合、フローはオペレーション510に移る。オペレーション510で、ファイルを第1の形式から第2の形式に変換することができるコンバーターが、限定的プロセスにロードされる。実施形態で、コンバーターは、限定的プロセス120(図1および図2)にロードされるコンバーター106(図1および図2)である。限定的プロセスは、オペレーティングシステムに機能を要求するための、また基礎となるコンピューターシステム内のリソースにアクセスするための制限された特権を有する。制限された特権は、プロセス120内で実行する悪意のあるコードによってもたらされ得る被害を軽減する。
オペレーション512で、限定的プロセスにロードされたコンバーターは、ファイルを第1のファイル形式から変換して第2のファイル形式の第2のファイルを生成する。いくつかの実施形態では、ファイルを変換するプロセスは、第1のファイル内に組み込まれている可能性がある悪意のあるコードが第2のファイルに含まれないように削除する。悪意のあるコードの削除は、悪意のあるコードの知識または悪意のあるコードによって利用される脆弱性の知識なしに行われる。他の実施形態では、ファイルを第1のファイル形式から第2のファイル形式に単に変換することによって、第1のファイル形式のファイルを開くために使用されるパーサーを狙う悪意のあるコードのリスクが解消される。実施形態では、コンバーターは、第1のファイル形式のファイルを構文解析し、ファイルからデータを抽出するために使用されるファイル内の特徴を識別する、コンバーター106(図1および図2)である。抽出されたデータは次に、第2のファイル形式の第2のファイルに格納される。第2のファイルは、第1のファイルに組み込まれている可能性がある悪意のあるコードを含まない。
オペレーション512の後、フローはオペレーション508に移り、変換済みファイルが開かれる。実施形態では、オペレーション508は、第2のファイル形式の変換済みファイルを開き、そこへのアクセスを提供することができるアプリケーションの起動を含む。他の実施形態では、オペレーション508は、変換済みファイルを再度変換するなどのいくつかの追加オペレーションを含むことがある。
図6は、本明細書に記載された実施形態を実施するために使用することができる一般的なコンピューター環境600を図示する。コンピューター環境600は、コンピューター環境の一例にすぎず、コンピューターおよびネットワークのアーキテクチャの使用または機能の範囲に関する制限を示唆するものではない。また、コンピューター環境600は、コンピューター環境600の例に図示されたコンポーネントのうちの1つまたはその組合せに関する依存または要件を有するものとして解釈されるべきでない。
最も基本的な構成では、システム600は通常は少なくとも1つの処理装置602およびメモリ604を含む。コンピューターデバイスの厳密な構成およびタイプによって、メモリ604は、揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリなど)または、これら2つの何らかの組合せでもよい。この最も基本的な構成は、図6に点線606で図示されている。図6に示すとおり、ブロックポリシー114およびタイプインスペクターモジュール124を含むアプリケーション104(図1)などのアプリケーションは、システムメモリ604にロードされてシステム600のユーザーによって使用されることができる。図6はまた、ファイルに組み込まれている可能性がある悪意のあるコードを除去するために、ファイルを第1の形式から第2の形式の変換済みファイルに変換するためにコンバーター106がそこにロードされる限定的プロセス120を示す。
更に、システム600は、追加機構/機能も有することができる。例えば、システム600は、磁気または光学式のディスクまたはテープを含むがこれらに限定されない追加記憶装置(取外し可能なおよび/または固定の)も含むことができる。かかる追加記憶装置は、取外し可能記憶装置608および固定記憶装置610により図6に示されている。コンピューター記録媒体は、コンピューター可読命令、データ構造、プログラムモジュールまたはその他のデータなどの情報の格納のための任意の方法または技術で実装される、揮発性および不揮発性の、取外し可能なおよび固定の媒体を含む。メモリ604、取外し可能な記憶装置608、および固定記憶装置610は、すべてコンピューター記録媒体の例である。コンピューター記録媒体は、RAM、ROM、EEPROM、フラッシュメモリまたはその他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)またはその他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶装置、或いは、所望の情報を格納するために使用することができ、およびシステム600によってアクセスすることができるその他の媒体を含むが、これらに限定されない。かかるコンピューター記録媒体は、システム600の一部であってもよい。
システム600は、システムが他の装置と通信できるようにする通信接続612も含むことができる。通信接続612は、通信媒体の一例である。通信媒体は通常は、コンピューター可読の命令、データ構造、プログラムモジュール、または、搬送波などの変調されたデータ信号または他の移送機構内にあるその他のデータを実施し、任意の情報配信媒体を含む。「変調されたデータ信号」とは、その特性のうちの1つまたは複数が、信号内で情報を符号化するように設定または変更された信号を表す。限定ではなく、例として、通信媒体は、有線ネットワークまたは直接配線式の接続などの有線媒体と、音響、RF、赤外線およびその他の無線媒体などの無線媒体を含む。本明細書において、コンピューター可読媒体は、記録媒体と通信媒体の両方を含む。
システム600は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置614も有することができる。表示装置、スピーカー、プリンターなどの出力装置616もまた含まれ得る。これらすべての装置は、当業者には周知であり、本明細書において詳述される必要はない。
本明細書全体において、「実施形態」、「一実施形態」、「別の実施形態」および「いくつかの実施形態」は、特定の記載された特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。従って、かかる言葉の使用は単に1つの実施形態より多くの実施形態を参照することがある。更に、本明細書に記載された特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な形式で結合され得る。
しかしながら、本発明は、1つまたは複数の特定の詳細なしで、或いは他の方法、リソース、材料などにより、実施され得ることが、当業者には理解されよう。他の例では、本発明の態様を分かり難くすることを単に避けるために、周知の構造、リソース、またはオペレーションは詳細には示されていないか又は記載されていない。
本発明の実施形態およびアプリケーションの例が示され、記載されているが、一方で前述の正確な構成およびリソースに本発明は限定されないことを理解されたい。当業者には明らかな様々な修正、変更、および変形形態が、本発明の特許請求の範囲を逸脱することなく本明細書において開示された本発明の方法およびシステムの構成、オペレーションおよび詳細で行われ得る。

Claims (19)

  1. 少なくとも1つのプロセッサによって実行される、第1のファイル形式のファイルから悪意のあるコードを除去するための方法であって、
    前記ファイルの変換中に悪意のあるコードによって引き起こされるダメージを抑えるために、前記ファイルを開く要求に応答して前記ファイルを前記第1のファイル形式から第2のファイル形式に変換することができるコンバーターを限定的プロセスにロードすることであって、前記限定的プロセスにおける前記コンバーターは、オペレーティングシステムに対する制限されたアクセス権を有する動作と、
    前記限定的プロセスにロードされた前記コンバーターを使用して悪意のあるコードを除去して、前記ファイルを前記第1のファイル形式から前記第2のファイル形式の変換済みファイルに変換する動作と、
    前記変換の後に、前記変換済みファイルを開く動作と
    を含むことを特徴とする方法。
  2. 前記コンバーターは、前記第1のファイル形式のすべてのファイルに対するハンドラーとして指定されることを特徴とする請求項1に記載の方法。
  3. 前記限定的プロセスは、オペレーティングシステムに機能を要求するための制限された特権を有することを特徴とする請求項1に記載の方法。
  4. 前記限定的プロセスは、前記ファイルからのデータの読取りと前記変換済みファイルへのデータの書込みとに制限されることを特徴とする請求項3に記載の方法。
  5. 前記限定的プロセスは、限定的トークン、ジョブオブジェクト、デスクトップコンテナおよびそれらの組合せからなる群のうちの1つに基づいて、制限された特権を有することを特徴とする請求項3に記載の方法。
  6. 前記除去する動作の後に、前記変換済みファイルを第3のファイル形式に変換することを更に含むことを特徴とする請求項1に記載の方法。
  7. 前記変換済みファイルを前記変換することは前記コンバーターによって実行され、前記第3のファイル形式は前記第1のファイル形式と同一であることを特徴とする請求項6に記載の方法。
  8. プロセッサによってアクセスされるとファイルを開く方法を前記プロセッサに実行させるコンピューター実行可能命令を格納したコンピューター読取可能記憶媒体であって、前記方法は、
    第1のファイル形式のファイルを開くことを求める要求を受信するステップと、
    前記ファイルの変換中に悪意のあるコードによって引き起こされるダメージを抑えるために前記ファイルを前記第1のファイル形式から第2のファイル形式に変換することができるコンバーターを限定的プロセスにロードするステップであって、前記コンバーターにおける前記限定的プロセスは、オペレーティングシステムに対する制限されたアクセス権を有する、ステップと、
    前記限定的プロセスにロードされた前記コンバーターを使用して、前記ファイルを前記第1のファイル形式から前記第2のファイル形式の変換済みファイルに変換し、前記変換により前記ファイル内に存在する悪意のあるコードを前記変換済みファイルから削除するステップと、
    前記変換の後、前記変換済みファイルを開くステップと
    を含むことを特徴とするコンピューター読取可能記憶媒体。
  9. 前記コンバーターは、前記第1のファイル形式のすべてのファイルに対するハンドラーとして指定されることを特徴とする請求項8に記載のコンピューター読取可能記憶媒体。
  10. 前記限定的プロセスは、オペレーティングシステムに機能を要求するための制限された特権を有することを特徴とする請求項8に記載のコンピューター読取可能記憶媒体。
  11. 前記限定的プロセスは、前記ファイルからのデータの読取りと前記変換済みファイルへのデータの書込みとに制限されることを特徴とする請求項10に記載のコンピューター読取可能記憶媒体。
  12. 前記限定的プロセスは、限定的トークン、ジョブオブジェクト、デスクトップコンテナ、およびそれらの組合せからなる群のうちの1つに基づいて、制限された特権を有することを特徴とする請求項10に記載のコンピューター読取可能記憶媒体。
  13. 前記開くステップは、前記第2のファイル形式の前記変換済みファイルを開くことができるアプリケーションを起動することを更に含むことを特徴とする請求項8に記載のコンピューター読取可能記憶媒体。
  14. 前記開くステップは、前記変換済みファイルを第3のファイル形式に変換することを更に含むことを特徴とする請求項13に記載のコンピューター読取可能記憶媒体。
  15. 少なくとも1つのプロセッサによって実行されるファイルを開く方法であって、
    ファイルを開くことを求める要求を受信する動作と、
    前記ファイルのデータの一部を検査して、前記ファイルの真のファイル形式を決定する動作と、
    前記真のファイル形式が、開けることが阻止されている形式のものであるかどうかを判定する動作と、
    前記ファイル形式が阻止されている形式のものではないとの判定に応答して、前記ファイルを開く動作と、
    前記ファイル形式が阻止されている形式のものであるとの判定に応答して、
    前記ファイルの変換中に悪意のあるコードによって引き起こされるダメージを抑えるために前記ファイルを第1のファイル形式から第2のファイル形式に変換することができるコンバーターを限定的プロセスにロードする動作であって、前記限定的プロセスにおける前記コンバーターは、オペレーティングシステムに対する制限されたアクセス権を有する、動作と、
    前記限定的プロセスにロードされた前記コンバーターを使用して前記ファイルを前記第1のファイル形式から前記第2のファイル形式の変換済みファイルに変換し、前記変換によって前記ファイルに存在する悪意のあるコードを前記変換済みファイルから削除する動作と、
    前記変換の後、前記変換済みファイルを開く動作と
    を含むことを特徴とする方法。
  16. 前記判定する動作は、開けることが阻止されている前記形式を示すオープンブロックポリシーにアクセスすることを含むことを特徴とする請求項15に記載の方法。
  17. 前記オープンブロックポリシーは、オペレーティングシステムのレジストリーに格納されていることを特徴とする請求項16に記載の方法。
  18. 前記限定的プロセスは、前記オペレーティングシステムに機能を要求するための制限された特権を有することを特徴とする請求項17に記載の方法。
  19. 前記限定的プロセスは、前記ファイルからのデータの読取りと前記変換済みファイルへのデータの書込みとに制限されることを特徴とする請求項18に記載の方法。
JP2009552004A 2007-02-26 2008-02-07 限定的プロセスでのファイル変換 Expired - Fee Related JP4629796B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/679,068 US7797743B2 (en) 2007-02-26 2007-02-26 File conversion in restricted process
PCT/US2008/053360 WO2008106289A1 (en) 2007-02-26 2008-02-07 File conversion in restricted process

Publications (3)

Publication Number Publication Date
JP2010519662A JP2010519662A (ja) 2010-06-03
JP2010519662A5 JP2010519662A5 (ja) 2010-11-25
JP4629796B2 true JP4629796B2 (ja) 2011-02-09

Family

ID=39717485

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009552004A Expired - Fee Related JP4629796B2 (ja) 2007-02-26 2008-02-07 限定的プロセスでのファイル変換

Country Status (9)

Country Link
US (1) US7797743B2 (ja)
EP (1) EP2115653B1 (ja)
JP (1) JP4629796B2 (ja)
KR (1) KR101467595B1 (ja)
CN (1) CN101622624B (ja)
BR (1) BRPI0807461A2 (ja)
RU (1) RU2468426C2 (ja)
TW (1) TWI395113B (ja)
WO (1) WO2008106289A1 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8359647B1 (en) * 2007-07-19 2013-01-22 Salesforce.Com, Inc. System, method and computer program product for rendering data of an on-demand database service safe
KR100974886B1 (ko) * 2007-12-10 2010-08-11 한국전자통신연구원 파일에 삽입된 악성 코드 제거 장치 및 방법
JP2009271780A (ja) * 2008-05-08 2009-11-19 Canon Inc 電子文書変換装置および電子文書変換方法
US8281398B2 (en) * 2009-01-06 2012-10-02 Microsoft Corporation Reordering document content to avoid exploits
FR2946211B1 (fr) * 2009-05-28 2011-05-27 Sagem Comm Procede de traitement de document par un ordinateur distant, systeme et dispositif amovible connectable a chaud pour la mise en oeuvre de ce procede
US9389947B2 (en) 2009-07-29 2016-07-12 Reversinglabs Corporation Portable executable file analysis
US8566943B2 (en) * 2009-10-01 2013-10-22 Kaspersky Lab, Zao Asynchronous processing of events for malware detection
US8581941B2 (en) * 2009-10-02 2013-11-12 Panasonic Corporation Backlight device and display apparatus
US8140735B2 (en) 2010-02-17 2012-03-20 Novell, Inc. Techniques for dynamic disk personalization
US9245114B2 (en) * 2010-08-26 2016-01-26 Verisign, Inc. Method and system for automatic detection and analysis of malware
KR101156227B1 (ko) * 2010-11-22 2012-06-18 주식회사 파수닷컴 전처리가 수행된 파일을 실행하기 위한 파일 처리장치 및 그 방법을 컴퓨터에서 실행시키기 위한 기록매체
CN102855432B (zh) * 2011-06-27 2015-11-25 北京奇虎科技有限公司 一种文件、文件夹解锁和删除方法及系统
US9118686B2 (en) 2011-09-06 2015-08-25 Microsoft Technology Licensing, Llc Per process networking capabilities
US8990561B2 (en) 2011-09-09 2015-03-24 Microsoft Technology Licensing, Llc Pervasive package identifiers
US9773102B2 (en) * 2011-09-09 2017-09-26 Microsoft Technology Licensing, Llc Selective file access for applications
US9800688B2 (en) 2011-09-12 2017-10-24 Microsoft Technology Licensing, Llc Platform-enabled proximity service
US20140223028A1 (en) * 2011-12-30 2014-08-07 Paul J. Peng Sharing Data Among Smart Devices and a Cloud Network
US8667594B1 (en) 2012-03-13 2014-03-04 Bromium, Inc. Securing file trust with file format conversions
US9349008B1 (en) 2012-03-13 2016-05-24 Bromium, Inc. Safe printing
US8719933B1 (en) 2012-03-13 2014-05-06 Bromium, Inc. Safe printing
US9047293B2 (en) 2012-07-25 2015-06-02 Aviv Grafi Computer file format conversion for neutralization of attacks
US10356204B2 (en) 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers
US9858247B2 (en) 2013-05-20 2018-01-02 Microsoft Technology Licensing, Llc Runtime resolution of content references
US9686304B1 (en) * 2013-06-25 2017-06-20 Symantec Corporation Systems and methods for healing infected document files
US9805195B1 (en) * 2013-09-17 2017-10-31 The Boeing Company System and method for transferring files between computer systems using information invariant data transformation
US20160232350A1 (en) * 2013-10-17 2016-08-11 Softcamp Co., Ltd. System and method for inspecting data through file format conversion
US9582665B2 (en) 2014-01-21 2017-02-28 Operation and Data integrity Ltd. Technologies for protecting systems and data to prevent cyber-attacks
US20160006754A1 (en) * 2014-07-01 2016-01-07 Mcafee, Inc. Secure enclave-rendered contents
US10021128B2 (en) * 2015-03-12 2018-07-10 Forcepoint Llc Systems and methods for malware nullification
WO2017209564A1 (ko) * 2016-06-02 2017-12-07 주식회사 플런티코리아 앱 리스트 제공 방법 및 그 장치
US10607004B2 (en) * 2016-09-29 2020-03-31 Intel Corporation Methods and apparatus to improve feature engineering efficiency with metadata unit operations
US9858424B1 (en) 2017-01-05 2018-01-02 Votiro Cybersec Ltd. System and method for protecting systems from active content
US10331889B2 (en) 2017-01-05 2019-06-25 Votiro Cybersec Ltd. Providing a fastlane for disarming malicious content in received input content
US10331890B2 (en) 2017-03-20 2019-06-25 Votiro Cybersec Ltd. Disarming malware in protected content
US10013557B1 (en) 2017-01-05 2018-07-03 Votiro Cybersec Ltd. System and method for disarming malicious code
JP6841703B2 (ja) * 2017-03-29 2021-03-10 アドソル日進株式会社 コンピュータ装置
TWI723664B (zh) * 2019-12-05 2021-04-01 中華電信股份有限公司 惡意圖像檔案淨化方法及系統
US11822699B1 (en) 2021-10-21 2023-11-21 Secure Computing, Llc Preventing surreptitious access to file data by malware
US11983288B1 (en) 2021-11-05 2024-05-14 Secure Computing, Llc Operating system enhancements to prevent surreptitious access to user data files

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184692A (ja) * 1997-12-22 1999-07-09 Canon Inc 通信装置
JP2001067216A (ja) * 1999-08-30 2001-03-16 Hiroshi Yoshida コンピュータ・ウイルス防衛除去の為の論理方式及び同システム
JP2002517852A (ja) * 1998-06-12 2002-06-18 マイクロソフト コーポレイション 信頼できないコンテントを安全に実行するための方法およびシステム
JP2003186632A (ja) * 2001-12-20 2003-07-04 Oki Electric Ind Co Ltd 遠隔端末接続システム
JP2003223521A (ja) * 2002-01-29 2003-08-08 Mitsubishi Electric Corp 設備管理システム及び設備管理方法
JP2003259066A (ja) * 2002-03-04 2003-09-12 Ricoh Co Ltd ネットワークファクシミリ装置
US6901519B1 (en) * 2000-06-22 2005-05-31 Infobahn, Inc. E-mail virus protection system and method
JP2005157598A (ja) * 2003-11-21 2005-06-16 Daiwa Institute Of Research Ltd ウィルス感染防止システム、メール閲覧用プログラム、および添付ファイル閲覧用プログラム
JP2006107505A (ja) * 2004-10-01 2006-04-20 Microsoft Corp アクセス認可のapi

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058000A (en) 1987-06-30 1991-10-15 Prime Computer, Inc. System for accessing remote heterogeneous database including formatting retrieved data into applications program format
US5191525A (en) 1990-01-16 1993-03-02 Digital Image Systems, Corporation System and method for extraction of data from documents for subsequent processing
US5278978A (en) 1990-03-26 1994-01-11 International Business Machines Corporation Method and system for describing and exchanging data between heterogeneous database systems with data converted by the receiving database system
US5493671A (en) 1993-06-04 1996-02-20 Marcam Corporation Method and apparatus for conversion of database data into a different format on a field by field basis using a table of conversion procedures
US5793498A (en) 1995-03-10 1998-08-11 Telogy Networks, Inc. System for transferring facsimile data without dedicated G3 hardware
US5696822A (en) * 1995-09-28 1997-12-09 Symantec Corporation Polymorphic virus detection module
US6067410A (en) * 1996-02-09 2000-05-23 Symantec Corporation Emulation repair system
JP2977476B2 (ja) 1995-11-29 1999-11-15 株式会社日立製作所 機密保護方法
PL182423B1 (pl) * 1995-12-29 2001-12-31 Tixi Com Gmbh Telecomm Sposób i uklad mikrokomputerowy do bezposredniego transferu danych PL PL PL
US5812398A (en) 1996-06-10 1998-09-22 Sun Microsystems, Inc. Method and system for escrowed backup of hotelled world wide web sites
US6336124B1 (en) * 1998-10-01 2002-01-01 Bcl Computers, Inc. Conversion data representing a document to other formats for manipulation and display
US6523172B1 (en) 1998-12-17 2003-02-18 Evolutionary Technologies International, Inc. Parser translator system and method
US7017187B1 (en) 2000-06-20 2006-03-21 Citigroup Global Markets, Inc. Method and system for file blocking in an electronic messaging system
US6675373B1 (en) 2000-09-07 2004-01-06 Universal Conversion Technologies Automatic generation of balancing logic for data conversion
WO2002093334A2 (en) 2001-04-06 2002-11-21 Symantec Corporation Temporal access control for computer virus outbreaks
US7043634B2 (en) 2001-05-15 2006-05-09 Mcafee, Inc. Detecting malicious alteration of stored computer files
US6792543B2 (en) * 2001-08-01 2004-09-14 Networks Associates Technology, Inc. Virus scanning on thin client devices using programmable assembly language
US7369279B2 (en) 2003-03-13 2008-05-06 Sharp Laboratories Of America, Inc. System and method to restrict copying, scanning and transmittal of documents or parts of documents
US7552473B2 (en) 2003-08-12 2009-06-23 Symantec Corporation Detecting and blocking drive sharing worms
US7516442B2 (en) * 2003-10-23 2009-04-07 Microsoft Corporation Resource manifest
JP2005157898A (ja) 2003-11-27 2005-06-16 Mitsubishi Electric Corp Xml/データベース連携装置
US20040172551A1 (en) 2003-12-09 2004-09-02 Michael Connor First response computer virus blocking.
US7620990B2 (en) * 2004-01-30 2009-11-17 Microsoft Corporation System and method for unpacking packed executables for malware evaluation
US7757287B2 (en) 2004-04-19 2010-07-13 Computer Associates Think, Inc. Systems and methods for computer security
US7596809B2 (en) * 2004-06-14 2009-09-29 Lionic Corporation System security approaches using multiple processing units
US20060010495A1 (en) 2004-07-06 2006-01-12 Oded Cohen Method for protecting a computer from suspicious objects
WO2006038987A2 (en) 2004-09-30 2006-04-13 Citrix Systems, Inc. A method and apparatus for assigning access control levels in providing access to networked content files
ITRM20040517A1 (it) 2004-10-20 2005-01-20 Diego Angelo Tomaselli Metodo e sistema antivirus.
US20060106889A1 (en) * 2004-11-12 2006-05-18 Mannby Claes-Fredrik U Method, system, and program for managing revisions to a file

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184692A (ja) * 1997-12-22 1999-07-09 Canon Inc 通信装置
JP2002517852A (ja) * 1998-06-12 2002-06-18 マイクロソフト コーポレイション 信頼できないコンテントを安全に実行するための方法およびシステム
JP2001067216A (ja) * 1999-08-30 2001-03-16 Hiroshi Yoshida コンピュータ・ウイルス防衛除去の為の論理方式及び同システム
US6901519B1 (en) * 2000-06-22 2005-05-31 Infobahn, Inc. E-mail virus protection system and method
JP2003186632A (ja) * 2001-12-20 2003-07-04 Oki Electric Ind Co Ltd 遠隔端末接続システム
JP2003223521A (ja) * 2002-01-29 2003-08-08 Mitsubishi Electric Corp 設備管理システム及び設備管理方法
JP2003259066A (ja) * 2002-03-04 2003-09-12 Ricoh Co Ltd ネットワークファクシミリ装置
JP2005157598A (ja) * 2003-11-21 2005-06-16 Daiwa Institute Of Research Ltd ウィルス感染防止システム、メール閲覧用プログラム、および添付ファイル閲覧用プログラム
JP2006107505A (ja) * 2004-10-01 2006-04-20 Microsoft Corp アクセス認可のapi

Also Published As

Publication number Publication date
RU2468426C2 (ru) 2012-11-27
EP2115653B1 (en) 2018-04-11
EP2115653A1 (en) 2009-11-11
US20080209551A1 (en) 2008-08-28
JP2010519662A (ja) 2010-06-03
CN101622624A (zh) 2010-01-06
TWI395113B (zh) 2013-05-01
CN101622624B (zh) 2012-07-04
BRPI0807461A2 (pt) 2014-06-03
KR20090125068A (ko) 2009-12-03
US7797743B2 (en) 2010-09-14
EP2115653A4 (en) 2016-05-18
TW200844789A (en) 2008-11-16
WO2008106289A1 (en) 2008-09-04
RU2009132088A (ru) 2011-02-27
KR101467595B1 (ko) 2014-12-01

Similar Documents

Publication Publication Date Title
JP4629796B2 (ja) 限定的プロセスでのファイル変換
US9336390B2 (en) Selective assessment of maliciousness of software code executed in the address space of a trusted process
US11244051B2 (en) System and methods for detection of cryptoware
US10291634B2 (en) System and method for determining summary events of an attack
KR101201118B1 (ko) 바이러스 방지 소프트웨어 어플리케이션들의 지식 베이스를모으는 시스템 및 방법
US8281410B1 (en) Methods and systems for providing resource-access information
US8161563B2 (en) Running internet applications with low rights
US7478237B2 (en) System and method of allowing user mode applications with access to file data
EP2486507B1 (en) Malware detection by application monitoring
US7779472B1 (en) Application behavior based malware detection
US20100122313A1 (en) Method and system for restricting file access in a computer system
US7814549B2 (en) Direct process access
US20060200863A1 (en) On-access scan of memory for malware
US20110047618A1 (en) Method, System, and Computer Program Product for Malware Detection, Analysis, and Response
US20090320134A1 (en) Detecting Secondary Infections in Virus Scanning
AU2017201667B2 (en) Secure document importation via portable media
US7698742B1 (en) Method and apparatus for scanning exclusively locked files
WO2008017950A2 (en) System and method for protecting a computer from malware (malicious software) in an executable file based on removal criteria
RU2592383C1 (ru) Способ формирования антивирусной записи при обнаружении вредоносного кода в оперативной памяти
AU2006203351A1 (en) Direct Process Access

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101008

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101008

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20101008

TRDD Decision of grant or rejection written
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20101102

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101105

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4629796

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees