JPWO2016060067A1 - 特定装置、特定方法および特定プログラム - Google Patents
特定装置、特定方法および特定プログラム Download PDFInfo
- Publication number
- JPWO2016060067A1 JPWO2016060067A1 JP2016554061A JP2016554061A JPWO2016060067A1 JP WO2016060067 A1 JPWO2016060067 A1 JP WO2016060067A1 JP 2016554061 A JP2016554061 A JP 2016554061A JP 2016554061 A JP2016554061 A JP 2016554061A JP WO2016060067 A1 JPWO2016060067 A1 JP WO2016060067A1
- Authority
- JP
- Japan
- Prior art keywords
- node
- data
- malware
- communication destination
- tag
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/144—Detection or countermeasures against botnets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
特定装置(10)は、解析対象のマルウェア(11)を監視し、該マルウェア(11)と、通信先からダウンロードされたダウンロードデータと、マルウェア(11)またはダウンロードデータの通信先との間で行われるデータの受け渡し関係をログデータとして取得する。そして、特定装置(10)は、取得されたログデータを用いて、マルウェア、ダウンロードデータおよび通信先をノードとし、各ノードの依存関係をエッジとする有向グラフである依存関係グラフを作成する。そして、特定装置(10)は、作成された依存関係グラフの各ノードを既知の悪性情報と照合して悪性なノードを検出し、該悪性なノードを基点としてエッジを終点から始点方向へと辿っていき、辿ったノードを新たな悪性なノードとして特定する。
Description
本発明は、特定装置、特定方法および特定プログラムに関する。
近年、ボットやダウンローダをはじめとするマルウェアの多くは、悪性なプログラムが設置されたサイト(以降、マルウェアダウンロードサイトと呼ぶ)からプログラムコードを取得・実行し、機能拡充を行うことが知られている。このような機能拡充では、外部サーバへの攻撃や情報搾取など更なる被害をもたらすための機能が追加される。このため、感染後の被害を最小限に抑制するには、マルウェアダウンロードサイトへの通信を妨害し、機能拡充を阻害しなければならない。
現在、マルウェアダウンロードサイトへの通信を妨害するために、マルウェアの動的解析により得られた通信先をブラックリスト化する対策が講じられている。マルウェアは正規サイトからもプログラムコードを取得・実行するため、動的解析で得られた通信先の全てをブラックリスト化すると、通信の誤遮断を行ってしまうことになる。
このため、非特許文献1で述べられているように、ダウンロードされたファイルがマルウェアであるか否かに基づいたダウンロードサイトの特定が行われてきた。一般に、マルウェアであるか否かの判定処理は、アンチウイルスソフトの検査結果や、ファイル実行時に発生したレジストリ操作などの挙動に基づいて行われる。
畑田充弘、田中恭之、稲積孝紀、「サンドボックス解析結果に基づくURLブラックリスト生成についての一検討」 コンピュータセキュリティシンポジウム2013論文集
しかしながら、上記した従来の技術では、悪性なサイトや悪性なダウンロードデータを適切に特定することができない場合があるという課題があった。つまり、従来の技術では、マルウェアとダウンロードされたデータを正確に識別することができていなかった。このため、マルウェアの動的解析中に発生した通信の通信先とOS上のオブジェクト(プログラムコードやファイル)の依存関係を解析することができず、通信発生の原因やファイルデータの取得元を特定できていなかった。
その結果、実行データを直接悪性判定できない場合や、ダウンロードサイトから取得したプログラムコードがさらに別のダウンロードサイトからプログラムコードを取得して実行するといった多段構成になっている場合には、悪性なサイトや悪性なダウンロードデータの見逃しが発生してしまっていたという課題があった。
また、マルウェアの多くはマルウェアダウンロードサイトからプログラムコードを取得・実行して機能拡充を行う。上記した従来の技術では、この機能拡充を防ぐためにマルウェアがマルウェアダウンロードサイトへ通信するのを妨害するためのブラックリストを動的解析により得ていたが、動的解析で得られるサイトには正規サイトも含まれるため、正規サイトを誤ってダウンロードサイトとして特定してしまう場合があった。
上述した課題を解決し、目的を達成するために、本発明の特定装置は、解析対象のマルウェアを監視し、該マルウェアと、通信先からダウンロードされたダウンロードデータと、前記マルウェアまたは前記ダウンロードデータの通信先との間で行われるデータの受け渡し関係をログデータとして取得する監視部と、前記監視部によって取得されたログデータを用いて、前記マルウェア、前記ダウンロードデータおよび前記通信先をノードとし、各ノードの依存関係をエッジとする有向グラフである依存関係グラフを作成する作成部と、前記作成部によって作成された依存関係グラフの各ノードを既知の悪性情報と照合して悪性なノードを検出し、該悪性なノードを基点としてエッジを終点から始点方向へと辿っていき、辿ったノードを新たな悪性なノードとして特定する特定部とを備えることを特徴とする。
また、本発明の特定方法は、特定装置で実行される特定方法であって、解析対象のマルウェアを監視し、該マルウェアと、通信先からダウンロードされたダウンロードデータと、前記マルウェアまたは前記ダウンロードデータの通信先との間で行われるデータの受け渡し関係をログデータとして取得する監視工程と、前記監視工程によって取得されたログデータを用いて、前記マルウェア、前記ダウンロードデータおよび前記通信先をノードとし、各ノードの依存関係をエッジとする有向グラフである依存関係グラフを作成する作成工程と、前記作成工程によって作成された依存関係グラフの各ノードを既知の悪性情報と照合して悪性なノードを検出し、該悪性なノードを基点としてエッジを終点から始点方向へと辿っていき、辿ったノードを新たな悪性なノードとして特定する特定工程とを含んだことを特徴とする。
また、本発明の特定プログラムは、解析対象のマルウェアを監視し、該マルウェアと、通信先からダウンロードされたダウンロードデータと、前記マルウェアまたは前記ダウンロードデータの通信先との間で行われるデータの受け渡し関係をログデータとして取得する監視ステップと、前記監視ステップによって取得されたログデータを用いて、前記マルウェア、前記ダウンロードデータおよび前記通信先をノードとし、各ノードの依存関係をエッジとする有向グラフである依存関係グラフを作成する作成ステップと、前記作成ステップによって作成された依存関係グラフの各ノードを既知の悪性情報と照合して悪性なノードを検出し、該悪性なノードを基点としてエッジを終点から始点方向へと辿っていき、辿ったノードを新たな悪性なノードとして特定する特定ステップとをコンピュータに実行させることを特徴とする。
本発明によれば、悪性なサイトや悪性なダウンロードデータを適切に特定することができるという効果を奏する。
以下に、本願に係る特定装置、特定方法および特定プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る特定装置、特定方法および特定プログラムが限定されるものではない。
[第一の実施の形態]
以下の実施の形態では、第一の実施の形態に係る特定装置の構成および処理の流れを順に説明し、最後に第一の実施の形態による効果を説明する。
以下の実施の形態では、第一の実施の形態に係る特定装置の構成および処理の流れを順に説明し、最後に第一の実施の形態による効果を説明する。
[第一の実施の形態に係る特定装置の構成]
まず、図1を用いて、第一の実施の形態に係る特定装置10について説明する。図1は、第一の実施の形態に係る特定装置の全体構成を示す概略構成図である。図1に示すように、特定装置10は、マルウェア11、ゲストOS12、仮想計算機13、ログDB14、作成部15および特定部16を有する。また、特定装置10は、複数の悪性情報DB20と接続されており、悪性情報DB20から既知の悪性情報を取得する。
まず、図1を用いて、第一の実施の形態に係る特定装置10について説明する。図1は、第一の実施の形態に係る特定装置の全体構成を示す概略構成図である。図1に示すように、特定装置10は、マルウェア11、ゲストOS12、仮想計算機13、ログDB14、作成部15および特定部16を有する。また、特定装置10は、複数の悪性情報DB20と接続されており、悪性情報DB20から既知の悪性情報を取得する。
特定装置10のマルウェア実行環境部10aは、マルウェア11、ゲストOS12および仮想計算機13から構成される。ゲストOS12は、マルウェア11を動的解析するための環境である。また、マルウェア11は、ゲストOS12上で実行され、API(Application Programming Interface)呼び出しやシステムコールの発行といった命令を実行する。なお、ゲストOS12上では、ブラウザなどのマルウェア11の攻撃対象となるプロセスを動作させてもよい。
マルウェア実行環境部10aは、マルウェア11をゲストOS12上で動作させ、テイント解析技術を用いてマルウェア11が実行した命令と実行時のデータフローを追跡する。テイント解析技術とは、データに対してタグを設定し、伝搬ルールに従ってタグを伝搬させることで、解析システム内のデータの伝搬を追跡する技術である。タグとはデータに対して付与される属性情報であり、データの出自や種類が設定される。また、伝搬ルールとはタグを伝搬させる条件であり、一般にデータのコピーや演算が伝搬の条件として設定される。例えば、受信データの利用用途を解析する場合には、受信データに対して取得元を一意に特定可能なタグを設定し、データのコピーや演算に応じてタグを伝搬させる。APIの引数として渡されたデータにタグが設定されていることを確認することで、受信データはAPIの引数として利用されるデータであることが解析できる。なお、テイント解析技術は仮想計算機技術を用いて実現されることが一般的であり、タグはデータとは異なる専用の記録領域にデータと対応が取れるように保持される。具体的には、マルウェア実行環境部10aは、まず解析対象となるマルウェア11をゲストOS12上に設置し、マルウェア11のファイルに対応するディスク領域に監視対象タグ(監視対象フラグが有効になっているタグ)を設定する。その後、マルウェア実行環境部10aは、解析対象のマルウェア11を実行する。
マルウェア実行環境部10aでは、命令監視部13aがマルウェア11が実行した命令を監視し、データフロー解析部13bがデータ受信APIとマルウェアのプログラムコードデータを起点にマルウェア実行環境部10a内でのデータフローを追跡する。仮想計算機13は、命令監視部13aおよびデータフロー解析部13bを具備する。
命令監視部13aは、解析対象のマルウェア11を監視し、該マルウェア11と、通信先からダウンロードされたダウンロードデータと、マルウェア11またはダウンロードデータの通信先との間で行われるデータの受け渡し関係をログデータとして取得する。
具体的には、命令監視部13aは、マルウェア11のファイルに対してタグを付与して監視を行い、該マルウェア11が監視対象のAPIであるデータ受信APIを呼び出した場合には、該APIに関するデータに対して、当該データの送信元を一意に特定可能なタグを、監視対象フラグを有効にした上で付与し、該タグが付与されたデータの伝搬を追跡することでログデータを取得する。
命令監視部13aの処理を詳細に説明すると、まず、命令監視部13aは、マルウェア11の解析中に、命令ポインタレジスタの値を取得し、命令ポインタレジスタの指すメモリ領域に監視対象タグがついているか否かをデータフロー解析部13bに問い合わせる。そして、命令監視部13aは、問い合わせの結果、データに監視対象タグが設定されていた場合、当該命令を監視対象と判断する。監視対象のcall命令が実行され、該call命令で呼び出す対象が監視対象APIでない場合には、当該命令より深いネストの全命令を監視対象のcall命令を実行したプログラムコードの動作内容であると判断し、監視対象とする。なお、命令監視部13aはコールスタックも考慮した上で監視対象の各命令を識別する。この登録は、call命令の次のアドレスに戻ってきた際に解除される。
次に、命令監視部13aは、監視対象のAPIを呼出している場合には、監視対象APIのカテゴリに応じた処理を行う。カテゴリには大きく3つ存在する。1つは、タグを設定するためのAPI、もう1つはタグを確認するためのAPI、最後の1つは設定と確認の両方を行うAPIである。どのAPIがどのカテゴリに属するかは事前に設定するものとする。
例えば、データ受信APIは、タグを設定するAPIであるものとし、データ送信APIは、タグを確認するAPIとする。また、ファイル書き込みAPIおよびコードインジェクションに用いられるメモリ書き込みAPIは、タグを確認してタグを設定するAPIとする。タグを設定するAPIでは、取得元を一意に特定可能なタグを設定する。このような処理を行うことにより、マルウェア解析時におけるマルウェアのプログラムコードと受信データの受信用途を分析し、その結果はログDB14に格納される。
ここで、図2を用いて、設定するタグの構成例について説明する。図2は、タグの構成例を示す図である。図2の例では、64bit長のタグを表している。図2に示すように、タグは、監視対象フラグ、書き込みID、データIDで構成される。
監視対象フラグは、実行を監視する対象であることを示すフラグ値である。また、書き込みIDは、タグが付与されているデータがファイルやメモリに書き込まれたデータであるか否かを管理する値であり、ファイル書き込み時とコードインジェクション時にユニークな値が与えられる。最後のデータIDは、データの取得元を一意に特定可能な値である。
ここで取得元とは、受信データの送付元に関する情報である通信先情報(IPアドレス、FQDN(Fully Qualified Domain Name)、URL(Uniform Resource Locator)など)である。通信先情報の粒度は特定部16で抽出したい情報に応じて解析前に事前に決定する。なお、書き込みIDやデータIDは、設定されていない状態の値に0をとる。つまり、監視対象フラグが1(有効)であり、それ以外は0となっている状態のタグが解析対象のマルウェアに対して設定される監視対象タグである。また、データ受信APIで受信したデータに対して設定されるのは監視対象フラグが1であり、書き込みIDが0でデータIDが0以外のタグとなる。なお、タグに紐づく通信先情報は、マルウェア解析実行時にマルウェアによって実行されたネットワーク関連APIを監視・記録することで特定でき、このタグの長さは実装に応じて監視対象フラグ、書き込みID、データIDを保持できる範囲で任意に変更できる。
データフロー解析部13bは、命令監視部13aから命令ポインタレジスタの指すメモリ領域に監視対象タグが付いているか否かの問い合わせを受け付けると、該問い合わせがあったメモリ領域に監視対象タグが付いているか判定し、判定した結果を問い合わせの結果として命令監視部13aに通知する。ログDB14は、マルウェア実行環境部10aで収集したログを保持する。
作成部15は、命令監視部13aによって取得されたログデータを用いて、マルウェア11、ダウンロードデータおよび通信先をノードとし、各ノードの依存関係をエッジとする有向グラフである依存関係グラフを作成する。ここで、各ノードについては、既存の悪性情報をマッピングできる粒度のノードを依存関係グラフに持つものとする。また、ノード間を結ぶエッジは終点ノードの悪性を根拠に始点ノードの悪性を説明できる関係性としてデータ依存関係を保持する。具体的には、エッジを用いてデータ実行に関わる依存関係、データ保存に関わる依存関係、通信先決定に関わる依存関係を保持する。
データ実行に関わる依存関係では、プログラムコードの取得元情報を保持し、データの実行有無を表す。この依存関係には、通信先からの受信データがメモリ上で直接実行される場合とファイルから読み込んだデータが実行される場合、別プログラムによってインジェクションされたデータが実行される場合が該当する。この依存関係は終点ノードにプログラムコードを持つエッジにより表現される。
データ保存に関わる依存関係では、ファイルデータの取得元情報を保持する。この依存関係を保持することで、ファイルの悪性判定結果に基づいてファイル内データの取得元を悪性判定することが可能となる。通信先から受信したデータがファイルに保存される場合、ファイルのコピーが行われる場合、プログラムコードが自分自身をファイルとして切り出す場合がこの依存関係に該当する。この依存関係は、終点ノードにファイルを持つエッジにより表現される。
通信先決定に関わる依存関係では、本依存関係は、通信先情報の出自を保持する。通信先の悪性判定結果に基づいて悪性を判断する場合、通信内容の出自ではなく、通信先を決定した通信先情報の出自が重要となる。本依存関係は、通信先の悪性情報に基づいて通信先情報の出自の悪性判定を可能とする。通信先やファイル、プログラムコードによる通信先の決定がこの依存関係に該当し、終点ノードに通信先を持つエッジが本依存関係を表現する。
ここで、図3を用いて、依存関係グラフの例について説明する。図3は、依存関係グラフの例を示す図である。図3に例示するように、通信先Aからダウンロードされたファイルが実行され、通信先Bと通信先Cとの通信が発生し、通信先Cから新たなファイルがダウンロードされた際の依存関係を表している。この例では、依存関係グラフは通信先とプログラムコード、ファイルをノードに持つ。通信先に対しては、公開ブラックリスト、プログラムコードに対しては特定APIを呼び出したなどのヒューリスティック検知結果、ファイルに対してはアンチウイルスソフトによる検査結果をそれぞれマッピングすることができる。
また、これらのノード間には次のような依存関係が存在する。まず、終点ノードに通信先を持つ場合、通信を行ったプログラムコード自体ではなく通信先を決定した要因が悪性であるため通信先情報の出自を始点ノードにとる。また、ファイルノードを終点ノードに持つ場合にはファイルデータの出自を始点ノードにとる。最後に、プログラムコードノードを終点に持つ場合には、プログラムコードデータの出自を始点ノードにとる。以上のノードとエッジを用いて、図3は、通信先AからダウンロードされたファイルAが実行され、通信先Cから新たなファイルBを取得するまでの一連の依存関係を表している。
ここで、依存関係グラフが作成される過程について説明する。ここでの例では、図3に例示した依存関係グラフを作成するにあたり、マルウェア実行環境部10aで以下の動作があったものとする。まず、解析対象のマルウェア11が通信先Aを指定して通信し、通信先AからはファイルAがダウンロードされた。その後、ファイルAはプログラムコードとして実行され、当該プログラムコードは通信先Bと通信先Cをそれぞれ指定して通信を行った。この結果、通信先Cからは新たなファイルBがダウンロードされた。このような動作がマルウェア実行環境部10aであったものとして、以下に依存関係グラフが作成される過程について説明する。
まず、解析対象プログラムコードが引き起こした動作のみを監視するため、マルウェア実行環境部10aは、監視対象タグを設定した後に解析対象のマルウェア11を実行する。そして、解析対象のマルウェア11が実行されている間、命令監視部13aは、通信やファイル書き込み、メモリ書き込みに関わるAPI呼出、監視対象タグのついたデータの実行有無を監視する。命令監視部13aは、解析中にプログラムコードがデータ送信APIを呼び出した場合、データ送信APIに引数として渡された通信先情報を指定するデータについて、設定されているタグを確認し、通信先情報と合わせてログに記録する。
このとき、作成部15は、引数として渡された通信先情報を指定するデータにデータ送信APIを呼び出したプログラムコードと同じタグが設定されている場合や、タグが設定されていない場合には当該プログラムコードが通信先を指定したと判断する。これにより、マルウェアと通信先Aの依存関係(図4の(1))、プログラムコードと通信先Bの依存関係(図4の(4))およびプログラムコードと通信先Cの依存関係(図4の(5))が明らかになり、作成部15は、解析対象プログラムコードと通信先Aとをエッジで結び、また、プログラムコードと通信先Bとをエッジで結ぶ。
また、命令監視部13aは、データ受信APIが呼び出された場合には、マルウェア実行環境部は受信データに対してデータIDを持つタグを設定し、取得元の通信先情報と合わせてログに記録する。
その後、プログラムコードがファイル書き込みAPIを呼び出した場合、命令監視部13aは、書き込みIDを設定した上でファイルデータへタグを伝搬させる。これにより、通信先Aからの受信データがファイルAに書き込まれたことを示す依存関係(図4の(2))や通信先Cから受け取ったデータがファイルBに書き込まれたことを示す依存関係(図4の(6))が追跡可能となる。なお、書き込みIDが既に設定されていた場合、書き込みIDを上書きする。命令監視部13aは、当該依存関係を表現させるため、ファイル名と合わせてファイルに書き込まれるデータに設定されていたタグとファイルに書き込むデータに対して新たに設定したタグをログDB14に格納する。作成部15は、ログDB14に記憶されたログを用いて、通信先AとファイルAをエッジで結び、また、通信先CとファイルBをエッジで結ぶ。
また、受信データやファイルに書き込まれたデータが実行されたか否かは、命令ポインタレジスタの指すメモリ領域にデータIDや書き込みIDを持つタグが設定されているか否かで判断される。例えば、通信先Aからダウンロードされたファイルが実行された場合、実行されたデータには書き込みIDが設定されている。書き込みIDがファイルに書き込まれたデータに設定されたタグと同じであれば、ファイルが実行されたと判断できる。一方、コードインジェクション時に設定されたタグと同じであれば、インジェクションされたデータが実行されたと判断できる。
なお、データIDのみが設定されている場合には受信データがそのままメモリ上で実行されたと判断できる。この仕組みにより、通信先AからダウンロードされたファイルAがプログラムコードとして実行されたという依存関係(図4の(3))が追跡可能になる。命令監視部13aは、作成部15で通信先とプログラムコード、およびファイルとプログラムコード間の依存関係をグラフ上に表現できるように、実行されたデータに紐付くタグをログに記録する。作成部15は、ログDB14に記憶されたログを用いて、ファイルAとプログラムコードをエッジで結ぶ。
特定部16は、作成部15によって作成された依存関係グラフの各ノードを既知の悪性情報と照合して悪性なノードを検出し、該悪性なノードを基点としてエッジを終点から始点方向へと辿っていき、辿ったノードを新たな悪性なノードとして特定する。また、特定部16は、悪性なノードであると特定したノードが通信先のノードである場合には、該通信先のノードを悪性なサイトとして特定し、さらに該通信先のノードに至る直前のノードがファイルやプログラムコードなどのダウンロードデータであった場合には該通信先のノードをマルウェアダウンロードサイトとして検出する。
具体的には、特定部16は、作成部15によって作成された依存関係グラフに対して、既存の悪性情報をマッピングする。例えば、通信先のホスト名が「example.co.jp」であり、公開ブラックリストなどの既存の悪性情報に当該ホスト名が登録されている場合には依存関係グラフ上の該当するノードに対して悪性であることを示す情報を付与する。
最後に、特定部16は、マッピング処理によって悪性と判定されたノードを起点に依存関係を遡り、当該ノードから到達可能な通信先を悪性と判定する。また、到達可能なファイルを悪性なファイルと特定する。その後、特定部16では、マルウェアダウンロードサイトを含む悪性通信先一覧とその過程で悪性と判定されたファイル情報を出力する。このように、依存関係グラフでは、終点ノードの悪性を理由に始点ノードの悪性を言及できる依存関係が保持されている。
例えば、特定部16は、図4に例示するように、依存関係グラフの各ノードを既知の悪性情報と照合してマルウェアのノードと通信先Cのノードを悪性なノードとして検出する。そして、図5に例示するように、特定部16は、悪性なノードを基点としてエッジを終点から始点方向へと辿っていき、辿ったノードとして、通信先A、ファイルA、プログラムコードを悪性なノードとして特定する。このため、エッジで結ばれた2つのノード間の依存関係を順番に遡り、悪性判定することが可能となる。
また、上記の悪性判定処理において、依存関係の向きが誤検知を防ぐための重要な役割を果たす。一般に、マルウェア11は、解析環境での実行を回避するために、解析妨害機能を備えている。その1つが、正規サイトを利用したインターネットへの接続確認であり、マルウェア11は正規サイトへの接続性有無を確認することでインターネットから隔離された解析環境であるか否かを見分けている。
マルウェア11の動的解析中に接続確認が行われた場合、接続確認用のサイトも依存関係グラフ上の1つのノードとして表現され、データ依存関係が通信先情報の出自から通信先に向かうエッジで表現される。このため、例えば、図4のように既知の悪性情報によって通信先Cが悪性であると判定されたとしても、プログラムコードと通信先Bの依存関係は遡ることができないため、図5のような悪性判定結果となる。したがって、通信先Bが悪性と判定されることは無い。このように、データ依存関係を依存関係グラフとして保持して利用する本手法は接続確認などを目的とした正規サイトとの通信が発生したとしても、誤検知しない。
なお、上記の説明では、解析対象がマルウェアであるという前提で説明したが、解析対象が被疑プログラムコードでも構わない。この場合、特定装置10を用いて、被疑プログラムコードの悪性を判定することも可能である。つまり、マルウェアと疑われる被疑プログラムを動作させて、既存の悪性情報とマッチしたノードから辿っていき、当該被疑プログラムにたどり着くことにより、マルウェアを特定する手法にも適用が可能である。
また、上記の説明では、既知の悪性情報のみを参照したが、既知の良性情報を用いて適用する悪性情報を限定してもよい。既知の良性情報としては、例えば、ファイルであればOS上に標準でインストールされているファイルのハッシュ値、通信先であればDNS(Domain Name System)サーバなど解析中に必ず通信が発生する通信先、有名サイトの一覧などが挙げられる。
[特定装置の処理の一例]
次に、図6および図7を用いて、特定装置10の処理について説明する。図6は、第一の実施の形態に係る特定装置によるログの取得処理の流れを示すフローチャートである。図7は、第一の実施の形態に係る特定装置による悪性通信先の特定処理の流れを示すフローチャートである。
次に、図6および図7を用いて、特定装置10の処理について説明する。図6は、第一の実施の形態に係る特定装置によるログの取得処理の流れを示すフローチャートである。図7は、第一の実施の形態に係る特定装置による悪性通信先の特定処理の流れを示すフローチャートである。
まず、図6を用いて、特定装置10によるログの取得処理の流れを説明する。図6に示すように、特定装置10のマルウェア実行環境部10aは、まず解析対象となるマルウェア11をゲストOS12上に設置し(ステップS101)、マルウェア11のファイルに対応するディスク領域に監視対象タグを設定する(ステップS102)。その後、マルウェア実行環境部10aは、マルウェア11を実行する(ステップS103)。
そして、命令監視部13aは、マルウェア11の解析中に、命令ポインタレジスタの値を取得し(ステップS104)、データフロー解析部13bに命令ポインタレジスタの指すメモリ領域に監視対象タグがついているか否かを問い合わせる。そして、データフロー解析部13bは、命令ポインタレジスタが指すアドレス領域のタグを取得し(ステップS105)、問い合わせ結果を命令監視部13aに通知する。そして、命令監視部13aは、問い合わせの結果、データに監視対象タグがついていない場合には(ステップS106否定)、現在監視しているスレッドが監視対象であるか否かを判定する(ステップS107)。この結果、命令監視部13aは、現在監視しているスレッドが監視対象でないと判定した場合には(ステップS107否定)、ステップS104に戻る。また、命令監視部13aは、現在監視しているスレッドが監視対象であると判定した場合には(ステップS107肯定)、ステップS108の処理に移行する。
ステップS108の処理では、命令監視部13aは、当該命令を監視対象と判断し、監視対象のcall命令が実行されるか判定する(ステップS108)。この結果、命令監視部13aは、call命令が実行されないと判定した場合には(ステップS108否定)、Ret命令で監視対象登録直後の命令ポインタアドレスに戻るか判定する(ステップS109)。
この結果、命令監視部13aは、Ret命令で監視対象登録直後の命令ポインタアドレスに戻らないと判定した場合には(ステップS109否定)、ステップS104に戻る。また、命令監視部13aは、Ret命令で監視対象登録直後の命令ポインタアドレスに戻ると判定した場合には(ステップS109肯定)、監視対象から解除して(ステップS110)、ステップS104に戻る。
また、命令監視部13aは、call命令が実行されると判定した場合には(ステップS108肯定)、監視対象APIが呼び出されたか判定する(ステップS111)。この結果、命令監視部13aは、監視対象APIが呼び出されなかった場合には(ステップS111否定)、スレッドを監視対象として登録して(ステップS112)、ステップS104に戻る。
また、命令監視部13aは、監視対象APIが呼び出された場合には(ステップS111肯定)、タグ設定APIであるか否かを判定する(ステップS113)。この結果、命令監視部13aは、タグ設定APIであると判定した場合には(ステップS113肯定)、取得元を一意に特定可能なタグを設定し(ステップS114)、取得元の通信先情報と合わせてタグをログDB14に記録する(ステップS115)。例えば、命令監視部13aは、データ受信APIである場合には、データ受信APIにより受信されたデータに対して、タグを設定し、受信データの取得元の通信先情報と合わせてタグをログDB14に記録する。
また、命令監視部13aは、タグ設定APIでないと判定した場合には(ステップS113否定)、タグ確認APIであるか否かを判定する(ステップS116)。この結果、命令監視部13aは、タグ確認APIであると判定した場合には(ステップS116肯定)、タグを確認し(ステップS117)、タグなどのログをログDB14に記録する(ステップS118)。例えば、命令監視部13aは、データ送信APIである場合には、通信先情報として引数に渡されたデータについて、設定されたタグを確認し、通信先情報、該APIの実行原因となった直前の監視対象タグと合わせてタグをログDB14に記録する。なお、実行原因となった直前の監視対象タグはコールスタックを辿り、直近の監視対象タグのついたプログラムコードを確認することで特定する。
また、命令監視部13aは、タグ確認APIでないと判定した場合には(ステップS116否定)、タグ確認後にタグを設定し(ステップS119)、書き込み先名と合わせてタグをログDB14に記録する(ステップS120)。例えば、命令監視部13aは、ファイル書き込みAPIおよびコードインジェクションに用いられるメモリ書き込みAPIである場合には、タグ確認後にタグを設定し、書き込み先名、該APIの実行原因となった直前の監視対象タグと合わせて、確認したタグと設定したタグをログDB14に記録する。ここで、書き込み先名とはファイル書き込みAPIであればファイル名、コードインジェクションに用いられるメモリ書き込みAPIであれば書き込み先のプロセス名である。
ステップS115、ステップS118またはステップS120の処理が終わった後、命令監視部13aは、一定時間が経過したか否かを判定し(ステップS121)、一定時間が経過していないと判定した場合には(ステップS121否定)、ステップS104の処理に戻る。また、命令監視部13aは、一定時間が経過していると判定した場合には(ステップS121肯定)、処理を終了する。
次に、依存関係グラフの構築方法を説明する。作成部15では、ログDB14に記憶されたログから依存関係グラフのノード、エッジを抽出する。依存関係グラフで保持される依存関係は、データ実行に関わる依存関係、データ保存に関わる依存関係、通信先決定に関わる依存関係である。
データ実行に関わる依存関係を保持するエッジでは、終点ノードにプログラムコードを持ち、始点ノードにプログラムコードかファイル、通信先を持つ。このエッジはログDB14に記録されているログに基づいて次のように作成される。
終点ノードと始点ノードともにプログラムコードであるエッジは、実行原因となった直前の監視対象タグがメモリ書き込みAPIによって書き込まれたタグである場合に作成される。このとき、メモリ書き込みAPIの実行原因となった直前の監視対象タグのついたプログラムコードが始点ノードとなる。
終点ノードがプログラムコードであり、始点ノードがファイルであるエッジは、実行原因となった直前の監視対象タグがファイル書き込みAPIによって書き込まれたタグである場合に作成される。このとき、該タグが設定されているファイルが始点ノードになる。
終点ノードがプログラムコードであり、始点ノードが通信先であるエッジは、実行原因となった直前の監視対象タグが該通信先からの受信データに設定したタグである場合に生成される。このとき、該通信先が始点ノードになる。
データ保存に関わる依存関係を保持するエッジでは、終点ノードにファイルを持ち、始点ノードにプログラムコードかファイル、通信先を持つ。このエッジはログDB14に記録されているログに基づいて次のように作成される。
始点ノードと終点ノードともにファイルであるエッジは、ファイル書き込みAPIで、あるファイルに設定したタグが異なるファイルへの書き込みデータにおいて観測されていた場合に作成される。例えば、ファイルXへの書き込み時に設定したタグが、ファイルYに書き込むデータに設定されている場合が該当する。このとき、ファイルXが始点ノードとなり、ファイルYが終点ノードとなる。
終点ノードがファイルであり、始点ノードがプログラムコードであるエッジは、プログラムコードがプログラムコードと同じタグを持つデータをファイル書き込きこんだことが観測されていた場合に作成される。
終点ノードがファイルであり、始点ノードが通信先であるエッジは、ファイル書き込みAPIにおいて、ファイルに書き込まれるデータのタグを確認して、確認された書き込みIDの設定を行う前のタグが該通信先からの受信データに設定したタグである場合に生成される。
通信先決定に関わる依存関係を保持するエッジでは、終点ノードに通信先を持ち、始点ノードにプログラムコードかファイル、通信先を持つ。このエッジはログDB14に記録されているログに基づいて次のように作成される。
始点ノードと終点ノードともに通信先であるエッジは、データ送信APIに通信先情報として渡されたデータに設定されていたタグが、データ受信APIにおいて受信データに設定したタグと同じである場合に作成される。始点ノードは該受信データの送付元となる。
終点ノードが通信先であり、始点ノードがプログラムコードであるエッジは、データ送信APIに通信先情報として渡されたデータにタグが設定されていなかった場合、もしくは設定されていたタグが該データ送信APIの実行原因となった直前の監視対象タグと同じである場合に作成される。このとき、始点ノードは該データ送信APIの実行原因となった直前の監視対象タグを持つプログラムコードとなる。
終点ノードが通信先であり、始点ノードがファイルであるエッジは、データ送信APIに通信先情報として渡されたデータに設定されていたタグが、ファイル書き込みAPIで書き込みデータに新たに設定したタグと同じである場合に作成される。このとき、始点ノードは該ファイル書き込みAPIの書き込み先ファイルとなる。以上の方法で作成したエッジの始点ノードと終点ノードが依存関係グラフ上のノードとなる。
次に、図7を用いて、特定装置10による悪性通信先の特定処理の流れを説明する。図7に示すように、特定装置10の作成部15は、ログDB14に記憶されたログを用いて、依存関係グラフを構築する(ステップS201)。そして、特定部16は、依存関係グラフにノードが存在しているか否かを判定する(ステップS202)。この結果、特定部16は、ノードが存在していない場合には(ステップS202否定)、この処理を終了する。
また、特定部16は、ノードが存在している場合には(ステップS202肯定)、作成部15によって作成された依存関係グラフに対して、既存の悪性情報をマッピングする(ステップS203)。そして、特定部16は、悪性情報がマッピングされたノードが存在しているか否かを判定する(ステップS204)。この結果、特定部16は、悪性情報がマッピングされたノードが存在していない場合には(ステップS204否定)、処理を終了する。また、特定部16は、悪性情報がマッピングされたノードが存在している場合には(ステップS204肯定)、依存関係グラフのエッジを逆向きに変更して(ステップS205)、悪性なノードを基点としてエッジを終点から始点方向へと辿っていき、悪性情報がマッピングされたノードから到達可能な全ノードを悪性と判定して(ステップS206)、処理を終了する。このとき、悪性なノードと判定された通信先のノードに対応する通信先を悪性なサイトとして検出し、さらに該通信先のノードに至る直前のノードがファイルやプログラムコードなどのダウンロードデータであった場合には該通信先ノードをマルウェアダウンロードサイトとして検出する。なお、必ずしも依存関係グラフのエッジを逆向きに変更してからエッジを辿る必要はなく、エッジを逆向きにせずに、終点から始点方向へエッジを逆方向に辿ってもよい。
[第一の実施形態の効果]
このように、第一の実施形態に係る特定装置10は、解析対象のマルウェア11を監視し、該マルウェア11と、通信先からダウンロードされたダウンロードデータと、マルウェア11またはダウンロードデータの通信先との間で行われるデータの受け渡し関係をログデータとして取得する。そして、特定装置10は、取得されたログデータを用いて、マルウェア、ダウンロードデータおよび通信先をノードとし、各ノードの依存関係をエッジとする有向グラフである依存関係グラフを作成する。そして、特定装置10は、作成された依存関係グラフの各ノードを既知の悪性情報と照合して悪性なノードを検出し、該悪性なノードを基点としてエッジを終点から始点方向へと辿っていき、辿ったノードを新たな悪性なノードとして特定する。このため、悪性なサイトや悪性なダウンロードデータを適切に特定することが可能である。つまり、特定装置10は、マルウェアダウンロードサイトを含む悪性通信先の特定に有用であり、実行データを悪性判定できない場合や、ダウンロードサイトが多段で構成されている場合に効果的である。
このように、第一の実施形態に係る特定装置10は、解析対象のマルウェア11を監視し、該マルウェア11と、通信先からダウンロードされたダウンロードデータと、マルウェア11またはダウンロードデータの通信先との間で行われるデータの受け渡し関係をログデータとして取得する。そして、特定装置10は、取得されたログデータを用いて、マルウェア、ダウンロードデータおよび通信先をノードとし、各ノードの依存関係をエッジとする有向グラフである依存関係グラフを作成する。そして、特定装置10は、作成された依存関係グラフの各ノードを既知の悪性情報と照合して悪性なノードを検出し、該悪性なノードを基点としてエッジを終点から始点方向へと辿っていき、辿ったノードを新たな悪性なノードとして特定する。このため、悪性なサイトや悪性なダウンロードデータを適切に特定することが可能である。つまり、特定装置10は、マルウェアダウンロードサイトを含む悪性通信先の特定に有用であり、実行データを悪性判定できない場合や、ダウンロードサイトが多段で構成されている場合に効果的である。
例えば、特定したノードが通信先であれば、そのノードはマルウェアダウンロードサイトとして検出することができる。また、マルウェア11が行った正規サイトへの通信は、既知の悪性情報から辿っていけない(エッジが終点から始点方向へ繋がらない)ため、正規サイトを誤ってマルウェアダウンロードサイトとして誤って検知しないという効果も奏する。
(システム構成等)
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。例えば、作成部15と特定部16を統合してもよい。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。例えば、作成部15と特定部16を統合してもよい。
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
(プログラム)
また、上記実施形態に係る特定装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、特定装置10と同様の機能を実現する特定プログラムを実行するコンピュータの一例を説明する。
また、上記実施形態に係る特定装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、特定装置10と同様の機能を実現する特定プログラムを実行するコンピュータの一例を説明する。
図8は、特定プログラムを実行するコンピュータを示す図である。図8に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011およびRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1110およびキーボード1120が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1130が接続される。
ここで、図8に示すように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各テーブルは、例えばハードディスクドライブ1090やメモリ1010に記憶される。
また、特定プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ1090に記憶される。具体的には、上記実施形態で説明した特定装置10が実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ1090に記憶される。
また、特定プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ1090に記憶される。そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
なお、特定プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、特定プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
10 特定装置
10a マルウェア実行環境部
11 マルウェア
12 ゲストOS
13 仮想計算機
13a 命令監視部
13b データフロー解析部
14 ログDB
15 作成部
16 特定部
20 悪性情報DB
10a マルウェア実行環境部
11 マルウェア
12 ゲストOS
13 仮想計算機
13a 命令監視部
13b データフロー解析部
14 ログDB
15 作成部
16 特定部
20 悪性情報DB
Claims (6)
- 解析対象のマルウェアを監視し、該マルウェアと、通信先からダウンロードされたダウンロードデータと、前記マルウェアまたは前記ダウンロードデータの通信先との間で行われるデータの受け渡し関係をログデータとして取得する監視部と、
前記監視部によって取得されたログデータを用いて、前記マルウェア、前記ダウンロードデータおよび前記通信先をノードとし、各ノードの依存関係をエッジとする有向グラフである依存関係グラフを作成する作成部と、
前記作成部によって作成された依存関係グラフの各ノードを既知の悪性情報と照合して悪性なノードを検出し、該悪性なノードを基点としてエッジを終点から始点方向へと辿っていき、辿ったノードを新たな悪性なノードとして特定する特定部と
を備えることを特徴とする特定装置。 - 前記監視部は、前記マルウェアのファイルに対してタグを付与して監視を行い、該マルウェアが監視対象のAPIを呼び出した場合には、該APIに関するデータに対して、当該データの送信元を一意に特定可能なタグを付与し、該タグが付与されたデータの伝搬を追跡することで、前記ログデータを取得することを特徴とする請求項1に記載の特定装置。
- 前記特定部は、前記悪性なノードであると特定したノードが通信先のノードである場合には、該通信先のノードを悪性なサイトとして特定することを特徴とする請求項1または2に記載の特定装置。
- 前記特定部は、前記悪性なノードであると特定したノードが通信先のノードである場合には、該通信先のノードを悪性なサイトとして特定し、さらに該通信先のノードに至る直前のノードが前記ダウンロードデータのノードである場合には、前記悪性なサイトとして特定したノードをマルウェアダウンロードサイトとして検出することを特徴とする請求項3に記載の特定装置。
- 特定装置で実行される特定方法であって、
解析対象のマルウェアを監視し、該マルウェアと、通信先からダウンロードされたダウンロードデータと、前記マルウェアまたは前記ダウンロードデータの通信先との間で行われるデータの受け渡し関係をログデータとして取得する監視工程と、
前記監視工程によって取得されたログデータを用いて、前記マルウェア、前記ダウンロードデータおよび前記通信先をノードとし、各ノードの依存関係をエッジとする有向グラフである依存関係グラフを作成する作成工程と、
前記作成工程によって作成された依存関係グラフの各ノードを既知の悪性情報と照合して悪性なノードを検出し、該悪性なノードを基点としてエッジを終点から始点方向へと辿っていき、辿ったノードを新たな悪性なノードとして特定する特定工程と
を含んだことを特徴とする特定方法。 - 解析対象のマルウェアを監視し、該マルウェアと、通信先からダウンロードされたダウンロードデータと、前記マルウェアまたは前記ダウンロードデータの通信先との間で行われるデータの受け渡し関係をログデータとして取得する監視ステップと、
前記監視ステップによって取得されたログデータを用いて、前記マルウェア、前記ダウンロードデータおよび前記通信先をノードとし、各ノードの依存関係をエッジとする有向グラフである依存関係グラフを作成する作成ステップと、
前記作成ステップによって作成された依存関係グラフの各ノードを既知の悪性情報と照合して悪性なノードを検出し、該悪性なノードを基点としてエッジを終点から始点方向へと辿っていき、辿ったノードを新たな悪性なノードとして特定する特定ステップと
をコンピュータに実行させるための特定プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014210221 | 2014-10-14 | ||
JP2014210221 | 2014-10-14 | ||
PCT/JP2015/078670 WO2016060067A1 (ja) | 2014-10-14 | 2015-10-08 | 特定装置、特定方法および特定プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6088714B2 JP6088714B2 (ja) | 2017-03-01 |
JPWO2016060067A1 true JPWO2016060067A1 (ja) | 2017-04-27 |
Family
ID=55746613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016554061A Active JP6088714B2 (ja) | 2014-10-14 | 2015-10-08 | 特定装置、特定方法および特定プログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US10397261B2 (ja) |
EP (1) | EP3200115B1 (ja) |
JP (1) | JP6088714B2 (ja) |
CN (1) | CN106796635B (ja) |
WO (1) | WO2016060067A1 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3232360B1 (en) * | 2015-01-28 | 2020-01-15 | Nippon Telegraph and Telephone Corporation | Malware analysis system, malware analysis method, and malware analysis program |
AU2016204072B2 (en) * | 2015-06-17 | 2017-08-03 | Accenture Global Services Limited | Event anomaly analysis and prediction |
US9967267B2 (en) | 2016-04-15 | 2018-05-08 | Sophos Limited | Forensic analysis of computing activity |
US12093383B2 (en) | 2016-04-15 | 2024-09-17 | Sophos Limited | Tracking malware root causes with an event graph |
US10701100B2 (en) * | 2016-12-30 | 2020-06-30 | Microsoft Technology Licensing, Llc | Threat intelligence management in security and compliance environment |
US10579821B2 (en) | 2016-12-30 | 2020-03-03 | Microsoft Technology Licensing, Llc | Intelligence and analysis driven security and compliance recommendations |
US10848501B2 (en) | 2016-12-30 | 2020-11-24 | Microsoft Technology Licensing, Llc | Real time pivoting on data to model governance properties |
CN109712010B (zh) * | 2017-10-24 | 2023-07-18 | 华为云计算技术有限公司 | 发现社团的方法和装置、计算设备、可读存储介质 |
US10628586B1 (en) * | 2017-11-30 | 2020-04-21 | Palo Alto Networks, Inc. | Detecting malware via scanning for dynamically generated function pointers in memory |
JP6984551B2 (ja) * | 2018-06-27 | 2021-12-22 | 日本電信電話株式会社 | 異常検知装置、および、異常検知方法 |
EP3588348A1 (en) * | 2018-06-29 | 2020-01-01 | AO Kaspersky Lab | Systems and methods for detecting malicious activity in a computer system |
US11601442B2 (en) * | 2018-08-17 | 2023-03-07 | The Research Foundation For The State University Of New York | System and method associated with expedient detection and reconstruction of cyber events in a compact scenario representation using provenance tags and customizable policy |
US10938838B2 (en) | 2018-08-31 | 2021-03-02 | Sophos Limited | Computer augmented threat evaluation |
US12063236B2 (en) | 2018-10-11 | 2024-08-13 | Nippon Telegraph And Telephone Corporation | Information processing apparatus, log analysis method and program |
JP7040467B2 (ja) * | 2019-01-11 | 2022-03-23 | 日本電信電話株式会社 | 更新装置および更新方法 |
US11238154B2 (en) * | 2019-07-05 | 2022-02-01 | Mcafee, Llc | Multi-lateral process trees for malware remediation |
WO2021070352A1 (ja) * | 2019-10-10 | 2021-04-15 | 日本電信電話株式会社 | グラフ関連付けシステムおよびグラフ関連付け方法 |
CN115380277A (zh) * | 2020-09-04 | 2022-11-22 | 三菱电机株式会社 | 程序创建辅助程序、程序创建辅助装置及程序创建辅助方法 |
JP7533058B2 (ja) * | 2020-09-17 | 2024-08-14 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及び情報処理プログラム |
KR102239985B1 (ko) * | 2020-10-14 | 2021-04-14 | (주)시큐레이어 | 시스템에 위협이 될 수 있는 위협 이벤트를 최적화 ui 상에서 디스플레이함으로써 사용자가 상기 위협 이벤트를 용이하게 분석할 수 있도록 하는 위협 이벤트 리플레이 방법 및 장치 |
WO2022083641A1 (zh) * | 2020-10-23 | 2022-04-28 | 华为技术有限公司 | 设备识别方法、装置及系统 |
CN113282909B (zh) * | 2021-05-11 | 2024-04-09 | 南京大学 | 一种设备指纹信息采集项识别方法 |
CN114172689B (zh) * | 2021-11-11 | 2023-11-28 | 卓尔智联(武汉)研究院有限公司 | 一种信息处理方法及设备 |
WO2024166231A1 (ja) * | 2023-02-08 | 2024-08-15 | 日本電気株式会社 | プログラム解析装置、プログラム解析方法、及び、プログラム解析プログラムが格納された記録媒体 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7409717B1 (en) * | 2002-05-23 | 2008-08-05 | Symantec Corporation | Metamorphic computer virus detection |
JP2006053788A (ja) * | 2004-08-12 | 2006-02-23 | Ntt Docomo Inc | ソフトウェア動作監視装置及びソフトウェア動作監視方法 |
US20070067844A1 (en) * | 2005-09-16 | 2007-03-22 | Sana Security | Method and apparatus for removing harmful software |
US8566928B2 (en) * | 2005-10-27 | 2013-10-22 | Georgia Tech Research Corporation | Method and system for detecting and responding to attacking networks |
US7530105B2 (en) * | 2006-03-21 | 2009-05-05 | 21St Century Technologies, Inc. | Tactical and strategic attack detection and prediction |
US8838570B1 (en) * | 2006-11-06 | 2014-09-16 | Trend Micro Incorporated | Detection of bot-infected computers using a web browser |
US7854002B2 (en) * | 2007-04-30 | 2010-12-14 | Microsoft Corporation | Pattern matching for spyware detection |
US8316448B2 (en) * | 2007-10-26 | 2012-11-20 | Microsoft Corporation | Automatic filter generation and generalization |
JP5050781B2 (ja) * | 2007-10-30 | 2012-10-17 | 富士通株式会社 | マルウエア検出装置、監視装置、マルウエア検出プログラム、およびマルウエア検出方法 |
US20090328215A1 (en) * | 2008-06-30 | 2009-12-31 | Microsoft Corporation | Semantic networks for intrusion detection |
US8065731B1 (en) | 2008-07-01 | 2011-11-22 | Narus, Inc. | System and method for malware containment in communication networks |
US8176556B1 (en) | 2008-10-31 | 2012-05-08 | Symantec Corporation | Methods and systems for tracing web-based attacks |
US8850571B2 (en) * | 2008-11-03 | 2014-09-30 | Fireeye, Inc. | Systems and methods for detecting malicious network content |
AU2010223925A1 (en) * | 2009-03-13 | 2011-11-03 | Rutgers, The State University Of New Jersey | Systems and methods for the detection of malware |
US8443447B1 (en) * | 2009-08-06 | 2013-05-14 | Trend Micro Incorporated | Apparatus and method for detecting malware-infected electronic mail |
US20110035802A1 (en) * | 2009-08-07 | 2011-02-10 | Microsoft Corporation | Representing virtual object priority based on relationships |
US20110113491A1 (en) * | 2009-11-12 | 2011-05-12 | Deutsche Telekom Ag | Collaborative system for protecting against the propagation of malwares in a network |
US8341745B1 (en) * | 2010-02-22 | 2012-12-25 | Symantec Corporation | Inferring file and website reputations by belief propagation leveraging machine reputation |
US8566944B2 (en) * | 2010-04-27 | 2013-10-22 | Microsoft Corporation | Malware investigation by analyzing computer memory |
US8510829B2 (en) * | 2010-06-24 | 2013-08-13 | Mcafee, Inc. | Systems and methods to detect malicious media files |
US8826444B1 (en) * | 2010-07-09 | 2014-09-02 | Symantec Corporation | Systems and methods for using client reputation data to classify web domains |
US8516585B2 (en) * | 2010-10-01 | 2013-08-20 | Alcatel Lucent | System and method for detection of domain-flux botnets and the like |
US9519781B2 (en) * | 2011-11-03 | 2016-12-13 | Cyphort Inc. | Systems and methods for virtualization and emulation assisted malware detection |
US10262148B2 (en) * | 2012-01-09 | 2019-04-16 | Visa International Service Association | Secure dynamic page content and layouts apparatuses, methods and systems |
US9158893B2 (en) * | 2012-02-17 | 2015-10-13 | Shape Security, Inc. | System for finding code in a data flow |
JP6139656B2 (ja) * | 2012-03-22 | 2017-05-31 | ロス アラモス ナショナル セキュリティー,リミテッド ライアビリティー カンパニーLos Alamos National Security,Llc | 異常部分グラフの検出のための道探査及び異常/変更検出及び網状況認知のためのdns要求及びホストエージェントの使用 |
US9411890B2 (en) * | 2012-04-04 | 2016-08-09 | Google Inc. | Graph-based search queries using web content metadata |
US9021589B2 (en) * | 2012-06-05 | 2015-04-28 | Los Alamos National Security, Llc | Integrating multiple data sources for malware classification |
US9069963B2 (en) * | 2012-07-05 | 2015-06-30 | Raytheon Bbn Technologies Corp. | Statistical inspection systems and methods for components and component relationships |
US8931092B2 (en) * | 2012-08-23 | 2015-01-06 | Raytheon Bbn Technologies Corp. | System and method for computer inspection of information objects for shared malware components |
WO2014087597A1 (ja) | 2012-12-07 | 2014-06-12 | キヤノン電子株式会社 | ウイルス侵入経路特定装置、ウイルス侵入経路特定方法およびプログラム |
CN103995814B (zh) * | 2013-02-20 | 2017-04-05 | 腾讯科技(深圳)有限公司 | 一种病毒最终母体的查找方法和系统 |
US9710646B1 (en) * | 2013-02-26 | 2017-07-18 | Palo Alto Networks, Inc. | Malware detection using clustering with malware source information |
US9749336B1 (en) * | 2013-02-26 | 2017-08-29 | Palo Alto Networks, Inc. | Malware domain detection using passive DNS |
US9202052B1 (en) * | 2013-06-21 | 2015-12-01 | Emc Corporation | Dynamic graph anomaly detection framework and scalable system architecture |
US9225730B1 (en) * | 2014-03-19 | 2015-12-29 | Amazon Technologies, Inc. | Graph based detection of anomalous activity |
WO2015140843A1 (ja) * | 2014-03-20 | 2015-09-24 | 日本電気株式会社 | 情報処理装置、影響過程抽出方法および記録媒体 |
US9363280B1 (en) * | 2014-08-22 | 2016-06-07 | Fireeye, Inc. | System and method of detecting delivery of malware using cross-customer data |
JP2016068282A (ja) | 2014-09-26 | 2016-05-09 | 日本電産コパル株式会社 | プリンタ装置 |
US20160219066A1 (en) * | 2015-01-26 | 2016-07-28 | Cisco Technology, Inc. | Event correlation in a network merging local graph models from distributed nodes |
-
2015
- 2015-10-08 US US15/514,748 patent/US10397261B2/en active Active
- 2015-10-08 EP EP15851421.6A patent/EP3200115B1/en active Active
- 2015-10-08 CN CN201580055319.7A patent/CN106796635B/zh active Active
- 2015-10-08 WO PCT/JP2015/078670 patent/WO2016060067A1/ja active Application Filing
- 2015-10-08 JP JP2016554061A patent/JP6088714B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
CN106796635B (zh) | 2019-10-22 |
EP3200115B1 (en) | 2019-01-09 |
US10397261B2 (en) | 2019-08-27 |
US20170223040A1 (en) | 2017-08-03 |
EP3200115A1 (en) | 2017-08-02 |
CN106796635A (zh) | 2017-05-31 |
WO2016060067A1 (ja) | 2016-04-21 |
JP6088714B2 (ja) | 2017-03-01 |
EP3200115A4 (en) | 2017-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6088714B2 (ja) | 特定装置、特定方法および特定プログラム | |
JP6122562B2 (ja) | 特定装置、特定方法および特定プログラム | |
JP5972401B2 (ja) | 攻撃分析システム及び連携装置及び攻撃分析連携方法及びプログラム | |
US8474039B2 (en) | System and method for proactive detection and repair of malware memory infection via a remote memory reputation system | |
US8191147B1 (en) | Method for malware removal based on network signatures and file system artifacts | |
KR102271545B1 (ko) | 도메인 생성 알고리즘(dga) 멀웨어 탐지를 위한 시스템 및 방법들 | |
JP2019082989A (ja) | 標的型攻撃をクラウド型検出、探索および除去するシステムおよび方法 | |
US20150047034A1 (en) | Composite analysis of executable content across enterprise network | |
US20120144488A1 (en) | Computer virus detection systems and methods | |
US20110277033A1 (en) | Identifying Malicious Threads | |
US10515216B2 (en) | Memory layout based monitoring | |
US10382455B2 (en) | Identifying apparatus, identifying method, and identifying program | |
US11775636B1 (en) | Systems and methods of detecting malicious powershell scripts | |
KR20150134679A (ko) | 패치파일 분석시스템과 분석방법 | |
JP6687761B2 (ja) | 結合装置、結合方法および結合プログラム | |
EP2985716B1 (en) | Information processing device and identifying method | |
JP6000465B2 (ja) | プロセス検査装置、プロセス検査プログラムおよびプロセス検査方法 | |
CN105791250B (zh) | 应用程序检测方法及装置 | |
US10893090B2 (en) | Monitoring a process on an IoT device | |
JP6258189B2 (ja) | 特定装置、特定方法および特定プログラム | |
JP2014085772A (ja) | 不正プログラム実行システム、不正プログラム実行方法及び不正プログラム実行プログラム | |
JP6404771B2 (ja) | ログ判定装置、ログ判定方法、およびログ判定プログラム | |
JP2009271686A (ja) | ネットワークシステム、マルウェア検出装置、マルウェア検出方法、プログラム及び記録媒体 | |
Lee et al. | Identifying inter-component communication vulnerabilities in eventbased systems | |
WO2022195739A1 (ja) | 活動痕跡抽出装置、活動痕跡抽出方法および活動痕跡抽出プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161109 |
|
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: 20170131 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170203 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6088714 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |