説明

悪性コードによって挿入されたダイナミックリンクライブラリ検出装置及び方法

【課題】特定プロセスのメモリ領域内に挿入されたDLLが悪意的な目的で開発されたDLLであるかを判断する装置及び方法を提供する。
【解決手段】本発明によるDLL検出方法は、プロセスが実行される前に前記プロセスのイメージファイルから第1ダイナミックリンクライブラリ(DLL)情報を収集する段階と、前記プロセスが実行されることによってメモリにローディングされる第2DLL情報を収集する段階と、前記収集された第1DLL情報及び第2DLL情報を比較し、明示的DLL情報を抽出する段階と、前記抽出された明示的DLLが悪性コードによって挿入されたDLLであるかを判断する段階とを含む。これにより、悪意的な目的で挿入されたDLL情報を被害システムのための分析ツールとして有用に活用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、悪性コードを検出する方法及び装置に関し、特に悪性コードによって挿入されたダイナミックリンクライブラリ(Dynamic Link Library、以下、“DLL”という)を検出する装置及び方法に関する。
【背景技術】
【0002】
通常、コンピューターシステムは、各種ハードウェアがオペレーティングシステムを基盤にして駆動される構造を有する。前記オペレーティングシステムは、システムに電源が供給される時に駆動され、ユーザとハードウェア間のインターフェース機能を行う。前記オペレーティングシステムの種類として、Solaris(登録商標)、Linux(登録商標)、Windows(登録商標)などが存在する。これらのうちウィンドウズ(登録商標)は、仮想メモリ(Virtual Memory)を支援するオペレーティングシステムであって、最も大衆的に用いられている。
【0003】
前記ウィンドウズ(登録商標)ベースのオペレーティングシステムは、仮想メモリ管理及び効果的なメモリ使用のために実行される一部分の内容のみをメモリに格納し、そうでない部分の内容は、ファイルで必要な時に読み込んでいる。
【0004】
一方、前記オペレーティングシステムは、有線だけでなく無線通信産業の発達に伴って、通信機能を含むことが一般化されている。しかし、通信機能の使用が一般化されることによって、ユーザには便宜性を提供してはいるが、外部から悪性コードの侵入が頻繁に発生している。前記悪性コードとしては、ウイルス、ワーム、スパイウェアなどに区分される。
【0005】
前記悪性コードは、ウィンドウズ(登録商標)オペレーティングシステム環境で一般的に使用されるDLL挿入技術を悪用してオペレーティングシステムに侵入する。このように悪性コードをオペレーティングシステムに伝搬するために使用されるDLL挿入技術は多様である。
【0006】
したがって、悪性コードによって挿入されるDLLを探知するための方案が多様な観点で模索されている。例えば、DLL挿入と関わるアプリケーションプログラムインターフェース(Application Program Interface、以下、APIという)を監視しつつ、APIを使用する瞬間にアラーム警告を出す形態や、プロセスにローディングされたDLLを分析する技法がある。そして、知られたシステムDLLのリスト及びハッシュ値を事前に抽出し、これを疑わしい悪性DLLと比較する技法などが存在する。
【0007】
前述した従来のDLL探知方案では、あらかじめ設置された探知ツールを用いて悪性コードによって挿入されるDLLを探知したり、ユーザの経験的知識によって悪意的な目的で挿入されたDLLを判断する方法が使われている。したがって、従来、悪性コードによって悪意的な目的で挿入されるDLLを探知するためには、別途の探知ツールをあらかじめ設置したり、ユーザの経験的知識が必ず前提されなければならなかった。
【0008】
したがって、ユーザに対する便宜を提供するためには、悪性コードによって悪意的な目的で挿入されるDLLを自動に探索し、自動探索されたDLL情報をシステム分析ツールとして活用する方案を模索することが至急であると言える。
【0009】
【特許文献1】大韓民国特許登録第10−0762973号明細書
【非特許文献1】Hung-Min Sun et al., “Detecting the Code Injection by Hooking System Calls in Windows Kernel Mode”, 2006年 ICS国際計算機会議, 2007年, http://dspace.lib.fcu.edu.tw/bitstream/2377/3598/1/ce07ics002006000144.pdf
【発明の開示】
【発明が解決しようとする課題】
【0010】
本発明の目的は、特定プロセスのメモリ領域内に挿入されたDLLが悪意的な目的で開発されたDLLであるかを判断する装置及び方法を提供することにある。
【0011】
また、本発明の他の目的は、ウィンドウズ(登録商標)ベースのオペレーティングシステムで悪性コードによって挿入されたDLLをプロファイリング及びヒュリスティック判断技法によって探知する装置及び方法を提供することにある。
【0012】
また、本発明のさらに他の目的は、被害システムでハッキングが起きた後、プロセスを検査して悪意的な目的で挿入されたDLLをプロファイリングを利用したヒュリスティック技法を利用して実時間に検索する装置及び方法を提供することにある。
【0013】
その他の本発明の目的は、下記の説明及び本発明の好ましい実施例によって把握されることができる。
【課題を解決するための手段】
【0014】
上記目的を達成するために、本発明の一態様に係る悪性コードによって挿入されたDLL検出方法は、プロセスが実行される前に前記プロセスのイメージファイルから第1ダイナミックリンクライブラリ(DLL)情報を収集する段階と、前記プロセスが実行されることによってメモリにローディングされる第2DLL情報を収集する段階と、前記収集された第1DLL情報及び第2DLL情報を比較し、明示的DLL情報を抽出する段階と、前記抽出された明示的DLLが悪性コードによって挿入されたDLLであるかを判断する段階とを含む。
【0015】
本発明の他の態様に係る悪性コードによって挿入されたDLL検出装置は、プロセスの実行前に前記プロセスのイメージファイルから第1DLL情報を収集し、前記プロセスが実行されることによってメモリにローディングされる第2DLL情報を収集するDLL情報収集部と、前記収集された第1DLL情報及び第2DLL情報を比較し、明示的DLL情報を抽出し、前記抽出された明示的DLLが悪性コードによって挿入されたDLLであるかを検出する悪意的DLL検出部とを含む。
【発明の効果】
【0016】
本発明によれば、被害システムでハッキングが起きた後、プロセスを検査して悪意的な目的で挿入されたDLLをDLLプロファイリング及びヒュリスティック判断技法を利用して自動に検出することができる。このような方法を利用して被害システム分析ツールとして活用するのに効果的である。
【発明を実施するための最良の形態】
【0017】
下記で本発明を説明するにあたって、関連された公知の機能または構成に関する具体的な説明が本発明の要旨を不明瞭にすることができると判断される場合には、その詳細な説明を省略する。そして、後述する用語は、本発明での機能を考慮して定義された用語であって、これは、ユーザ、運用者の意図または慣例などによって変わることができる。従って、その定義は、本明細書全般の内容に基づいて行われるべきである。
【0018】
本発明による好ましい実施例について具体的に説明するに先立って、以下では、ウィンドウズ(登録商標)環境で使用されるDLL挿入技術について記述する。
【0019】
一般的にウィンドウズ環境で使用されるDLL挿入技術は、ウィンドウズ(登録商標)フックを利用する技法と、CreateRemoteThreadを利用する技法及びデバッギングAPIを利用する技法に分類することができる。
【0020】
前記ウィンドウズ(登録商標)フックを利用した技法は、DLLにコードを挿入した後、ウィンドウズ(登録商標)フック(Windows Hook)を通じて遠隔プロセスにDLLをローディングする技術である。前記ウィンドウズ(登録商標)フックは、オペレーティングシステムとアプリケーションプログラムとの間に、またはアプリケーションプログラムの間にやり取りするメッセージの間に位置し、メッセージ監視と操作を可能にするプロシージャである。また、前記ウィンドウズ(登録商標)フックは、メッセージを監視または変更したり、伝達を遮断することも可能である。したがって、フックプロシージャがどんなメッセージを受けるかは、フックタイプとフックの範囲によって変わる。前記フックタイプは、WH_と始まるメクロ定数として定義される。例えば、WH_KEYBOARDは、キーボードメッセージを監視し、WH_CALLWNDPROCは、SendMessage関数でメッセージを送る前に処理し、WH_CALLWNDPROCRETは、ウィンドウプロシージャがメッセージを処理した後に呼び出されるフックプロシージャである。一方、前記ウィンドウズ(登録商標)フックを利用した方法は、キー・ロガーのような悪性コードに多く使用される。
【0021】
CreateRemoteThreadを利用した技法は、最近悪性コードで最も多く使用する技法の1つである。CreateRemoteThreadを利用した技法は、DLLを動的に対象プロセスで実行させることが可能であり、ユーザレベルルートキットのような悪性コードに多く使用される。
【0022】
次に、デバッギングAPIを利用した技法は、ウィンドウズ(登録商標)で提供する強力なデバッギングAPIを利用する技法である。前記デバッギングAPIを利用した技法は、悪意的な意図よりプログラムをデバッギングする用途に設けられたものであるが、メモリを扱うことができる方法の1つになる。ウィンドウズ(登録商標)環境で代表的なAPIとしては、ReadProcessMemoryとWriteProcessMemoryが存在する。前記デバッギングAPIを利用した技法の一例として、CreateProcessの因子であるdwCreationFlagでDEBUG_ONLY_THIS_PROCESSとDEBUG_PROCESSを選択して生成させれば、前記CreateProcessを呼び出したプロセスがデバッガになる。これは、WaitForDebugEventを通じてデバッグイベントを受けることができる。
【0023】
一方、前述した技法を利用する時、既にコンパイルされたプログラムを通じて悪性コードによるDLL挿入が発生することができる。それで、LoadLibrary APIを利用した明示的ローディングを利用する。前記明示的ローディングは、DLLのローディング可否がリンク時に決定されるものではなく、ユーザが希望する時に、当該DLLをロードして所望の関数を使うことができるようにする方法である。
【0024】
したがって、本発明では、当該プロセスが実行前にインポートしているDLL情報と実行後に明示的にローディングされる情報を確保し、前記確保した情報を比較して悪性コードによって悪意的な目的で挿入されるDLLを分析するための範囲を低減できるようにする方案を模索しようとする。
【0025】
このために、下記の本発明の好ましい実施例では、少なくとも1つの対象プロセスが実行される前のメモリに記録されたイメージファイルを通じてDLL情報を収集するための動作と、前記少なくとも1つの対象プロセスが実行されることによってローディングされるDLL情報を収集する動作について説明する。また、前記収集された2つのDLL情報を比較して明示的DLL情報を獲得し、前記獲得した明示的DLL情報から悪性コードによって悪意的な目的で挿入されたDLL情報を検出するための動作について説明する。また、本発明の好ましい実施例では、明示的DLL情報から悪意的な目的で挿入されたDLL情報を検査するために、特定会社別に開発したDLLをプロファイリングしたDBを利用したヒュリスティック技法を適用することを前提にする。
【0026】
以下、本発明の好ましい実施例を添付の図面を参照して詳しく説明する。
図1は、本発明の好ましい実施例に係る悪性コードによって挿入されたDLLを検出するための装置の構成を示す。
【0027】
図1を参照すれば、DLL情報収集部110は、悪意的に挿入されたDLLを検出するために少なくとも1つの対象プロセスに関するDLL情報を収集する。前記DLL情報収集部110は、収集しようとするDLL情報の種類によって複数のDLL情報収集モジュールで構成される。図1では、2つのDLL情報収集モジュールで構成された例を示す。
【0028】
DLL情報収集部110を構成する第1DLL情報収集モジュール112は、少なくとも1つの対象プロセスが実行される前に前記少なくとも1つの対象プロセスに対応するイメージファイルからDLL情報を収集する。第1DLL情報収集モジュール112は、ウィンドウズ(登録商標)で使用されるバイナリーファイルの移植可能プログラム(Portable Executable、以下、“PE”という)ファイル形式を追跡してインポートテーブル(Import table)の位置を確認し、前記確認された位置のインポートテーブルを通じてシンボルをインポートするDLL情報を収集する。
【0029】
前記インポートテーブルは、当該プロセスが使用している外部関数の位置及び名前を格納する。例えば、listbox.exeの場合、内部的にkernel32.dllとuser32.dllにある多数の関数を使用している。このような関数の名前は、既に実行ファイル内に格納されており、その格納された位置を通知することがインポートテーブルである。
【0030】
第1DLL情報収集モジュール112は、まず、PEヘッダーの位置を確認する。そして、前記確認されたPEヘッダーから任意の間隔で離れているインポートテーブルの位置を確認し、前記インポートテーブルの値を参考してIMAGE_IMPORT_DESCRIPTORの位置を確認する。その後、前記確認された位置に存在するIMAGE_IMPORT_DESCRIPTORの内容を分析することによって、呼び出されているDLL及び関数を確認することができる。
【0031】
第2DLL情報収集モジュール114は、少なくとも1つの対象プロセスが実行されることによってメモリにローディングされるDLL情報を収集する。前記第2DLL情報収集モジュール114は、PSAPI(Process Status Application Programming Interface)ライブラリまたはToolHelper APIのうち1つを利用して現在実行中のプロセスに対応したDLL情報を収集することができる。
【0032】
前記PSAPIライブラリファイルには、ウィンドウズ(登録商標)の応用プログラムがシステムで実行中のプロセス及び/または装置ドライバーに関する情報を検索するのに使用されるプログラムコードが入っている。それで、前記PSAPIライブラリによってウィンドウズ(登録商標)ベースのオペレーティングシステムで提供するプロセスリストに関する情報を提供されることができる。
【0033】
したがって、前記第2DLL情報収集モジュール114は、前記PSAPIライブラリを利用する場合、前記PSAPIライブラリのAPIのうち現在実行中のプロセスリストに関する情報を得ることができるAPIを使用する。また、前記第2DLL情報収集モジュール114は、ToolHelper APIを利用して現在実行中のプロセスに対応したDLL情報を収集することができる。
【0034】
前記第1DLL情報収集モジュール112によって収集されたDLL情報と前記第2DLL情報収集モジュール114によって収集されたDLL情報は、悪意的DLL検出部120に提供される。
【0035】
前記悪意的DLL検出部120は、前記第1及び第2DLL情報収集モジュール112、114によって収集された2つのDLL情報を比較して明示的DLL情報を抽出し、プロファイリングDBを用いて前記抽出された明示的DLL情報が悪意的DLLであるかを判断する。前記明示的DLLは、前記少なくとも1つの対象プロセスが実行される時、追加にローディングされるDLLである。このように明示的DLLに関する情報を抽出することは、悪性コードによって挿入されるDLLが明示的DLLである場合が大部分だからである。すなわち悪性コードによってDLLを挿入するDLL挿入技術を分析して見れば、悪意的なDLLを使用するために対象プロセスのメモリ領域内で明示的にDLLをローディングする特性があることを確認することができる。
【0036】
したがって、前記悪意的DLL検出部120は、プロファイリングDBを利用して前記獲得された明示的DLLが悪意的DLLであるかを判断する。前記プロファイリングDBは、製造会社で合法的に製作されたDLLファイルのPEヘッダー及び構造特性情報を抽出して格納したDBである。前記プロファイリングDBに格納されたDLLのヘッダー及び構造特性情報と検査対象DLLファイルのヘッダー及び構造特性情報を比較することによって、検査対象DLLファイルが悪意的なDLLであるかを判断する。検査対象DLLの悪意性有無を判断することができる理由は、特定製造会社で合法的に製作されたDLLファイルのPEヘッダーに記録された情報及び構造的特性は、悪意的な目的で開発されたDLLファイルと差異を示すからである。前記DLLファイルのPEヘッダー及び構造的特性情報の例として、VERSIONINFO、PE_IMAGE_OPTIONAL_HEADER、SECTION構造及びその値などが挙げられる。
【0037】
VERSIONINFOは、DLLを製作した会社情報である。したがって、検査対象DLLに対するVERSIONINFO情報が設定されていなければ、前記DLLファイルは悪意的なものとして判断される。PE_IMAGE_OPTIONAL_HEADERは、pFileに対するデータであって、会社ごとに異なる。検査対象DLLファイルのVERSIONINFO情報にA会社で明示されていても、前記DLLファイルのPE_IMAGE_OPTIONAL_HEADER情報とプロファイリングDBに貯蔵されたA会社のPE_IMAGE_OPTIONAL_HEADER情報とを比較し、異なる場合には、前記DLLファイルは、悪意的なDLLとして判断する。これと同様に、SECTION構造も会社ごとに異なることがある。A会社に明示されたDLLファイルのSECTION構造とプロファイリングDBに貯蔵されたA会社のSECTION構造とを比較し、異なる場合には、前記DLLファイルは、悪意的なDLLとして判断する。
【0038】
すなわち、前記悪意的DLL情報検出部120は、前記プロファイリングDBに貯蔵された製造会社別のDLLファイルのPEヘッダー及び構造特性情報と検査対象DLLのPEヘッダー及び構造特性情報とを比較し、異なる場合、悪意的な目的で開発されたDLLとして判断する。
【0039】
図2は、本発明の好ましい実施例によって悪性コードによって挿入されたダイナミックリンクライブラリを検出するためにオペレーティングシステムで行われる制御流れを示す。
【0040】
図2を参照すれば、段階210で、プロセスが実行される前に、プロセスのイメージファイルからDLL情報を収集する。
【0041】
前記イメージファイルからDLL情報を収集する動作についてさらに具体的に説明すれば、オペレーティングシステムは、ウィンドウズ(登録商標)で使用されるバイナリーファイルのPEファイル形式を追跡してインポートテーブル(Import table)の位置を確認する。そして、前記確認された位置のインポートテーブルを通じてシンボルをインポートするDLL情報を収集する。前記PEファイル形式の一例は、図3に示されている通りである。図3に示されているように、前記PEファイルは、“DOS MZヘッダー(header)”領域、“DOSスタブ(stub)”領域、“PEヘッダー(header)”領域、“セクションテーブル(Section table)”領域及び複数の“セクション(Section)”領域で構成される。
【0042】
前記DOS MZヘッダー領域は、PEファイルの初めに位置し、MAGIC Numberと次に来るIMAGE_NT_HEADERの位置を表示する。前記DOSスタブ領域は、DOSで実行した時、エラーメッセージを表示するスタブ(Stub)コードを含んでいる。前記PEヘッダー領域は、PEファイルフォーマットに関する情報を含んでおり、セクションの数及び属性のような情報を含むIMAGE_FILE_HEADER領域と、PEファイルに関する属性またはイメージベースのような情報を含むIMAGE_OPTIONAL_HEADER領域を含む。そして前記セクションテーブル領域は、セクションに関する実質的な情報を含み、前記セクション領域は、実際データが位置する領域である。
【0043】
前記セクション領域には、IMAGE_IMPORT_DESCRIPTORという構造体の配列と始まり、リンクされたDLL個数+1だけのIMAGE_IMPORT_DESCRIPTOR構造体が連続的に存在し、終わりは、NULLで満たされている。前記IMAGE_IMPORT_DESCRIPTOR構造体の“DWORD Name”変数は、インポートされたDLLの名前を含んでいるNULLと終わるアスキー文字列に対するRVA(Relative Virtual Address)値を有する。前記RVAは、実行ファイルがメモリにロードされた時、その開始アドレスを0にして計算したアドレスである。すなわち前記RVAは、実行ファイル開始位置を0にする相対的アドレスに該当する。例えばRVAの値が0x40であり、実行ファイルがロードされた時、その開始位置が0x1000であると仮定すれば、実際該当領域がメモリにロードされた時の位置は、0x1040になる。
【0044】
実際ファイルをダンプして見れば、各DLLによるIMAGE_IMPORT_DESCRIPTOR構造体が各々存在することが分かる。また、NAMEのRVA値をファイルオフセットで変換すれば、実際インポートするDLL情報を捜すことができる。このように抽出されたDLLですべてインポートする情報を抽出すれば、当該プロセスのPEイメージでインポートするDLLの情報をすべて抽出することができる。
【0045】
次に、段階212で、前記プロセスが実行されることによってメモリにローディングされるDLL情報を収集する。すなわち前記オペレーティングシステムは、PSAPIライブラリを利用して現在実行中のプロセスに対応したDLL情報を収集することができる。前記PSAPIライブラリは、ウィンドウズ(登録商標)を基盤とするオペレーティングシステムで提供するプロセスリストに関する情報を提供する。したがって、前記オペレーティングシステムは、前記PSAPIライブラリを利用する場合、前記PSAPIライブラリのAPIのうち現在実行中のプロセスリストに関する情報を得ることができるAPIを使用する。また、前記オペレーティングシステムは、ToolHelper APIを利用して現在実行中のプロセスに対応したDLL情報を収集することもできる。
【0046】
段階214に進行し、以前に収集された2つのDLL情報を比較して明示的DLL情報を抽出する。前記明示的DLL情報は、前記少なくとも1つの対象プロセスが実行される時、追加にローディングされるDLLに関する情報である。
【0047】
段階216で、プロファイリングDBに貯蔵された情報に基づいて前記明示的DLLが悪意的DLLであるか否かを検査する。前記オペレーティングシステムは、前記獲得された明示的DLL情報に対して悪意的DLLが存在するかを判断するために、プロファイリングDBを利用する。
【0048】
前述したように、本発明の好ましい実施例では、オペレーティングシステムがプロファイリングDBを利用してヒュリスティック(heuristic)技法を利用して悪意的な目的で挿入されたDLLを実時間に検出するようにする。悪意的な目的で挿入されたDLL情報は、被害システムの分析ツールとして活用することができる。
【0049】
一方、以上では本発明の好ましい実施例について図示し説明したが、本発明は、前述した特定の実施例に限定されず、請求範囲で請求する本発明の要旨を逸脱しない範囲内で当該発明が属する技術分野における通常の知識を有する者によって多様な変形実施が可能であることは勿論であり、このような変形実施は、本発明の技術的思想から個別的に理解すべきものではない。
【0050】
例えば、前述した本発明の好ましい実施例では、ウィンドウズ(登録商標)ベースのオペレーティングシステムに限定して説明したが、ウィンドウズ(登録商標)環境でのDLL情報と類似の情報を定義しているオペレーティングシステムに本発明を容易に適用することもできる。
【図面の簡単な説明】
【0051】
【図1】本発明の好ましい実施例に係る悪性コードによって挿入されたDLLを検出するための装置の構成図である。
【図2】本発明の好ましい実施例によって悪性コードによって挿入されたDLLであるかを判断するために行われる制御流れ図である。
【図3】本発明の好ましい実施例を適用するためのウィンドウズ(登録商標)環境で移植可能プログラムファイル形式の一例を示す図である。
【符号の説明】
【0052】
110 DLL情報収集部
112 第1DLL情報収集モジュール
114 第2DLL情報収集モジュール
120 悪意的DLL情報検出部

【特許請求の範囲】
【請求項1】
プロセスが実行される前に前記プロセスのイメージファイルから第1ダイナミックリンクライブラリ(DLL)情報を収集する段階と、
前記プロセスが実行されることによってメモリにローディングされる第2DLL情報を収集する段階と、
前記収集された第1DLL情報及び第2DLL情報を比較し、明示的DLL情報を抽出する段階と、
前記抽出された明示的DLLが悪性コードによって挿入されたDLLであるかを判断する段階と、
を含む、悪性コードによって挿入されたDLL検出方法。
【請求項2】
前記第1DLL情報の収集は、ウィンドウズオペレーティングシステムでのバイナリーファイルが有するPE(Portable Executable)ファイル形式に対する追跡によって行われることを特徴とする請求項1に記載の悪性コードによって挿入されたDLL検出方法。
【請求項3】
前記第2DLL情報の収集は、オペレーティングシステムのプロセスリストに関する情報を提供するPSAPI(Process Status Application Programming Interface)ライブラリを活用して行われることを特徴とする請求項1に記載の悪性コードによって挿入されたDLL検出方法。
【請求項4】
前記明示的DLL情報は、前記第1DLL情報には含まれないが、前記第2DLL情報には含まれるDLLに関する情報であることを特徴とする請求項1に記載の悪性コードによって挿入されたDLL検出方法。
【請求項5】
製造会社別に製作されたDLLファイルのPEヘッダー情報及び構造特性情報を抽出してプロファイリングDBに格納する段階をさらに含むことを特徴とする請求項1に記載の悪性コードによって挿入されたDLL検出方法。
【請求項6】
前記明示的DLLが悪性コードによって挿入されたDLLであるかを判断する段階は、
前記プロファイリングDBに格納された製造会社別のDLLファイルのPEヘッダー及び構造的特性情報と前記明示的DLLのPEヘッダー及び構造的特性情報とを比較し、互いに異なる場合、前記明示的DLLが悪性コードによって挿入されたDLLであると判断する段階を含むことを特徴とする請求項5に記載の悪性コードによって挿入されたDLL検出方法。
【請求項7】
プロセスの実行前に前記プロセスのイメージファイルから第1ダイナミックリンクライブラリ(DLL)情報を収集し、前記プロセスが実行されることによってメモリにローディングされる第2DLL情報を収集するDLL情報収集部と、
前記収集された第1DLL情報及び第2DLL情報を比較し、明示的DLL情報を抽出し、前記抽出された明示的DLLが悪性コードによって挿入されたDLLであるかを検出する悪意的DLL検出部と、
を含む、悪性コードによって挿入されたDLL検出装置。
【請求項8】
前記DLL情報収集部は、ウィンドウズ環境でのバイナリーファイルが有するPE(Portable Executable)ファイル形式に対する追跡を通じて前記イメージファイルからの第1DLL情報を収集する第1DLL情報収集部を含むことを特徴とする請求項7に記載の悪性コードによって挿入されたDLL検出装置。
【請求項9】
前記DLL収集部は、オペレーティングシステムのプロセスリストに関する情報を提供するPSAPI(Process Status Application Programming Interface)ライブラリを活用して前記メモリにローディングされる第2DLL情報を収集する第2DLL情報収集部を含むことを特徴とする請求項7に記載の悪性コードによって挿入されたDLL検出装置。
【請求項10】
前記悪意的DLL検出部は、前記第1DLL情報には含まれないが、前記第2DLL情報には含まれるDLLに関する情報を前記明示的DLL情報として抽出することを特徴とする請求項7に記載の悪性コードによって挿入されたDLL検出装置。
【請求項11】
製造会社別に製作されたDLLファイルのPEヘッダー情報及び構造特性情報を格納するプロファイリングDBをさらに含むことを特徴とする請求項7に記載の悪性コードによって挿入されたDLL検出装置。
【請求項12】
前記悪意的DLL検出部は、
前記プロファイリングDBに格納された製造会社別のDLLファイルのPEヘッダー及び構造的特性情報と前記明示的DLLのPEヘッダー及び構造的特性情報とを比較し、互いに異なる場合、前記明示的DLLが悪性コードによって挿入されたDLLであると判断することを特徴とする請求項11に記載の悪性コードによって挿入されたDLL検出装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2009−129451(P2009−129451A)
【公開日】平成21年6月11日(2009.6.11)
【国際特許分類】
【出願番号】特願2008−294358(P2008−294358)
【出願日】平成20年11月18日(2008.11.18)
【出願人】(596180076)韓國電子通信研究院 (733)
【氏名又は名称原語表記】Electronics and Telecommunications Research Institute
【住所又は居所原語表記】161 Kajong−dong, Yusong−gu, Taejon korea
【Fターム(参考)】