JP2017102823A - 解析装置、解析方法および解析プログラム - Google Patents
解析装置、解析方法および解析プログラム Download PDFInfo
- Publication number
- JP2017102823A JP2017102823A JP2015237510A JP2015237510A JP2017102823A JP 2017102823 A JP2017102823 A JP 2017102823A JP 2015237510 A JP2015237510 A JP 2015237510A JP 2015237510 A JP2015237510 A JP 2015237510A JP 2017102823 A JP2017102823 A JP 2017102823A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- memory space
- data
- analysis
- malware
- 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
Abstract
Description
以下の実施形態では、実施形態に係るマルウェア解析装置の構成及び処理の流れを順に説明し、その後、最後に実施形態による効果を説明する。
まず、図1を用いて、マルウェア解析装置10の構成を説明する。図1は、本実施形態に係るマルウェア解析装置の概要を示す構成図である。図1に示すように、マルウェア解析装置10は、仮想的なハードウェアを提供するVMM30とゲストOS20によって構成される。
図5は、本実施形態に係るマルウェア解析装置におけるスレッド監視部がインジェクション部に改ざんを依頼するまでの処理の流れを示すフローチャートである。図5に示すように、スレッド監視部31は、現在実行されているスレッドについて、TIBからTIDを取得する(ステップS101)。
このように、マルウェア解析装置10は、解析対象のマルウェア21が動作するゲストOS20上のスレッドのうち、監視対象のスレッドの動作を監視するスレッド監視部31と、監視対象のスレッドが実行されている場合に、スレッド上のメモリ空間23のデータをVMM30が書き換えることでスレッドに所定の情報を収集する処理を実行させるインジェクション部32とを有する。このため、マルウェア解析装置10では、マルウェアに解析環境を検知されずに、OSが管理する情報を適切に収集することが可能である。つまり、マルウェア解析装置10は、マルウェア21による検知を避けながら、OSの視点から情報収集することが可能である。このため、サンドボックスなどのマルウェア21を動作させながら解析するシステムでの利用に適している。
なお、上述した実施形態では、メモリ空間23のデータを書き換える場合について説明したが、メモリ空間23のデータとともに、所定の処理を開始してから経過した時間を示すデータを書き換えるようにしてもよい。情報収集中にゲストOS20側での時間は経過してしまうため、経過時間に基づいて解析システムが間接的に発見される可能性がある。このため、マルウェア解析装置10のインジェクション部32は、メモリ空間23のデータとともに、所定の処理を開始してから経過した時間を示すデータを書き換える。例えば、インジェクション部32は、rdtsc命令などの時刻を取得する命令の返り値を改ざんする。これにより、経過時間を改ざんすることができ、解析システムが間接的に発見されることを回避することが可能である。
また、所定の処理の実行に用いるAPIがフックされている場合には、メモリ空間23のデータの書き換えを中止するようにしてもよい。所定の処理の実行に用いるAPIがフックされている場合には、コールスタックの検査によって解析システムを検知される可能性がある。このため、マルウェア解析装置10のインジェクション部32は、所定の処理の実行に用いるAPIがフックされている場合には、メモリ空間23のデータの書き換えを中止する。例えば、所定の処理の実行に用いるAPIがフックされているか否かを検査する処理をインジェクション部32で実施し、APIがフックされている場合には改ざんを止めたり、他のスレッドの改ざんに切り換えたり、APIフックを回避する手法を組み合わせたりしてもよい。
上述した実施形態では、スレッド監視部31において、APIを呼び出したスレッドを監視対象のスレッドとする場合を説明したが、これに限られるものではなく、例えば、システムコールを監視対象にしてもよい。また、上述した実施形態では、主に、ret命令が呼び出されるタイミングで書き換えを行う場合を説明したが、ret命令でなくともcall命令やjmp命令が呼び出されるタイミングで制御フローを書き換えてもよい。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。例えば、スレッド監視部31とインジェクション部32とを統合してもよい。
また、上記実施形態において説明したマルウェア解析装置10が実行する処理について、コンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施形態に係るマルウェア解析装置10が実行する処理について、コンピュータが実行可能な言語で記述した解析プログラムを作成することもできる。この場合、コンピュータが解析プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる解析プログラムをコンピュータが読み取り可能な記録媒体に記録して、この記録媒体に記録された解析プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、図1に示したマルウェア解析装置10と同様の機能を実現する解析プログラムを実行するコンピュータの一例を説明する。
20 ゲストOS
21 マルウェア
22 標準プロセス
23 メモリ空間
30 VMM
31 スレッド監視部
32 インジェクション部
33 メモリアクセス制御部
Claims (7)
- 解析対象のマルウェアが動作するゲストOS上のスレッドのうち、監視対象のスレッドの動作を監視する監視部と、
前記監視対象のスレッドが実行されている場合に、前記スレッド上のメモリ空間のデータをVMMが書き換えることで前記スレッドに所定の情報を収集する処理を実行させるインジェクション部と
を有することを特徴とする解析装置。 - 前記インジェクション部は、前記所定の情報を収集する処理が終了した後、前記メモリ空間のデータを書き換えられる前の状態に復元することを特徴とする請求項1に記載の解析装置。
- 前記インジェクション部は、前記メモリ空間のデータを書き換える際に、該メモリ空間のデータのバックアップデータを前記VMM内の退避領域に退避させた後、該メモリ空間のデータの書き換えを行い、
前記インジェクション部によって書き換えられたメモリ空間のデータに対する読み出しがあった場合には、仮想的なメモリ空間を提供し、前記バックアップデータをメモリ参照結果として返信するように制御するアクセス制御部をさらに有することを特徴とする請求項1に記載の解析装置。 - 前記インジェクション部は、前記メモリ空間のデータとともに、所定の処理を開始してから経過した時間を示すデータを書き換えることを特徴とする請求項1に記載の解析装置。
- 前記インジェクション部は、所定の処理の実行に用いるAPIがフックされている場合には、前記メモリ空間のデータの書き換えを中止することを特徴とする請求項1に記載の解析装置。
- 解析装置で実行される解析方法であって、
解析対象のマルウェアが動作するゲストOS上のスレッドのうち、監視対象のスレッドの動作を監視する監視工程と、
前記監視対象のスレッドが実行されている場合に、前記スレッド上のメモリ空間のデータをVMMが書き換えることで前記スレッドに所定の情報を収集する処理を実行させるインジェクション工程と
を含んだことを特徴とする解析方法。 - 解析対象のマルウェアが動作するゲストOS上のスレッドのうち、監視対象のスレッドの動作を監視する監視ステップと、
前記監視対象のスレッドが実行されている場合に、前記スレッド上のメモリ空間のデータをVMMが書き換えることで前記スレッドに所定の情報を収集する処理を実行させるインジェクションステップと
をコンピュータに実行させるための解析プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015237510A JP6430922B2 (ja) | 2015-12-04 | 2015-12-04 | 解析装置、解析方法および解析プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015237510A JP6430922B2 (ja) | 2015-12-04 | 2015-12-04 | 解析装置、解析方法および解析プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017102823A true JP2017102823A (ja) | 2017-06-08 |
JP6430922B2 JP6430922B2 (ja) | 2018-11-28 |
Family
ID=59016649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015237510A Active JP6430922B2 (ja) | 2015-12-04 | 2015-12-04 | 解析装置、解析方法および解析プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6430922B2 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143608A1 (en) * | 2004-12-28 | 2006-06-29 | Jan Dostert | Thread monitoring using shared memory |
JP2009031859A (ja) * | 2007-07-24 | 2009-02-12 | Nippon Telegr & Teleph Corp <Ntt> | 情報収集システムおよび情報収集方法 |
JP2010026572A (ja) * | 2008-07-15 | 2010-02-04 | Hitachi Ltd | 仮想計算機の現出方法、この方法を実行するためのプログラム、及びこの方法を実行するサーバ |
JP2014516191A (ja) * | 2011-06-08 | 2014-07-07 | マカフィー, インコーポレイテッド | 仮想パーティションを監視するためのシステムおよび方法 |
-
2015
- 2015-12-04 JP JP2015237510A patent/JP6430922B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143608A1 (en) * | 2004-12-28 | 2006-06-29 | Jan Dostert | Thread monitoring using shared memory |
JP2009031859A (ja) * | 2007-07-24 | 2009-02-12 | Nippon Telegr & Teleph Corp <Ntt> | 情報収集システムおよび情報収集方法 |
JP2010026572A (ja) * | 2008-07-15 | 2010-02-04 | Hitachi Ltd | 仮想計算機の現出方法、この方法を実行するためのプログラム、及びこの方法を実行するサーバ |
JP2014516191A (ja) * | 2011-06-08 | 2014-07-07 | マカフィー, インコーポレイテッド | 仮想パーティションを監視するためのシステムおよび方法 |
Also Published As
Publication number | Publication date |
---|---|
JP6430922B2 (ja) | 2018-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10324748B2 (en) | Augmented tracking of modified memory pages during live migration of virtual machines from/to host computers with graphics processors | |
KR101475987B1 (ko) | 오프라인 가상 환경의 개선 또는 오프라인 가상 환경에 관련된 방법 및 시스템 | |
US9436603B1 (en) | Detection and mitigation of timing side-channel attacks | |
US9811663B2 (en) | Generic unpacking of applications for malware detection | |
US10042744B2 (en) | Adopting an existing automation script to a new framework | |
US10089126B2 (en) | Function exit instrumentation for tail-call optimized code | |
KR20140033169A (ko) | 가상 머신 이미지 분석 기법 | |
US20220035905A1 (en) | Malware analysis through virtual machine forking | |
US10089474B2 (en) | Virtual machine introspection | |
Westphal et al. | VMI-PL: A monitoring language for virtual platforms using virtual machine introspection | |
CN104715202A (zh) | 一种虚拟机中的隐藏进程检测方法和装置 | |
US10311233B2 (en) | Generic unpacking of program binaries | |
Uroz et al. | Characteristics and detectability of Windows auto-start extensibility points in memory forensics | |
US9785492B1 (en) | Technique for hypervisor-based firmware acquisition and analysis | |
US20180210816A1 (en) | Testing a guarded storage facility | |
JP5437964B2 (ja) | 解析方法、解析装置及び解析プログラム | |
JP6430922B2 (ja) | 解析装置、解析方法および解析プログラム | |
US20100153926A1 (en) | Operating system aided code coverage | |
CN109388948B (zh) | 一种基于虚拟化技术的潜在恶意软件分析方法及相关装置 | |
JP6317646B2 (ja) | 情報処理装置、不正プログラム実行防止方法、プログラム及び記録媒体 | |
KR101306656B1 (ko) | 악성코드 동적 분석정보 제공 장치 및 방법 | |
US10445081B2 (en) | Techniques of automatically generating dependencies for applications in embedded systems | |
Zhan et al. | SAVM: A practical secure external approach for automated in‐VM management | |
CN115686739A (zh) | 攻击检测方法及装置 | |
Rootkits | JoKER: Trusted Detection of Kernel Rootkits in Android Devices via JTAG Interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171215 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180725 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180814 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180928 |
|
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: 20181030 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181101 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6430922 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |