JP2024502973A - 悪性コード静的分析のための実行ファイルのアンパッキングシステム及び方法 - Google Patents

悪性コード静的分析のための実行ファイルのアンパッキングシステム及び方法 Download PDF

Info

Publication number
JP2024502973A
JP2024502973A JP2023540802A JP2023540802A JP2024502973A JP 2024502973 A JP2024502973 A JP 2024502973A JP 2023540802 A JP2023540802 A JP 2023540802A JP 2023540802 A JP2023540802 A JP 2023540802A JP 2024502973 A JP2024502973 A JP 2024502973A
Authority
JP
Japan
Prior art keywords
file
packer
detected
malicious code
unpacking
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
JP2023540802A
Other languages
English (en)
Other versions
JP7524482B2 (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.)
MONITORAPP CO Ltd
Original Assignee
MONITORAPP CO Ltd
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 MONITORAPP CO Ltd filed Critical MONITORAPP CO Ltd
Publication of JP2024502973A publication Critical patent/JP2024502973A/ja
Application granted granted Critical
Publication of JP7524482B2 publication Critical patent/JP7524482B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

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

Abstract

本発明は、悪性コード静的分析のための実行ファイルのアンパッキングシステム及び方法に関し、本発明による方法は、探知対象ファイルの入力を受けてバイナリファイルであるか否かを確認し、探知対象ファイルがバイナリファイルであればハッシュ値を抽出する事前分析段階と、抽出されたハッシュ値に対応する悪性コードハッシュ値をデータベースで検索する段階と、抽出されたハッシュ値に対応する悪性コードハッシュ値が見つからなければ、探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールを用いてパッカーを探知する段階と、探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールでパッカーが探知されなければ、エントロピー基盤のパッカー探知モジュールを用いてパッキング有無を推測する段階とを含む。本発明によると、悪性コードを探知することができる確率が高くなり、速い速度で探知することができるという長所がある。

Description

本発明は、悪性コード静的分析のための実行ファイルのアンパッキングシステム及び方法に関する。
コンピュータシステムに深刻な脅威を与える悪性コードは、ウェブ、ファイルサーバ、電子メールなどの多様なルートを通じてダウンロードされる実行ファイルを通じて流布される場合が大部分である。悪性行為が含まれている実行ファイルを使用者が実行する場合、そのまま悪性コードに感染する。コンピュータシステムが悪性コードに感染する場合、個人情報の奪取、速度の低下、重要ファイルの削除などと深刻な被害が発生する。
悪性コード感染の被害を予防するためには、使用者が実行ファイルを実行する前にアンチウイルスプログラムなどを通じて優先検査を進行しなければならないが、あまり容易なことではない。使用者に伝達されて実行される前にシステム次元で速くファイルを実行せずファイルをそのまま分析するという静的分析を通じて悪性コードを探知することが効果的であると言える。悪性コードの大部分がパッキングされているため、効果的な静的分析のためにはパッカーの探知及び解除が必須要素である。
多くのコンピュータシステムでは、アンチウイルスプログラムを通じてリアルタイムで分析を進行するが、パッキングされた実行ファイルの場合、アンチウイルスの回避、時間遅延、ロジッグバイパスなどの内部プロセスにより静的分析を通じた悪性コードが探知されない場合が多い。
悪性情報をより正確に探知するためには、仮想マシーンで直接実行を通じて悪性行為を探知するという動的分析方法があるが、時間と費用が多く必要なため、リアルタイムで活用するには困難がある。また、既存の多様なパッカーの種類によってパッカー個別のアンパッキングツールを用いてアンパックファイルを生成し分析する必要があるという不便があった。
結論として、実行ファイル内に隠されている悪性コードを効果的に探知するためには、当該実行ファイルを速く分析してパッキング有無の確認及び使用パッカーの種類を探知し、アンパッキングを通じてアンパックファイルを生成した後、静的分析を通じて悪性情報を探知することができるという技術と当該技術が適用されたプラットホームが必要である。
従って、本発明が解決しようとする技術的課題は、悪性コードが隠されているパッキングされたファイルを探知及び解除して、静的分析を通じて事前に予防できるようにする悪性コード静的分析のための実行ファイルのアンパッキングシステム及び方法を提供することである。
上記の技術的課題を解決するための本発明による悪性コード静的分析のための実行ファイルのアンパッキング方法は、探知対象ファイルの入力を受けてバイナリファイルであるか否かを確認し、前記探知対象ファイルがバイナリファイルであればハッシュ値を抽出する事前分析段階と、抽出された前記ハッシュ値に対応する悪性コードハッシュ値をデータベースで検索する段階と、抽出された前記ハッシュ値に対応する悪性コードハッシュ値が見つからなければ、前記探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールを用いてパッカーを探知する段階と、前記探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールでパッカーが探知されなければ、エントロピー基盤のパッカー探知モジュールを用いてパッキング有無を推測する段階とを含む。
前記シグニチャー基盤のパッカー探知モジュールは、前記探知対象ファイルのEP(Entry point)からバイトパターン(byte pattern)をパッシングして抽出した情報をデータベースでロードされたパッカーシグニチャー情報とマッチングしてパッカーを探知することができる。
上記方法は、前記シグニチャー基盤として探知されたパッカーに対応するアンパッカーライブラリを用いて前記探知対象ファイルのIAT(Import Address Table)の復旧後、OEP(Original Entry Point)地点でメモリダンプを通じて、前記探知対象ファイルをアンパッキングする段階をさらに含むことができる。
前記エントロピー基盤のパッカー探知モジュールは、前記探知対象ファイルのエントロピー値を抽出して予め定義された臨界値と比較してパッキングの有無を推測することができる。
上記方法は、エントロピー基盤としてパッキングされたと推測された場合、前記探知対象ファイルのEP地点からトレーシング(Tracing)してIATを復旧後、前記探知対象ファイルのOEP地点でメモリダンプを通じて前記探知対象ファイルをアンパッキングする段階をさらに含むことができる。
アンパッキングされた前記探知対象ファイルにAPI呼出し情報、ライブラリ呼出し情報を含む脅威情報を記録するセクションを追加することができる。
本発明の他の実施例によるコンピュータで読み込み可能な記録媒体は、上記方法のいずれか一つをコンピュータに実行させるためのプログラムを記録する。
上記の技術的課題を解決するための本発明による悪性コード静的分析のための実行ファイルのアンパッキングシステムは、探知対象ファイルの入力を受けてバイナリファイルであるか否かを確認し、前記探知対象ファイルがバイナリファイルであればハッシュ値を抽出し、抽出された前記ハッシュ値に対応する悪性コードハッシュ値をデータベースで検索する事前分析部と、抽出された前記ハッシュ値に対応する悪性コードハッシュ値が検索されなければ、前記探知対象ファイルに対してシグニチャー基盤としてパッカーを探知するシグニチャー基盤のパッカー探知モジュールと、前記探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールでパッカー探知されなければ、エントロピー基盤としてパッキング有無を推測するエントロピー基盤のパッカー探知モジュールとを含む。
本発明の他の実施例による方法は、探知対象ファイルの入力を受けてバイナリファイルであるか否かを確認し、前記探知対象ファイルがバイナリファイルであればハッシュ値を抽出する事前分析段階と、抽出された前記ハッシュ値に対応する悪性コードハッシュ値をデータベースで検索する段階と、抽出された前記ハッシュ値に対応する悪性コードハッシュ値が検索されなければ、前記探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールを用いてパッカーを探知する段階と、前記探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールでパッカー探知されなければ、エントロピー基盤のパッカー探知モジュールを用いてパッキングの有無を推測する段階と(前記シグニチャー基盤のパッカー探知モジュールは、前記探知対象ファイルのEP(Entry point)からバイトパターン(byte pattern)をパッシングして抽出した情報をデータベースでロードされたパッカーシグニチャー情報とマッチングしてパッカーを探知する)、前記シグニチャー基盤として探知されたパッカーに対応するアンパッカーライブラリを用いて前記探知対象ファイルのIAT(Import Address Table)の復旧後、OEP(Original Entry Point)地点でメモリダンプを通じて、前記探知対象ファイルをアンパッキングする段階(前記エントロピー基盤のパッカー探知モジュールは、前記探知対象ファイルのエントロピー値を抽出して予め定義された臨界値と比較してパッキング有無を推測する)と、エントロピー基盤としてパッキングされたと推測された場合、前記探知対象ファイルのEP地点からトレーシング(Tracing)してIATを復旧後、前記探知対象ファイルのOEP地点でメモリダンプを通じて前記探知対象ファイルをアンパッキングする段階と、を含み、アンパッキングされた前記探知対象ファイルにAPI呼出し情報、ライブラリ呼出し情報を含む脅威情報を記録するセクションを追加する。
本発明の他の実施例によるシステムは、探知対象ファイルの入力を受けてバイナリファイルであるか否かを確認し、前記探知対象ファイルがバイナリファイルであればハッシュ値を抽出し、抽出された前記ハッシュ値に対応する悪性コードハッシュ値をデータベースで検索する事前分析部と、抽出された前記ハッシュ値に対応する悪性コードハッシュ値が見つからなければ、前記探知対象ファイルに対してシグニチャー基盤としてパッカーを探知するシグニチャー基盤のパッカー探知モジュールと、前記探知対象ファイルに対してシグニチャー基盤のパッカー探知モジュールでパッカーが探知されなければ、エントロピー基盤としてパッキングの有無を推測するエントロピー基盤のパッカー探知モジュールと、前記シグニチャー基盤として探知されたパッカーに対応するアンパッカーライブラリを用いて前記探知対象ファイルのIAT(Import Address Table)の復旧後、OEP(Original Entry Point)地点でメモリダンプを通じて、前記探知対象ファイルをアンパッキングするパッカー基盤のアンパッキングモジュールと、エントロピー基盤としてパッキングされたと推測された場合、前記探知対象ファイルのEP(Entry point)地点からトレーシング(Tracing)してIATを復旧後、前記探知対象ファイルのOEP地点でメモリダンプを通じて前記探知対象ファイルをアンパッキングするOEP探索基盤のアンパッキングモジュールとを含み、前記シグニチャー基盤のパッカー探知モジュールは、前記探知対象ファイルのEPからバイトパターン(byte pattern)をパッシングして抽出した情報をデータベースでロードされたパッカーシグニチャー情報とマッチングしてパッカーを探知し、前記エントロピー基盤のパッカー探知モジュールは、前記探知対象ファイルのエントロピー値を抽出して予め定義された臨界値と比較してパッキングの有無を推測し、アンパッキングされた前記探知対象ファイルにAPI呼出し情報、ライブラリ呼出し情報を含む脅威情報を記録するセクションを追加する。
本発明によると、悪性コードを探知することができる確率が高くなり、速い速度で探知することができるという長所がある。
本発明の一実施例による悪性コード静的分析のための実行ファイルのアンパッキングシステムの構成図である。 本発明の一実施例による悪性コード静的分析のための実行ファイルのアンパッキングシステムの動作フローチャートである。
それでは、添付の図面を参照して、本発明の実施例について本発明が属する技術分野で通常の知識を有する者が容易に実施できるように詳しく説明する。
図1は、本発明の一実施例による悪性コード静的分析のための実行ファイルのアンパッキングシステムの構成図である。
図1を参照すると、本発明によるシステムは、事前分析部100、データベース200、パッカー探知部300、アンパッキング部400及び静的分析部500を含むことができる。
事前分析部100は、探知対象ファイルの入力を受けてバイナリファイルであるか否かを確認する。事前分析部100は、探知対象ファイルがバイナリファイルであればハッシュ値を抽出し、抽出されたハッシュ値に対応する悪性コードハッシュ値をデータベース200で検索し、当該ファイルが最近悪性として探知された履歴があるか否かを速く確認することができる。
データベース200は、本発明によるシステムの動作と関連した各種の情報及びデータを格納することができる。具体的に、データベース200は、悪性として探知されたファイルに固有のハッシュ情報を格納することができる。そして、データベース200は、既存の知られたパッカーのシグニチャー情報も格納することができる。さらに、データベース200は、パッキングの有無を推測する基準となる臨界値に対する情報も格納することができる。そして、データベース200は、既存の知られた各パッカーに該当するアンパッキングロジッグをモジュール化したアンパッカーライブラリを格納することもできる。
パッカー探知部300は、シグニチャー基盤のパッカー探知モジュール310とエントロピー基盤のパッカー探知モジュール330を含むことができる。
シグニチャー基盤のパッカー探知モジュール310は、バイナリファイルである探知対象ファイルに対してシグニチャー基盤としてパッカーを探知する。
シグニチャー基盤のパッカー探知モジュール310は、探知対象ファイルのEP(Entry point)からバイトパターン(byte pattern)をパッシングして抽出した情報(OPCODE)をデータベース200でロードされたパッカーシグニチャー情報とマッチングしてパッカーを探知することができる。
エントロピー基盤のパッカー探知モジュール330は、バイナリファイルである探知対象ファイルに対してエントロピー基盤としてパッキングの有無を推測することができる。
エントロピー基盤のパッカー探知モジュール330は、探知対象ファイルのエントロピー値を抽出して予め定義された臨界値と比較してパッキングの有無を推測する。探知対象ファイルのエントロピー値が臨界値より高ければパッキングされたと推測し、反対の場合、パッキングされていないと推測することができる。
アンパッキング部400は、探知対象ファイルに対するアンパッキングを行うため、パッカー基盤のアンパッキングモジュール410とOEP探索基盤のアンパッキングモジュール430を含むことができる。
パッカー基盤のアンパッキングモジュール410は、シグニチャー基盤として探知されたパッカーに対応するアンパッカーライブラリを用いて探知対象ファイルのIAT(Import Address Table)の復旧後、OEP(Original Entry Point)地点でメモリダンプを通じて探知対象ファイルを復旧、すなわちアンパッキングすることができる。
OEP探索基盤のアンパッキングモジュール430は、エントロピー基盤としてパッキングされたと推測された探知対象ファイルのEP地点からトレーシング(Tracing)してIATを復旧後、探知対象ファイルのOEP地点でメモリダンプを通じて探知対象ファイルを復旧、アンパッキングすることができる。
パッカー基盤のアンパッキングモジュール410とOEP探索基盤のアンパッキングモジュール430は、アンパッキング過程において、アンパッキングされた探知対象ファイルにAPI呼出し情報、ライブラリ呼出し情報を含む脅威情報を記録する脅威情報記録セクションを追加することができる。
例えば、パッカー基盤のアンパッキングモジュール410とOEP探索基盤のアンパッキングモジュール430は、アンパッキング後の脅威情報、ハッシュ情報、IAT情報、ファイルのセクション及びメモリ保護ポリシー、復呼化制御流れ(Control Flow)、関数呼出し情報(Function Call)などのメタデータをアンパッキングされたファイル内に自体生成した特定のセクションに追加して、悪性コードの静的分析を容易にすることができる。
パッカー基盤のアンパッキングモジュール410とOEP探索基盤のアンパッキングモジュール430は、脅威情報セクションを含んでアンパッキングされた探知対象ファイルが実行できるようにメモリアドレス値を再整列することができる。
一方、一部の悪性コードは、オーバレイデータに悪性行為実行コードを仕込み、スキャンを回避するという脆弱点がある。したがって、パッカー基盤のアンパッキングモジュール410とOEP探索基盤のアンパッキングモジュール430は、実行ファイルがメモリにロードされる時に無視されるデータであるオーバレイデータを脅威情報記録セクションにコピーして静的分析に役に立てられるようにすることができる。
静的分析部500は、アンパッキングされた探知対象ファイル、バイナリファイルを実行せず、バイナリファイル自体の情報を抽出して分析する静的分析を通じて悪性コードを探知することができる。特に、アンパッキング過程において、探知対象ファイルに新たに追加した脅威情報記録セクションを通じて速い悪性探知が可能である。
このように、バイナリファイルに対するパッカー探知及びアンパッキング結果と静的分析結果を当該ファイルの固有ハッシュ情報を基盤としてデータベース200に格納して今後活用することができる。
図2は、本発明の一実施例による悪性コード静的分析のための実行ファイルのアンパッキングシステムの動作フローチャートである。
図1及び図2を参照すると、先ず、事前分析部100は、探知対象ファイルの入力を受けてバイナリファイルであるか否かを確認する(S211)。事前分析部100は、探知対象ファイルがバイナリファイルであれば(S211-Y)、ハッシュ値を抽出し(S213)、抽出されたハッシュ値に対応する悪性コードハッシュ値をデータベース200で検索して(S215)、悪性コードハッシュ値の有無によって当該ファイルが悪性であるか否かを速く確認することができる(S217)。
バイナリファイルでなければ(S211-N)、事前分析部100は、エラー結果を伝達して作業を終了する。一方、抽出されたハッシュ値に対応する悪性コードハッシュ値が確認されれば(S217-Y)、事前分析部100は、悪性コード探知結果を伝達し終了することができる。
一方、抽出されたハッシュ値に対応する悪性コードハッシュ値がなければ(S217-N)、パッカー探知部300は、探知対象ファイルに対するパッキングの有無を探知する(S220)。
先ず、パッカー探知部300は、探知対象ファイルにおいてPE情報を抽出する(S221)。そして、シグニチャー基盤のパッカー探知モジュール310を通じてバイナリファイルである探知対象ファイルに対してシグニチャー基盤としてパッカーを探知する(S222)。
シグニチャー基盤としてパッカーが探知されなければ(S222-N)、エントロピー基盤のパッカー探知モジュール330を用いて、バイナリファイルである探知対象ファイルに対してエントロピー基盤としてパッキングの有無を推測することができる(S223)。
以後、シグニチャー基盤としてパッカーが探知されるかエントロピー基盤としてパッキングされたと推測された場合、アンパッキング部400は、探知対象ファイルに対するアンパッキングを行う(S230)。
シグニチャー基盤としてパッカーが探知された場合(S222-Y)、パッカー基盤のアンパッキングモジュール410は、パッカー探知部300から該当するパッカー名の伝達を受けて、当該パッカーに対応するアンパッカーライブラリを用いて探知対象ファイルのIATを復旧し(S231)、探知対象ファイルのOEP地点においてメモリダンプを通じて探知対象ファイルを復旧することができる(S232)。
探知対象ファイルがエントロピー基盤としてパッキングされたと推測された場合(S223-Y)、OEP探索基盤のアンパッキングモジュール430は、探知対象ファイルのEP地点からトレーシング(Tracing)してIATを復旧し(S233)、探知対象ファイルのOEP地点においてメモリダンプを通じて探知対象ファイルを復旧することができる(S234)。
一方、段階(S232)と段階(S234)において、パッカー基盤のアンパッキングモジュール410とOEP探索基盤のアンパッキングモジュール430は、アンパッキング過程において、アンパッキングされた探知対象ファイルにAPI呼出し情報、ライブラリ呼出し情報を含む脅威情報を記録する脅威情報記録セクションを追加することができる。
以後、静的分析部500は、アンパッキングされた探知対象ファイル、バイナリファイルを実行せず、バイナリファイル自体の情報を抽出して分析する静的分析を通じて悪性コードを探知することができる(S240)。また、探知対象ファイルがエントロピー基盤としてパッキングされていないと推測された場合(S223-N)、探知対象ファイルに対するアンパッキングの手続きなしで静的分析部500における静的分析を通じて悪性コードを探知することができる(S240)。
静的分析部500は、段階(S240)において悪性コード探知結果をデータベース200に記録して終了する(S250)。
このように、本発明によると、バイナリファイルを速く分析してパッキングの有無の確認及び使用パッカーの種類を探知するモジュールと共に知られている多様な種類のアンパッキングツールをモジュール化し、知られていないパッカーに対しては、OEP(Original Entry Point)を探索する方法を用いてアンパッキングをすることができるモジュールを搭載して統合システムを構築することができる。これを通じて抽出されたアンパッキングされたファイルには、バイナリの特定のセクションを追加して悪性探知に有用な情報を別途入れ込み、速い静的分析が可能である。
このように多様なパッカーの技法を分析して解除する方法をモジュール化して一つの統合システムとして作ることができ、各モジュールを汎用的に作ることができるため、多様なシステムで活用可能である。また、新しい類型のパッカーに対応するために、探知で重要な役割をするシグニチャーデータベースとアンパッキングで重要な役割をするアンパッカーライブラリを容易にアップデートすることができる。特に、特定のセクションに悪性探知に有用な静的情報を別途記録して速い静的分析が可能である。これを用いて、使用者の領域ではなくシステム及びサービス領域において多様な形態として効率的な攻撃対応が可能である。
以上で説明された実施例は、ハードウェア構成要素、ソフトウェア構成要素、及び/またはハードウェア構成要素及びソフトウェア構成要素の組み合わせとして実現できる。例えば、実施例で説明された装置、方法及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令(instruction)を実行し応答することができる他の所定の装置のように、一つ以上の汎用コンピュータまたは特殊目的のコンピュータを用いて実現できる。処理装置は、オペレーティングシステム(OS)及び上記オペレーティングシステム上で実行される一つ以上のソフトウェアアプリケーションを実行できる。また、処理装置は、ソフトウェアの実行に応答して、データを接近、格納、操作、処理及び生成することもできる。理解の便宜のために、処理装置は、一つが使用されると説明された場合もあるが、当該技術分野で通常の知識を有する者は、処理装置が複数個の処理要素(processing element)及び/または複数類型の処理要素を含んでよいことが分かる。例えば、処理装置は、複数個のプロセッサまたは一つのプロセッサ及び一つのコントローラを含むことができる。また、並列プロセッサ(parallel processor)のような、他の処理構成(processing configuration)も可能である。
ソフトウェアは、コンピュータプログラム(computer program)、コード(code)、命令(instruction)、またはこれらのうち一つ以上の組み合わせを含むことができ、所望通り動作するように処理装置を構成するか独立してまたは結合して(collectively)処理装置を命令することができる。ソフトウェア及び/またはデータは、処理装置によって解釈されるか処理装置に命令またはデータを提供するために、ある類型の機械、構成要素(component)、物理的装置、仮想装置(virtual equipment)、コンピュータ格納媒体または装置、または伝送される信号波(signal wave)に永久的に、または一時的に具体化(embody)できる。ソフトウェアは、ネットワークで連結されたコンピュータシステム上に分散し、分散した方法で格納または実行されてもよい。ソフトウェア及びデータは、一つ以上のコンピュータ読取可能な記録媒体に格納できる。
実施例による方法は、多様なコンピュータ手段を通じて行われることができるプログラム命令形態で実現され、コンピュータ読取可能媒体に記録できる。上記コンピュータ読取可能媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含むことができる。上記媒体に記録されるプログラム命令は、実施例のために特に設計され構成されたものであるか、コンピュータソフトウェア当業者に公知されて使用可能なものでもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、プロッピーディスク及び磁気テープのような磁気媒体(magnetic media)、CD-ROM、DVDのような光記録媒体(optical media)、フロプティカルディスク(floptical disk)のような磁気-光媒体(magneto-optical media)、及びロム(ROM)、ラム(RAM)、フラッシュメモリなどのようなプログラム命令を格納し実行するように特に構成されたハードウェア装置が含まれる。プログラム命令の例としては、コンパイラによって作られるもののような機械語コードだけでなく、インタプリターなどを使用してコンピュータによって実行されることができる高級言語コードを含む。上記のハードウェア装置は、実施例の動作を行うために一つ以上のソフトウェアモジュールとして作動するように構成されてよく、その反対も同様である。
以上のように実施例が限定された図面によって説明されたが、当該技術分野で通常の知識を有する者であれば上記に基づいて多様な技術的修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる手順で行われるか、及び/または説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態で結合または組み合わせられるか、他の構成要素または均等物によって対置または置換されても適切な結果を達成できる。

Claims (13)

  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に記載の悪性コード静的分析のための実行ファイルのアンパッキングシステム。
JP2023540802A 2021-01-05 2021-12-02 悪性コード静的分析のための実行ファイルのアンパッキングシステム及び方法 Active JP7524482B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2021-0000707 2021-01-05
KR1020210000707A KR102335475B1 (ko) 2021-01-05 2021-01-05 악성코드 정적분석을 위한 실행파일 언패킹 시스템 및 방법
PCT/KR2021/018068 WO2022149729A1 (ko) 2021-01-05 2021-12-02 악성코드 정적분석을 위한 실행파일 언패킹 시스템 및 방법

Publications (2)

Publication Number Publication Date
JP2024502973A true JP2024502973A (ja) 2024-01-24
JP7524482B2 JP7524482B2 (ja) 2024-07-29

Family

ID=78867582

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023540802A Active JP7524482B2 (ja) 2021-01-05 2021-12-02 悪性コード静的分析のための実行ファイルのアンパッキングシステム及び方法

Country Status (4)

Country Link
US (1) US20240061931A1 (ja)
JP (1) JP7524482B2 (ja)
KR (1) KR102335475B1 (ja)
WO (1) WO2022149729A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11790086B2 (en) * 2021-09-30 2023-10-17 Fortinet, Inc. Selectively applying dynamic malware analysis to software files based on compression type in a software security system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070152854A1 (en) 2005-12-29 2007-07-05 Drew Copley Forgery detection using entropy modeling
KR101228902B1 (ko) * 2010-12-31 2013-02-06 주식회사 안랩 클라우드 컴퓨팅 기반 악성코드 분석 지원 시스템
KR20120105759A (ko) * 2011-03-16 2012-09-26 한국전자통신연구원 악성 코드 시각화 장치와 악성 코드 탐지 장치 및 방법
JP5571035B2 (ja) 2011-05-30 2014-08-13 日本電信電話株式会社 特定装置、特定方法及び特定プログラム
KR20150124020A (ko) * 2014-04-25 2015-11-05 (주) 세인트 시큐리티 악성코드 식별 태그 설정 시스템 및 방법, 및 악성코드 식별 태그를 이용한 악성코드 검색 시스템
KR101816045B1 (ko) * 2016-11-29 2018-01-08 주식회사 엔에스에이치씨 악성코드 룰셋을 이용한 악성코드 탐지 시스템 및 방법
KR101990028B1 (ko) * 2018-11-27 2019-06-17 강원대학교산학협력단 바이너리 파일 복원을 위한 하이브리드 언패킹 방법 및 시스템

Also Published As

Publication number Publication date
US20240061931A1 (en) 2024-02-22
JP7524482B2 (ja) 2024-07-29
KR102335475B1 (ko) 2021-12-08
WO2022149729A1 (ko) 2022-07-14

Similar Documents

Publication Publication Date Title
US10025931B1 (en) Method and system for malware detection
US10972488B2 (en) Method and system for modeling all operations and executions of an attack and malicious process entry
KR101051722B1 (ko) 모니터 장치, 모니터링 방법 및 그에 관한 하드웨어용 컴퓨터 프로그램 산출물
Zhang et al. A first step towards algorithm plagiarism detection
Jeong et al. Generic unpacking using entropy analysis
US8108931B1 (en) Method and apparatus for identifying invariants to detect software tampering
US20150058984A1 (en) Computer-implemented method for distilling a malware program in a system
CN106055976B (zh) 文件检测方法及沙箱控制器
EP1751649A1 (en) Systems and method for computer security
KR102006242B1 (ko) 바이너리 파일에 기초하여 오픈소스 소프트웨어 패키지를 식별하는 방법 및 시스템
JP7024720B2 (ja) マルウェア解析装置、マルウェア解析方法、及び、マルウェア解析プログラム
NL2027556B1 (en) Method and system for generating a list of indicators of compromise
EP3531324B1 (en) Identification process for suspicious activity patterns based on ancestry relationship
O'Kane et al. N-gram density based malware detection
JP7524482B2 (ja) 悪性コード静的分析のための実行ファイルのアンパッキングシステム及び方法
KR101428915B1 (ko) 안드로이드 보안을 위한 피드백 기반 어플리케이션 재가공 프레임워크 방법과 그 시스템
US11836252B2 (en) Machine learning through iterative memory analysis for malware detection
US10880316B2 (en) Method and system for determining initial execution of an attack
US11921850B2 (en) Iterative memory analysis for malware detection
EP4332805A1 (en) Emulation-based malware detection
KR20070019190A (ko) 파일 시스템 및 레지스트리를 보호하는 방법 및 그 장치
US8621632B1 (en) Systems and methods for locating malware
KR101908517B1 (ko) 스트링과 코드 시그니처를 이용한 악성코드 탐지 및 패커 해제 방법
Touili et al. LTL model checking of self modifying code
US10546125B1 (en) Systems and methods for detecting malware using static analysis

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230630

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240626

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240717

R150 Certificate of patent or registration of utility model

Ref document number: 7524482

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R154 Certificate of patent or utility model (reissue)

Free format text: JAPANESE INTERMEDIATE CODE: R154