WO2017010665A1 - 하이퍼바이저를 이용한 로깅 방법 및 그 장치 - Google Patents
하이퍼바이저를 이용한 로깅 방법 및 그 장치 Download PDFInfo
- Publication number
- WO2017010665A1 WO2017010665A1 PCT/KR2016/004794 KR2016004794W WO2017010665A1 WO 2017010665 A1 WO2017010665 A1 WO 2017010665A1 KR 2016004794 W KR2016004794 W KR 2016004794W WO 2017010665 A1 WO2017010665 A1 WO 2017010665A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- kernel
- log
- hypervisor
- log data
- command
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Definitions
- the present invention relates to a method and apparatus for storing log data, and more particularly, to a method and apparatus for storing log data such as a kernel using a micro hypervisor.
- a micro hypervisor is a piece of software that allows different operating systems to run on one computer system.
- the hypervisor is used as a kind of intermediary between hardware and operating system, and provides the effect of creating a virtual computer using different operating systems on one computer.
- An object of the present invention is to provide a method and apparatus for storing log data such as a kernel or an application program using a hypervisor.
- an example of a method for storing log data using a hypervisor is a logging method of the hypervisor in a computing device including a hypervisor, a kernel, and an application program.
- the visor may include replacing a command of a location defined in a log definition module among instructions of an application program or a kernel with a trap command; Bringing system privileges when executing the trap instruction or when an interrupt or exception occurs; Storing log data for the application or kernel; And transferring system privileges to the application or kernel.
- an example of a computing device includes a log definition module defining a position of an instruction to be replaced by a trap instruction among instructions of an application program or a kernel; An instruction substitute unit for replacing the instructions of the application program or the kernel with a trap instruction according to the log definition module; And an authority control unit which brings system authority when the trap command is executed, and passes system authority to the application program or the kernel when log data storage is completed. And a log storage unit for grasping and storing log data of the application program or kernel.
- FIG. 1 illustrates a configuration of an embodiment of a computing device to which the present invention is applied
- FIG. 2 is a diagram illustrating a system permission sequence of a computing device to which the present invention is applied;
- FIG. 3 is a view showing a schematic flow of a logging method using a hypervisor according to the present invention
- FIG. 4 is a diagram illustrating an example of a log definition module according to the present invention.
- FIG. 5 is a view showing an implementation example of a log definition module according to the present invention.
- FIG. 6 is a diagram illustrating an example of inserting a trap instruction according to a log definition module according to the present invention
- FIG. 7A and 7B illustrate an exemplary embodiment in which a trap instruction is inserted according to a log definition module according to the present invention
- FIG. 8 is a diagram illustrating an example of a hypervisor according to the present invention.
- FIG. 9 is a flowchart illustrating an embodiment of a logging method using a hypervisor according to the present invention.
- FIG. 1 is a diagram illustrating a configuration of an embodiment of a computing device to which the present invention is applied.
- the computing device 100 includes a central processing unit 110, a memory 120, a storage 130, an input / output unit 140, and a display unit 150.
- the central processing unit 110 is a processor, and controls the memory 120, the storage 130, the input / output unit 140, and the display unit 150, respectively, and drives the kernel, the application program, or the software of the hypervisor. Let's do it.
- the memory 120 includes RAM (Random Access Memory), ROM (Read Only Memory), and the like, and the storage unit 130 is implemented in various forms such as a hard disk and a solid state disk (SSD).
- the input / output unit 140 receives a user command through input means such as a keypad or a touch screen, communicates with an external device through a wired or wireless communication network such as the Internet, or various external devices through a USB (Universal Serial Bus) port. Connect with.
- the display unit 150 may be composed of LCD, LED, OLED, and the like.
- FIG. 2 is a diagram illustrating a system authority sequence of a computing device to which the present invention is applied.
- system privileges are high in order of hardware 200, hypervisor 210, kernel 220, and application 230. Accordingly, the hypervisor 210 may monitor and control various behaviors of the kernel 220 and the application program 230.
- FIG. 3 is a diagram illustrating a schematic flow of a logging method using a hypervisor according to the present invention.
- the administrator may indicate when logging is required and types of log data to be stored at each logging time among various operations such as interrupts or exceptions 360 of an application program, kernels 220 and 230, and hardware 200.
- logging refers to a process of recording data related to various operations such as an application program, kernels 220 and 230, and hardware interrupt 360, for example, data of a specific memory area, register values, and input / output data.
- An example of a log definition module that includes a log definition 300 is shown in FIGS. 4 and 5.
- the hypervisor 210 inserts a trap instruction 350 into the application or the kernel to obtain system authority when logging is required while the application or the kernel 220 or 230 is executed, or takes the system authority in an interrupt or exception situation. To change the value of the control register.
- An example of how the hypervisor 210 inserts a trap instruction into an application or kernel 220, 230 is illustrated in FIGS. 6, 7A, and 7B.
- the hypervisor 210 When an application or kernel 220 or 230 encounters a trap instruction 350 inserted by the hypervisor 210 while the hypervisor 210 is operating, the hypervisor 210 obtains a system privilege and is associated with various operations such as the application or the kernel 220 or 230. Generate log data 310. In addition, if the interrupt or exception 360 of the hardware 200 occurs, and the value of the control register for the interrupt or the exception is set to change the execution flow to the hypervisor 210, the hypervisor 210 After importing system privileges, generate log data. For example, when a specific event such as a change in a state value related to virtual memory or a general interrupt occurs, a value of a control register may be changed so that the system authority may be transferred to the hypervisor 210.
- log data may include various information such as log generation time, log generation location, and log generation cause.
- log data may include various information such as log generation time, log generation location, and log generation cause.
- the hibervisor 210 obtains system authority through a trap command at the time of I / O processing and operation, and then You can collect what processors are running at that point in time, what files you want to leave in what files, and so on.
- Digital forensic technique can be applied for log data collection.
- the hypervisor 210 stores log data in the log buffer 320 in order to minimize the effect on system performance with respect to the logging operation.
- the log buffer 320 records data according to a time sequence in which log data occurs, and when a predetermined amount or more of data is accumulated in the log buffer 320, the log data is stored in the log databases 340 and 342 through the compression and encryption process 330. do. By encrypting and storing log data, it is possible to prevent unauthorized contents from being read or modified by non-administrator kernels or applications.
- the log databases 340 and 342 may be implemented in the hypervisor 210 or may be implemented in an application program or kernels 220 and 230. Since the log database 340 implemented in the hypervisor can increase memory usage and complexity, it may be better to utilize the log database 342 implemented in the application program or the kernel. Since the database structure does not affect the logging operation, log databases 340 and 342 having various structures may be adopted according to embodiments.
- the log databases 340 and 342 may back up the collected log data to a locally located log repository 344 or a networked remote repository and server.
- FIG. 4 is a diagram illustrating an example of a log definition module according to the present invention.
- the log definition module includes at least one log definition defined by an administrator.
- the log definition includes a time point 410 for which a logging operation is required in an application program, a kernel, a system interrupt or an exception, a type 420 of log data to be stored, and the like. If necessary, a comment 400 for a corresponding logging operation may be included.
- various information may be defined according to an embodiment.
- the administrator may set log definitions through various programming languages as shown in FIG. 5 or log definitions through a graphical user interface (GUI).
- GUI graphical user interface
- the computing device displays a comment input field, a command position input field for inserting a trap instruction, and a log data type input field to be stored on a graphic screen, and provides the user with a menu list selectable from each field. Make it easy to set up log definitions.
- the instruction position 410 to insert a trap instruction indicates the position of a specific instruction among instructions loaded into memory when the application or kernel starts up. It is assumed that the position of the command is determined in advance by the administrator through various conventional methods. For example, since the kernel is loaded at a fixed location in the memory and the location of each command in the memory is fixed, the administrator can determine the location of the command in the kernel through various methods such as a conventional debugging process. . As another example, in the case of an application, the location loaded into memory may vary every time. However, since the relative position (offset) of each instruction in the application is fixed, the administrator may apply the application through various conventional methods such as a debugging process. Identify the relative position of instructions in a program. Since the method itself to determine the location of the instructions of the kernel or the application itself is outside the scope of the present invention, further description thereof will be omitted.
- the log data type 420 may be variously set by an administrator. For example, if an application or kernel wants to save the memory state before performing memory allocation or freeing operations, the administrator can locate the instruction before executing the instructions related to memory allocation or deallocation of the application or kernel. Is defined as the insertion position of the trap instruction, and the log data to be stored is defined as the data of the corresponding area of the memory where the memory allocation or free operation is performed.
- log definitions for hardware interrupts or exceptions the administrator defines the type of control registers and log data types to be stored associated with specific events of interrupts or exceptions (for example, changes in state values related to virtual memory). do. Log definitions for interrupts and exceptions can be defined in the programming language or through various GUI environments.
- FIG. 5 is a diagram illustrating an implementation example of a log definition module according to the present invention.
- the log definition module 500 includes a comment 400 indicating what the log definition relates to, a command location 410 into which a trap command is to be inserted, and a type 420 of log data to be stored.
- FIG. 5 illustrates an example of performing a logging operation before the kernel releases memory.
- the insertion position 410 of a trap instruction is an 'Oxc011a060' position of a memory
- the stored log data type 420 is a register number '0'-th data. Is defined.
- FIG. 6 is a diagram illustrating an example of inserting a trap instruction according to the log definition module according to the present invention.
- the hypervisor traps an instruction 610 at a position defined in a log definition module among instructions 600 of an application or kernel loaded in a memory.
- the hypervisor may select the Nth instruction 610 when the application or the kernel starts up. ).
- system privilege passes to the hypervisor.
- the hypervisor given the system privilege, captures and stores the log data defined in the log definition module.
- FIGS. 7A and 7B are diagrams illustrating an implementation example in which a trap instruction is inserted according to a log definition module according to the present invention.
- FIGS. 7A and 7B an example of loading source code for releasing memory and actual instructions for executing the source code into a memory is illustrated. If the administrator wants to perform logging at the time of memory release, the administrator writes the logging definition module of Fig. 5 earlier based on the position of the memory release command (_vummnap (addr, 1)).
- the administrator may use the position '0xc011a060', which is a position immediately before execution of the releasing command 710, to a position where a trap instruction is inserted into the logging definition module. And register number '0' indicating the memory release location as the log data type.
- the hypervisor replaces the instruction 700 of the memory location '0xc011a060' defined in the log definition module of FIG. 5 with the trap instruction 800.
- the kernel or application starts and encounters a trap instruction 800 of '0xc011a060', the system privilege passes to the hypervisor.
- FIG. 8 is a diagram illustrating an example of a hypervisor according to the present invention.
- the hypervisor 210 includes a configuration of a log definition module 800, a command replacement unit 810, a log storage unit 820, and a right control unit 830.
- the hypervisor 210 may be implemented as a kind of software, and may be executed through hardware of a memory, a central processing unit, and the like of FIG. 1.
- the log definition module 800 includes at least one log definition including a location of an application program or a kernel in which a trap command is to be inserted, a type of log data to be stored, and the like. It is assumed that the administrator knows in advance the location of each command in the application or kernel through various conventional methods such as debugging.
- the instruction substitute unit 810 inserts a trap instruction into the application program or the kernel according to the log definition module.
- the instruction substitute unit 810 may insert a trap instruction between the instructions of the application program or the kernel, but more preferably, replaces the existing instruction of the application program or the kernel with the trap instruction.
- the instruction substitute unit 810 performs a process of inserting a trap instruction at the time when the kernel is booted or when the application program is started.
- the log storage unit 820 executes a trap command inserted into an application program or a kernel by the command replacement unit 810, and when system authority passes to the hypervisor, the log storage unit 820 stores log data to be stored according to the contents defined in the log definition module. Perform logging process to grasp and save.
- the permission control unit 830 obtains the system privilege from the application program or the kernel, and when the logging operation by the log storage unit 820 is completed, the authority control unit 830 sends the system privilege to the application program or the kernel. Return it again.
- the authority control unit 830 executes an existing command replaced with a trap command before handing over the authority to the application program or the kernel, or decodes the existing command through the emulator and passes the authority. For example, the trap command of FIG. 7B is transferred to the system authority after executing the command before the replacement of FIG. 7A.
- the hypervisor can freely manage the execution of the original instruction and process all related instructions, but the hypervisor is implemented. This has the disadvantage of becoming complicated. If only the original instruction is executed and then the privilege is passed, the hypervisor can be implemented uncomplicated and has the advantage of performing the operation of the original instruction quickly, but some unsupported operations such as operations involving stack pointers There is a drawback to this. Accordingly, the permission controller 830 selectively performs only original instruction or emulation according to the situation.
- the authorization controller should not perform r2 in the logging operation or change the 'operand' of the command. Therefore, the authorization controller performs emulation that performs various processes for accurate results rather than simple original command.
- the authority control unit 830 determines whether to perform an additional operation before handing over the system authority even in the case of an interruption or an exception. For example, if an interrupt or exception does not affect the behavior of an existing kernel or application, but is forcing logging of the interrupt or exception related to the operation of the kernel or application to the hypervisor for logging purposes, then the privilege control Prior to returning the system authority, 830 sets the related register and memory values in the same manner as when the interrupt and exception occurred, and returns the authority to notify that an interrupt and an exception occurred to the kernel.
- FIG. 9 is a flowchart illustrating an embodiment of a logging method using a hypervisor according to the present invention.
- the hypervisor receives a log definition from an administrator and stores the log definition as a log definition module (S900).
- the hypervisor inserts a trap command into the application program or the kernel based on the log definition module (S910).
- the hypervisor When the application or the kernel encounters a trap instruction inserted by the hypervisor (S920), the hypervisor receives the system authority from the application or the kernel (S930). The hypervisor backs up system information such as registers and identifies and stores corresponding log data according to the definition of the log definition module (S950). When the logging operation is completed, the hypervisor restores the register to the register before obtaining the system authority by using the backed up register (S960). The hypervisor simply executes the original instruction before replacing the trap instruction of the application or the kernel, or executes the original instruction through an emulator or the like (S970), and returns the system authority back to the application or the kernel (S980).
- the invention can also be embodied as computer readable code on a computer readable recording medium.
- the computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include various types of ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, and the like.
- the computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
하이퍼바이저를 이용한 로깅 방법 및 그 장치가 개시된다. 하이퍼바이저는 응용 프로그램이나 커널의 명령어들 중 로그 정의 모듈에 정의된 위치의 명령어를 트랩 명령어로 대체하고, 트랩 명령어의 실행 또는 인터럽트나 예외상황 발생시 시스템 권한을 가져온 후 응용 프로그램이나 커널에 대한 로그 데이터를 저장하고 시스템 권한을 반환한다.
Description
본 발명은 로그 데이터를 저장하는 방법 및 그 장치에 관한 것으로서, 보다 상세하게는 마이크로 하이퍼바이저를 이용하여 커널 등의 로그 데이터를 저장하는 방법 및 그 장치에 관한 것이다.
마이크로 하이퍼바이저는 하나의 컴퓨터 시스템에 서로 다른 운영체계(Operating System)가 가동할 수 있도록 하는 일종의 소프트웨어이다. 다시 말해, 하이퍼바이저는 하드웨어와 운영체계 사이에 일종의 중간웨어로 사용되며, 하나의 컴퓨터에서 서로 다른 운영체계를 사용하는 가상 컴퓨터를 만들 수 있는 효과를 제공한다.
본 발명이 이루고자 하는 기술적 과제는, 하이퍼바이저를 이용하여 커널이나 응용프로그램 등의 로그 데이터를 저장하는 방법 및 그 장치를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 하이퍼바이저를 이용한 로그 데이터 저장 방법의 일 예는, 하이퍼바이저, 커널, 응용프로그램을 포함하는 컴퓨팅 장치에서 상기 하이퍼바이저의 로깅 방법에 있어서, 상기 하이퍼바이저는, 응용 프로그램이나 커널의 명령어들 중 로그 정의 모듈에 정의된 위치의 명령어를 트랩 명령어로 대체하는 단계; 상기 트랩 명령어의 실행 또는 인터럽트나 예외상황 발생시, 시스템 권한을 가져오는 단계; 상기 응용 프로그램이나 커널에 대한 로그 데이터를 저장하는 단계; 및 상기 응용 프로그램이나 커널로 시스템 권한을 넘겨주는 단계;를 포함한다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 컴퓨팅 장치의 일 예는, 응용 프로그램이나 커널의 명령어들 중 트랩 명령어로 대체할 명령어의 위치를 정의하는 로그정의모듈; 상기 로그정의모듈에 따라 상기 응용프로그램이나 커널의 명령어들을 트랩 명령어로 대체하는 명령어대체부; 및 상기 트랩 명령어가 수행되면 시스템 권한을 가져오고, 로그 데이터 저장이 완료되면 시스템 권한을 상기 응용 프로그램이나 커널로 넘겨주는 권한제어부; 및 상기 응용프로그램이나 커널의 로그 데이터를 파악하여 저장하는 로그저장부;를 포함한다.
본 발명에 따르면, 커널이나 응용프로그램의 동작, 시스템 인터럽트나 예외 상황 등에 따른 다양한 로그 데이터를 용이하게 파악하고 저장할 수 있다.
도 1은 본 발명이 적용되는 컴퓨팅 장치의 일 실시 예의 구성을 도시한 도면,
도 2는 본 발명이 적용되는 컴퓨팅 장치의 시스템 권한 순서를 도시한 도면,
도 3은 본 발명에 따른 하이퍼바이저를 이용한 로깅 방법의 개략적인 흐름을 도시한 도면,
도 4는 본 발명에 따른 로그정의 모듈의 일 예를 도시한 도면,
도 5는 본 발명에 따른 로그정의 모듈의 구현 예를 도시한 도면,
도 6은 본 발명에 따른 로그정의 모듈에 따라 트랩 명령어를 삽입하는 일 예를 도시한 도면,
도 7a 및 도 7b는 본 발명에 따른 로그정의 모듈에 따라 트랩 명령어를 삽입한 구현 예를 도시한 도면,
도 8은 본 발명에 따른 하이퍼바이저의 일 예를 도시한 도면, 그리고,
도 9는 본 발명에 따른 하이퍼바이저를 이용한 로깅 방법의 일 실시 예의 흐름을 도시한 도면이다.
이하에서, 첨부된 도면들을 참조하여 본 발명에 따른 하이퍼바이저를 이용한 로깅 방법 및 그 장치에 대해 상세히 설명한다.
도 1은 본 발명이 적용되는 컴퓨팅 장치의 일 실시 예의 구성을 도시한 도면이다.
도 1을 참조하면, 컴퓨팅 장치(100)는 중앙처리부(110), 메모리(120), 저장부(130), 입출력부(140) 및 디스플레이부(150)를 포함한다. 중앙처리부(110)는 프로세서(processor)로서, 메모리(120), 저장부(130), 입출력부(140) 및 디스플레이부(150)를 각각 제어하며, 커널이나 응용 프로그램 또는 하이퍼바이저의 소프트웨어를 구동시킨다. 메모리(120)는 RAM(Random Access Memory), ROM(Read Only Memory) 등으로 구성되고, 저장부(130)는 하드 디스크, SSD(Solid State Disk) 등 다양한 형태로 구현된다. 입출력부(140)는 키패드나 터치스크린 등의 입력수단을 통해 사용자 명령을 입력받거나, 인터넷 등의 유무선 통신망을 통해 외부 장치와 통신을 수행하거나, USB(Universal Serial Bus) 포트 등을 통해 각종 외부 장치와 접속한다. 디스플레이부(150)는 LCD, LED, OLED 등으로 구성될 수 있다.
도 2는 본 발명이 적용되는 컴퓨팅 장치의 시스템 권한 순서를 도시한 도면이다.
도 2를 참조하면, 시스템 권한은 하드웨어(200), 하이퍼바이저(210), 커널(220), 응용프로그램(230)의 순으로 높다. 따라서 하이퍼바이저(210)는 커널(220) 및 응용프로그램(230)의 다양한 행위를 모니터링하고 제어할 수 있다.
도 3은 본 발명에 따른 하이퍼바이저를 이용한 로깅 방법의 개략적인 흐름을 도시한 도면이다.
도 3을 참조하면, 관리자는 응용 프로그램이나 커널(220,230), 하드웨어(200)의 인터럽트나 예외상황(360) 등의 다양한 동작들 중 로깅이 필요한 시점과 각 로깅 시점에 저장할 로그 데이터의 종류 등을 포함하는 로그정의(300)를 설정하고 저장한다. 여기서, 로깅은 응용프로그램이나 커널(220,230), 하드웨어 인터럽트(360) 등의 각종 동작과 관련된 데이터, 예를 들어 특정 메모리 영역의 데이터, 레지스터 값, 입출력 데이터 등을 기록하는 과정을 의미한다. 로그정의(300)를 포함하는 로그정의 모듈의 일 예에 대해서는 도 4 및 도 5에 도시되어 있다.
하이퍼바이저(210)는 응용 프로그램이나 커널(220,230)의 수행 중 로깅이 필요한 시점에 시스템 권한을 가져오기 위하여 응용 프로그램이나 커널에 트랩 명령어(350)를 삽입하거나, 인터럽트나 예외상황에서 시스템 권한을 가져오기 위하여 제어 레지스터의 값을 변경한다. 하이퍼바이저(210)가 응용 프로그램이나 커널(220,230)에 트랩 명령어를 삽입하는 방법의 일 예에 대해서는 도 6, 도 7a,7b에 도시되어 있다.
응용 프로그램이나 커널(220,230)이 동작 중에 하이퍼바이저(210)가 삽입한 트랩 명령어(350)를 만나면, 하이퍼바이저(210)는 시스템 권한을 가져온 후 응용 프로그램이나 커널(220,230) 등의 각종 동작과 관련된 로그 데이터를 생성(310)한다. 또한 하드웨어(200)의 인터럽트나 예외상황(360)이 발생하고, 해당 인터럽트나 예외상황에 대한 제어 레지스터의 값이 실행 흐름을 하이퍼바이저(210)로 변경되도록 설정되어 있다면, 하이퍼바이저(210)는 시스템 권한을 가져온 후 로그 데이터를 생성한다. 예를 들어, 가상 메모리 관련 상태값 변경이나 일반적인 인터럽트 발생 등의 특정 이벤트 발생시, 시스템 권한이 하이퍼바이저(210)로 넘어갈 수 있도록 제어 레지스터의 값을 변경할 수 있다.
로그 데이터는 로그정의 모듈에 정의된 로그 데이터 종류와 더불어 로그 발생 시간, 로그 발생 위치, 로그 발생 원인 등 다양한 정보를 포함할 수 있다. 예를 들어, I/O 처리와 관련된 로그 데이터를 저장하는 로그정의가 설정되어 있는 경우에, 하이버바이저(210)는 I/O 처리와 연산 발생 시점에 트랩 명령어를 통해 시스템 권한을 가져온 후, 현 시점에서 실행 중인 프로세서가 무엇인지, 어떤 파일에 어떤 데이터를 남기려고 했는지 등을 수집할 수 있다. 로그 데이터 수집을 위하여 디지털 포렌식(Digital Forensic) 기법이 적용될 수 있다.
하이퍼바이저(210)는 로깅 동작과 관련하여 시스템 성능에 미치는 영향을 최소화하기 위하여 로그 데이터를 로그 버퍼(320)에 저장한다. 로그 버퍼(320)는 로그 데이터가 발생한 시간순서에 따라 데이터를 기록하고, 일정량 이상의 데이터가 로그 버퍼(320)에 쌓이면, 압축 및 암호화 과정(330)을 통해 로그 데이터를 로그 데이터베이스(340,342)에 저장한다. 로그 데이터를 암호화하여 저장함으로써 관리자가 아닌 커널이나 응용프로그램 등에서 권한 없이 내용을 읽거나 수정하는 것을 방지할 수 있다.
로그 데이터베이스(340,342))는 하이퍼바이저(210)에 구현되거나, 응용 프로그램이나 커널(220,230)에 구현될 수 있다. 하이퍼바이저에 구현된 로그 데이터베이스(340)는 메모리 사용량 및 복잡도를 높일 수 있으므로, 응용 프로그램이나 커널에 구현한 로그 데이터베이스(342)를 활용하는 것이 나을 수 있다. 데이터베이스 구조는 로깅 동작에 영향을 미치지 아니하므로, 실시 예에 따라 다양한 구조의 로그 데이터베이스(340,342)를 채택할 수 있다.
로그 데이터베이스(340,342)는 수집된 로그 데이터들을 로컬에 위치한 로그 저장소(344)나 네트워크로 연결된 원격 저장소 및 서버에 백업할 수 있다.
도 4는 본 발명에 따른 로그정의 모듈의 일 예를 도시한 도면이다.
도 4를 참조하면, 로그정의 모듈은 관리자에 의해 정의된 적어도 하나 이상의 로그정의를 포함한다. 로그정의는 응용프로그램이나 커널, 시스템 인터럽트나 예외상황 등에서 로깅 작업이 필요한 시점(410), 저장할 로그 데이터의 종류(420) 등을 포함한다. 필요에 따라 해당 로깅 작업에 대한 주석문(400)을 포함할 수 있으며, 이 외에도 실시 예에 따라 다양한 정보가 정의될 수 있다.
관리자는 도 5와 같이 다양한 프로그래밍 언어 등을 통해 로그정의를 설정하거나, 그래픽 사용자 인터페이스(GUI) 등을 통해 로그정의를 설정할 수 있다. 예를 들어, 컴퓨팅 장치는 그래픽 화면에서 주석문 입력 필드, 트랩 명령어를 삽입할 명령어 위치 입력 필드, 저장할 로그 데이터 종류 입력 필드를 화면에 표시하고, 각 필드에서 선택 가능한 메뉴 리스트를 사용자에게 제공하여, 사용자가 용이하게 로그정의를 설정할 수 있도록 한다. 이 외에도 관리자로부터 로그정의를 위한 각종 정보를 입력받는 다양한 방법이 존재할 수 있음은 물론이다.
트랩 명령어를 삽입할 명령어 위치(410)는 응용 프로그램이나 커널이 시작될 때 메모리에 적재되는 명령어들 중 특정 명령어의 위치를 가리킨다. 명령어의 위치는 종래의 다양한 방법을 통해 관리자가 사전에 파악하고 있다고 가정한다. 예를 들어, 커널의 경우 메모리의 정해진 위치에 적재되고, 메모리 내 각 명령어의 위치는 고정되어 있으므로, 관리자는 종래의 디버깅(debugging) 과정 등의 다양한 방법을 통해 커널 내 명령어의 위치를 파악할 수 있다. 또 다른 예로, 응용 프로그램의 경우 실행시 메모리에 적재되는 위치는 매번 달라질 수 있으나 응용 프로그램 내의 각 명령어의 상대적 위치(옵셋(offest))는 고정적이므로, 관리자는 디버깅 과정 등 종래의 다양한 방법을 통해 응용 프로그램 내 명령어의 상대적 위치를 파악할 수 있다. 커널이나 응용 프로그램의 명령어 위치를 파악하는 방법 그 자체는 본 발명의 범위를 벗어나므로 이에 대한 추가적인 설명은 생략한다.
로그 데이터 종류(420)는 관리자에 의해 다양하게 설정될 수 있다. 예를 들어, 응용프로그램이나 커널 등에서 메모리 할당이나 메모리 해제 작업을 수행하기 전의 메모리 상태를 저장하기를 원하는 경우에, 관리자는 응용프로그램이나 커널 등의 메모리 할당이나 해제와 관련된 명령어의 수행 전의 명령어의 위치를 트랩 명령어의 삽입 위치로 정의하고, 또한 저장할 로그 데이터를 메모리 할당이나 해제 작업이 수행되는 메모리의 해당 영역의 데이터로 정의하면 된다.
하드웨어 인터럽트나 예외상황에 대한 로그정의를 설정하고자 하는 경우에, 관리자는 인터럽트나 예외상황의 특정 이벤트(예를 들어, 가상 메모리 관련 상태값 변경 등)와 관련된 제어 레지스터 종류와 저장할 로그 데이터 종류를 정의한다. 인터럽트나 예외상황에 대한 로그정의는 프로그래밍 언어로 정의되거나, 각종 GUI 환경을 통해 정의될 수 있다.
도 5는 본 발명에 따른 로그정의 모듈의 구현 예를 도시한 도면이다.
도 5를 참조하면, 로그정의 모듈(500)은 해당 로그 정의가 무엇에 관한 것인지 나타내는 주석문(400)과, 트랩 명령어가 삽입될 명령어 위치(410), 저장할 로그 데이터의 종류(420)를 포함한다. 도 5는 커널의 메모리 해제 전의 로깅 작업을 수행하는 일 예로서, 트랩 명령어의 삽입 위치(410)는 메모리의 'Oxc011a060' 위치이고, 저장한 로그 데이터 종류(420)는 레지스터 번호 '0'번째 데이터임을 정의하고 있다.
도 6은 본 발명에 따른 로그정의 모듈에 따라 트랩 명령어를 삽입하는 일 예를 도시한 도면이다.
도 6을 참조하면, 응용 프로그램이나 커널이 실행되면, 하이퍼바이저는 메모리에 적재된 응용 프로그램이나 커널의 명령어들(600) 중 로그정의 모듈에 정의된 위치의 명령어(610)를 트랩 명령어(630)로 대체한다.
예를 들어, 로그정의 모듈에서 트랩 명령어가 삽입될 명령어 위치가 N번째 명령어(610)의 위치로 정의되어 있다면, 하이퍼바이저는 응용프로그램이나 커널이 시작될 때에 N번째 명령어(610)를 트랩 명령어(630)로 대체한다. 따라서 응용프로그램이나 커널이 명령어를 수행하다가 대체된 트랩 명령어(630)를 만나면, 시스템 권한은 하이퍼바이저로 넘어간다. 시스템 권한을 넘겨받은 하이퍼바이저는 로그정의 모듈에 정의된 로그 데이터를 파악하여 저장한다.
도 7a 및 도 7b는 본 발명에 따른 로그정의 모듈에 따라 트랩 명령어를 삽입한 구현 예를 도시한 도면이다.
도 7a 및 도 7b를 참조하면, 메모리 해제에 대한 소스코드와 해당 소스코드의 실행을 위한 실제 명령어를 메모리에 적재한 예가 도시되어 있다. 관리자가 메모리 해제시점에 로깅을 수행하고자 한다면, 관리자는 메모리 해제 명령(_vummnap(addr,1))에 대한 위치를 기초로 앞서 살핀 도 5의 로깅정의 모듈을 작성한다.
도 5의 예를 다시 살펴보면, 메모리 해제 명령어(_vummap)의 위치는 '0xc011a64'이므로, 관리자는 로깅정의 모듈에 트랩 명령어가 삽입될 명령어 위치로 해제 명령어(710)의 수행 바로 이전 위치인 '0xc011a060'을 정의하고, 메모리 해제 위치를 가리키고 있는 레지스터 번호 '0'를 로그 데이터의 종류로 정의한다.
다시 도 7을 참조하면, 하이퍼바이저는 커널 또는 응용프로그램이 시작될 때, 도 5의 로그정의 모듈에 정의된 메모리 위치 '0xc011a060'의 명령어(700)를 트랩 명령어(800)로 대체한다. 커널이나 응용프로그램이 시작되어 '0xc011a060'의 트랩 명령어(800)를 만나면, 시스템 권한은 하이퍼바이저로 넘어간다.
도 8은 본 발명에 따른 하이퍼바이저의 일 예를 도시한 도면이다.
도 8을 참조하면, 하이퍼바이저(210)는 로그정의모듈(800), 명령어 대체부(810), 로그 저장부(820), 권한 제어부(830)의 구성을 포함한다. 하이퍼바이저(210)는 일종의 소프트웨어로 구현가능하며, 도 1에서 살핀 컴퓨팅 시스템의 메모리, 중앙처리부 등의 하드웨어를 통해 실행될 수 있다.
로그정의모듈(800)은 트랩 명령어가 삽입될 응용프로그램이나 커널의 명령어 위치, 저장할 로그 데이터의 종류 등을 포함하는 적어도 하나 이상이 로그정의를 포함한다. 관리자는 디버깅 등 종래의 다양한 방법을 통해 응용 프로그램이나 커널의 각 명령어의 위치를 사전에 알고 있다고 가정한다.
명령어 대체부(810)는 로그정의 모듈에 따라 응용 프로그램이나 커널에 트랩 명령어를 삽입한다. 명령어 대체부(810)는 응용 프로그램이나 커널의 명령어들 사이에 트랩 명령어를 삽입할 수도 있으나, 보다 바람직하게는 응용 프로그램이나 커널의 기존 명령어를 트랩 명령어로 대체하여 삽입한다. 명령어 대체부(810)는 커널이 부팅되는 시점 또는 응용 프로그램이 시작되는 시점에 트랩 명령어를 삽입하는 과정을 수행한다.
로그 저장부(820)는 명령어 대체부(810)에 의해 응용 프로그램이나 커널 등에 삽입된 트랩 명령어가 수행되어, 시스템 권한이 하이퍼바이저로 넘어오면, 로그정의 모듈에 정의된 내용에 따라 저장할 로그 데이터를 파악하여 저장하는 로깅과정을 수행한다.
권한 제어부(830)는 응용 프로그램이나 커널 등에 삽입된 트랩 명령어가 수행되면 응용 프로그램이나 커널로부터 시스템 권한을 가져오고, 로그 저장부(820)에 의한 로깅 작업이 완료되면 시스템 권한을 응용 프로그램이나 커널 등에 다시 돌려준다.
응용 프로그램이나 커널의 명령어가 명령어 대체부(810)에 의해 기존 명령어에서 트랩 명령어로 대체된 경우에, 권한 제어부(830)가 로깅 작업 후 시스템 권한만을 넘겨주면 응용 프로그램이나 커널의 정상적인 동작이 불가능할 수 있다. 따라서 권한 제어부(830)는 응용 프로그램이나 커널에 권한을 넘겨주기 전에 트랩 명령어로 대체된 기존 명령어를 수행하거나, 기존 명령어를 디코딩하여 에뮬레이터를 통해 수행한 후 권한을 넘겨준다. 예를 들어, 도 7b의 트랩 명령어를 도 7a의 대체 전의 명령어를 수행한 후 시스템 권한을 넘겨준다.
트랩 명령어로 대체 전의 원 명령어를 디코딩하여 에뮬레이터를 통해 수행한 후 권한을 넘겨주는 경우, 하이퍼바이저가 원 명령어의 실행을 자유롭게 관리할 수 있고 관련된 모든 명령어를 처리할 수 있는 장점이 있으나 하이퍼바이저의 구현이 복잡해지는 단점이 있다. 단순히 원 명령어만을 수행한 후 권한을 넘겨주는 경우, 하이퍼바이저가 복잡하지 않게 구현될 수 있으며 원 명령어의 연산을 빠르게 수행할 수 있는 장점이 있으나, 스택 포인터와 관련된 연산과 같이 몇 가지 지원하지 못하는 연산이 있을 수 있다는 단점이 있다. 따라서 권한 제어부(830)는 상황에 따라 원 명령어만의 수행 또는 에뮬레이션 수행을 선택적으로 수행한다.
예를 들어, 트랩 명령어로 덮어 씌어진 원 명령어가 'mov r1 r2'이고, 로깅 과정에서 r2를 사용한다면 로깅 작업이후 단순히 원 명령어 'mov r1 r2'를 수행하면 결과가 틀려진다. 따라서 권한 제어부는 로깅 작업에서 r2를 사용하지 않게 하거나 명령의 'operand'를 바꾸는 방법 등이 수행되어야 하므로 단순한 원 명령어의 수행이 아닌 정확한 결과 산출을 위한 여러 가지 과정을 수행하는 에뮬레이션을 수행한다.
권한 제어(830)부는 인터럽트나 예외상황의 경우에도 시스템 권한을 넘겨주기 전에 추가적인 동작 수행 여부를 파악한다. 예를 들어, 인터럽트나 예외상황이 기존 커널이나 응용프로그램의 동작에 영향을 미치지 아니하고 단지 로깅을 위하여 커널이나 응용프로그램의 동작과 관련이 있는 인터럽트나 예외상황을 강제로 하이퍼바이저로 전달한 것이라면, 권한 제어부(830)는 시스템 권한을 반환하기에 앞서 커널 등에 대한 인터럽트 및 예외상황이 발생했음을 알리기 위하여 관련된 레지스터 및 메모리 값을 인터럽트 및 예외상황이 발생했을 때와 마찬가지로 설정한 후 권한을 반환한다.
도 9는 본 발명에 따른 하이퍼바이저를 이용한 로깅 방법의 일 실시 예의 흐름을 도시한 도면이다.
도 9를 참조하면, 하이퍼바이저는 관리자로부터 로그정의를 입력받아 로그정의 모듈로 저장한다(S900). 하이퍼바이저는 응용프로그램이나 커널 등이 시작될 때, 로그정의 모듈을 기초로 응용프로그램이나 커널에 트랩 명령어를 삽입한다(S910).
응용 프로그램이나 커널이 하이퍼바이저가 삽입한 트랩 명령어를 만나면(S920), 하이퍼바이저는 시스템 권한을 응용 프로그램이나 커널로부터 넘겨받는다(S930). 하이퍼바이저는 레지스터 등의 시스템 정보 등을 백업하고, 로그정의모듈의 정의에 따라 해당하는 로그 데이터를 파악하여 저장한다(S950). 로깅 작업이 완료되면, 하이퍼바이저는 백업한 레지스터를 이용하여 레지스터를 시스템 권한을 가져오기 전의 레지스터로 복원한다(S960). 하이퍼바이저는 응용 프로그램이나 커널의 트랩 명령어를 대체 전의 원 명령어를 단순히 수행하거나, 원 명령어를 에뮬레이터 등을 통해 수행하고(S970), 시스템 권한을 응용 프로그램이나 커널로 다시 돌려준다(S980).
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 다양한 형태의 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
Claims (11)
- 하이퍼바이저, 커널, 응용프로그램을 포함하는 컴퓨팅 장치에서 상기 하이퍼바이저의 로깅 방법에 있어서, 상기 하이퍼바이저는,응용 프로그램이나 커널의 명령어들 중 로그 정의 모듈에 정의된 위치의 명령어를 트랩 명령어로 대체하는 단계;상기 트랩 명령어의 실행 또는 인터럽트나 예외상황 발생시, 시스템 권한을 가져오는 단계;상기 응용 프로그램이나 커널에 대한 로그 데이터를 저장하는 단계; 및상기 응용 프로그램이나 커널로 시스템 권한을 넘겨주는 단계;를 포함하는 것을 특징으로 하는 하이퍼바이저를 이용한 로깅 방법.
- 제 1항에 있어서,상기 로그 정의 모듈은 트랩 명령어로 대체할 응용 프로그램이나 커널의 명령어 위치, 저장할 로그 데이터의 종류를 포함하는 것을 특징으로 하는 하이퍼바이저를 이용한 로깅 방법.
- 제 1항에 있어서,상기 시스템 권한을 가져올 때 레지스터를 백업하고, 상기 시스템 권한을 넘겨줄 때 레지스터를 백업된 레지스터로 복원하는 단계;를 더 포함하는 것을 특징으로 하는 하이퍼바이저를 이용한 로깅 방법.
- 제 1항에 있어서, 상기 시스템 권한을 넘겨주는 단계는,상기 트랩 명령어로 대체된 상기 응용 프로그램이나 커널의 명령어를 대체 전의 원 명령어를 수행한 후 시스템 권한을 넘겨주는 단계;를 포함하는 것을 특징으로 하는 하이퍼바이저를 이용한 로깅 방법.
- 제 1항에 있어서, 상기 로그 데이터를 저장하는 단계는,로그 데이터를 하이퍼바이저의 버퍼에 저장하는 단계; 및상기 버퍼에 저장된 로그 데이터의 크기가 임계치에 해당하면 상기 로그 데이터를 암호화하여 데이터베이스에 저장하는 단계;를 포함하는 것을 특징으로 하는 로깅 방법.
- 응용 프로그램이나 커널의 명령어들 중 트랩 명령어로 대체할 명령어의 위치를 정의하는 로그정의모듈;상기 로그정의모듈에 따라 상기 응용프로그램이나 커널의 명령어들을 트랩 명령어로 대체하는 명령어대체부; 및상기 트랩 명령어가 수행되면 시스템 권한을 가져오고, 로그 데이터 저장이 완료되면 시스템 권한을 상기 응용 프로그램이나 커널로 넘겨주는 권한제어부; 및상기 응용프로그램이나 커널의 로그 데이터를 파악하여 저장하는 로그저장부;를 포함하는 하이퍼바이저를 구동하기 위한 메모리, 중앙처리장치를 포함하는 컴퓨팅 장치.
- 제 6항에 있어서, 상기 명령어대체부는,인터럽트 및 예외상황 발생시 시스템 권한을 넘겨받을 수 있도록 컨트롤 레지스터의 값을 변경하는 것을 특징으로 하는 컴퓨팅 장치.
- 제 6항에 있어서, 상기 로그저장부는,상기 시스템 권한을 넘겨받을 때 레지스터를 백업하고, 상기 시스템 권한을 넘겨줄때 레지스터를 백업된 레시스터로 복원하는 것을 특징으로 하는 컴퓨팅 장치.
- 제 6항에 있어서, 상기 권한제어부는,상기 시스템 권한을 넘겨줄 때, 상기 응용프로그램이나 커널에 위치한 트랩 명령어를 대체 전의 원 명령어로 수행한 후 시스템 권한을 넘겨주는 것을 특징으로 하는 컴퓨팅 장치.
- 제 6항에 있어서, 로그 저장부는,로그 데이터를 하이퍼바이저의 버퍼에 저장하고, 상기 버퍼에 저장된 로그 데이터의 크기가 임계치에 해당하면 상기 로그 데이터를 암호화하여 데이터베이스에 저장하는 것을 특징으로 하는 컴퓨팅 장치.
- 제 1항 내지 제 5항 중 어느 한 항에 기재된 방법을 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| SG11201800137SA SG11201800137SA (en) | 2015-07-14 | 2016-05-09 | Logging method using hypervisor and apparatus thereof |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2015-0099837 | 2015-07-14 | ||
| KR1020150099837A KR101754334B1 (ko) | 2015-07-14 | 2015-07-14 | 하이퍼바이저를 이용한 로깅 방법 및 그 장치 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2017010665A1 true WO2017010665A1 (ko) | 2017-01-19 |
Family
ID=57757747
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2016/004794 Ceased WO2017010665A1 (ko) | 2015-07-14 | 2016-05-09 | 하이퍼바이저를 이용한 로깅 방법 및 그 장치 |
Country Status (3)
| Country | Link |
|---|---|
| KR (1) | KR101754334B1 (ko) |
| SG (1) | SG11201800137SA (ko) |
| WO (1) | WO2017010665A1 (ko) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113971164A (zh) * | 2021-10-22 | 2022-01-25 | 北京千丁智能技术有限公司 | 日志采集方法、装置、终端设备和可读存储介质 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050076155A1 (en) * | 2003-10-01 | 2005-04-07 | Lowell David E. | Runtime virtualization and devirtualization of I/O devices by a virtual machine monitor |
| US20090007111A1 (en) * | 2007-06-27 | 2009-01-01 | Vmware, Inc. | Logging and replaying input/output events for a virtual machine |
| KR100984203B1 (ko) * | 2004-12-10 | 2010-09-28 | 인텔 코오퍼레이션 | 가상 머신 모니터의 구성요소의 특권을 해제하는 시스템 및방법 |
| US20130036093A1 (en) * | 2009-12-17 | 2013-02-07 | National Ict Australia Limited | Reliable Writing of Database Log Data |
| WO2014004747A2 (en) * | 2012-06-26 | 2014-01-03 | Lynuxworks, Inc. | Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9311248B2 (en) | 2012-05-07 | 2016-04-12 | Raytheon Cyber Products, Llc | Methods and apparatuses for monitoring activities of virtual machines |
| KR101467877B1 (ko) | 2012-11-28 | 2014-12-11 | 주식회사 잉카인터넷 | 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법 |
-
2015
- 2015-07-14 KR KR1020150099837A patent/KR101754334B1/ko not_active Expired - Fee Related
-
2016
- 2016-05-09 WO PCT/KR2016/004794 patent/WO2017010665A1/ko not_active Ceased
- 2016-05-09 SG SG11201800137SA patent/SG11201800137SA/en unknown
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050076155A1 (en) * | 2003-10-01 | 2005-04-07 | Lowell David E. | Runtime virtualization and devirtualization of I/O devices by a virtual machine monitor |
| KR100984203B1 (ko) * | 2004-12-10 | 2010-09-28 | 인텔 코오퍼레이션 | 가상 머신 모니터의 구성요소의 특권을 해제하는 시스템 및방법 |
| US20090007111A1 (en) * | 2007-06-27 | 2009-01-01 | Vmware, Inc. | Logging and replaying input/output events for a virtual machine |
| US20130036093A1 (en) * | 2009-12-17 | 2013-02-07 | National Ict Australia Limited | Reliable Writing of Database Log Data |
| WO2014004747A2 (en) * | 2012-06-26 | 2014-01-03 | Lynuxworks, Inc. | Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113971164A (zh) * | 2021-10-22 | 2022-01-25 | 北京千丁智能技术有限公司 | 日志采集方法、装置、终端设备和可读存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR101754334B1 (ko) | 2017-07-19 |
| SG11201800137SA (en) | 2018-02-27 |
| KR20170008533A (ko) | 2017-01-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP4189566B1 (en) | Malware analysis through virtual machine forking | |
| US12298882B2 (en) | Virtualization of a central processing unit measurement facility | |
| Williams et al. | Device Driver Safety Through a Reference Validation Mechanism. | |
| US8671405B2 (en) | Virtual machine crash file generation techniques | |
| US8832693B2 (en) | Runtime virtual process creation for load sharing | |
| US8612937B2 (en) | Synchronously debugging a software program using a plurality of virtual machines | |
| WO2011105860A2 (en) | Method and apparatus for generating minimum boot image | |
| EP3063692B1 (en) | Virtual machine introspection | |
| US9158543B2 (en) | Query sampling information instruction | |
| US10140145B1 (en) | Displaying guest operating system statistics in host task manager | |
| US9454539B1 (en) | System and method for protecting operating system zones | |
| WO2014042297A1 (ko) | 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법 | |
| US10366226B2 (en) | Malicious code analysis device and method based on external device connected via USB cable | |
| WO2012033237A1 (ko) | 시스템 테스트 방법 | |
| CN107450964A (zh) | 一种用于发现虚拟机自省系统中是否存在漏洞的方法 | |
| WO2016072760A1 (ko) | 전가상화 시스템에서 자원을 감시하는 장치 및 방법 | |
| US20080301402A1 (en) | Method and System for Stealing Interrupt Vectors | |
| WO2017010665A1 (ko) | 하이퍼바이저를 이용한 로깅 방법 및 그 장치 | |
| US20110252256A1 (en) | Methods, systems, and computer program products for managing an idle computing component | |
| CN117724979A (zh) | 实时操作系统的检测方法、设备及介质 | |
| WO2020111482A1 (ko) | 프로그램 실행 컨텍스트 기반의 빅데이터를 활용한 역공학 방법 및 시스템 | |
| WO2016131383A1 (zh) | 一种系统的维护进程运行方法及装置 | |
| CN104956337B (zh) | 计算机装置和计算机装置的控制方法 | |
| WO2021172765A1 (ko) | 전자 장치 및 그 제어 방법 | |
| WO2009147738A1 (ja) | 情報処理装置及びその制御方法並びにモニタプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16824582 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 16824582 Country of ref document: EP Kind code of ref document: A1 |