JPWO2019049478A1 - コールスタック取得装置、コールスタック取得方法およびコールスタック取得プログラム - Google Patents
コールスタック取得装置、コールスタック取得方法およびコールスタック取得プログラム Download PDFInfo
- Publication number
- JPWO2019049478A1 JPWO2019049478A1 JP2019540782A JP2019540782A JPWO2019049478A1 JP WO2019049478 A1 JPWO2019049478 A1 JP WO2019049478A1 JP 2019540782 A JP2019540782 A JP 2019540782A JP 2019540782 A JP2019540782 A JP 2019540782A JP WO2019049478 A1 JPWO2019049478 A1 JP WO2019049478A1
- Authority
- JP
- Japan
- Prior art keywords
- return address
- instruction
- stack
- call stack
- call
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3471—Address tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3017—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/815—Virtual
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
図1は、コールスタック取得装置の概略構成を例示する模式図である。コールスタック取得装置10は、コンピュータのメモリ、もしくはメモリの状態を保存したメモリダンプから、そのコンピュータで動作するアプリケーションプロセスを実行しているスレッドのコールスタックを取得する。なお、以下の説明では、x64アーキテクチャのプロセッサで動作するプログラムを対象にしているが、CPU(Central Processing Unit)のアーキテクチャやOS環境等は特に限定されない。
次に、図3〜図5を参照して、本実施形態に係るコールスタック取得装置10によるコールスタック取得処理について説明する。図3は、コールスタック取得処理手順を例示するフローチャートである。図3のフローチャートは、例えば、コールスタック取得処理の開始を指示する操作入力をオペレータが行ったタイミングで開始される。
図6は、コールスタック取得装置10の実施例を例示する図である。例えば、図6(a)に示すように、インシデントレスポンスにコールスタック取得装置10を用いてもよい。この場合、コールスタック取得装置10は、被害PCのメモリダンプを解析し、コールスタックを取得する。そして、フォレンジックアナリスト等が、作成されたコールスタックの内容を見ることで、被害PCの被害状況や対策を検討し、インシデントレスポンスを速やかに行うことができる。
上記実施形態に係るコールスタック取得装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、コールスタック取得装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記のコールスタック取得処理を実行するコールスタック取得プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記のコールスタック取得プログラムを情報処理装置に実行させることにより、情報処理装置をコールスタック取得装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)などの移動体通信端末、さらには、PDA(Personal Digital Assistants)などのスレート端末などがその範疇に含まれる。
11 スタックスキャン部(抽出部)
12 プログラム解析部(解析部)
13 ポインタ更新部(更新部)
Claims (7)
- コンピュータのメモリ、もしくは前記メモリの状態を保存したメモリダンプから、前記コンピュータで動作するアプリケーションプロセスを実行しているスレッドのコールスタックを取得するコールスタック取得装置であって、
前記アプリケーションプロセスのメモリ空間内の、前記コールスタックの取得対象となる前記スレッドが持つスタック領域から、関数呼び出し命令の直後の命令を示す前記メモリ空間内の実行可能領域内のアドレスである戻りアドレス候補を抽出する抽出部と、
前記戻りアドレス候補のそれぞれが示す命令の直前の前記関数呼び出し命令によって呼び出される関数の内部における分岐命令で構築される制御の流れを示す制御フローを解析し、該制御フローにおいて、現在実行中の命令に到達する経路が存在する場合に、前記戻りアドレス候補を戻りアドレスと判定し、該経路が存在しない場合に戻りアドレスではないと判定する解析部と、
を備えることを特徴とするコールスタック取得装置。 - 前記抽出部は、スタックポインタを用いて前記スタック領域を特定することを特徴とする請求項1に記載のコールスタック取得装置。
- 前記解析部は、命令ポインタを用いて前記現在実行中の命令を特定することを特徴とする請求項1に記載のコールスタック取得装置。
- 前記解析部は、前記スタック領域の先頭に近い順に前記戻りアドレス候補を処理対象として選定することを特徴とする請求項1に記載のコールスタック取得装置。
- 前記解析部が前記戻りアドレス候補を戻りアドレスと判定した場合に、戻りアドレスと判定された戻りアドレス候補が存在する位置の直後を前記スタック領域の先頭の位置とし、戻りアドレスと判定されたアドレスを前記現在実行中の命令の位置として、それぞれ更新する更新部をさらに備えることを特徴とする請求項1に記載のコールスタック取得装置。
- コンピュータのメモリ、もしくは前記メモリの状態を保存したメモリダンプから、前記コンピュータで動作するアプリケーションプロセスを実行しているスレッドのコールスタックを取得するコールスタック取得装置で実行されるコールスタック取得方法であって、
前記アプリケーションプロセスのメモリ空間内の、前記コールスタックの取得対象となる前記スレッドが持つスタック領域から、関数呼び出し命令の直後の命令を示す前記メモリ空間内の実行可能領域内のアドレスである戻りアドレス候補を抽出する抽出工程と、
前記戻りアドレス候補のそれぞれが示す命令の直前の前記関数呼び出し命令によって呼び出される関数の内部における分岐命令で構築される制御の流れを示す制御フローを解析し、該制御フローにおいて、現在実行中の命令に到達する経路が存在する場合に、前記戻りアドレス候補を戻りアドレスと判定し、該経路が存在しない場合に戻りアドレスではないと判定する解析工程と、
を含んだことを特徴とするコールスタック取得方法。 - コンピュータのメモリ、もしくは前記メモリの状態を保存したメモリダンプから、前記コンピュータで動作するアプリケーションプロセスを実行しているスレッドのコールスタックを取得するためのコールスタック取得プログラムであって、
前記アプリケーションプロセスのメモリ空間内の、前記コールスタックの取得対象となる前記スレッドが持つスタック領域から、関数呼び出し命令の直後の命令を示す前記メモリ空間内の実行可能領域内のアドレスである戻りアドレス候補を抽出する抽出ステップと、
前記戻りアドレス候補のそれぞれが示す命令の直前の前記関数呼び出し命令によって呼び出される関数の内部における分岐命令で構築される制御の流れを示す制御フローを解析し、該制御フローにおいて、現在実行中の命令に到達する経路が存在する場合に、前記戻りアドレス候補を戻りアドレスと判定し、該経路が存在しない場合に戻りアドレスではないと判定する解析ステップと、
をコンピュータに実行させるためのコールスタック取得プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017171393 | 2017-09-06 | ||
JP2017171393 | 2017-09-06 | ||
PCT/JP2018/024533 WO2019049478A1 (ja) | 2017-09-06 | 2018-06-28 | コールスタック取得装置、コールスタック取得方法およびコールスタック取得プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019049478A1 true JPWO2019049478A1 (ja) | 2020-01-16 |
JP6817454B2 JP6817454B2 (ja) | 2021-01-20 |
Family
ID=65634797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019540782A Active JP6817454B2 (ja) | 2017-09-06 | 2018-06-28 | コールスタック取得装置、コールスタック取得方法およびコールスタック取得プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11481307B2 (ja) |
JP (1) | JP6817454B2 (ja) |
WO (1) | WO2019049478A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11563628B1 (en) | 2021-08-23 | 2023-01-24 | Oracle International Corporation | Failure detection in cloud-computing systems |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7320125B2 (en) * | 2001-05-24 | 2008-01-15 | Techtracker, Inc. | Program execution stack signatures |
US7178132B2 (en) | 2002-10-23 | 2007-02-13 | Microsoft Corporation | Forward walking through binary code to determine offsets for stack walking |
US20040148594A1 (en) * | 2003-01-24 | 2004-07-29 | Stephen Williams | Acquiring call-stack information |
US8566797B2 (en) | 2008-02-27 | 2013-10-22 | Red Hat, Inc. | Heuristic backtracer |
US8196116B2 (en) * | 2009-03-31 | 2012-06-05 | International Business Systems Corporation | Tracing objects in object-oriented programming model |
US8732681B2 (en) * | 2011-05-16 | 2014-05-20 | Texas Instruments Incorporated | Stack analysis for post mortem analysis |
US9836343B2 (en) * | 2014-03-17 | 2017-12-05 | Microsoft Technology Licensing, Llc | Framework for user-mode crash reporting |
US10007787B2 (en) | 2015-12-28 | 2018-06-26 | International Business Machines Corporation | Runtime return-oriented programming detection |
US10169130B2 (en) * | 2016-07-19 | 2019-01-01 | International Business Machines Corporation | Tailoring diagnostic information in a multithreaded environment |
-
2018
- 2018-06-28 JP JP2019540782A patent/JP6817454B2/ja active Active
- 2018-06-28 WO PCT/JP2018/024533 patent/WO2019049478A1/ja active Application Filing
- 2018-06-28 US US16/643,588 patent/US11481307B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11481307B2 (en) | 2022-10-25 |
JP6817454B2 (ja) | 2021-01-20 |
US20200242002A1 (en) | 2020-07-30 |
WO2019049478A1 (ja) | 2019-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Alazab et al. | Towards understanding malware behaviour by the extraction of API calls | |
US9015814B1 (en) | System and methods for detecting harmful files of different formats | |
Spreitzenbarth et al. | Mobile-sandbox: having a deeper look into android applications | |
Vidas et al. | A5: Automated analysis of adversarial android applications | |
RU2531861C1 (ru) | Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса | |
US10339315B2 (en) | Apparatus and method for detecting malicious mobile app | |
US20150067763A1 (en) | Hardware and software execution profiling | |
CN109101815B (zh) | 一种恶意软件检测方法及相关设备 | |
EP2515250A1 (en) | System and method for detection of complex malware | |
CN107004088B (zh) | 确定装置、确定方法及记录介质 | |
US12039034B2 (en) | Undetectable sandbox for malware | |
US9507933B2 (en) | Program execution apparatus and program analysis apparatus | |
JP6734481B2 (ja) | コールスタック取得装置、コールスタック取得方法、および、コールスタック取得プログラム | |
US10237285B2 (en) | Method and apparatus for detecting macro viruses | |
US11232193B1 (en) | Automated generation of a sandbox configuration for malware detection | |
US8935782B2 (en) | Malware detection via network information flow theories | |
Aslan | Performance comparison of static malware analysis tools versus antivirus scanners to detect malware | |
Josse | Secure and advanced unpacking using computer emulation | |
JP6817454B2 (ja) | コールスタック取得装置、コールスタック取得方法およびコールスタック取得プログラム | |
JP7568129B2 (ja) | 解析機能付与方法、解析機能付与装置及び解析機能付与プログラム | |
Gassen et al. | HoneyAgent: Detecting malicious Java applets by using dynamic analysis | |
Fan et al. | Obfuscated malicious code detection with path condition analysis | |
CN112905534B (zh) | 一种基于沙箱环境的样本分析方法和装置 | |
US20240214417A1 (en) | Analysis device, analysis method, and analysis system | |
Doan et al. | An Empirical Study on Android malware behavior signature extraction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190904 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201027 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201211 |
|
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: 20201222 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201224 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6817454 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |