JP5326062B1 - 非実行ファイル検査装置及び方法 - Google Patents

非実行ファイル検査装置及び方法 Download PDF

Info

Publication number
JP5326062B1
JP5326062B1 JP2013100465A JP2013100465A JP5326062B1 JP 5326062 B1 JP5326062 B1 JP 5326062B1 JP 2013100465 A JP2013100465 A JP 2013100465A JP 2013100465 A JP2013100465 A JP 2013100465A JP 5326062 B1 JP5326062 B1 JP 5326062B1
Authority
JP
Japan
Prior art keywords
executable file
malicious
address
execution
information
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.)
Active
Application number
JP2013100465A
Other languages
English (en)
Other versions
JP2013239172A (ja
Inventor
チャ・スン・リム
ジュ・ソク・リ
Original Assignee
アンラブ,インコーポレイテッド
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 アンラブ,インコーポレイテッド filed Critical アンラブ,インコーポレイテッド
Application granted granted Critical
Publication of JP5326062B1 publication Critical patent/JP5326062B1/ja
Publication of JP2013239172A publication Critical patent/JP2013239172A/ja
Active 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
    • 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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • 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

Landscapes

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

Abstract

本発明は、非実行ファイル検査装置に関し、非実行ファイルのマルウェアと関連する悪意のある候補アドレス情報をロードするデータローディング部と、非実行ファイルに対応する応用プログラムが駆動されれば、メモリにロードされるモジュールの正常アドレス範囲情報を獲得し、悪意のある候補アドレス情報に対する中止点を設定するプログラム連結部と、中止点に対するイベントが発生すれば、次の実行アドレスが正常アドレス範囲情報に属するかを判断する悪意判断部とを含む。従って、本発明は、非実行ファイル内のマルウェアが実行される前に悪意のある非実行ファイルを迅速、且つ、正確に検知できるという効果を奏する。
【選択図】図2

Description

本発明は、非実行(Non-PE:Non-Portable Executable)ファイル検査装置及び方法に関するものである。具体的には、本発明は、非実行ファイルのマルウェアと関連する悪意のある候補アドレス情報を用いて、非実行ファイルがマルウェアを含んでいるかを検査する装置、方法及びコンピュータプログラムが記録されたコンピュータ読み取り可能な記録媒体に関するものである。
周知のように、インターネット及び無線通信機器の普及に伴い、マルウェア(malicious code)の感染経路が多様化しており、これによる被害の程度が年々増えている。
本明細書に記載した「マルウェア」とは、ユーザの意思と利益に反してシステムを破壊したり、情報を流出させたりするなどの悪意のある活動を行うように意図的に製作されたソフトウェアを意味する。マルウェアとは、ウイルス(virus)、ワーム(worm)、トロイの木馬(trojan)、バックドア(backdoor)、論理爆弾(logic bomb)、トラップドア(trap door)などのハッキングツール、悪意のあるスパイウェア(spyware)、アドウェア(ad-ware)などが挙げられる。
このようなマルウェアは、自己複製や自動繁殖機能を通じて、ユーザ識別情報(ID)とパスワードなどの個人情報の流出、対象システムの統制、ファイルの削除/変更、システムの破壊、アプリケーションプログラム/システムのサービス拒否、機密資料の流出、他のハッキングプログラムのインストールなどの問題を起こしており、その被害も非常に多様、且つ、深刻になっている。
一方、近年、話題となっているアドバンスドパーシスタントスレット(APT:Advanced Persistent Threat)攻撃は、攻撃者が特定のターゲットを定め、目標とした情報を盗み取るために、高度な攻撃技法を適用して持続的に多様な形態のマルウェアを活用する。特に、APT攻撃は、初期の侵入段階で検知できない場合が多く、主にマルウェアを含む非実行ファイルを用いる場合が多い。これは、非実行ファイルを実行する応用プログラム(例えば、文書又は画像処理プログラム)が基本的にある程度のセキュリティ脆弱性を有しているだけでなく、マルウェアを非実行ファイルに含めれば、ファイルの変更によって簡単に変種のマルウェアを生成できるためである。
このような特性のため、APT攻撃は、悪意のある非実行ファイルエクスプロイト(exploit)を用いてゼロデイ(Zero Day)攻撃を行う事例が多い。例えば、受信者が電子メールに添付された悪意のある非実行ファイルを何気なく開く場合、受信者のコンピュータは、悪意のあるファイルにより感染し、他のコンピュータを攻撃する可能性もあり、システムに侵入して機密資料を外部に流出する可能性がある。それだけでなく、非実行ファイルが多様な形式(フォーマット)を有しているため、悪意のある非実行ファイルを用いたゼロデイ・エクスプロイト(Zero-Day Exploit)は、分析家が非実行ファイルの悪意の有無を判断し、悪意のあるビヘイビアを分析するのにかなりの時間と努力が必要であり、分析期間中に発生する変形、又は新たに生成される数多くの悪意のある非実行ファイルに対応することは、殆ど不可能であると言える。
現在、このようなマルウェアを検知し、治療するためのマルウェア治療システム(ワクチンプログラム)に対する研究が持続的に行われており、これまで知られている大部分のマルウェア治療システム(ワクチンプログラム)は、実行ファイル内でマルウェアを検出するのが大半である。
このようにマルウェア治療システムが実行ファイルを対象にしてマルウェアを検出する理由は、大部分のマルウェアが特定のシステムで実行されるためには、該当システムで実行可能な形態となっているという点に起因する。
例えば、マルウェアがウィンドウシステムで実行されるためのファイルの拡張子は、exe、cpl、ocx、dll、vxd、sys、scr、drvなどがある。
しかし、近年、注目を集めている悪意のあるシェルコード(shell code)は、非実行ファイルのフォーマットを有する各種のファイルに挿入され、マルウェア治療システム及び、分析家からのがれる技術が利用されている。例えば、ウィンドウシステムでマルウェアの有する非実行ファイルの拡張子は、HWP、DOC、XLS、JS、HTML、JPGなどが挙げられる。
このような非実行ファイルに対する悪意の有無の検査のためには、分析家がファイル別に悪意の有無を判断しなければならない。特に、ゼロデイ・エクスプロイトを用いた非実行ファイルは、分析家が悪意の有無を判断し、悪質なビヘイビアを分析するまでかなりの時間と努力が必要なため、分析期間中に発生する変形又は、新たに生成される数多くの悪意のある非実行ファイルに対応することは殆ど不可能であると見られる。
ところが、前述したように、最近、APT攻撃シナリオを成功させるために、悪意のある非実行エクスプロイトを用いる事例が増加し、これを防御できる技術の開発が切実となっている。
従来技術による非実行ファイルに対する悪意の有無の検査方法としては、シグネチャ基盤の悪意の有無の検査方法が挙げられる。しかし、このような方法は、多様な形態の攻撃方法を検知するためには、大量のシグネチャデータベースを保有していなければならないため、現実的にはゼロデイ・エクスプロイトを防御できない。
非実行ファイルでマルウェアを検知する従来の他の方法としては、攻撃者が悪意のある非実行ファイルに含まれているシェルコードを如何なる方式で設計するかによって変わるビヘイビアを検知し、マルウェアを含む非実行ファイルを探し出す方法がある。しかし、このような方法は、多様な攻撃者に対する設計方法などの情報が必要なため、多くの誤検出(false positive)と見逃し(false negative)が発生するという問題がある。
韓国公開特許 第2010-5518号
本発明は、このような従来技術の問題を解決するためのものであり、その目的は、非実行ファイルのマルウェアと関連する悪意のある候補アドレス情報を用いて非実行ファイルがマルウェアを含んでいるか否かを判断できる非実行ファイル検査装置及び方法を提供することにある。
また、本発明の目的は、命令語実行アドレスがマルウェア領域を指示した前例があるモジュールの相対仮想アドレス(RVA:Relative Virtual Address)を用いて同一のエクスプロイトを試みる悪意のある非実行ファイルを一括して検出できる非実行ファイル検査装置及び方法を提供することにある。
更に、本発明の他の目的は、悪意のある非実行ファイルを用いたゼロデイ・エクスプロイトを用いるAPT攻撃を効果的に防御できる非実行ファイル検査装置及び方法を提供することにある。
本発明の目的は、以上で言及した目的に制限されず、言及していない他の目的は、以下の記載から本発明の属する通常の知識を有する者に明確に理解され得る。
前記目的を達成するために、本発明の一態様によれば、非実行ファイルのマルウェアと関連する悪意のある候補アドレス情報をロードするデータローディング部と、前記非実行ファイルに対応する応用プログラムが駆動されれば、メモリにロードされるモジュールの正常アドレス範囲情報を獲得し、前記悪意のある候補アドレス情報に対する中止点(breakpoint)を設定するプログラム連結部と、前記中止点に対するイベントが発生すれば、次の実行アドレスが前記正常アドレス範囲情報に属するかを判断する悪意判断部を含む非実行ファイル検査装置が提供される。
この場合、前記実行アドレスが前記正常アドレス範囲情報に属さないと判断されれば、前記非実行ファイルは悪意のあるファイルと判断され得る。
また、前記悪意判断部は、前記実行アドレスが前記正常アドレス範囲情報に属さないと判断されれば、前記実行アドレスが指示するメモリ領域が実行属性か否かを判断し、前記判断結果に基づいて前記非実行ファイルに対する悪意の有無を判断できる。
更に、前記悪意判断部は、前記メモリ領域が実行属性である場合、前記実行アドレスが指示するメモリ領域に格納されたコードの実行による異常なイベントの発生有無をチェックして前記非実行ファイルに対する悪意の有無を判断できる。
また、前記悪意判断部は、前記異常なイベントが発生していない場合、前記実行アドレスの後、既に設定されたステップまでの実行アドレスが前記正常アドレス範囲情報を指示するかをチェックして前記非実行ファイルに対する悪意の有無を判断できる。
更に、前記悪意判断部は、前記メモリ領域が非実行属性であると判断される場合、前記非実行ファイルを悪意があると判断できる。
また、非実行ファイル検査装置は、前記悪意のある候補アドレス情報のセットが格納されたデータベース部を更に含み、前記悪意のある候補アドレス情報は、非実行ファイルのマルウェアと関連するモジュールの相対仮想アドレス(RVA)に関する情報であり得る。
また、前記データローディング部は、前記非実行ファイルのファイル形式を判断し、前記悪意のある候補アドレス情報のセットのうち、前記判断されたファイルの形式に対応する悪意のある候補アドレス情報をロードできる。
更に、非実行ファイル検査装置は、悪意のあるファイルと判定された非実行ファイルのマルウェアを実行ファイル形態又は実行可能なファイル形態で抽出するマルウェア抽出部を更に含むことができる。
また、非実行ファイル検査装置は、前記相対仮想アドレスと脆弱性情報との比較を通じて、エクスプロイトの発生原因を分析する原因分析部を更に含むことができる。
一方、前記正常アドレス範囲情報は、前記応用プログラムの駆動によってロードされるモジュールの開始アドレスと終了アドレスを含むことができる。
そして、前記実行アドレスは、中央処理ユニットのEIP(Extended Instruction Pointer)レジスタから提供され得る。
また、前記悪意判断部は、前記正常アドレス範囲情報から逸脱した実行アドレスの直前に実行された命令語の実行アドレスを格納できる。
前記目的を達成するために、本発明の他の態様によれば、非実行ファイルのマルウェアと関連する悪意のある候補アドレス情報をロードする段階と、前記非実行ファイルに対応する応用プログラムが駆動されれば、メモリにロードされるモジュールの正常アドレス範囲情報を獲得する段階と、前記悪意のある候補アドレス情報に対する中止点を設定する段階と、前記中止点に対するイベントが発生すれば、次の実行アドレスが前記正常アドレス範囲情報に属するかを判断する段階とを含む非実行ファイル検査方法が提供される。
この場合、前記実行アドレスが前記正常アドレス範囲情報に属さないと判断されれば、前記非実行ファイルは悪意のあるファイルと判断され得る。
また、前記判断する段階は、前記実行アドレスが前記正常アドレス範囲情報に属さないと判断されれば、前記実行アドレスが指示するメモリ領域が実行属性か否かを判断する段階と、前記実行アドレスが指示するメモリ領域が実行属性か否かによって前記非実行ファイルに対する悪意の有無を判断する段階とを含むことができる。
更に、前記メモリ領域が実行属性か否かを判断する段階は、前記メモリ領域が実行属性である場合、前記実行アドレスが指示するメモリ領域に格納されたコードの実行による異常なイベントの発生有無をチェックする段階を含み、前記異常なイベントが発生する場合、前記非実行ファイルを悪意があると判断できる。
また、前記非実行ファイルを悪意があると判断する段階は、前記異常なイベントが発生していない場合、前記実行アドレスの後、既に設定されたステップまでの実行アドレスが前記正常アドレス範囲情報から逸脱した前記メモリ領域を指示するかをチェックする段階と、前記既に設定されたステップまでの実行アドレスが前記正常アドレス範囲情報から逸脱したメモリ領域を指示する場合、前記非実行ファイルを悪意があると判断する段階とを含むことができる。
更に、非実行ファイル検査方法は、前記悪意のある候補アドレス情報のセットを格納する段階を更に含み、前記悪意のある候補アドレス情報は、非実行ファイルのマルウェアと関連するモジュールの相対仮想アドレス(RVA)に関する情報であり得る。
また、前記ロードする段階は、前記非実行ファイルのファイル形式を判断する段階と、前記悪意のある候補アドレス情報のセットのうち、前記判断されたファイルの形式に対応する悪意のある候補アドレス情報をロードする段階とを含むことができる。
更に、非実行ファイル検査方法は、悪意のあるファイルと判定された非実行ファイルのマルウェアを実行ファイル形態又は、実行可能なファイル形態で抽出する段階を更に含むことができる。
また、非実行ファイル検査方法は、前記相対仮想アドレスと脆弱性情報との比較を通じて、エクスプロイトの発生原因を分析する段階を更に含むことができる。
更に、前記正常アドレス範囲情報は、前記応用プログラムの駆動によってロードされるモジュールの開始アドレスと終了アドレスを含むことができる。
また、前記実行アドレスは、中央処理ユニットのEIPレジスタから提供され得る。
更に、前記判断する段階は、前記駆動される応用プログラムの命令語の種類に基づいて前記実行アドレスが前記正常アドレス範囲に属するかを判断できる。
一方、前記命令語がリターン(return)、コール(call)又はジャンプ(jump)である場合、1つのステップを進行して前記実行アドレスが前記正常アドレス範囲に属するかを判断できる。
反面、前記命令語が構造化例外処理(SEH)である場合、前記構造化例外処理のチェーン(chain)値が前記正常アドレス範囲情報に属するかを判断できる。
また、所定のディレクトリに格納されている複数の非実行ファイルのそれぞれに対して本非実行ファイル検査方法が遂行され得る。
このとき、前記マルウェアは、悪意のあるシェルコードを含むことができる。
また、本発明の更に他の態様によれば、前記非実行ファイル検査方法によるそれぞれの段階を行う命令語を含むプログラムが記録されたコンピュータ読み取り可能な記録媒体が提供される。
本発明によれば、非実行ファイルに対応する応用プログラムが駆動されることによってロードされる命令語実行アドレスがマルウェア領域を指示した前例があるモジュールの相対仮想アドレス(RVA)セットを格納し、非実行ファイルの形式による相対仮想アドレス(RVA)をロードした後、この相対仮想アドレスに中止点を設定し、中止点に関するイベントが発生する場合に非実行ファイルが悪意のあるファイルか否かを検査することで、特定の相対仮想アドレス(RVA)を用いて同一のエクスプロイトを試みて悪意のあるビヘイビアを行おうとする多くの悪意のある非実行ファイルを一括して検出できるという効果を奏する。
また、本発明によれば、命令語実行アドレスがマルウェア領域を指示した前例があるモジュールの相対仮想アドレス(RVA)に中止点を設定し、中止点に関するイベントが発生する場合に、次の実行ファイルが正常アドレス範囲から逸脱し、悪意のあるシェルコードを指示するか否かを通じて非実行ファイルが悪意のあるシェルコードを含む悪意のあるファイルか否かを検査することで、特定の相対仮想アドレス(RVA)で悪意のあるシェルコードに分岐するか否かだけ判断すれば良いため、多様な変種の悪意のある非実行ファイルを高速に検知できるという効果を奏する。
更に、本発明によれば、悪意のある非実行ファイルを用いたゼロデイ・エクスプロイトを用いるAPT攻撃を効果的に防御できるという効果を奏する。
本発明の実施形態による非実行ファイル検査装置のブロック図である。 本発明の実施形態による非実行ファイル検査方法を説明するためのフローチャートである。 本発明の実施形態による非実行ファイル検査装置により行われる非実行ファイル検査方法に対する理解を促進するための概念図である。 本発明の他の実施形態によって実行アドレスが正常アドレス範囲情報から外れた領域を指示する場合、非実行ファイル検査装置の動作過程を示すフローチャートである。
本発明の利点及び特徴、そしてそれらを達成する方法は、添付される図面と共に詳細に後述されている実施形態を参照すれば明確になる。しかし、本発明は、以下で開示される実施形態に限定されるものではなく、互いに異なる多様な形態で実現されることができ、但し、本実施形態は、本発明の開示が完全なようにし、本発明の属する技術分野において通常の知識を有する者に発明の範疇を完全に知らせるために提供されるものであり、本発明は、請求範囲の範疇により定義されるだけである。
本発明の実施形態を説明するには公知の機能又は、構成についての具体的な説明が本発明の要旨を不要に曖昧にするおそれがあると判断される場合には、その詳細説明については省略する。そして、後述する用語は、本発明の実施形態での機能を考慮して定義された用語であって、これはユーザ、運用者の意図又は慣例などによって変わり得る。従って、その定義は、本明細書全般に亘る内容に基づいて下されるべきである。
本明細書で用いられる「非実行ファイル」とは、実行ファイル又は実行可能なファイルと反対概念であって、自ら実行されないファイルを意味する。例えば、非実行ファイルは、アレアハングルファイル、ワードファイルのような文書ファイル、JPGファイルのようなイメージファイル、動画ファイル、Java(登録商標)Scriptファイル、HTMLファイルなどに該当するが、これに限定されない。
マルウェアを含む悪意のある非実行ファイルは、電子メールに添付される方式又は、ネットワークを介して転送される方式などを通じてAPT攻撃などで使用され得る。この場合、マルウェアは、シェルコード(shell code)であることより、このような悪意のあるシェルコードは、非実行ファイルの形式(フォーマット)に対応する応用プログラムの実行時に実行され得る。非実行ファイルの形式は、例えば、hwpファイル、docファイル、pdfファイル、JPGファイル、jsファイル、HTMLファイルなどになり得る。
特に、本発明の実施形態による非実行ファイル検査装置及び方法は、命令語実行アドレスが悪意のあるシェルコード領域を指示した前例があるモジュールの相対仮想アドレス(RVA)を予め確保した状況でこれをデータベース部などに格納し、非実行ファイル検査に用いることで、より迅速、且つ、効果的に悪意のある非実行ファイルを検知できる。
これと関連して、このような相対仮想アドレスを確保する過程についてまず詳察する。
悪意のある非実行ファイルは、悪意のあるシェルコードを含むことができ、悪意のあるシェルコードを含んでいる悪意のある非実行ファイルは如何なる方式を通じてでも結局のところ、命令語を実行する際に悪意のあるシェルコード領域に移動する。このような悪意のあるシェルコード領域への移動は、実行アドレスを確認すれば、予め予測できる。例えば、CPUのような中央処理ユニットのレジスタの1つであるEIPレジスタに格納された値を通じて次の実行アドレスを確認できる。従って、正常なアドレス範囲から逸脱し、悪意のあるシェルコード領域に移動する命令語を有する非実行ファイルは悪意があると判別及び、分類ができる。また、これらの情報を用いて命令語実行アドレスが悪意のあるシェルコード領域を指示した前例があるモジュールの仮想アドレスを予め確保できる。ここで、仮想アドレスは、ハードウェアの変化などのようなプログラム駆動環境の変化によって、その値が変化するため、相対仮想アドレス(RVA)に置換する必要があり、本発明の実施形態では、このような理由で非実行ファイルの悪意の有無を検査する際に、このような相対仮想アドレスを用いる。
図1は、本発明の実施形態による非実行ファイル検査装置のブロック図である。
図示のように、非実行ファイル検査装置100は、データローディング部110、プログラム連結部120、悪意判断部130、悪意シェルコード抽出部140、原因把握部150、データベース部160、メモリ170などを含むことができる。
データベース部160には、命令語実行アドレスが悪意のあるシェルコード領域を指示した前例があるモジュールの相対仮想アドレス(RVA)情報のセットが格納され、このような相対仮想アドレス情報は、非実行ファイルに対して悪意の有無を検査する際に悪意のある候補アドレス情報(Candidate address)として利用される。即ち、悪意のある候補アドレス情報のセットとは、悪意のあるシェルコード領域に移動しようとした前例があるモジュールの仮想アドレス情報(RVA)のセットを意味する。この場合、モジュールは、ダイナミックリンクライブラリ(DLL:Dynamic Linking Library)になり得る。
また、データベース部160には、相対仮想アドレス情報とマッピングして脆弱性情報が格納される。ここで、脆弱性情報は、相対仮想アドレス情報との比較を通じて特定の相対仮想アドレスを有するエクスプロイトに対してその発生原因を把握する際に利用できる。一実施形態によれば、非実行ファイルのファイル形式別に他の複数の悪意のある候補アドレス情報のセットがデータベース部160に格納され得る。
データローディング部110は、非実行ファイルに対する悪意の有無を検査する際にデータベース部160から相対仮想アドレスに基づく悪意のある候補アドレス情報をロードする。実施形態によれば、データローディング部110は、悪意の有無の検査の対象である非実行ファイルのファイル形式を判断した後に、データベース部160に格納された複数の悪意のある候補アドレス情報のセットのうち、非実行ファイルのファイル形式に符合する悪意のある候補アドレス情報を中止点の設定のためにロードする。
プログラム連結部120は、悪意の有無の検査の対象である非実行ファイルに対応する応用プログラムが実行されれば、仮想メモリにロードされたモジュールの開始アドレスと終了アドレスを含む正常なアドレス範囲情報を獲得し、データローディング部110によりロードされた悪意のある候補アドレス情報によって悪意のある候補アドレス情報に対応する悪意のある候補アドレスを応用プログラムの中止点として設定する。このようなプログラム連結部120は、実施形態によって、応用プログラムを直接実行させてもよく、別途のプログラム駆動部(図示せず)に該当する応用プログラムの実行を要請してもよい。
悪意判断部130は、プログラム連結部120により設定された中止点によりイベントが発生すれば、次の実行アドレスが正常アドレス範囲情報に属するかを判断し、次の実行アドレスが正常アドレス範囲情報に属すれば、非実行ファイルを正常ファイルと判断し、反対に、次の実行アドレスが正常アドレス範囲情報から逸脱すれば、非実行ファイルを悪意があると判断する。ここで、悪意判断部130は、中央処理ユニットのEIPレジスタに格納された後、実行アドレスを利用できる。実施形態によれば、悪意判断部130は、命令語の種類によって、1ステップ(step)を進行して次の実行アドレスが正常なアドレス範囲情報に属するかを判断するか、1ステップを進行せず、直ぐ次の実行アドレスが正常なアドレス範囲情報に属するかを判断できる。例えば、命令語が構造化例外処理(SEH:Structured Exception Handling)である場合、悪意判断部130は、構造化例外処理のチェーン値と正常アドレス範囲情報間の比較を行える。また、リターン、コール又はジャンプなどのような命令語は、1ステップを進行して次の実行アドレスが正常アドレス範囲情報に属するかを判断できる。ここで、構造化例外処理のチェーン値は、実行するアドレスを意味する。
但し、悪意判断部130は、正常応用プログラムが非実行ファイルをロードするために、正常モジュールの正常アドレス範囲情報の外で命令語を実行することは例外処理することもできる。
例外処理される場合について説明すれば、悪意判断部130は、実行アドレスが正常アドレス範囲情報から逸脱する場合、実行アドレスが指示するメモリ 170の領域の属性を判断し、判断の結果、メモリ170の領域の属性が実行属性でない場合、実行アドレスが指示するメモリ170の領域に格納されたコードの実行によって発生するイベントが異常なイベントかを判断する。
ここで、異常なイベントの例としては、
Access Violation;
EXCEPTION_ARRAY_BOUNDS_EXCEEDED;
EXCEPTION_DATATYPE_MISALIGNMENT;
EXCEPTION_FLT_DENORMAL_OPERAND;
EXCEPTION_FLT_DIVIDE_BY_ZERO;
EXCEPTION_FLT_INEXACT_RESULT;
EXCEPTION_FLT_INVALID_OPERATION;
EXCEPTION_FLT_OVERFLOW;
EXCEPTION_FLT_STACK_CHECK;
EXCEPTION_FLT_UNDERFLOW;
EXCEPTION_GUARD_PAGE;
EXCEPTION_ILLEGAL_INSTRUCTION;
EXCEPTION_IN_PAGE_ERROR;
EXCEPTION_INT_DIVIDE_BY_ZERO;
EXCEPTION_INT_OVERFLOW;
EXCEPTION_INVALID_DISPOSITION;
EXCEPTION_INVALID_HANDLE;
EXCEPTION_NONCONTINUABLE_Exception;
EXCEPTION_PRIV_INSTRUCTION;
EXCEPTION_STACK_OVERFLOW
などが挙げられるが、これに限定しない。
異常なイベントが発生する場合、悪意判断部130は、非実行ファイルをマルウェアと判断すると共に、正常アドレス範囲情報から逸脱する実行アドレスの命令語の直前に実行された命令語の実行アドレスを仮想メモリに格納できる。
一方、異常なイベントが発生していない場合、悪意判断部130は、既に設定されたステップ、例えば3〜5ステップまでの命令語に対する実行アドレスと正常アドレス範囲情報間の比較を通じて非実行ファイルに対する悪意の有無を判断できる。即ち、悪意判断部130は、既に設定されたステップまでの命令語に対する実行アドレスが正常アドレス範囲情報から逸脱する場合、非実行ファイルを悪意があると判断し、既に設定されたステップ以前の命令語に対する実行アドレスが正常アドレス範囲情報である場合、非実行ファイルを正常と判断し、以後のステップに対する命令語を行える。
悪意シェルコード抽出部140は、非実行ファイルの駆動プログラムが仮想メモリにデコードしておいた悪意のあるシェルコードを実行ファイル形態又は実行可能なファイル形態で抽出する。例えば、悪意シェルコード抽出部140は、デコードされた悪意のあるシェルコードを拡張子がexe、cpl、ocx、dll、vxd、sys、scr又はdrvの何れか1つのファイル形態で抽出できる。しかし、抽出できるファイル形態の拡張子は、これらに限定されない。
また、マルウェア抽出部140は、実行ファイル形態又は実行可能なファイル形態で抽出されたコードを通信網(図示せず)に連結されたマルウェア検査及び分析サーバ(図示せず)に転送し、分析を依頼することもできる。
原因把握部150は、悪意判断部130が悪意のあるファイルに分類した非実行ファイルの相対仮想アドレスとデータベース部160に既に格納された脆弱性情報との比較を通じて、エクスプロイトの発生原因を把握し、把握されたエクスプロイトの発生原因を報告(レポート)する。
本発明の実施形態では、原因分析部112が非実行ファイル検査装置の内部に設けられることを例として説明したが、通信網を介して連結された別途の分析サーバ(図示せず)に設けられてもよい。
一実施形態において、本発明の非実行ファイル検査装置は、複数の非実行ファイルが格納されているディレクトリが選択されれば、該当ディレクトリに格納されている複数の非実行ファイルのそれぞれに対して非実行ファイルの検査を行える。
また、他の一実施形態において、本発明の非実行ファイル検査装置は、ネットワークを介して転送される非実行ファイルの悪意の有無をリアルタイムでモニタリングすることもできる。
図2は、本発明の実施形態による非実行ファイル検査方法を説明するためのフローチャートである。
図示のように、非実行ファイル検査方法は、命令語実行アドレスが悪意のあるシェルコード領域を指示した前例があるモジュールの相対仮想アドレスを予め確保した状況で、悪意の有無の検査の対象である非実行ファイルに対応する応用プログラムの実行によってロードされたモジュールの正常アドレスの範囲情報を獲得する段階(S201〜S207)と、相対仮想アドレスに基づく悪意のある候補アドレス情報によって中止点を設定する段階(S209)と、設定された中止点に対するイベントが発生すれば、次の実行アドレスが正常アドレス範囲情報に属するかを判断する段階(S211及びS213)と、次の実行アドレスがアドレス範囲情報から逸脱すれば、非実行ファイルを悪意があると判断する段階(S215)と、応用プログラムが仮想メモリにデコードしておいた悪意のあるシェルコードを実行ファイル形態又は実行可能なファイル形態で抽出する段階(S217)と、相対仮想アドレスと既に獲得した脆弱性情報との比較を通じて、エクスプロイトの発生原因を分析し報告する段階(S219)と、段階S213で次の実行アドレスが正常なアドレス範囲情報に属すると判断されれば、非実行ファイルに対する検査が終了するまで段階S211による中止点イベントの発生をモニタリングする段階(S221)とを含む。
以下、本発明の実施形態による非実行ファイル検査装置による非実行ファイル検査方法を説明するに先立ち、本発明の理解を促進するために、非実行ファイル検査装置100のデータベース部160に格納される相対仮想アドレス(即ち、命令語実行アドレスが悪意のあるシェルコード領域を指示した前例があるモジュールの相対仮想アドレス)のセットを確保する過程について実施形態を通じて詳察する。以下では、このような相対仮想アドレスの確保過程を非実行ファイル検査装置100が直接行う場合を例示する。
まず、ユーザがユーザインターフェースを用いて非実行ファイルが格納された所定のディレクトリを選択すれば、データローディング部110は、選択されたディレクトリ内の非実行ファイルの形式を把握してプログラム連結部120に提供する。
すると、プログラム連結部120は、非実行ファイルに対応する応用プログラムを直接実行させるか、別途のシステム(図示せず)に該当駆動プログラムの実行を要請し、該当応用プログラムの実行によってロードされたモジュールの命令語別の実行アドレス情報を悪意判断部130に提供する。ここで、実行アドレス情報は、モジュール内の命令語が実行されるとき、仮想メモリ上のアドレスを意味し、EIPレジスタに格納されている情報であり得る。
そして、プログラム連結部120は、プログラムの実行によって仮想メモリにロードされるモジュールの仮想メモリ上の開始アドレスと終了アドレスからなる正常アドレス範囲を仮想メモリに格納する。
その後、悪意判断部130は、プログラム連結部120から出力される実行アドレス情報と正常アドレス範囲間の比較を通じて実行アドレス情報が正常アドレス範囲に含まれるかを判断する。
ここで、実行アドレス情報が正常アドレス範囲に含まれる場合に、悪意判断部130は、次の命令語に対する実行アドレス情報をプログラム連結部120から提供を受けた後、次の命令語の実行アドレス情報が正常アドレス範囲に含まれるかを判断する。
実行アドレス情報が正常アドレス範囲から逸脱する場合に、CPUレジスタの値の一つであるEIPが悪意のあるシェルコード領域に移動するため、悪意判断部130は、非実行ファイルを悪意があると分類した後、応用プログラムの駆動を中止させる。
その後、悪意判断部130は、悪意のあるシェルコード領域に移動する前の実行アドレス情報と応用プログラム内の該当モジュール(脆弱性を有するモジュール)の情報を仮想メモリに格納した後、これを原因把握部150に提供する。
一方、悪意シェルコード抽出部140は、アドレス範囲から逸脱する実行アドレス情報が指示する領域、即ち、悪意のあるシェルコード領域に対するコードを実行ファイル形態又は実行可能なファイル形態で抽出した後、これを仮想メモリに格納する。
原因把握部150は、悪意判断部130から提供を受けた実行アドレス及びモジュールの情報を既に格納された脆弱性情報間の比較を通じて脆弱性の発生原因を把握した後、これをユーザ又は分析家に提供することで、該当非実行ファイルに対する分析の結果をレポートできる。
その後、ディレクトリ内に他の非実行ファイルが存在する場合に、非実行ファイル検査装置100は、他の非実行ファイルのそれぞれに対して前述した非実行ファイルの検査過程を再び行う。
以上で説明した非実行ファイル検査装置による悪意のある非実行ファイルに対する検査過程からも分かるように、悪意のある非実行ファイルは、マルウェア、例えば、悪意のあるシェルコードを共通して含んでおり、悪意のあるシェルコードを含んでいる悪意のある非実行ファイルは如何なる方式を通じてでも結局のところ、悪意のあるシェルコードに関する命令語を実行する際に悪意のあるシェルコード領域に移動する。このような悪意のあるシェルコード領域への移動は、次の実行アドレスを確認すれば、予め予測できる。例えば、中央処理ユニットのレジスタの1つであるEIPレジスタに格納された値を通じて次の実行アドレスを確認できる。従って、正常なアドレス範囲から逸脱し、悪意のあるシェルコード領域に移動する命令語を有する非実行ファイルは悪意があると判別及び、分類できる。また、これらの情報を用いて命令語実行アドレスが悪意のあるシェルコード領域を指示した前例があるモジュールの仮想アドレスを予め確保できる。ここで、モジュールがロードされる仮想アドレスは、ハードウェアの変化などのようなプログラム駆動環境の変化によってロードされる度にその値が変化するため、相対仮想アドレスに置換する必要があり、本発明の実施形態による非実行ファイル検査装置100は、非実行ファイルの悪意の有無を検査するために、このような相対仮想アドレスをデータベース部160に予め格納する。
以下、図1及び図3を参照して本発明の実施形態による非実行ファイル検査装置による非実行ファイルの検査過程を詳細に説明する。ここで、本発明の一実施形態によるプログラム連結部120は、実行が必要な特定の応用プログラムを直接実行させることもできる。これは、本発明の非実行ファイル検査装置100が特定の応用プログラム又はこれを含む各種プログラムをプログラム格納部などのような格納手段に直接格納できることを意味すると言える。
まず、本発明の実施形態によって非実行ファイル検査装置100が特定の応用プログラムを直接実行する場合を説明する。
検査の対象である非実行ファイルが格納されたディレクトリがユーザインターフェースなどを通じて選択されれば、データローディング部110は、該当ディレクトリに格納された非実行ファイルのファイル形式情報303に基づいてファイルの形式を判断する。例えば、ドライブ1の下位に存在するルートフォルダ1〜ルートフォルダNの中からルートフォルダ2(301)がユーザインターフェースなどを通じて、選択されれば、ルートフォルダ2(301)に格納された非実行ファイルのファイル形式情報を確認し、該当非実行ファイルのファイル形式を判断する(S201)。
そして、データローディング部110は、データベース部160に格納された複数の悪意のある候補アドレス情報のセットのうち、非実行ファイルのファイル形式に符合する悪意のある候補アドレス情報305をロードする(S203)。
プログラム連結部120は、悪意の有無の検査の対象である非実行ファイルに対応する応用プログラム307を実行し(S205)、該当応用プログラムの実行によってロードされたモジュール309の正常なアドレス範囲情報を獲得して格納する(S207)。ここで、モジュールの例としては、ダイナミックリンクライブラリDLLが挙げられる。例えば、プログラム連結部120は、プログラム格納部(図示せず)などのような格納手段に格納された応用プログラムのうち、該当する応用プログラムをロードして仮想環境で実行できる。
更に、プログラム連結部120は、データローディング部110によりロードされた悪意のある候補アドレス情報305により、悪意のある候補アドレス情報305に対応する悪意のある候補アドレスを応用プログラムの中止点に設定311する(S209)。
その後、段階S209で設定された中止点により、中止点エクセプションイベント(exception event)が発生(S211)すれば、段階S207で次の実行アドレスが獲得された正常なアドレス範囲情報に属するかを判断し(S213)、次の実行アドレスが正常なアドレス範囲情報から逸脱すれば、非実行ファイルを悪意があると分類(313)及び、判断する(S215)。ここで、悪意判断部130は、中央処理ユニットのEIPレジスタに格納された次の実行アドレスを用いて該当命令語が正常なアドレス範囲から逸脱し、悪意のあるシェルコード領域に移動するかを判断できる。
一方、段階S213で悪意判断部130は、命令語の種類によって1ステップを進行して次の実行アドレスが正常なアドレス範囲情報に属するかを判断するか、1ステップを進行せず、直ぐ次の実行アドレスが正常なアドレス範囲情報に属するかを判断できる。例えば、悪意判断部130は、リターン、コール又は、ジャンプなどのような命令語は、1ステップを進行して次の実行アドレスが正常なアドレス範囲情報に属するかを判断し、命令語がSEHである場合に、SEHのチェーン値が正常なアドレス範囲情報に属するかを判断できる。
すると、悪意シェルコード抽出部140は、非実行ファイルの応用プログラムが仮想メモリにデコードしておいた悪意のあるシェルコードを実行ファイル形態又は、実行可能なファイル形態で抽出する。例えば、悪意シェルコード抽出部140は、デコードされた悪意のあるシェルコードを実行ファイル又は実行可能なファイルで抽出できる。このとき、実行ファイル又は、実行可能なファイルは、拡張子がexe、cpl、ocx、dll、vxd、sys、scr又は、drvの何れか1つのファイル形態で抽出できる。しかし、抽出できるファイル形態の拡張子は、これらに限定されない。このように抽出された悪意のあるシェルコード実行ファイルは、悪意のあるシェルコードの動作方式を分析する際に利用できる(S217)。
また、原因把握部150は、悪意判断部130が悪意のあるファイルに分類した非実行ファイルの相対仮想アドレスと、データベース部160に既に格納された脆弱性情報との比較を通じて、エクスプロイトの発生原因を把握し、把握されたエクスプロイトの発生原因をレポートする(S219)。ここで、脆弱性情報としては、CVE(Common Vulnerabilities and Exposures)、Microsoft Security Bulletin(例えば、MS11-002)、NVD(National Vulnerability Database)、US-CERT Bulletinなどで提供した情報であり得るが、これらに限定されない。
段階S213で次の実行アドレスが正常なアドレス範囲情報に属すると判断されれば、正常ファイルに分類(315)して非実行ファイルに対する検査が終了するまで、段階S211による中止点エクセプションイベントの発生をモニタリングする(S221)。なお、現在の検査の対象である非実行ファイルに対する悪意の有無の検査が終了すれば、同一のディレクトリに存在する他の非実行ファイルに対する悪意の有無を検査する。
また、前述したように、本発明の他の実施形態では、非実行ファイル検査装置100が特定の応用プログラムを直接実行せず、別途のシステムに特定の応用プログラムの実行を要請することで、前述した非実行ファイルの検査方法を行うこともできる。ここで、システムの例としては、マルウェア検査装置が設けられた個人用端末、通信網(図示せず)を介して連結されたプログラム提供サーバなどを意味し得、これに限定されるものではない。
一方、前述した実施形態では、実行アドレスが正常アドレス範囲情報から逸脱する場合、これを悪意があると判断する例として説明したが、実行アドレスが指示するメモリ170の領域に実行属性がある場合、これを例外処理できるが、これに関する説明は、以下の通りである。
図4は、本発明の他の実施形態によって実行アドレスが正常アドレス範囲情報から逸脱した領域を指示する場合、非実行ファイル検査装置の動作過程を示すフローチャートである。
図4に示すように、第1実行アドレスが正常アドレス範囲情報から逸脱したメモリ170の領域を指示する場合、悪意判断部130は、カウンタ値を既に設定された初期値、例えば「0」にセット(S400)した後、第1実行アドレスが指示するメモリ170の領域に対する属性を検査して属性が実行属性かを判断する(S402)。
S402の判断結果、実行属性でない場合、悪意判断部130は、第1実行アドレスが指示するメモリ170の領域内のコードを実行(S404)させ、実行によって発生するイベントが異常なイベントかを検査する(S406)。
一方、S402で実行属性である場合、悪意判断部130は、非実行ファイルを正常と判断(S408)して次の実行アドレス、即ち、第2実行アドレスと正常アドレス範囲情報間の比較を行う。また、S406の検査結果、異常なイベントが発生する場合も悪意判断部130は、非実行ファイルを悪意があると判断する(S410)。
S406の検査結果、異常なイベントが発生していない場合、悪意判断部130は、カウンタ値を「1」増加(S412)させた後、カウンタ値が閾値以下であるかを判断する(S414)。
S414の判断結果、カウンタ値が閾値以下である場合、悪意判断部130は、プログラム連結部120から提供を受けた後、ステップの命令語に対する第2実行アドレスが正常アドレス範囲情報から逸脱するかを判断する(S416)。
S416の判断結果、次のステップの命令語に対する次の実行アドレス、即ち、第2実行アドレスが正常アドレス範囲情報から逸脱する場合、悪意判断部130は、第2実行アドレスが指示するメモリ170の領域に対する実行属性を検査するS402に進み、以後の段階を行う。
一方、S414の判断結果、カウンタ値が閾値を超える場合、悪意判断部130は、非実行ファイルを悪意があると判断する。
また、S416の判断結果、次のステップの命令語に対する第2実行アドレスが正常アドレス範囲情報を指示する場合、悪意判断部130は、次の命令語に対する第3実行アドレスと正常アドレス範囲情報間の比較を行う。
本発明に添付されたブロック図の各ブロックとフローチャートの各段階の組み合わせは、コンピュータ・プログラム・インストラクションにより実行されることもできる。これらのコンピュータ・プログラム・インストラクションは、汎用コンピュータ、特殊用コンピュータ又はその他プログラム可能なデータプロセシング装置のプロセッサに搭載され得るので、コンピュータ又はその他プログラム可能なデータプロセシング装置のプロセッサを通じて行われるそのインストラクションがブロック図の各ブロック又はフローチャートの各段階で説明された機能を行う手段を生成するようになる。これらのコンピュータ・プログラム・インストラクションは、特定の方式で機能を実現するために、コンピュータ又はその他プログラム可能なデータプロセシング装置を指向できるコンピュータの利用可能又は、コンピュータ読み取り可能なメモリに格納されることも可能であるので、そのコンピュータ利用可能又は、コンピュータ読み取り可能なメモリに格納されたインストラクションは、ブロック図の各ブロック又は、フローチャートの各段階で説明された機能を行うインストラクション手段を内包する製造品目を生産することも可能である。コンピュータ・プログラム・インストラクションは、コンピュータ又は、その他プログラム可能なデータプロセシング装置上に搭載されることも可能であるので、コンピュータ又は、その他プログラム可能なデータプロセシング装置上で一連の動作段階が行われ、コンピュータで実行されるプロセスを生成してコンピュータ又は、その他プログラム可能なデータプロセシング装置を行うインストラクションは、ブロック図の各ブロック及びフローチャートの各段階で説明された機能を実行するための段階を提供することも可能である。
また、各ブロック又は各段階は、特定の(各)論理的機能を実行するための1つ以上の実行可能なインストラクションを含むモジュール、セグメント又は、コードの一部を示すことができる。また、幾つかの代替実施形態では、各ブロック又は、各段階で言及された機能が順序外れで発生することも可能であることに注目すべきである。例えば、相次いで示されている2つのブロック又は、段階は実際に、実質的に同時に行われることも可能であり、又は、その各ブロック又は、各段階が時折該当する機能によって逆順に行われることも可能である。
以上の説明は、本発明の技術思想を例示的に説明したものに過ぎず、本発明の属する技術分野において通常の知識を有する者であれば、本発明の本質的な特性から逸脱しない範囲で多様な修正及び、変形が可能である。従って、本発明に開示された実施形態は、本発明の技術思想を限定するためのものではなく、説明するためのものであって、このような実施形態によって本発明の技術思想の範囲が限定されるわけではない。本発明の保護範囲は、以下の請求範囲によって解釈されるべきであり、それと同等な範囲内にある全ての技術思想は、本発明の権利範囲に含まれるものと解釈されるべきである。
100…非実行ファイル検査装置
110…データローディング部
120…プログラム連結部
130…悪意判断部
140…悪意シェルコード抽出部
150…原因把握部
160…データベース部

Claims (30)

  1. 非実行ファイルのマルウェアと関連する悪意のある候補アドレス情報をロードするデータローディング部と、
    前記非実行ファイルに対応する応用プログラムが駆動されれば、メモリにロードされるモジュールの正常アドレス範囲情報を獲得し、前記悪意のある候補アドレス情報に対応する悪意のある候補アドレスを前記応用プログラムの中止点に設定するプログラム連結部と、
    前記中止点に対するイベントが発生すれば、次の実行アドレスが前記正常アドレス範囲情報に属するかを判断する悪意判断部
    を含む非実行ファイル検査装置。
  2. 前記悪意判断部は、
    前記実行アドレスが前記正常アドレス範囲情報に属さないと判断されれば、前記非実行ファイルを悪意のあるファイルと判断することを特徴とする請求項1に記載の非実行ファイル検査装置。
  3. 前記悪意判断部は、
    前記実行アドレスが前記正常アドレス範囲情報に属さないと判断されれば、前記実行アドレスが指示するメモリ領域が実行属性か否かを判断し、前記判断結果に基づいて前記非実行ファイルに対する悪意の有無を判断することを特徴とする請求項1に記載の非実行ファイル検査装置。
  4. 前記悪意判断部は、
    前記実行アドレスが指示するメモリ領域が実行属性でない場合、前記実行アドレスが指示するメモリ領域に格納されたコードの実行による異常なイベントの発生有無をチェックして前記非実行ファイルに対する悪意の有無を判断することを特徴とする請求項3に記載の非実行ファイル検査装置。
  5. 前記悪意判断部は、
    前記異常なイベントが発生していない場合、前記実行アドレスの後、既に設定されたステップまでの実行アドレスが前記正常アドレス範囲情報を指示するかをチェックして前記非実行ファイルに対する悪意の有無を判断することを特徴とする請求項4に記載の非実行ファイル検査装置。
  6. 前記悪意判断部は、
    前記実行アドレスが指示するメモリ領域が実行属性である場合、前記非実行ファイルを正常と判断することを特徴とする請求項3に記載の非実行ファイル検査装置。
  7. 前記悪意のある候補アドレス情報のセットが格納されたデータベース部を更に含み、
    前記悪意のある候補アドレス情報は、命令語実行アドレスが悪意のあるシェルコード領域を指示した前例があるモジュールの相対仮想アドレス(RVA)情報であることを特徴とする請求項1に記載の非実行ファイル検査装置
  8. 前記データローディング部は、
    前記非実行ファイルのファイル形式を判断し、前記悪意のある候補アドレス情報のセットのうち、前記判断されたファイルの形式に対応する悪意のある候補アドレス情報をロードすることを特徴とする請求項7に記載の非実行ファイル検査装置。
  9. 悪意のあるファイルと判定された非実行ファイルのマルウェアを実行ファイル形態又は実行可能なファイル形態で抽出するマルウェア抽出部を更に含むことを特徴とする請求項2又は3に記載の非実行ファイル検査装置。
  10. 前記相対仮想アドレスと脆弱性情報との比較を通じて、エクスプロイトの発生原因を分析する原因分析部を更に含むことを特徴とする請求項7に記載の非実行ファイル検査装置。
  11. 前記正常アドレス範囲情報は、前記応用プログラムの駆動によってロードされるモジュールの開始アドレスと終了アドレスを含むことを特徴とする請求項1に記載の非実行ファイル検査装置。
  12. 前記実行アドレスは、中央処理ユニットのEIPレジスタから提供されることを特徴とする請求項1に記載の非実行ファイル検査装置。
  13. 前記悪意判断部は、
    前記正常アドレス範囲情報から逸脱した実行アドレスの直前に実行された命令語の実行アドレスを格納することを特徴とする請求項1に記載の非実行ファイル検査装置。
  14. 非実行ファイルのマルウェアと関連する悪意のある候補アドレス情報をロードする段階と、
    前記非実行ファイルに対応する応用プログラムが駆動されれば、メモリにロードされるモジュールの正常アドレス範囲情報を獲得する段階と、
    前記悪意のある候補アドレス情報に対応する悪意のある候補アドレスを前記応用プログラムの中止点に設定する段階と、
    前記中止点に対するイベントが発生すれば、次の実行アドレスが前記正常アドレス範囲情報に属するかを判断する段階
    を含む非実行ファイル検査方法。
  15. 前記実行アドレスが前記正常アドレス範囲情報に属さないと判断されれば、前記非実行ファイルを悪意のあるファイルと判断することを特徴とする請求項14に記載の非実行ファイル検査方法。
  16. 前記判断する段階は、
    前記実行アドレスが前記正常アドレス範囲情報に属さないと判断されれば、前記実行アドレスが指示するメモリ領域が実行属性か否かを判断する段階と、
    前記実行アドレスが指示するメモリ領域が実行属性か否かによって前記非実行ファイルに対する悪意の有無を判断する段階
    を含むことを特徴とする請求項14に記載の非実行ファイル検査方法。
  17. 前記メモリ領域が実行属性か否かを判断する段階は、
    前記実行アドレスが指示するメモリ領域が実行属性でない場合、前記実行アドレスが指示するメモリ領域に格納されたコードの実行による異常なイベントの発生有無をチェックする段階を含み、
    前記異常なイベントが発生する場合、前記非実行ファイルを悪意があると判断することを特徴とする請求項16に記載の非実行ファイル検査方法。
  18. 前記非実行ファイルを悪意があると判断する段階は、
    前記異常なイベントが発生していない場合、前記実行アドレスの後、既に設定されたステップまでの実行アドレスが前記正常アドレス範囲情報から逸脱した前記メモリ領域を指示するかをチェックする段階と、
    前記既に設定されたステップまでの実行アドレスが前記正常アドレス範囲情報から逸脱したメモリ領域を指示する場合、前記非実行ファイルを悪意があると判断する段階
    を含むことを特徴とする請求項17に記載の非実行ファイル検査方法。
  19. 前記悪意のある候補アドレス情報のセットを格納する段階を更に含み、
    前記悪意のある候補アドレス情報は、命令語実行アドレスが悪意のあるシェルコード領域を指示した前例があるモジュールの相対仮想アドレス(RVA)情報であることを特徴とする請求項14に記載の非実行ファイル検査方法。
  20. 前記ロードする段階は、
    前記非実行ファイルのファイル形式を判断する段階と、
    前記悪意のある候補アドレス情報のセットのうち、前記判断されたファイルの形式に対応する悪意のある候補アドレス情報をロードする段階
    を含むことを特徴とする請求項19に記載の非実行ファイル検査方法。
  21. 前記悪意のあるファイルと判定された非実行ファイルのマルウェアを実行ファイル形式又は実行可能なファイル形式で抽出する段階を更に含むことを特徴とする請求項15又は16に記載の非実行ファイル検査方法。
  22. 前記相対仮想アドレスと脆弱性情報との比較を通じて、エクスプロイトの発生原因を分析する段階を更に含むことを特徴とする請求項19に記載の非実行ファイル検査方法。
  23. 前記正常アドレス範囲情報は、前記応用プログラムの駆動によってロードされるモジュールの開始アドレスと終了アドレスを含むことを特徴とする請求項14に記載の非実行ファイル検査方法。
  24. 前記実行アドレスは、中央処理ユニットのEIPレジスタから提供されることを特徴とする請求項14に記載の非実行ファイル検査方法。
  25. 前記判断する段階は、
    前記駆動される応用プログラムの命令語の種類に基づいて前記実行アドレスが前記正常アドレス範囲に属するかを判断することを特徴とする請求項14に記載の非実行ファイル検査方法。
  26. 前記命令語が構造化例外処理(SEH)である場合、前記構造化例外処理のチェーン値が前記正常アドレス範囲情報に属するかを判断することを特徴とする請求項25に記載の非実行ファイル検査方法。
  27. 前記命令語がリターン、コール又はジャンプである場合、1ステップを進行して前記命令語が指示する前記実行アドレスが前記正常アドレス範囲情報に属するかを判断することを特徴とする請求項25に記載の非実行ファイル検査方法。
  28. 所定のディレクトリに格納されている複数の非実行ファイルのそれぞれに対して前記非実行ファイル検査方法が行われることを特徴とする請求項14に記載の非実行ファイル検査方法。
  29. 前記マルウェアは、悪意のあるシェルコードであることを特徴とする請求項14に記載の非実行ファイル検査方法。
  30. 請求項14〜29の何れか一項に記載の方法によるそれぞれの段階を行う命令語を含むプログラムが記録されたコンピュータ読み取り可能な記録媒体。
JP2013100465A 2012-05-11 2013-05-10 非実行ファイル検査装置及び方法 Active JP5326062B1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120050156A KR101265173B1 (ko) 2012-05-11 2012-05-11 비실행 파일 검사 장치 및 방법
KR10-2012-0050156 2012-05-11

Publications (2)

Publication Number Publication Date
JP5326062B1 true JP5326062B1 (ja) 2013-10-30
JP2013239172A JP2013239172A (ja) 2013-11-28

Family

ID=48666379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013100465A Active JP5326062B1 (ja) 2012-05-11 2013-05-10 非実行ファイル検査装置及び方法

Country Status (4)

Country Link
US (1) US8627478B2 (ja)
JP (1) JP5326062B1 (ja)
KR (1) KR101265173B1 (ja)
WO (1) WO2013168913A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108970122A (zh) * 2018-06-28 2018-12-11 广州华多网络科技有限公司 防止外挂的方法、装置、终端及存储介质

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140150101A1 (en) * 2012-09-12 2014-05-29 Xecure Lab Co., Ltd. Method for recognizing malicious file
US20160134652A1 (en) * 2014-01-29 2016-05-12 Verint Systems Ltd. Method for recognizing disguised malicious document
US9015814B1 (en) * 2014-06-10 2015-04-21 Kaspersky Lab Zao System and methods for detecting harmful files of different formats
KR102355760B1 (ko) * 2015-03-06 2022-01-26 삼성전자주식회사 악성 코드 실행 여부를 판단하는 전자 장치 및 그 제어 방법
US9838418B1 (en) * 2015-03-16 2017-12-05 Synack, Inc. Detecting malware in mixed content files
KR101670456B1 (ko) * 2015-03-20 2016-10-28 소프트캠프(주) 문서 보안시스템 및 문서 보안방법
US9984230B2 (en) * 2015-06-26 2018-05-29 Mcafee, Llc Profiling event based exploit detection
US9983986B2 (en) * 2015-09-28 2018-05-29 International Business Machines Corporation Testing code response to injected processing errors
KR101982734B1 (ko) * 2015-10-26 2019-05-27 삼성에스디에스 주식회사 악성 코드 탐지 장치 및 방법
CN106919811B (zh) * 2015-12-24 2020-08-18 阿里巴巴集团控股有限公司 文件检测方法和装置
KR101754720B1 (ko) * 2016-01-14 2017-07-19 주식회사 블랙포트시큐리티 비 실행 파일 내의 악성코드 검출 장치 및 방법
KR101646096B1 (ko) * 2016-01-21 2016-08-05 시큐레터 주식회사 메모리 분석을 통한 비실행 파일의 악성 여부 검사 방법 및 장치
US10423792B2 (en) * 2016-09-23 2019-09-24 Red Hat, Inc. Identifying exploitable code sequences
RU2634178C1 (ru) * 2016-10-10 2017-10-24 Акционерное общество "Лаборатория Касперского" Способ обнаружения вредоносных составных файлов
KR101749903B1 (ko) * 2016-11-11 2017-06-26 주식회사 안랩 비실행형 파일의 악성여부 검사시스템 및 비실행형 파일의 악성여부 검사 방법
EP3352110B1 (en) * 2017-01-23 2020-04-01 Cyphort Inc. System and method for detecting and classifying malware
US11120131B2 (en) * 2018-07-30 2021-09-14 Rubrik, Inc. Ransomware infection detection in filesystems
US11636197B2 (en) * 2018-11-15 2023-04-25 Webroot, Inc. Selective import/export address table filtering
US11615022B2 (en) * 2020-07-30 2023-03-28 Arm Limited Apparatus and method for handling accesses targeting a memory
KR102393795B1 (ko) * 2021-08-26 2022-05-03 시큐레터 주식회사 응용프로그램의 실행 흐름 변경을 통한 비실행 파일의 악성 탐지 방법 및 장치
KR102469651B1 (ko) * 2021-11-02 2022-11-23 주식회사 케이사인 IoT 장치에서의 IoT 봇넷 차단 방법 및 장치
KR102469654B1 (ko) * 2021-11-02 2022-11-23 주식회사 케이사인 IoT 봇넷 차단 방법 및 시스템
KR102472523B1 (ko) * 2022-05-26 2022-11-30 시큐레터 주식회사 리버싱 엔진 기반의 문서 행위를 판단하기 위한 방법 및 이를 위한 장치

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2570593B2 (ja) * 1993-09-24 1997-01-08 日本電気株式会社 デバッグ装置
US7487544B2 (en) * 2001-07-30 2009-02-03 The Trustees Of Columbia University In The City Of New York System and methods for detection of new malicious executables
US7340777B1 (en) * 2003-03-31 2008-03-04 Symantec Corporation In memory heuristic system and method for detecting viruses
JPWO2004075060A1 (ja) * 2003-02-21 2006-06-01 田部井 光 コンピュータウィルス判断方法
KR100516304B1 (ko) * 2003-05-16 2005-09-26 주식회사 안철수연구소 프로세스메모리의 악성코드 검출기 및 그 방법
KR100870140B1 (ko) * 2006-11-13 2008-11-24 한국전자통신연구원 악성 코드가 숨겨진 파일 탐지 장치 및 방법
KR100850361B1 (ko) 2007-03-14 2008-08-04 한국전자통신연구원 실행 가능한 코드 탐지 방법 및 장치
KR100945247B1 (ko) * 2007-10-04 2010-03-03 한국전자통신연구원 가상 환경을 이용한 비실행 파일 내의 악성 코드 분석 방법및 장치
US8037536B2 (en) * 2007-11-14 2011-10-11 Bank Of America Corporation Risk scoring system for the prevention of malware
KR100992434B1 (ko) * 2008-07-07 2010-11-05 주식회사 안철수연구소 확장자를 위장한 파일을 탐지하는 방법 및 그 장치
EP2256659A1 (en) * 2009-05-27 2010-12-01 NTT DoCoMo, Inc. Method and apparatus for preventing modification of a program execution flow
KR101056283B1 (ko) 2009-10-29 2011-08-11 주식회사 반딧불소프트웨어 악성코드 검출 장치 및 그 방법
KR101228900B1 (ko) * 2010-12-31 2013-02-06 주식회사 안랩 비 pe파일의 악성 컨텐츠 포함 여부를 판단하는 방법 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108970122A (zh) * 2018-06-28 2018-12-11 广州华多网络科技有限公司 防止外挂的方法、装置、终端及存储介质
CN108970122B (zh) * 2018-06-28 2021-06-08 广州华多网络科技有限公司 防止外挂的方法、装置、终端及存储介质

Also Published As

Publication number Publication date
US20130305373A1 (en) 2013-11-14
US8627478B2 (en) 2014-01-07
WO2013168913A1 (ko) 2013-11-14
KR101265173B1 (ko) 2013-05-15
JP2013239172A (ja) 2013-11-28

Similar Documents

Publication Publication Date Title
JP5326062B1 (ja) 非実行ファイル検査装置及び方法
JP5265061B1 (ja) 悪意のあるファイル検査装置及び方法
US10984097B2 (en) Methods and apparatus for control and detection of malicious content using a sandbox environment
RU2531861C1 (ru) Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса
US7934261B1 (en) On-demand cleanup system
US8042186B1 (en) System and method for detection of complex malware
CN109583202B (zh) 用于检测进程的地址空间中的恶意代码的系统和方法
US8918878B2 (en) Restoration of file damage caused by malware
US8434151B1 (en) Detecting malicious software
US8195953B1 (en) Computer program with built-in malware protection
EP2515250A1 (en) System and method for detection of complex malware
JP6909770B2 (ja) ウィルス対策レコードを作成するシステムと方法
JP5326063B1 (ja) デバッグイベントを用いた悪意のあるシェルコードの検知装置及び方法
CN102984134B (zh) 安全防御系统
KR100745639B1 (ko) 파일 시스템 및 레지스트리를 보호하는 방법 및 그 장치
CN102984135B (zh) 安全防御方法、装置与系统
KR101311367B1 (ko) 메모리 보호기능 우회 공격 진단 장치 및 방법
CN116738427B (zh) 终端安全防护方法、装置、设备及存储介质
Verner et al. MODERN INFORMATION SYSTEMS SECURITY MEANS
Klymenko Modern information systems security means

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130722

R150 Certificate of patent or registration of utility model

Ref document number: 5326062

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

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

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