(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-24
(54)【発明の名称】悪性コード静的分析のための実行ファイルのアンパッキングシステム及び方法
(51)【国際特許分類】
G06F 21/56 20130101AFI20240117BHJP
【FI】
G06F21/56 320
G06F21/56 350
G06F21/56 340
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023540802
(86)(22)【出願日】2021-12-02
(85)【翻訳文提出日】2023-06-30
(86)【国際出願番号】 KR2021018068
(87)【国際公開番号】W WO2022149729
(87)【国際公開日】2022-07-14
(31)【優先権主張番号】10-2021-0000707
(32)【優先日】2021-01-05
(33)【優先権主張国・地域又は機関】KR
(81)【指定国・地域】
(71)【出願人】
【識別番号】523249995
【氏名又は名称】株式会社モニタラップ
【氏名又は名称原語表記】MONITORAPP CO., LTD.
【住所又は居所原語表記】8F., 27, Digital-ro 27ga-gil Guro-gu Seoul 08375 Republic of Korea
(74)【代理人】
【識別番号】100121382
【氏名又は名称】山下 託嗣
(72)【発明者】
【氏名】キム,ヨン ジュン
(72)【発明者】
【氏名】キム,ドゥ ファン
(57)【要約】
本発明は、悪性コード静的分析のための実行ファイルのアンパッキングシステム及び方法に関し、本発明による方法は、探知対象ファイルの入力を受けてバイナリファイルであるか否かを確認し、探知対象ファイルがバイナリファイルであればハッシュ値を抽出する事前分析段階と、抽出されたハッシュ値に対応する悪性コードハッシュ値をデータベースで検索する段階と、抽出されたハッシュ値に対応する悪性コードハッシュ値が見つからなければ、探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールを用いてパッカーを探知する段階と、探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールでパッカーが探知されなければ、エントロピー基盤のパッカー探知モジュールを用いてパッキング有無を推測する段階とを含む。本発明によると、悪性コードを探知することができる確率が高くなり、速い速度で探知することができるという長所がある。
【特許請求の範囲】
【請求項1】
探知対象ファイルの入力を受けてバイナリファイルであるか否かを確認し、前記探知対象ファイルがバイナリファイルであればハッシュ値を抽出する事前分析段階と、
抽出された前記ハッシュ値に対応する悪性コードハッシュ値をデータベースで検索する段階と、
抽出された前記ハッシュ値に対応する悪性コードハッシュ値が見つからなければ、前記探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールを用いてパッカーを探知する段階と、
前記探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールでパッカーが探知されなければ、エントロピー基盤のパッカー探知モジュールを用いてパッキング有無を推測する段階と、
を含む、悪性コード静的分析のための実行ファイルのアンパッキング方法。
【請求項2】
前記シグニチャー基盤のパッカー探知モジュールは、前記探知対象ファイルのEP(Entry point)からバイトパターン(byte pattern)をパッシングして抽出した情報をデータベースでロードされたパッカーシグニチャー情報とマッチングしてパッカーを探知する、請求項1に記載の悪性コード静的分析のための実行ファイルのアンパッキング方法。
【請求項3】
前記シグニチャー基盤として探知されたパッカーに対応するアンパッカーライブラリを用いて前記探知対象ファイルのIAT(Import Address Table)の復旧後、OEP(Original Entry Point)地点でメモリダンプを通じて、前記探知対象ファイルをアンパッキングする段階をさらに含む、請求項2に記載の悪性コード静的分析のための実行ファイルのアンパッキング方法。
【請求項4】
前記エントロピー基盤のパッカー探知モジュールは、
前記探知対象ファイルのエントロピー値を抽出して予め定義された臨界値と比較してパッキングの有無を推測する、請求項1に記載の悪性コード静的分析のための実行ファイルのアンパッキング方法。
【請求項5】
エントロピー基盤としてパッキングされたと推測された場合、前記探知対象ファイルのEP地点からトレーシング(Tracing)してIATを復旧後、前記探知対象ファイルのOEP地点でメモリダンプを通じて前記探知対象ファイルをアンパッキングする段階をさらに含む、請求項4に記載の悪性コード静的分析のための実行ファイルのアンパッキング方法。
【請求項6】
アンパッキングされた前記探知対象ファイルにAPI呼出し情報、ライブラリ呼出し情報を含む脅威情報を記録するセクションを追加する、請求項5に記載の悪性コード静的分析のための実行ファイルのアンパッキング方法。
【請求項7】
コンピュータに請求項1乃至請求項6のいずれか一項の方法を実行させるためのプログラムを記録したコンピュータで読み込み可能な記録媒体。
【請求項8】
探知対象ファイルの入力を受けてバイナリファイルであるか否かを確認し、前記探知対象ファイルがバイナリファイルであればハッシュ値を抽出し、抽出された前記ハッシュ値に対応する悪性コードハッシュ値をデータベースで検索する事前分析部と、
抽出された前記ハッシュ値に対応する悪性コードハッシュ値が見つからなければ、前記探知対象ファイルに対してシグニチャー基盤としてパッカーを探知するシグニチャー基盤のパッカー探知モジュールと、
前記探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールでパッカーが探知されなければ、エントロピー基盤としてパッキング有無を推測するエントロピー基盤のパッカー探知モジュールと、
を含む、悪性コード静的分析のための実行ファイルのアンパッキングシステム。
【請求項9】
前記シグニチャー基盤のパッカー探知モジュールは、前記探知対象ファイルのEP(Entry point)からバイトパターン(byte pattern)をパッシングして抽出した情報をデータベースでロードされたパッカーシグニチャー情報とマッチングしてパッカーを探知する、請求項8に記載の悪性コード静的分析のための実行ファイルのアンパッキングシステム。
【請求項10】
前記シグニチャー基盤として探知されたパッカーに対応するアンパッカーライブラリを用いて前記探知対象ファイルのIAT(Import Address Table)の復旧後、OEP(Original Entry Point)地点でメモリダンプを通じて、前記探知対象ファイルをアンパッキングするパッカー基盤のアンパッキングモジュールをさらに含む、請求項9に記載の悪性コード静的分析のための実行ファイルのアンパッキングシステム。
【請求項11】
前記エントロピー基盤のパッカー探知モジュールは、
前記探知対象ファイルのエントロピー値を抽出して予め定義された臨界値と比較してパッキングの有無を推測する、請求項8に記載の悪性コード静的分析のための実行ファイルのアンパッキングシステム。
【請求項12】
エントロピー基盤としてパッキングされたと推測された場合、前記探知対象ファイルのEP地点からトレーシング(Tracing)してIATを復旧後、前記探知対象ファイルのOEP地点でメモリダンプを通じて前記探知対象ファイルをアンパッキングするOEP探索基盤のアンパッキングモジュールをさらに含む、請求項11に記載の悪性コード静的分析のための実行ファイルのアンパッキングシステム。
【請求項13】
アンパッキングされた前記探知対象ファイルにAPI呼出し情報、ライブラリ呼出し情報を含む脅威情報を記録するセクションを追加する、請求項12に記載の悪性コード静的分析のための実行ファイルのアンパッキングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、悪性コード静的分析のための実行ファイルのアンパッキングシステム及び方法に関する。
【背景技術】
【0002】
コンピュータシステムに深刻な脅威を与える悪性コードは、ウェブ、ファイルサーバ、電子メールなどの多様なルートを通じてダウンロードされる実行ファイルを通じて流布される場合が大部分である。悪性行為が含まれている実行ファイルを使用者が実行する場合、そのまま悪性コードに感染する。コンピュータシステムが悪性コードに感染する場合、個人情報の奪取、速度の低下、重要ファイルの削除などと深刻な被害が発生する。
【0003】
悪性コード感染の被害を予防するためには、使用者が実行ファイルを実行する前にアンチウイルスプログラムなどを通じて優先検査を進行しなければならないが、あまり容易なことではない。使用者に伝達されて実行される前にシステム次元で速くファイルを実行せずファイルをそのまま分析するという静的分析を通じて悪性コードを探知することが効果的であると言える。悪性コードの大部分がパッキングされているため、効果的な静的分析のためにはパッカーの探知及び解除が必須要素である。
【0004】
多くのコンピュータシステムでは、アンチウイルスプログラムを通じてリアルタイムで分析を進行するが、パッキングされた実行ファイルの場合、アンチウイルスの回避、時間遅延、ロジッグバイパスなどの内部プロセスにより静的分析を通じた悪性コードが探知されない場合が多い。
【0005】
悪性情報をより正確に探知するためには、仮想マシーンで直接実行を通じて悪性行為を探知するという動的分析方法があるが、時間と費用が多く必要なため、リアルタイムで活用するには困難がある。また、既存の多様なパッカーの種類によってパッカー個別のアンパッキングツールを用いてアンパックファイルを生成し分析する必要があるという不便があった。
【0006】
結論として、実行ファイル内に隠されている悪性コードを効果的に探知するためには、当該実行ファイルを速く分析してパッキング有無の確認及び使用パッカーの種類を探知し、アンパッキングを通じてアンパックファイルを生成した後、静的分析を通じて悪性情報を探知することができるという技術と当該技術が適用されたプラットホームが必要である。
【発明の概要】
【発明が解決しようとする課題】
【0007】
従って、本発明が解決しようとする技術的課題は、悪性コードが隠されているパッキングされたファイルを探知及び解除して、静的分析を通じて事前に予防できるようにする悪性コード静的分析のための実行ファイルのアンパッキングシステム及び方法を提供することである。
【課題を解決するための手段】
【0008】
上記の技術的課題を解決するための本発明による悪性コード静的分析のための実行ファイルのアンパッキング方法は、探知対象ファイルの入力を受けてバイナリファイルであるか否かを確認し、前記探知対象ファイルがバイナリファイルであればハッシュ値を抽出する事前分析段階と、抽出された前記ハッシュ値に対応する悪性コードハッシュ値をデータベースで検索する段階と、抽出された前記ハッシュ値に対応する悪性コードハッシュ値が見つからなければ、前記探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールを用いてパッカーを探知する段階と、前記探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールでパッカーが探知されなければ、エントロピー基盤のパッカー探知モジュールを用いてパッキング有無を推測する段階とを含む。
【0009】
前記シグニチャー基盤のパッカー探知モジュールは、前記探知対象ファイルのEP(Entry point)からバイトパターン(byte pattern)をパッシングして抽出した情報をデータベースでロードされたパッカーシグニチャー情報とマッチングしてパッカーを探知することができる。
【0010】
上記方法は、前記シグニチャー基盤として探知されたパッカーに対応するアンパッカーライブラリを用いて前記探知対象ファイルのIAT(Import Address Table)の復旧後、OEP(Original Entry Point)地点でメモリダンプを通じて、前記探知対象ファイルをアンパッキングする段階をさらに含むことができる。
【0011】
前記エントロピー基盤のパッカー探知モジュールは、前記探知対象ファイルのエントロピー値を抽出して予め定義された臨界値と比較してパッキングの有無を推測することができる。
【0012】
上記方法は、エントロピー基盤としてパッキングされたと推測された場合、前記探知対象ファイルのEP地点からトレーシング(Tracing)してIATを復旧後、前記探知対象ファイルのOEP地点でメモリダンプを通じて前記探知対象ファイルをアンパッキングする段階をさらに含むことができる。
【0013】
アンパッキングされた前記探知対象ファイルにAPI呼出し情報、ライブラリ呼出し情報を含む脅威情報を記録するセクションを追加することができる。
【0014】
本発明の他の実施例によるコンピュータで読み込み可能な記録媒体は、上記方法のいずれか一つをコンピュータに実行させるためのプログラムを記録する。
【0015】
上記の技術的課題を解決するための本発明による悪性コード静的分析のための実行ファイルのアンパッキングシステムは、探知対象ファイルの入力を受けてバイナリファイルであるか否かを確認し、前記探知対象ファイルがバイナリファイルであればハッシュ値を抽出し、抽出された前記ハッシュ値に対応する悪性コードハッシュ値をデータベースで検索する事前分析部と、抽出された前記ハッシュ値に対応する悪性コードハッシュ値が検索されなければ、前記探知対象ファイルに対してシグニチャー基盤としてパッカーを探知するシグニチャー基盤のパッカー探知モジュールと、前記探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールでパッカー探知されなければ、エントロピー基盤としてパッキング有無を推測するエントロピー基盤のパッカー探知モジュールとを含む。
【0016】
本発明の他の実施例による方法は、探知対象ファイルの入力を受けてバイナリファイルであるか否かを確認し、前記探知対象ファイルがバイナリファイルであればハッシュ値を抽出する事前分析段階と、抽出された前記ハッシュ値に対応する悪性コードハッシュ値をデータベースで検索する段階と、抽出された前記ハッシュ値に対応する悪性コードハッシュ値が検索されなければ、前記探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールを用いてパッカーを探知する段階と、前記探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールでパッカー探知されなければ、エントロピー基盤のパッカー探知モジュールを用いてパッキングの有無を推測する段階と(前記シグニチャー基盤のパッカー探知モジュールは、前記探知対象ファイルのEP(Entry point)からバイトパターン(byte pattern)をパッシングして抽出した情報をデータベースでロードされたパッカーシグニチャー情報とマッチングしてパッカーを探知する)、前記シグニチャー基盤として探知されたパッカーに対応するアンパッカーライブラリを用いて前記探知対象ファイルのIAT(Import Address Table)の復旧後、OEP(Original Entry Point)地点でメモリダンプを通じて、前記探知対象ファイルをアンパッキングする段階(前記エントロピー基盤のパッカー探知モジュールは、前記探知対象ファイルのエントロピー値を抽出して予め定義された臨界値と比較してパッキング有無を推測する)と、エントロピー基盤としてパッキングされたと推測された場合、前記探知対象ファイルのEP地点からトレーシング(Tracing)してIATを復旧後、前記探知対象ファイルのOEP地点でメモリダンプを通じて前記探知対象ファイルをアンパッキングする段階と、を含み、アンパッキングされた前記探知対象ファイルにAPI呼出し情報、ライブラリ呼出し情報を含む脅威情報を記録するセクションを追加する。
【0017】
本発明の他の実施例によるシステムは、探知対象ファイルの入力を受けてバイナリファイルであるか否かを確認し、前記探知対象ファイルがバイナリファイルであればハッシュ値を抽出し、抽出された前記ハッシュ値に対応する悪性コードハッシュ値をデータベースで検索する事前分析部と、抽出された前記ハッシュ値に対応する悪性コードハッシュ値が見つからなければ、前記探知対象ファイルに対してシグニチャー基盤としてパッカーを探知するシグニチャー基盤のパッカー探知モジュールと、前記探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールでパッカーが探知されなければ、エントロピー基盤としてパッキングの有無を推測するエントロピー基盤のパッカー探知モジュールと、前記シグニチャー基盤として探知されたパッカーに対応するアンパッカーライブラリを用いて前記探知対象ファイルのIAT(Import Address Table)の復旧後、OEP(Original Entry Point)地点でメモリダンプを通じて、前記探知対象ファイルをアンパッキングするパッカー基盤のアンパッキングモジュールと、エントロピー基盤としてパッキングされたと推測された場合、前記探知対象ファイルのEP(Entry point)地点からトレーシング(Tracing)してIATを復旧後、前記探知対象ファイルのOEP地点でメモリダンプを通じて前記探知対象ファイルをアンパッキングするOEP探索基盤のアンパッキングモジュールとを含み、前記シグニチャー基盤のパッカー探知モジュールは、前記探知対象ファイルのEPからバイトパターン(byte pattern)をパッシングして抽出した情報をデータベースでロードされたパッカーシグニチャー情報とマッチングしてパッカーを探知し、前記エントロピー基盤のパッカー探知モジュールは、前記探知対象ファイルのエントロピー値を抽出して予め定義された臨界値と比較してパッキングの有無を推測し、アンパッキングされた前記探知対象ファイルにAPI呼出し情報、ライブラリ呼出し情報を含む脅威情報を記録するセクションを追加する。
【発明の効果】
【0018】
本発明によると、悪性コードを探知することができる確率が高くなり、速い速度で探知することができるという長所がある。
【図面の簡単な説明】
【0019】
【
図1】本発明の一実施例による悪性コード静的分析のための実行ファイルのアンパッキングシステムの構成図である。
【
図2】本発明の一実施例による悪性コード静的分析のための実行ファイルのアンパッキングシステムの動作フローチャートである。
【発明を実施するための形態】
【0020】
それでは、添付の図面を参照して、本発明の実施例について本発明が属する技術分野で通常の知識を有する者が容易に実施できるように詳しく説明する。
【0021】
図1は、本発明の一実施例による悪性コード静的分析のための実行ファイルのアンパッキングシステムの構成図である。
【0022】
図1を参照すると、本発明によるシステムは、事前分析部100、データベース200、パッカー探知部300、アンパッキング部400及び静的分析部500を含むことができる。
【0023】
事前分析部100は、探知対象ファイルの入力を受けてバイナリファイルであるか否かを確認する。事前分析部100は、探知対象ファイルがバイナリファイルであればハッシュ値を抽出し、抽出されたハッシュ値に対応する悪性コードハッシュ値をデータベース200で検索し、当該ファイルが最近悪性として探知された履歴があるか否かを速く確認することができる。
【0024】
データベース200は、本発明によるシステムの動作と関連した各種の情報及びデータを格納することができる。具体的に、データベース200は、悪性として探知されたファイルに固有のハッシュ情報を格納することができる。そして、データベース200は、既存の知られたパッカーのシグニチャー情報も格納することができる。さらに、データベース200は、パッキングの有無を推測する基準となる臨界値に対する情報も格納することができる。そして、データベース200は、既存の知られた各パッカーに該当するアンパッキングロジッグをモジュール化したアンパッカーライブラリを格納することもできる。
【0025】
パッカー探知部300は、シグニチャー基盤のパッカー探知モジュール310とエントロピー基盤のパッカー探知モジュール330を含むことができる。
【0026】
シグニチャー基盤のパッカー探知モジュール310は、バイナリファイルである探知対象ファイルに対してシグニチャー基盤としてパッカーを探知する。
【0027】
シグニチャー基盤のパッカー探知モジュール310は、探知対象ファイルのEP(Entry point)からバイトパターン(byte pattern)をパッシングして抽出した情報(OPCODE)をデータベース200でロードされたパッカーシグニチャー情報とマッチングしてパッカーを探知することができる。
【0028】
エントロピー基盤のパッカー探知モジュール330は、バイナリファイルである探知対象ファイルに対してエントロピー基盤としてパッキングの有無を推測することができる。
【0029】
エントロピー基盤のパッカー探知モジュール330は、探知対象ファイルのエントロピー値を抽出して予め定義された臨界値と比較してパッキングの有無を推測する。探知対象ファイルのエントロピー値が臨界値より高ければパッキングされたと推測し、反対の場合、パッキングされていないと推測することができる。
【0030】
アンパッキング部400は、探知対象ファイルに対するアンパッキングを行うため、パッカー基盤のアンパッキングモジュール410とOEP探索基盤のアンパッキングモジュール430を含むことができる。
【0031】
パッカー基盤のアンパッキングモジュール410は、シグニチャー基盤として探知されたパッカーに対応するアンパッカーライブラリを用いて探知対象ファイルのIAT(Import Address Table)の復旧後、OEP(Original Entry Point)地点でメモリダンプを通じて探知対象ファイルを復旧、すなわちアンパッキングすることができる。
【0032】
OEP探索基盤のアンパッキングモジュール430は、エントロピー基盤としてパッキングされたと推測された探知対象ファイルのEP地点からトレーシング(Tracing)してIATを復旧後、探知対象ファイルのOEP地点でメモリダンプを通じて探知対象ファイルを復旧、アンパッキングすることができる。
【0033】
パッカー基盤のアンパッキングモジュール410とOEP探索基盤のアンパッキングモジュール430は、アンパッキング過程において、アンパッキングされた探知対象ファイルにAPI呼出し情報、ライブラリ呼出し情報を含む脅威情報を記録する脅威情報記録セクションを追加することができる。
【0034】
例えば、パッカー基盤のアンパッキングモジュール410とOEP探索基盤のアンパッキングモジュール430は、アンパッキング後の脅威情報、ハッシュ情報、IAT情報、ファイルのセクション及びメモリ保護ポリシー、復呼化制御流れ(Control Flow)、関数呼出し情報(Function Call)などのメタデータをアンパッキングされたファイル内に自体生成した特定のセクションに追加して、悪性コードの静的分析を容易にすることができる。
【0035】
パッカー基盤のアンパッキングモジュール410とOEP探索基盤のアンパッキングモジュール430は、脅威情報セクションを含んでアンパッキングされた探知対象ファイルが実行できるようにメモリアドレス値を再整列することができる。
【0036】
一方、一部の悪性コードは、オーバレイデータに悪性行為実行コードを仕込み、スキャンを回避するという脆弱点がある。したがって、パッカー基盤のアンパッキングモジュール410とOEP探索基盤のアンパッキングモジュール430は、実行ファイルがメモリにロードされる時に無視されるデータであるオーバレイデータを脅威情報記録セクションにコピーして静的分析に役に立てられるようにすることができる。
【0037】
静的分析部500は、アンパッキングされた探知対象ファイル、バイナリファイルを実行せず、バイナリファイル自体の情報を抽出して分析する静的分析を通じて悪性コードを探知することができる。特に、アンパッキング過程において、探知対象ファイルに新たに追加した脅威情報記録セクションを通じて速い悪性探知が可能である。
【0038】
このように、バイナリファイルに対するパッカー探知及びアンパッキング結果と静的分析結果を当該ファイルの固有ハッシュ情報を基盤としてデータベース200に格納して今後活用することができる。
【0039】
図2は、本発明の一実施例による悪性コード静的分析のための実行ファイルのアンパッキングシステムの動作フローチャートである。
【0040】
図1及び
図2を参照すると、先ず、事前分析部100は、探知対象ファイルの入力を受けてバイナリファイルであるか否かを確認する(S211)。事前分析部100は、探知対象ファイルがバイナリファイルであれば(S211-Y)、ハッシュ値を抽出し(S213)、抽出されたハッシュ値に対応する悪性コードハッシュ値をデータベース200で検索して(S215)、悪性コードハッシュ値の有無によって当該ファイルが悪性であるか否かを速く確認することができる(S217)。
【0041】
バイナリファイルでなければ(S211-N)、事前分析部100は、エラー結果を伝達して作業を終了する。一方、抽出されたハッシュ値に対応する悪性コードハッシュ値が確認されれば(S217-Y)、事前分析部100は、悪性コード探知結果を伝達し終了することができる。
【0042】
一方、抽出されたハッシュ値に対応する悪性コードハッシュ値がなければ(S217-N)、パッカー探知部300は、探知対象ファイルに対するパッキングの有無を探知する(S220)。
【0043】
先ず、パッカー探知部300は、探知対象ファイルにおいてPE情報を抽出する(S221)。そして、シグニチャー基盤のパッカー探知モジュール310を通じてバイナリファイルである探知対象ファイルに対してシグニチャー基盤としてパッカーを探知する(S222)。
【0044】
シグニチャー基盤としてパッカーが探知されなければ(S222-N)、エントロピー基盤のパッカー探知モジュール330を用いて、バイナリファイルである探知対象ファイルに対してエントロピー基盤としてパッキングの有無を推測することができる(S223)。
【0045】
以後、シグニチャー基盤としてパッカーが探知されるかエントロピー基盤としてパッキングされたと推測された場合、アンパッキング部400は、探知対象ファイルに対するアンパッキングを行う(S230)。
【0046】
シグニチャー基盤としてパッカーが探知された場合(S222-Y)、パッカー基盤のアンパッキングモジュール410は、パッカー探知部300から該当するパッカー名の伝達を受けて、当該パッカーに対応するアンパッカーライブラリを用いて探知対象ファイルのIATを復旧し(S231)、探知対象ファイルのOEP地点においてメモリダンプを通じて探知対象ファイルを復旧することができる(S232)。
【0047】
探知対象ファイルがエントロピー基盤としてパッキングされたと推測された場合(S223-Y)、OEP探索基盤のアンパッキングモジュール430は、探知対象ファイルのEP地点からトレーシング(Tracing)してIATを復旧し(S233)、探知対象ファイルのOEP地点においてメモリダンプを通じて探知対象ファイルを復旧することができる(S234)。
【0048】
一方、段階(S232)と段階(S234)において、パッカー基盤のアンパッキングモジュール410とOEP探索基盤のアンパッキングモジュール430は、アンパッキング過程において、アンパッキングされた探知対象ファイルにAPI呼出し情報、ライブラリ呼出し情報を含む脅威情報を記録する脅威情報記録セクションを追加することができる。
【0049】
以後、静的分析部500は、アンパッキングされた探知対象ファイル、バイナリファイルを実行せず、バイナリファイル自体の情報を抽出して分析する静的分析を通じて悪性コードを探知することができる(S240)。また、探知対象ファイルがエントロピー基盤としてパッキングされていないと推測された場合(S223-N)、探知対象ファイルに対するアンパッキングの手続きなしで静的分析部500における静的分析を通じて悪性コードを探知することができる(S240)。
【0050】
静的分析部500は、段階(S240)において悪性コード探知結果をデータベース200に記録して終了する(S250)。
【0051】
このように、本発明によると、バイナリファイルを速く分析してパッキングの有無の確認及び使用パッカーの種類を探知するモジュールと共に知られている多様な種類のアンパッキングツールをモジュール化し、知られていないパッカーに対しては、OEP(Original Entry Point)を探索する方法を用いてアンパッキングをすることができるモジュールを搭載して統合システムを構築することができる。これを通じて抽出されたアンパッキングされたファイルには、バイナリの特定のセクションを追加して悪性探知に有用な情報を別途入れ込み、速い静的分析が可能である。
【0052】
このように多様なパッカーの技法を分析して解除する方法をモジュール化して一つの統合システムとして作ることができ、各モジュールを汎用的に作ることができるため、多様なシステムで活用可能である。また、新しい類型のパッカーに対応するために、探知で重要な役割をするシグニチャーデータベースとアンパッキングで重要な役割をするアンパッカーライブラリを容易にアップデートすることができる。特に、特定のセクションに悪性探知に有用な静的情報を別途記録して速い静的分析が可能である。これを用いて、使用者の領域ではなくシステム及びサービス領域において多様な形態として効率的な攻撃対応が可能である。
【0053】
以上で説明された実施例は、ハードウェア構成要素、ソフトウェア構成要素、及び/またはハードウェア構成要素及びソフトウェア構成要素の組み合わせとして実現できる。例えば、実施例で説明された装置、方法及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令(instruction)を実行し応答することができる他の所定の装置のように、一つ以上の汎用コンピュータまたは特殊目的のコンピュータを用いて実現できる。処理装置は、オペレーティングシステム(OS)及び上記オペレーティングシステム上で実行される一つ以上のソフトウェアアプリケーションを実行できる。また、処理装置は、ソフトウェアの実行に応答して、データを接近、格納、操作、処理及び生成することもできる。理解の便宜のために、処理装置は、一つが使用されると説明された場合もあるが、当該技術分野で通常の知識を有する者は、処理装置が複数個の処理要素(processing element)及び/または複数類型の処理要素を含んでよいことが分かる。例えば、処理装置は、複数個のプロセッサまたは一つのプロセッサ及び一つのコントローラを含むことができる。また、並列プロセッサ(parallel processor)のような、他の処理構成(processing configuration)も可能である。
【0054】
ソフトウェアは、コンピュータプログラム(computer program)、コード(code)、命令(instruction)、またはこれらのうち一つ以上の組み合わせを含むことができ、所望通り動作するように処理装置を構成するか独立してまたは結合して(collectively)処理装置を命令することができる。ソフトウェア及び/またはデータは、処理装置によって解釈されるか処理装置に命令またはデータを提供するために、ある類型の機械、構成要素(component)、物理的装置、仮想装置(virtual equipment)、コンピュータ格納媒体または装置、または伝送される信号波(signal wave)に永久的に、または一時的に具体化(embody)できる。ソフトウェアは、ネットワークで連結されたコンピュータシステム上に分散し、分散した方法で格納または実行されてもよい。ソフトウェア及びデータは、一つ以上のコンピュータ読取可能な記録媒体に格納できる。
【0055】
実施例による方法は、多様なコンピュータ手段を通じて行われることができるプログラム命令形態で実現され、コンピュータ読取可能媒体に記録できる。上記コンピュータ読取可能媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含むことができる。上記媒体に記録されるプログラム命令は、実施例のために特に設計され構成されたものであるか、コンピュータソフトウェア当業者に公知されて使用可能なものでもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、プロッピーディスク及び磁気テープのような磁気媒体(magnetic media)、CD-ROM、DVDのような光記録媒体(optical media)、フロプティカルディスク(floptical disk)のような磁気-光媒体(magneto-optical media)、及びロム(ROM)、ラム(RAM)、フラッシュメモリなどのようなプログラム命令を格納し実行するように特に構成されたハードウェア装置が含まれる。プログラム命令の例としては、コンパイラによって作られるもののような機械語コードだけでなく、インタプリターなどを使用してコンピュータによって実行されることができる高級言語コードを含む。上記のハードウェア装置は、実施例の動作を行うために一つ以上のソフトウェアモジュールとして作動するように構成されてよく、その反対も同様である。
【0056】
以上のように実施例が限定された図面によって説明されたが、当該技術分野で通常の知識を有する者であれば上記に基づいて多様な技術的修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる手順で行われるか、及び/または説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態で結合または組み合わせられるか、他の構成要素または均等物によって対置または置換されても適切な結果を達成できる。
【国際調査報告】