JP2013239149A - 悪意のあるファイル検査装置及び方法 - Google Patents

悪意のあるファイル検査装置及び方法 Download PDF

Info

Publication number
JP2013239149A
JP2013239149A JP2013047172A JP2013047172A JP2013239149A JP 2013239149 A JP2013239149 A JP 2013239149A JP 2013047172 A JP2013047172 A JP 2013047172A JP 2013047172 A JP2013047172 A JP 2013047172A JP 2013239149 A JP2013239149 A JP 2013239149A
Authority
JP
Japan
Prior art keywords
malicious
execution
address
file
range 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.)
Granted
Application number
JP2013047172A
Other languages
English (en)
Other versions
JP5265061B1 (ja
Inventor
Cha Sung Lim
チャ・スン・リム
Ju Seok Lee
ジュ・ソク・リ
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.)
Ahnlab Inc
Original Assignee
Ahnlab 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 Ahnlab Inc filed Critical Ahnlab Inc
Application granted granted Critical
Publication of JP5265061B1 publication Critical patent/JP5265061B1/ja
Publication of JP2013239149A publication Critical patent/JP2013239149A/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
    • 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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing

Landscapes

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

Abstract

【課題】ファイル検査装置に関し、非実行ファイル内のマルウェアが実行される前に非実行ファイルの悪意の有無を迅速、且つ、正確に検知できるようにする。
【解決手段】非実行ファイルに対応するプログラムの駆動時に実行される命令語の実行アドレスを出力するプログラム駆動部104と、前記プログラムの駆動による正常アドレス範囲情報を格納するアドレス格納部106と、前記実行アドレスが前記正常アドレス範囲情報から逸脱するかによって、前記非実行ファイルの悪意の有無を判断する悪意判断部108とを含む。
【選択図】図1

Description

本発明は、悪意のあるファイル検査装置及び方法に関する。より具体的に、本発明は、非実行ファイルがマルウェアを含んでいるか否かを検査する装置、方法及びコンピュータプログラムが記録されたコンピュータ読み取り可能な記録媒体に関する。
広範囲なインターネット及び無線通信機器の普及に伴い、悪意のあるソフトウェア又はマルウェア(malicious code)の感染経路が多様化しており、これによる被害の程度が年々増加している。マルウェアとは、ユーザの意思と利益に反してシステムを破壊したり、情報を流出させたりするなどの悪意のある活動を行うように意図的に製作されたソフトウェアのことをいう。このようなマルウェアの種類としては、ウイルス(virus)、ワーム(worm)、トロイの木馬(trojan)、バックドア(backdoor)、論理爆弾(logic bomb)、トラップドア(trap door)などのハッキングツール、悪意のあるスパイウェア(spyware)、アドウェア(ad-ware)などが挙げられる。マルウェアは、自己複製や自動繁殖機能を通じて、ユーザ識別情報(ID)とパスワードなどの個人情報の流出、対象システムの統制、ファイルの削除/変更、システムの破壊、アプリケーション/システムのサービス拒否、核心資料の流出、他のハッキングプログラムのインストールなどの問題を起こしており、その被害も非常に多様、且つ、深刻になっている。
このような問題を解決するために、マルウェアを検知し治療するマルウェア治療システム(ワクチンプログラム)が開発されている。現在まで知られているマルウェア治療システム(ワクチンプログラム)の大部分は、ファイル基盤診断法を用いている。これは、大部分のマルウェアが特定のシステムで実行されるためには、該当システムで実行可能なファイル形態になっている点に起因するものである。例えば、マルウェアがウィンドウシステムで実行されるためには、マルウェアは、実行ファイル(PE:Portable Executable)のフォーマットを有していることが大半である。PEフォーマットを有するファイルの拡張子は、exe、cpl、ocx、dll、vxd、sys、scr、drvなどがある。このような実行ファイル(PE)形式のマルウェアを診断するためには、マルウェア治療システムもこのようなファイル形式を認識し、マルウェアとして判断できる特定形式のシグネチャ(signature)を有していなければならない。このような診断法が大部分のマルウェア治療システムが用いるシグネチャ基盤又はストリング(string)検査方式のような診断法である。このようなシグネチャ基盤の診断法は、マルウェアに分類されるファイルの特定部分又は固有な部分を検査の対象とするため、誤検出(false positive)と見逃し(false negative)を最小化する正確な診断が可能であるという点とファイルの検査時にファイルの特徴的な部分のみ比較することによって、迅速なスキャンが可能であるという長所を有する。しかしながら、このようなシグネチャ基盤診断法は、マルウェアのファイル自体が数百バイトだけ変わっても診断されない見逃しが発生するため、ファイルが少しだけ変更された新たな変形に対しては対応できなくなる。そして、既知のマルウェアに対してのみ対応できるので、新しい形態の未知のマルウェアに対しては対応できないという短所を有している。
一方、近年、話題となっているアドバンスドパーシスタントスレット(APT:Advanced Persistent Threat)攻撃は、攻撃者が特定のターゲットを定め、目標とした情報を盗み取るために、高度の攻撃技法を適用して持続的に多様な形態のマルウェアを活用する。特に、APT攻撃は、初期の侵入段階で検知できない場合が多く、主にマルウェアを含む非実行(Non-PE:Non-Portable Executable)ファイルを利用する場合が多い。これは、非実行ファイルを実行するプログラム(例えば、文書作成又は画像処理プログラム)が基本的にある程度のセキュリティ脆弱性を有しているだけでなく、マルウェアを非実行ファイルに含めれば、ファイルの変更によって簡単に変種のマルウェアを生成できるためである。
このような特性のため、APT攻撃は、悪意のある非実行ファイルエクスプロイト(exploit)を用いてゼロデイ(Zero Day)攻撃をする事例が多い。例えば、受信者が電子メールに添付された悪意のある非実行ファイルを何気なくオープンする場合、受信者のコンピュータは、悪意のあるファイルにより感染し、他のコンピュータを攻撃することもでき、システムに侵入して核心資料を外部に流出することもできる。それだけでなく、非実行ファイルが多様な形式(フォーマット)を有しているため、悪意のある非実行ファイルを用いたゼロデイ・エクスプロイト(Zero-Day Exploit)は、分析家が非実行ファイルの悪意の有無を判断し、悪意のあるビヘイビアを分析するのにかなりの時間と努力が必要であり、分析期間中に変形、又は新たに生成される数多くの悪意のある非実行ファイルに対応することは従来技術では殆ど不可能であると言える。
例えば、従来のシグネチャ基盤の検査方法は、多様な形態の攻撃方法を検知するために、大量のシグネチャデータベースを保有していなければならないため、現実的には、悪意のある非実行ファイルを用いたゼロデイ・エクスプロイトを防御できないという問題がある。
また、従来のビヘイビアベースの検査方法も多様な攻撃者に対するビヘイビアを検知しなければならないため、設計方法などの情報が必要であり、このために、多くの誤検出と見逃しが発生するという問題がある。
従って、このような問題を解決するために、非実行ファイルがマルウェアを含んでいるか否かを迅速、且つ、正確に検査できるマルウェア治療システムが開発される必要がある。
アン・チョルス研究所(下記の特許文献1)の「拡張子を偽装したファイルを検知する方法及びその装置」には、マルウェアがテキスト、イメージなどの非実行ファイルの拡張子に偽装した後、システムの内部に侵入するのを事前に防止するための技術が開示されている。
韓国公開特許第2010-5518号
本発明は、このような従来技術の問題を解決するためのものであって、その目的は、非実行ファイルのプログラムが実行されることにより、ロードされるモジュールの正常アドレス範囲情報を獲得し、正常アドレス範囲情報と実行アドレス間との比較を通じて非実行ファイルの悪意の有無を判別できる非実行ファイルのマルウェア検査装置及び検査方法を提供することにある。
本発明の目的は、前記で言及した目的に制限されず、言及していない他の目的は、以下の記載から本発明の属する通常の知識を有する者に明確に理解され得るはずである。
前記目的を達成するために、本発明の一実施形態によれば、非実行ファイルに対応するプログラムの駆動時に実行される命令語の実行アドレスを出力するプログラム駆動部と、前記プログラムの駆動による正常アドレス範囲情報を格納するアドレス格納部と、前記実行アドレスが前記正常アドレス範囲情報から逸脱するかによって、前記非実行ファイルの悪意の有無を判断する悪意判断部とを含む悪意のあるファイル検査装置が提供される。
この場合、前記プログラム駆動部は、前記非実行ファイルのファイル形式を判断し、判断されたファイル形式に基づいて前記非実行ファイルに対応するプログラムを駆動できる。
また、前記悪意判断部は、前記実行アドレスが前記正常アドレス範囲情報から逸脱する場合、前記実行アドレスが指示するメモリ領域が実行属性か否かを判断し、前記判断結果に基づいて前記非実行ファイルに対する悪意の有無を判断できる。
この場合、前記悪意判断部は、前記メモリ領域が実行属性である場合、前記実行アドレスが指示するメモリ領域に格納されているコードの実行による異常なイベントの発生の有無をチェックして前記非実行ファイルに対する悪意の有無を判断できる。
更に、前記悪意判断部は、前記異常なイベントが発生していない場合、前記実行アドレスの後、既に設定されたステップまでの実行アドレスが前記正常アドレス範囲情報を指示するかをチェックして前記非実行ファイルに対する悪意の有無を判断できる。
また、前記悪意判断部は、前記メモリ領域が非実行属性であると判断される場合、前記非実行ファイルを悪意があると判断できる。
一方、悪意のあるファイル検査装置は、前記正常アドレス範囲情報から逸脱する実行アドレスに対応する領域内のコードを抽出するマルウェア抽出部を更に含むことができる。
更に、悪意のあるファイル検査装置は、前記正常アドレス範囲情報から逸脱した実行アドレスと関連した命令語を含むモジュールと脆弱性情報との比較を通じて脆弱性の発生原因を分析する原因分析部を更に含むことができる。
一方、前記正常アドレス範囲情報は、前記プログラムの駆動によってロードされるモジュールの開始アドレスと終了アドレスを含むことができる。
そして、前記実行アドレスは、中央処理ユニットのEIPレジスタから提供されることができる。
また、前記悪意判断部は、前記駆動されるプログラムの命令語の種類に基づいて前記実行アドレスが前記正常アドレス範囲に属するかを判断できる。
前記目的を達成するために、本発明の他の実施形態によれば、非実行ファイルに対応するプログラムの駆動時に実行される命令語の実行アドレスを獲得する段階と、前記プログラムの駆動による正常アドレス範囲情報を格納する段階と、前記獲得された実行アドレスが前記正常アドレス範囲情報から逸脱する場合、前記非実行ファイルの悪意の有無を判断する段階とを含む悪意のあるファイル検査方法が提供される。
この場合、前記非実行ファイルの悪意の有無を判断する段階は、前記実行アドレスが正常アドレス範囲情報から逸脱する場合、前記実行アドレスが指示するメモリ領域が実行属性か否かを判断する段階と、前記判断結果に基づいて前記非実行ファイルに対する悪意の有無を判断する段階とを含むことができる。
前記非実行ファイルに対する悪意の有無を判断する段階は、前記メモリ領域が実行属性である場合、前記実行アドレスが指示するメモリ領域に格納されているコードの実行による異常なイベントの発生の有無をチェックする段階を含み、前記異常なイベントが発生する場合、前記非実行ファイルを悪意があると判断され得る。
前記非実行ファイルを悪意があると判断する段階は、前記異常なイベントが発生していない場合、前記実行アドレスの後、既に設定されたステップまでの実行アドレスが前記正常アドレス範囲情報から逸脱した前記メモリ領域を指示するかをチェックする段階と、前記既に設定されたステップまでの実行アドレスが前記正常アドレス範囲情報から逸脱したメモリ領域を指示する場合、前記非実行ファイルを悪意があると判断する段階とを含むことができる。
この場合、前記悪意のあるファイル検査方法は、前記非実行ファイルのファイル形式を判断する段階を更に含み、前記判断されたファイル形式に基づいて前記非実行ファイルに対応するプログラムが駆動され得る。
また、前記悪意のあるファイル検査方法は、前記正常アドレス範囲情報から逸脱する実行アドレスに対応する領域内のコードを抽出する段階を更に含むことができる。
前記悪意のあるファイル検査方法は、前記正常アドレス範囲情報から逸脱する実行アドレスと関連したモジュールと脆弱性情報との比較を通じて脆弱性の発生原因を分析する段階を更に含むことができる。
一方、前記正常アドレス範囲情報は、前記プログラムの駆動によってロードされるモジュールの開始アドレスと終了アドレスを含むことができる。
また、前記実行アドレスは、中央処理ユニットのEIPレジスタから提供され得る。
更に、前記判断する段階は、前記駆動されるプログラムの命令語の種類に基づいて前記実行アドレスが前記正常アドレス範囲に属するかを判断できる。
一方、前記命令語がリターン、コール又はジャンプである場合、1つのステップを進め、前記実行アドレスが前記正常アドレス範囲に属するかを判断できる。
反面、前記命令語が構造化された例外処理(SEH)である場合、前記構造化された例外処理のチェーン値が前記正常アドレス範囲情報に属するかを判断できる。
一方、前記悪意のあるファイル検査方法は、前記正常アドレス範囲情報から逸脱した実行アドレスの直前に実行された命令語の実行アドレスを格納する段階を更に含むことができる。
また、本発明の他の実施形態によれば、前記悪意のあるファイル検査方法によるそれぞれの段階を行う命令語を含むプログラムが記録されたコンピュータ読み取り可能な記録媒体が提供される。
本発明によれば、プログラムが駆動されることによって、正常にロードされるモジュールの開始アドレスと終了アドレスからなる正常アドレス範囲情報を獲得した後、プログラムモジュール内の各命令語が実行されるとき、出力される実行アドレスが正常アドレス範囲情報から逸脱する場合に非実行ファイル内のマルウェアが含まれていると判断することによって、マルウェアが実行される前に悪意のある非実行ファイルを検知できるという効果を奏する。
また、本発明は、プログラムが駆動されることによって、正常にロードされるモジュールの正常アドレス範囲情報を獲得した後、プログラムモジュール内の各命令語が実行されるとき、出力される実行アドレスが正常アドレス範囲情報から逸脱するか否かを通じて非実行ファイルの悪意の有無を検査することで、非実行ファイルに対する悪意の有無の判別の正確度を高めることができる。
従って、悪意のある非実行ファイルの脆弱性を利用したAPT攻撃シナリオなどに対して効果的に防御できるという効果がある。
本発明の実施形態による非実行ファイルのマルウェア検査装置を示すブロック図である。 本発明の実施形態によって非実行ファイルのマルウェアを分析する過程を示すフローチャートである。 本発明の実施形態によって非実行ファイルに対するマルウェア検査方法の例を示す図である。 本発明の他の実施形態による悪意のあるファイル検査装置が、実行アドレスが正常アドレス範囲情報から逸脱した領域を指示する場合に動作する過程を示すフローチャートである。
本発明の利点及び特徴、そしてそれらを達成する方法は、添付する図面と共に詳細に後述されている実施形態を参照すれば、明確になる。しかしながら、本発明は以下で開示される実施形態に限定されるものではなく、互いに異なる多様な形態で実現されることができ、但し、本実施形態は、本発明の開示が完全なようにし、本発明の属する技術分野における通常の知識を有する者に発明の範疇を完全に理解させるために提供されるものであり、本発明は、請求項の範疇により定義されるだけである。
本発明の実施形態を説明するにおいて公知の機能又は構成に関する具体的な説明が本発明の要旨を不要に曖昧にするおそれがあると判断される場合には、その詳細な説明を省略する。そして、後述する用語は、本発明の実施形態での機能を考慮して定義された用語であって、これはユーザ、運用者の意図又は慣例などによって変わり得る。従って、その定義は、本明細書全般に亘る内容に基づいて下されるべきである。
本明細書で用いられる「非実行ファイル」とは、実行ファイル又は実行可能なファイルと反対概念であって、自ら実行されないファイルを意味する。例えば、非実行ファイルは、アレアハングルファイル、ワードファイルのような文書ファイル、JPGファイルのようなイメージファイル、動画ファイル、Java(登録商標)Scriptファイル、HTMLファイルなどになり得るが、これに限定されない。
マルウェアを含む悪意のある非実行ファイルは、電子メールに添付される方式又はネットワークを介して悪意のある非実行ファイル自体が転送される方式などを通じてアドバンスドパーシスタントスレット(APT)攻撃などで使用され得る。この場合、マルウェアは、シェルコード(shell code)であり得、このような悪意あるシェルコードは、非実行ファイルの形式(フォーマット)に対応するプログラムを実行する場合に実行され得る。非実行ファイルの形式は例えば、hwpファイル、docファイル、pdfファイル、jpgファイル、jsファイル、htmlファイルなどになり得る。
悪意のある非実行ファイルは、悪意あるシェルコードを含むことができ、悪意あるシェルコードを含んでいる悪意のある非実行ファイルは、如何なる方式を通じてでも、結局のところ、命令語を実行する際に悪意あるシェルコード領域に移動する。このような悪意あるシェルコード領域への移動は、実行アドレスを確認すれば、予め予測できる。例えば、CPUのような中央処理ユニットのレジスタの1つであるEIP(Extended Instruction Pointer)レジスタに格納されている値を通じて次に実行すべき命令語の実行アドレスを確認できる。従って、正常な正常アドレス範囲から逸脱し、悪意あるシェルコード領域に移動する命令語を有するか否かは、非実行ファイルの悪意の有無を判断する上で重要な基準になり得る。
図1は、本発明の実施形態による非実行ファイルのマルウェア検査装置を示すブロック図である。以下、図1を参照して本発明の実施形態による非実行ファイルのマルウェア検査装置の構成及び動作について詳細に説明する。
図1に示すように、本発明の実施形態による悪意のあるファイル検査装置は、非実行ファイルをプログラムにロードして実行させ、プログラムの実行によって、非実行ファイル内のマルウェアを含むか否かを分析した後、これを分析及び報告できる。このために、悪意のあるファイル検査装置は、プログラムデータベース100、ユーザインターフェース102、プログラム駆動部104、アドレス格納部106、悪意判断部108、マルウェア抽出部110、原因分析部112及び仮想メモリ114などを含むことができる。
プログラムデータベース100は、マルウェアの検査のために入力される非実行ファイルを実行させるための多様な形式のプログラムを格納している。
ユーザインターフェース102は、検査しようとする非実行ファイルが格納されているディレクトリ又は非実行ファイルを選択するためのインターフェースを提供できる。
プログラム駆動部104は、ユーザインターフェース102を介して選択された非実行ファイルの形式を判断し、判断された形式によってプログラムデータベース100を検索して非実行ファイルを実行させることができるプログラムを選択できる。
また、プログラム駆動部104は、選択されたプログラムに非実行ファイルをロードして実行させ、非実行ファイルのロードによってプログラムのモジュール内の各命令語に対する実行アドレスを悪意判断部108に出力できる。ここで、モジュールの例としては、動的結合ライブラリ(DLL:Dynamic Linking Library)などが挙げられる。
一方、プログラム駆動部104は、選択されたプログラムに非実行ファイルをロードして仮想環境で実行することもできる。
プログラム駆動部104は、中央処理ユニット(CPU:Central Processing Unit)のレジスタに格納されている情報を用いて命令語に対する実行アドレスを提供できる。その例として、中央処理装置のEIPレジスタには、次に実行すべき命令語のメモリアドレスが格納され得る。
アドレス格納部106は、プログラムが駆動されることによって正常にロードされるモジュールの開始アドレスと終了アドレスからなる正常アドレス範囲情報を仮想メモリ114に格納することができる。
悪意判断部108は、非実行ファイルがプログラムにロードされることによってプログラムのモジュール内の各命令語が実行されるとき、各命令語の実行アドレスをプログラム駆動部104から提供を受け、提供された実行アドレスが正常アドレス範囲情報から逸脱するか否かに基づいて非実行ファイルの悪意の有無を判断して分類できる。例えば、中央処理ユニットのEIPレジスタに格納されている実行アドレスが正常アドレス範囲情報から逸脱する場合、非実行ファイルを悪意があると分類できる。
また、悪意判断部108は、実行アドレスが指示する領域、即ち正常アドレス範囲情報から逸脱した領域を悪意あるシェルコード領域と判断し、悪意あるシェルコード領域を指示する実行アドレスの命令語の直前に実行された命令語の実行アドレスを仮想メモリ114に格納できる。
このような悪意判断部108は、命令語の種類によって1つのステップ(single step)を進め、プログラム駆動部104から出力される実行アドレスと正常アドレス範囲情報間の比較を通じて非実行ファイルに対する悪意の有無を判断できる。より具体的に、悪意判断部108は、命令語の種類によって1つのステップを進めて実行アドレスが正常な正常アドレス範囲情報に属するかを判断するか、1つのステップを進めず、直ちに実行アドレスが正常な正常アドレス範囲情報に属するかを判断できる。例えば、命令語が構造化された例外処理(SHE:Structured Exception Handling)である場合、悪意判断部108は、構造化された例外処理のチェーン(chain)値と正常アドレス範囲情報間の比較を行える。また、リターン(return)、コール(call)又はジャンプ(jump)などのような命令語は、1つのステップを進めて実行アドレスが正常な正常アドレス範囲情報に属するかを判断する。ここで、構造化された例外処理のチェーン値は、実行するアドレスを意味する。
但し、悪意判断部108は、正常プログラムが非実行ファイルをロードするために、正常モジュールの正常アドレス範囲情報外で命令語を実行することは、例外処理することもできる。
例外処理される場合について説明すれば、悪意判断部108は、実行アドレスが正常アドレス範囲情報から逸脱する場合、実行アドレスが指示するメモリ領域の属性を判断する。判断結果、メモリ領域の属性が実行属性であれば、該当非実行ファイルを正常と判定する。しかしながら、その判断の結果、メモリ領域の属性が実行属性でなければ、実行アドレスが指示するメモリ領域に格納されているコードの実行によって発生するイベントが異常なイベントかを判断する。
ここで、異常なイベントの例としては、
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:
などが挙げられるが、これに限定しない。
異常なイベントが発生する場合、悪意判断部108は、非実行ファイルをマルウェアと判断すると共に、正常アドレス範囲情報から逸脱する実行アドレスの命令語の直前に実行された命令語の実行アドレスを仮想メモリ114に格納できる。
一方、異常なイベントが発生していない場合、悪意判断部108は、既に設定されたステップ、例えば3-5ステップまでの命令語に対する実行アドレスと正常アドレス範囲情報間の比較を通じて非実行ファイルに対する悪意の有無を判断できる。即ち、悪意判断部108は、既に設定されたステップまでの命令語に対する実行アドレスが正常アドレス範囲情報から逸脱する場合、非実行ファイルを悪意があると判断し、既に設定されたステップ以前の命令語に対する実行アドレスが正常アドレス範囲情報である場合、非実行ファイルを正常と判断し、以後のステップに対する命令語を行える。
マルウェア抽出部110は、正常アドレス範囲情報から逸脱する実行アドレスに対応する領域内のシェルコードを実行ファイル又は実行可能なファイル形態で抽出した後、これを仮想メモリ114に格納できる。ここで、実行ファイル又は実行可能なファイル形態は、exe、cpl、dll、ocx、vxd、sys、scr、drvなどになり得るが、これに限定しない。
また、マルウェア抽出部110は、実行ファイル又は実行可能なファイル形態で抽出されたコードを通信網(図示せず)に連結されたマルウェア検査及び分析サーバ(図示せず)に転送して分析を依頼できる。
原因分析部112は、悪意があると分類されたモジュールの情報及び正常アドレス範囲情報から逸脱した実行アドレスと既に格納されている脆弱性情報間の比較を通じて脆弱性の発生原因を把握した後、これをユーザ又は分析家に提供できる。ここで、脆弱性情報としては、CVE(Common Vulnerabilities and Exposures)、Microsoft Security Bulletin(例えば、MS11-002)、NVD(National Vulnerability Database)、US-CERT Bulletinなどで提供した情報であり得るが、これらに限定されない。
本発明の実施形態では、原因分析部112が悪意のあるファイル検査装置の内部に設けられるものとして例に挙げて説明したが、通信網を介して連結された別途の分析サーバ(図示せず)に設置されることができる。
前記のような構成を有する悪意のあるファイル検査装置が動作する過程について図1及び図2を参照して説明する。ここで、本発明の実施形態によるプログラム駆動部104は、実行が必要な特定プログラムを直接実行させてもよく、別途のシステム(図示せず)に特定プログラムの実行を要請してもよい。
まず、本発明の実施形態によるマルウェア検査装置が特定プログラムを直接実行する場合を説明する。
図2に示すように、ユーザがユーザインターフェース102を用いて非実行ファイルが格納されているディレクトリを選択すれば、プログラム駆動部104は、選択されたディレクトリ内の非実行ファイルの形式を把握する。即ち、検査の対象である非実行ファイルが格納されているディレクトリがユーザインターフェース102を介して選択(S200)されれば、プログラム駆動部104は、該当ディレクトリに格納されている非実行ファイルのファイル形式情報に基づいてファイル形式を判断する。例えば、ドライブ1の下位に存在する多数のルートフォルダの中から特定のルートフォルダがユーザインターフェース102を介して選択されれば、特定のルートフォルダに格納されている非実行ファイルのファイル形式情報を確認して該当非実行ファイルのファイル形式を判断する(S202)。
その次に、プログラム駆動部104は、非実行ファイルの形式に合うプログラムをプログラムデータベース100で検索して実行する(S204)。このようなプログラム駆動部104は、非実行ファイルを検索されたプログラム上にロードして実行させ、プログラム内のモジュールの命令語の実行アドレスを悪意判断部108に出力する。ここで、実行アドレスは、モジュール内の命令語が実行されるとき、仮想メモリ114上のアドレスを意味し、EIPレジスタに格納されている。
そうしてから、アドレス格納部106は、プログラムの実行によって仮想メモリ114にロードされるモジュールの開始アドレスと終了アドレスからなる正常アドレス範囲情報を仮想メモリ114に格納する(S206)。
その後、悪意判断部108は、プログラム駆動部104から出力される実行アドレスと正常アドレス範囲情報間の比較を通じて実行アドレスが正常アドレス範囲情報に含まれるかを判断する(S208)。
S208の判断結果、実行アドレスが正常アドレス範囲情報に含まれる場合、悪意判断部108は、次の命令語に対する実行アドレスをプログラム駆動部104から提供(S210)を受けた後、S208に進み、次の命令語の実行アドレスが正常アドレス範囲情報に含まれるかを再び判断する。
一方、S208の判断結果、実行アドレスが正常アドレス範囲情報から逸脱する場合、レジスタ値が悪意あるシェルコード領域に移動すると判断し、悪意判断部108は、非実行ファイルを悪意があると分類した後、プログラムの駆動を中止させる(S212)。
そうしてから、悪意判断部108は、悪意あるシェルコード領域に移動する前の実行アドレスとプログラム内の該当モジュール(脆弱性を有するモジュール)の情報を仮想メモリ114に格納(S214)した後、これを原因分析部112に提供する。
一方、マルウェア抽出部110は、正常アドレス範囲情報から逸脱する実行アドレスが指示する領域、即ち悪意あるシェルコード領域に対するコードを実行ファイル又は実行可能なファイル形態で抽出した後、これを仮想メモリ114に格納する(S216)。
原因分析部112は、悪意判断部108から提供を受けた実行アドレス及びモジュールの情報を既に格納されている脆弱性情報間の比較を通じて脆弱性の発生原因を把握した後、これをユーザ又は分析家に提供することで、該当非実行ファイルに対する分析結果を報告できる(S216)。
そうしてから、ディレクトリ内に他の非実行ファイルが存在する場合、悪意のあるファイル検査装置は、次の非実行ファイルをディレクトリから抽出した後、S202に進み、以後の段階を行う。
次に、本発明の実施形態によってマルウェア検査装置が特定プログラムを直接実行せず、別途のシステムに特定プログラムの実行を要請する場合を説明する。ここで、システムの例としては、マルウェア検査装置が設けられた個人用端末、通信網(図示せず)を介して連結されたプログラム提供サーバなどを意味し得、これに限定されるものではない。
ユーザがユーザインターフェース102を用いて非実行ファイルが格納されているディレクトリを選択すれば、プログラム駆動部104は、選択されたディレクトリ内の非実行ファイルの形式を把握する。即ち、検査の対象である非実行ファイルが格納されているディレクトリがユーザインターフェース102を介して選択(S200)されれば、プログラム駆動部104は、該当ディレクトリに格納されている非実行ファイルのファイル形式情報に基づいてファイルの形式を判断する。例えば、ドライブ1の下位に存在する多数のルートフォルダの中から特定のルートフォルダがユーザインターフェース102を介して選択されれば、特定のルートフォルダに格納されている非実行ファイルのファイル形式情報を確認して該当非実行ファイルのファイル形式を判断する(S202)。
その次に、プログラム駆動部104は、非実行ファイルの形式に合うプログラムを駆動するようシステム(図示せず)に要請し、システムは、非実行ファイルの形式に合うプログラムを選択して実行する(S204)。このようにプログラムが実行されれば、モジュールがロードされ、プログラム駆動部104は、ロードされたモジュールの命令語別の実行アドレスをシステムから提供を受け、悪意判断部108に出力する。ここで、実行アドレスは、モジュール7内の命令語が実行されるとき、仮想メモリ114上のアドレスを意味し、EIPレジスタに格納され得る。
そうしてから、アドレス格納部106は、プログラムの実行によって仮想メモリ114にロードされるモジュールの開始アドレスと終了アドレスからなる正常アドレス範囲情報を仮想メモリ114に格納する(S206)。
その後、悪意判断部108は、プログラム駆動部104から出力される実行アドレスと正常アドレス範囲情報間の比較を通じて実行アドレスが正常アドレス範囲情報に含まれるかを判断する(S208)。
S208の判断結果、実行アドレスが正常アドレス範囲情報に含まれる場合、悪意判断部108は、次の命令語に対する実行アドレスをプログラム駆動部104から提供(S210)を受けた後、S208に進み、次の命令語の実行アドレスが正常アドレス範囲情報に含まれるかを判断する。
一方、S208の判断結果、実行アドレスが正常アドレス範囲情報から逸脱する場合、レジスタ値が悪意あるシェルコード領域に移動するため、悪意判断部108は、非実行ファイルを悪意があると分類した後、プログラムの駆動を中止させる(S212)。
そうしてから、悪意判断部108は、悪意あるシェルコード領域に移動する前の実行アドレスとプログラム内の該当モジュール(脆弱性を有するモジュール)の情報を仮想メモリ114に格納(S214)した後、これを原因分析部112に提供する。
一方、マルウェア抽出部110は、正常アドレス範囲情報から逸脱する実行アドレスが指示する領域、即ち悪意あるシェルコード領域に対するコードを実行ファイル又は実行可能なファイル形態に加工した後、これを仮想メモリ114に格納する(S216)。
原因分析部112は、悪意判断部108から提供を受けた実行アドレス及びモジュールの情報を既に格納されている脆弱性情報間の比較を通じて脆弱性の発生原因を把握した後、これをユーザ又は分析家に提供することで、該当非実行ファイルに対する分析結果を報告できる(S216)。
そうしてから、ディレクトリ内に他の非実行ファイルが存在する場合、悪意のあるファイル検査装置は、次の非実行ファイルをディレクトリから抽出した後、S202に進み、以後の段階を行う。
一方、一実施形態では、実行アドレスが正常アドレス範囲情報から逸脱する場合、これを悪意があると判断するものとして例に挙げて説明したが、他の実施形態では、実行アドレスが正常アドレス範囲情報から逸脱した場合であっても、実行アドレスが指示するメモリ領域が実行属性か否かによって例外処理できるが、これに関する説明は、以下の通りである。
図3は、本発明の他の実施形態による悪意のあるファイル検査装置が、実行アドレスが正常アドレス範囲情報から逸脱した領域を指示する場合に動作する過程を示すフローチャートである。
図3に示すように、第1実行アドレスが正常アドレス範囲情報から逸脱したメモリ領域を指示する場合、悪意判断部108は、カウンタ値を既に設定された初期値、例えば「0」にセット(S300)した後、第1実行アドレスが指示するメモリ領域に対する属性を検査し、属性が実行属性か否かを判断する(S302)。
S302の判断結果、実行属性でない場合、悪意判断部108は、第1実行アドレスが指示するメモリ領域内のコードを実行(S304)させ、実行によって発生するイベントが異常なイベントか否かを検査する(S306)。
一方、S302で実行属性である場合、悪意判断部108は、非実行ファイルを正常と判断(S308)し、次の実行アドレス、即ち第2実行アドレスとアドレス範囲情報間の比較を行う。また、S306の検査結果、異常なイベントが発生する場合にも、悪意判断部108は非実行ファイルを悪意があると判断する(S310)。
一方、S306の検査結果、異常なイベントが発生していない場合、悪意判断部108は、カウンタ値を「1」増加(S312)させた後、カウンタ値が閾値以下であるかを判断する(S314)。
S314の判断結果、カウンタ値が閾値以下である場合、悪意判断部108は、プログラム駆動部104から提供を受けた後、次のステップの命令語に対する第2実行アドレスが正常アドレス範囲情報から逸脱するかを判断する(S316)。
S316の判断結果、次のステップの命令語に対する次の実行アドレス、即ち第2実行アドレスが正常アドレス範囲情報から逸脱する場合、悪意判断部108は、第2実行アドレスが指示するメモリ領域に対する実行属性を検査するS302に進み、以後の段階を行う。
一方、S314の判断結果、カウンタ値が閾値を超える場合、悪意判断部108は、非実行ファイルを悪意があると判断する。
また、S316の判断結果、次のステップの命令語に対する第2実行アドレスが正常アドレス範囲情報を指示する場合、悪意判断部108は、次の命令語に対する第3実行アドレスと正常アドレス範囲情報間の比較を行う。
本発明の実施形態による装置及び方法によれば、プログラムが駆動されることによって、正常にロードされるモジュールの開始アドレスと終了アドレスからなる正常アドレス範囲情報を仮想メモリ114に格納した後、仮想メモリ114にロードされるモジュール内の各命令語が実行されるとき、各命令語の実行アドレスを抽出し、抽出された実行アドレスが正常アドレス範囲情報から逸脱する場合、非実行ファイル内のマルウェアが含まれていると判断することによって、マルウェアが実行される前に悪意のある非実行ファイルを検知できる。
また、本発明の実施形態によれば、仮想メモリ114にロードされるモジュール内の各命令語が実行されるとき、各命令語の実行アドレスを抽出し、抽出された実行アドレスが正常アドレス範囲情報から逸脱した実行アドレスの悪意あるシェルコード領域内のコードを実行ファイル又は実行可能なファイル形態で提供することで、悪意のある非実行ファイルに対する静的分析が可能である。
図4は、本発明の実施形態によって非実行ファイルに対するマルウェア検査方法の例を示す図である。以下、図4を参照して本発明の実施形態によるマルウェア検査方法を詳察する。
非実行ファイルがプログラムで実行される場合、プログラムは開始時から終了時まで正常な流れ410で実行され得るが、非実行ファイル内のマルウェアによって異常な流れ420で実行され得る。
非実行ファイルがプログラムにロードされれば、アドレス格納部106は、正常にロードされるプログラムの正常アドレス範囲情報430を仮想メモリ114に格納する。ここで、正常アドレス範囲情報430は、正常にロードされるプログラム内の命令語の開始アドレスと終了アドレスからなる情報である。
その後、悪意判断部108は、プログラムの実行アドレス440と正常アドレス範囲情報430間の比較を通じてプログラムのレジスタ値を分析する。このとき、分析区間は、プログラムに非実行ファイルがロードされた時点からマルウェアが実行される前までの区間を意味する。即ち、マルウェアが実行される前まではプログラムの実行アドレスが正常アドレス範囲情報を指示する正常な様子を示し、マルウェアが実行される場合には、実行アドレス440が正常アドレス範囲情報から逸脱した領域432を示す。例えば、実行アドレス440のD、E、F、Gが正常アドレス範囲情報430を示す場合、プログラムは、正常な流れ410で実行され、実行アドレス440のHが正常アドレス範囲情報430から逸脱した領域432を示す場合、プログラムは、異常な流れ420で実行される。
プログラムがマルウェアの実行によって正常な流れ410から逸脱する場合、プログラムにロードされた非実行ファイルに含まれているマルウェアが実行され得る。このとき、マルウェアの種類によって、マルウェアイメージが実行され得る。
前述したように、マルウェアが実行される区間では、マルウェアの実行によってプログラムのレジスタ値、即ちプログラム内のモジュールの実行アドレス440のHが正常アドレス範囲情報から逸脱した領域432を示す。このような場合、本発明の実施形態による悪意のあるファイル検査装置は、正常アドレス範囲情報430から逸脱する前の実行アドレスであるGとプログラム内の該当モジュールに関する情報を仮想メモリ114に格納する。
また、プログラム内のモジュールの実行アドレスが正常アドレス範囲情報から逸脱した領域432を指示する場合、本発明の実施形態による悪意のあるファイル検査装置は、実行アドレスに対応する領域432のコードが実行される前にプログラムを中止させる。
本発明に添付されたブロック図の各ブロックとフローチャートの各段階の組み合わせは、コンピュータ・プログラム・インストラクションにより遂行されることもできる。これらのコンピュータ・プログラム・インストラクションは、汎用コンピュータ、特殊コンピュータ又はその他プログラム可能なデータプロセシング装置のプロセッサに搭載され得るので、コンピュータ又はその他プログラム可能なデータプロセシング装置のプロセッサを介して行われるそのインストラクションがブロック図の各ブロック又はフローチャートの各段階で説明された機能を行う手段を生成するようになる。これらのコンピュータ・プログラム・インストラクションは、特定の方式で機能を実現するために、コンピュータ又はその他プログラム可能なデータプロセシング装置を指向できるコンピュータ利用可能又はコンピュータ読み取り可能なメモリに格納されることも可能であるので、そのコンピュータ利用可能又はコンピュータ読み取り可能なメモリに格納されているインストラクションは、ブロック図の各ブロック又はフローチャートの各段階で説明された機能を行うインストラクション手段を内包する製造品目を生産することも可能である。コンピュータ・プログラム・インストラクションは、コンピュータ又はその他プログラム可能なデータプロセシング装置上に搭載されることも可能であるので、コンピュータ又はその他プログラム可能なデータプロセシング装置上で一連の動作段階が行われ、コンピュータで実行されるプロセスを生成し、コンピュータ又はその他プログラム可能なデータプロセシング装置を行うインストラクションは、ブロック図の各ブロック及びフローチャートの各段階で説明された機能を実行するための段階を提供することも可能である。
また、各ブロック又は各段階は、特定された(各)論理的機能を実行するための1つ以上の実行可能なインストラクションを含むモジュール、セグメント又はコードの一部を示すことができる。また、幾つかの代替実施形態では、ブロック又は段階で言及された機能が順序外れで発生することも可能であることに注目すべきである。例えば、相次いで示されている2つのブロック又は段階は事実上、実質的に同時に行われてもよく、又はそのブロック又は段階が時折、該当する機能によって逆順に行われてもよい。
以上の説明は、本発明の技術思想を例示的に説明したことに過ぎないものであって、本発明の属する技術分野における通常の知識を有する者であれば、本発明の本質的な特性から逸脱しない範囲で多様な修正及び変形が可能である。従って、本発明に開示された実施形態は、本発明の技術思想を限定するためのものではなく、説明するためのものであり、このような実施形態によって本発明の技術思想の範囲が限定されるものではない。本発明の保護範囲は、以下の請求範囲によって解釈されなければならず、それと同等な範囲内にある全ての技術思想は、本発明の権利範囲に含まれるものとして解釈されるべきである。
100 プログラムデータベース
102 ユーザインターフェース
104 プログラム駆動部
106 アドレス格納部
108 悪意判断部
110 マルウェア抽出部
112 原因分析部
114 仮想メモリ

Claims (26)

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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120050155A KR101212553B1 (ko) 2012-05-11 2012-05-11 악성 파일 검사 장치 및 방법
KR10-2012-0050155 2012-05-11

Publications (2)

Publication Number Publication Date
JP5265061B1 JP5265061B1 (ja) 2013-08-14
JP2013239149A true JP2013239149A (ja) 2013-11-28

Family

ID=47907723

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013047172A Active JP5265061B1 (ja) 2012-05-11 2013-03-08 悪意のあるファイル検査装置及び方法

Country Status (4)

Country Link
US (1) US8763128B2 (ja)
JP (1) JP5265061B1 (ja)
KR (1) KR101212553B1 (ja)
WO (1) WO2013168951A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017500668A (ja) * 2013-12-27 2017-01-05 マカフィー, インコーポレイテッド 悪意あるマルチメディアファイルを検出するシステム及び方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9734333B2 (en) * 2012-04-17 2017-08-15 Heat Software Usa Inc. Information security techniques including detection, interdiction and/or mitigation of memory injection attacks
US9047293B2 (en) * 2012-07-25 2015-06-02 Aviv Grafi Computer file format conversion for neutralization of attacks
US9628507B2 (en) * 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
CN103607388B (zh) * 2013-11-18 2016-09-21 浪潮(北京)电子信息产业有限公司 一种apt威胁预测方法及系统
KR101624326B1 (ko) 2014-06-24 2016-05-26 주식회사 안랩 악성 파일 진단 시스템 및 악성 파일 진단 방법
CA2953788C (en) * 2014-06-24 2021-05-18 Virsec Systems, Inc. Automated code lockdown to reduce attack surface for software
KR101670456B1 (ko) * 2015-03-20 2016-10-28 소프트캠프(주) 문서 보안시스템 및 문서 보안방법
CN106919811B (zh) * 2015-12-24 2020-08-18 阿里巴巴集团控股有限公司 文件检测方法和装置
US9928363B2 (en) * 2016-02-26 2018-03-27 Cylance Inc. Isolating data for analysis to avoid malicious attacks
US10546117B1 (en) * 2016-11-15 2020-01-28 Symantec Corporation Systems and methods for managing security programs
US9858424B1 (en) 2017-01-05 2018-01-02 Votiro Cybersec Ltd. System and method for protecting systems from active 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
US10664599B2 (en) 2017-05-01 2020-05-26 International Business Machines Corporation Portable executable and non-portable executable boot file security
KR102040080B1 (ko) * 2018-02-22 2019-11-04 주식회사 알파비트 자바스크립트 자기보호 장치 및 그 방법

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3710671B2 (ja) * 2000-03-14 2005-10-26 シャープ株式会社 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法
CA2363795A1 (en) * 2001-11-26 2003-05-26 Cloakware Corporation Computer system protection by communication diversity
US7752459B2 (en) * 2001-12-06 2010-07-06 Novell, Inc. Pointguard: method and system for protecting programs against pointer corruption attacks
US7793346B1 (en) * 2003-01-17 2010-09-07 Mcafee, Inc. System, method, and computer program product for preventing trojan communication
JP2005032182A (ja) * 2003-07-11 2005-02-03 Sony Corp プログラム、攻撃コード抽出装置およびその方法
US7716495B2 (en) * 2003-12-31 2010-05-11 Microsoft Corporation Protection against runtime function attacks
US7437759B1 (en) * 2004-02-17 2008-10-14 Symantec Corporation Kernel mode overflow attack prevention system and method
KR100586500B1 (ko) * 2004-03-18 2006-06-07 학교법인고려중앙학원 버퍼 오버플로우 공격들을 감지하고 복구하는 방법 및 그장치
US7971255B1 (en) * 2004-07-15 2011-06-28 The Trustees Of Columbia University In The City Of New York Detecting and preventing malcode execution
WO2006101549A2 (en) * 2004-12-03 2006-09-28 Whitecell Software, Inc. Secure system for allowing the execution of authorized computer program code
US7540026B1 (en) * 2005-01-24 2009-05-26 Symantec Corporation No-execute processor feature global disabling prevention system and method
US7562391B1 (en) * 2005-04-18 2009-07-14 Symantec Corporation Reducing false positive indications of buffer overflow attacks
KR20070029540A (ko) * 2005-09-10 2007-03-14 배기봉 특수 설계된 전자 mark 의 파일 삽입 및 파일 기본 속성기반으로 하는 신종 악성코드 탐지/제거 기능 및 패치 관리기능, 조기 경보 기능을 제공하는 시스템 종합 보안솔루션 구현 기법
US8127144B2 (en) * 2005-10-12 2012-02-28 Panasonic Corporation Program loader operable to verify if load-destination information has been tampered with, processor including the program loader, data processing device including the processor, promgram loading method, and integrated circuit
US9055093B2 (en) * 2005-10-21 2015-06-09 Kevin R. Borders Method, system and computer program product for detecting at least one of security threats and undesirable computer files
JP4844102B2 (ja) * 2005-11-30 2011-12-28 富士ゼロックス株式会社 サブプログラム及びそのサブプログラムを実行する情報処理装置
US7856538B2 (en) * 2005-12-12 2010-12-21 Systex, Inc. Methods, systems and computer readable medium for detecting memory overflow conditions
US20080028462A1 (en) * 2006-07-26 2008-01-31 Michael Burtscher System and method for loading and analyzing files
US20080148399A1 (en) * 2006-10-18 2008-06-19 Microsoft Corporation Protection against stack buffer overrun exploitation
KR100870140B1 (ko) * 2006-11-13 2008-11-24 한국전자통신연구원 악성 코드가 숨겨진 파일 탐지 장치 및 방법
US7950057B1 (en) * 2006-12-21 2011-05-24 Symantec Corporation Driver load manager and method
US8141163B2 (en) * 2007-07-31 2012-03-20 Vmware, Inc. Malicious code detection
KR100945247B1 (ko) 2007-10-04 2010-03-03 한국전자통신연구원 가상 환경을 이용한 비실행 파일 내의 악성 코드 분석 방법및 장치
KR100991807B1 (ko) 2008-05-20 2010-11-04 주식회사 웰비아닷컴 마이크로소프트 윈도우 운영체제를 사용하는 컴퓨터시스템에서의 악성코드 탐지 및 처리 시스템 및 방법
KR100992434B1 (ko) 2008-07-07 2010-11-05 주식회사 안철수연구소 확장자를 위장한 파일을 탐지하는 방법 및 그 장치
US8621626B2 (en) * 2009-05-01 2013-12-31 Mcafee, Inc. Detection of code execution exploits
EP2256659A1 (en) * 2009-05-27 2010-12-01 NTT DoCoMo, Inc. Method and apparatus for preventing modification of a program execution flow
EP2262259A1 (en) * 2009-06-08 2010-12-15 Nagravision S.A. Method for monitoring execution of data processing program instructions in a security module
US20110191848A1 (en) * 2010-02-03 2011-08-04 Microsoft Corporation Preventing malicious just-in-time spraying attacks
US20120096554A1 (en) * 2010-10-19 2012-04-19 Lavasoft Ab Malware identification
US8533835B2 (en) * 2011-12-14 2013-09-10 Mcafee, Inc. Method and system for rapid signature search over encrypted content
JP4927231B1 (ja) * 2011-12-22 2012-05-09 株式会社フォティーンフォティ技術研究所 プログラム、情報機器、及び不正アクセス検出方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017500668A (ja) * 2013-12-27 2017-01-05 マカフィー, インコーポレイテッド 悪意あるマルチメディアファイルを検出するシステム及び方法

Also Published As

Publication number Publication date
US20130305366A1 (en) 2013-11-14
KR101212553B1 (ko) 2012-12-14
US8763128B2 (en) 2014-06-24
JP5265061B1 (ja) 2013-08-14
WO2013168951A1 (ko) 2013-11-14

Similar Documents

Publication Publication Date Title
JP5265061B1 (ja) 悪意のあるファイル検査装置及び方法
JP5326062B1 (ja) 非実行ファイル検査装置及び方法
RU2531861C1 (ru) Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса
US7934261B1 (en) On-demand cleanup system
US8918878B2 (en) Restoration of file damage caused by malware
RU2571723C2 (ru) Система и способ для снижения нагрузки на операционную систему при работе антивирусного приложения
CN109583202B (zh) 用于检测进程的地址空间中的恶意代码的系统和方法
US8955118B2 (en) Detecting malicious software
EP3039608B1 (en) Hardware and software execution profiling
US8042186B1 (en) System and method for detection of complex malware
US20140053267A1 (en) Method for identifying malicious executables
JP6909770B2 (ja) ウィルス対策レコードを作成するシステムと方法
US9659173B2 (en) Method for detecting a malware
JP5326063B1 (ja) デバッグイベントを用いた悪意のあるシェルコードの検知装置及び方法
KR101646096B1 (ko) 메모리 분석을 통한 비실행 파일의 악성 여부 검사 방법 및 장치
US9959406B2 (en) System and method for zero-day privilege escalation malware detection
KR100745639B1 (ko) 파일 시스템 및 레지스트리를 보호하는 방법 및 그 장치
KR101311367B1 (ko) 메모리 보호기능 우회 공격 진단 장치 및 방법
EP3800570A1 (en) Methods and systems for genetic malware analysis and classification using code reuse patterns
KR101908517B1 (ko) 스트링과 코드 시그니처를 이용한 악성코드 탐지 및 패커 해제 방법
San et al. Proposed ApplicableFramework for Extracting Rootkits Features and Clustering through Dynamic Analysis for Incident Handling Systems

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: 20130409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130430

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5265061

Country of ref document: JP

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