WO2016200045A1 - 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치 및 그 방법 - Google Patents

하드웨어 기반의 커널 코드 삽입 공격 탐지 장치 및 그 방법 Download PDF

Info

Publication number
WO2016200045A1
WO2016200045A1 PCT/KR2016/004318 KR2016004318W WO2016200045A1 WO 2016200045 A1 WO2016200045 A1 WO 2016200045A1 KR 2016004318 W KR2016004318 W KR 2016004318W WO 2016200045 A1 WO2016200045 A1 WO 2016200045A1
Authority
WO
WIPO (PCT)
Prior art keywords
register
event
host system
trampoline
report
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
Application number
PCT/KR2016/004318
Other languages
English (en)
French (fr)
Inventor
백윤흥
문현곤
이진용
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SNU R&DB Foundation
Original Assignee
Seoul National University R&DB Foundation
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seoul National University R&DB Foundation filed Critical Seoul National University R&DB Foundation
Priority to SG11201610083TA priority Critical patent/SG11201610083TA/en
Publication of WO2016200045A1 publication Critical patent/WO2016200045A1/ko
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions

Definitions

  • the present invention relates to an apparatus and method for detecting a malicious code insertion attempt to the kernel code, and more particularly, is implemented in hardware independent of the attack detection target system to write to the kernel code of the target system or the system kernel
  • the present invention relates to an apparatus and a method for detecting an execution attempt from outside the kernel code generated while operating in a mode.
  • Efforts to monitor kernel integrity can be broadly classified into two approaches. One is a hardware-based approach and the other is a hypervisor-based approach.
  • Hypervisor-based approaches have gained popularity recently, but as hypervisors become more complex, they can have more software vulnerabilities. Additional software layers can be inserted to protect the integrity of the hypervisor, but additional software layers can also introduce new vulnerabilities, which do not provide a fundamental solution.
  • the technical problem to be achieved by the present invention is to detect attempts to write to the kernel code region and execution attempts from outside the kernel code region generated while the system is operating in kernel mode to detect malicious code insertion attempts into the kernel code.
  • the present invention provides a hardware-based attack detection apparatus and method thereof.
  • An attack detection apparatus for achieving the above technical problem is to receive a packet including runtime information from a program trace interface (PTI) of the host system, parse the packet to indirect branch destination address Trace management unit to grasp the; At event of booting of the host system, the event replaces a block of code associated with an event that includes an address translation base register (ATBR) change, a mode change, or a PTI control register change with a jump instruction to the trampoline.
  • a reporting manager that reports an event through the execution of the trampoline when it occurs; And a traffic manager for sniffing traffic on the bus to detect an attempt to write to a physical code area of the memory.
  • an example of an attack detection method includes receiving a packet including runtime information from a program trace interface (PTI) of a host system, parsing the packet to indirect branch destination address. Grasping; At event of booting of the host system, the event replaces a block of code associated with an event that includes an address translation base register (ATBR) change, a mode change, or a PTI control register change with a jump instruction to the trampoline. Receiving an event by performing the trampoline upon occurrence; And snooping traffic on the bus to detect write attempts to a physical code area of the memory.
  • PTI program trace interface
  • a kernel attack can be detected without the help of a software layer having higher privileges than the operating system kernel of the target system, and without newly designing an existing hardware architecture.
  • FIG. 1 is a view showing the configuration of an embodiment of a hardware-based kernel code insertion attack detection apparatus according to the present invention
  • FIG. 2 is a view showing an example of a mode conversion tracking method according to the present invention.
  • FIG. 3 is a diagram illustrating an example of a method for reporting an event such as an ATBR change according to the present invention
  • FIG. 4 is a view showing an example of a trampoline according to the present invention.
  • FIG. 5 is a diagram illustrating an example of a method for defending a replay attack using a hardware-based kernel code insertion attack detection device according to the present invention
  • FIG. 6 is a view showing an example of the interdependency of each component of the hardware-based kernel code insertion attack detection apparatus according to the present invention
  • FIG. 7 is a view showing another embodiment of an event reporting method according to the present invention.
  • FIG. 8 is a view showing another embodiment of a hardware-based kernel code insertion attack detection apparatus according to the present invention.
  • FIG. 9 is a flowchart illustrating an embodiment of a hardware-based kernel code insertion attack detection method according to the present invention.
  • FIG. 1 is a block diagram of an embodiment of a hardware-based kernel code insertion attack detection apparatus according to the present invention.
  • the hardware-based kernel code insertion attack detection device (hereinafter, referred to as an "attack detection device") 100 is a correct value of the address translation base register (ATBR) of the host system 135.
  • ATBR address translation base register
  • the host system 135 is a kind of computing device that includes a processor 140, a memory 150, a peripheral device 160, and the like, and is an object that an attacker tries to attack by inserting kernel code.
  • kernel page tables of the host system 135 correctly map a virtual code region and a physical code region at initial boot.
  • the virtual code area means a virtual memory area storing a kernel code
  • the physical code area means a physical memory area storing a kernel code.
  • the attack detection apparatus 100 is a code block of the kernel that causes a mode conversion between the privileged-mode and the user-mode when the host system 135 boots up, from the user mode to the privileged mode.
  • Code blocks that are executed by the processor on entry i.e., gateway code blocks
  • code blocks associated with ATBR changes, code blocks that change the address of the gateway code blocks, and code that reconfigures the Program Trace Interface (PTI). Identify the location of blocks, etc.
  • the attack detection apparatus 100 replaces each identified block of code with a jump command for an appropriate code snippet (hereinafter, referred to as 'trampolines').
  • the trampoline for each code block executes the corresponding original code block and reports to the attack detection device 100 an event such as a mode change, an ATBR address change, or a change in the PTI control register according to the execution of the original code block.
  • an event such as a mode change, an ATBR address change, or a change in the PTI control register according to the execution of the original code block.
  • each code block can be identified through various conventional methods. For example, when host system 135 enters privileged mode from user mode, processor 140 knows a designed address that points to the gateway code block. Most processors include a special register to calculate the address specified. Accordingly, the attack detection apparatus may determine the location of the gateway code block by using values of the special registers when the host system 135 boots up.
  • the attack detection apparatus 100 is connected to each hardware of the host system 135 and includes a trace manager 110, a report manager 120, and a traffic manager 130.
  • the trace manager 110 is connected to the PTI 142 of the processor 140 and receives a data packet including various runtime information from the PTI 142.
  • the PTI 142 is an external interface implemented in a processor for debugging purposes, and is also referred to as a debugging interface.
  • the PTI 142 may be called with various names according to the type of processor.
  • the PTI 142 may be called a processor tracer in an Intel x86 processor, and in the case of an ARM processor, a Program Trace Macrocell (PTM). It is called Therefore, in the present embodiment, the PTI 142 is defined as representing all kinds of interfaces capable of outputting various information in the processor to the outside.
  • the trace manager 110 parses the received packet to determine indirect branch target addresses in order to determine whether the malicious insertion code is performed in a privileged-mode.
  • the report management unit 120 receives an event such as ATBR change or mode conversion through a trampoline when an event such as ATBR change or mode conversion occurs. Therefore, the trace manager 110 based on the indirect branch destination address identified through the PTI 142 and events such as an ATBR change or mode change detected through the report manager 120, the attacker may move the processor 140 outside the virtual code area. May attempt to forcibly switch to privileged mode.
  • the trace manager 110 knows at the time of initial booting of the host system 135 that the indirect branch destination address list and the mode of each address in the list are related, the indirect branch destination address identified through the PTI is determined. Determine whether the mode associated with is correct through the report received through the report management unit 120 detects the attack and generates an alarm.
  • the report manager 120 is connected to the peripheral bus 180 of the host system 135 and includes a keying register 122, a notification register 124, an Ack register 126, and the like.
  • the reporting manager 120 may have two connection relationships 192 and 194 with the peripheral bus.
  • the processor 140 reports an event such as an ATBR change, a mode change, or a PTI control register change to the management unit 120 while the trampoline is performed.
  • the report manager 120 accesses the main memory 150 of the host system 135 and analyzes the contents of the memory 150 to verify the report of the processor 140. .
  • the processor 140 executes a kernel command and encounters a jump instruction for the trampoline
  • the processor 140 branches to the trampoline, and reports an event such as a mode change, an address change of the ATBR, or a PTI control register change through the trampoline execution.
  • FIGS. 3 and 7. Various embodiments of how the report manager 120 reports an event from the processor 140 through the registers 122, 124, and 126 are illustrated in FIGS. 3 and 7. For example, an address change of the ATBR may be reported using the protocol of FIG. 3, and a mode change may be reported using the protocol of FIG. 7.
  • the traffic manager 130 is connected to the memory bus 170 and the peripheral bus 180 of the host system 140 (196, 198, 199), and analyzes the traffic of each bus 170, 180 to write to the main memory 150. operation), a write operation to the control register of the PTI 142, and the like. More specifically, the traffic manager 130 snoops traffic of each bus 170 and 180 connected to the main memory 150 to write the main memory 150 by the processor 140 or the peripheral device 160.
  • the first level page table (page global directory) pointed to by the ATBR, or by snooping traffic on the peripheral bus 180 to access the PTI 142 through a memory-mapped control register. Identify all the accesses you want to control.
  • the traffic manager 130 snoops all write traffic to the main memory 150 through the connection relationships 198 and 199 with the peripheral bus 180, and generates an alarm when there is an attempt to write to the physical code area. Since the traffic manager 130 continuously snoops the write traffic from the processor 140 or the peripheral device 160, the traffic manager 130 may detect a write attempt through a direct memory access.
  • the traffic manager 130 may have an address of a kernel invariant region in advance, and generate an alarm when sniffing traffic on the buses 170 and 180 to detect a write attempt in the kernel invariant region.
  • the kernel invariant region refers to a kernel code region, a system call table, an interrupt descriptor table (IDT), and the like.
  • the address of the kernel constant region may be obtained through various methods at the time of booting the host system 135.
  • the traffic management unit 130 does not snoop packets for the page table of the entire ATBR, but instead uses the first level currently being used based on the changed ATBR. Identify page tables (or page global directories) and watch by snooping packets for the identified parts.
  • FIG. 2 is a diagram illustrating an example of a method for tracking mode conversion according to the present invention.
  • the PTI 142 of the processor 140 sequentially provides a direct or indirect branch destination address to the trace manager 110, and the trace manager 110 from the PTI 142.
  • Each branch destination address information can be received and understood.
  • the report manager 120 may report the mode conversion from the processor 140.
  • the mode conversion occurs as processor mode, so that the processor 140 is privileged.
  • the operation of the trampoline in the mode reports that the mode has been converted from the user mode to the privileged mode reports to the management unit 120.
  • the mode associated with the branch destination address 210 of time (b) is a privileged mode
  • the mode associated with the next branch destination address is a user mode, so that the processor 140 is in privileged mode.
  • the management unit 120 reports that the mode is converted from the privileged mode to the user mode through the execution of the trampoline.
  • FIG. 3 is a diagram illustrating an example of a method for reporting an event such as an ATBR change according to the present invention.
  • the host system 135 when the host system 135 branches to a trampoline due to a change in ATBR or a mode change, the host system 135 notifies the attack detection apparatus 100 of the start of the trampoline through the PTI (S320).
  • the attack detection apparatus 100 recognizes the trampoline start from the host system 135 through the PTI 142, the attack detection device 100 generates and stores an arbitrary key (configured with a non-zero value) in the keying register 122, and stores the host system.
  • 135 reads the keying register 122 to obtain a key by performing the trampoline (S310).
  • the keying register 122 resets when the host system reads the keying register 122 once to prevent the key from being read more than once.
  • the host system 135 When the host system 135 obtains the key from the keying register 122, the host system 135 records the event contents (eg, mode conversion, ATBR conversion, PTI control register change, etc.) in the report register 124 of the attack detection device 100. (S330).
  • the attack detection device may read the contents of the report register 124 to check the event occurring in the host system 135.
  • the host system 135 may transmit the previously acquired key together with the event contents (S320). That is, the host system 135 sequentially transmits the key and the event contents to the attack detection apparatus 100 (S320 and S330).
  • the attack detection apparatus 100 reads the report contents newly stored in the report register 124 and then verifies the report contents by accessing the main memory 150 or the like when verification is necessary. For example, in the case of an ATBR change report, the attack detection apparatus 100 determines whether the change is malicious from the memory contents indicated by the new ATBR. In the case of the change report of the PTI control register, the attack detection apparatus 100 reads the PTI control register stored in the main memory, and compares the PTI control register with the PTI control register obtained at booting of the host system to verify whether the change is made. In case of the mode conversion report, no separate verification may be required. After the report is verified, the attack detection apparatus 100 records the confirmation value in the Ack register 126, and when the host system 135 reads the Ack register 126 to confirm the confirmation value (S340), the event report. The session for is terminated.
  • FIG. 4 is a diagram illustrating an example of a trampoline for reporting an address change event according to the present invention.
  • a trampoline for reporting an event that changes a special register, such as a vector base address register (VBAR) of an ARM system, to an attack detection device is shown.
  • VBAR vector base address register
  • the value of VBAR is used to locate the gateway code block in the ARM system.
  • the trampoline first changes the exception or interrupt to disabled (line 2).
  • the trampoline does not include an indirect branch command, but instead includes two direct branches to implement an inner loop to wait for keys and ack from the attack detection device. This prevents any other command from being executed between the 10-11 lines of the trampoline.
  • the trace management unit 110 of the attack detection device includes a branch target address (ie, line 11) received from the PTI 142 and a valid branch destination address (ie, generated when the attack detection device 100 starts). The attack can be noticed by comparing the list of trampoline starting addresses, lines 1).
  • FIG. 5 is a diagram illustrating an example of a method for defending a replay attack by using an attack detection device according to the present invention.
  • the processor 140 when the processor 140 attempts to start an event report such as a mode change to the attack detection device 100 by jumping with a trampoline, the attacker starts a trampoline with a fake event report (S500) (S510). ) And the real event report (S540) may attempt to transmit to the attack detection device 100.
  • an event report such as a mode change to the attack detection device 100 by jumping with a trampoline
  • the attacker starts a trampoline with a fake event report (S500) (S510).
  • the real event report (S540) may attempt to transmit to the attack detection device 100.
  • the attack detection apparatus 100 may distinguish between the real event report (S540) and the fake event report (S500) based on whether the event report is accompanied by a key after the trampoline start report (S510).
  • the real report message arrives and the session is terminated by the verify step S550, the attacker cannot write a fake report message to the report register 124.
  • FIG. 6 is a view showing an example of the interdependence of each configuration of the attack detection apparatus according to the present invention.
  • secure boot 610 ensures that the host system is initially implemented as injection-free, address translation rediration attack (ATRA) -free.
  • ATRA address translation rediration attack
  • the solid line represents the part that an attacker must overcome to invalidate a particular configuration or state of the attack detection device.
  • the target system is ATRA-free unless the attacker successfully performs ATRA by altering the ATBR or kernel page tables.
  • the attack detection device can easily detect the attacker's attack since the attacker must evade write monitoring to invalidate ATBR tracking or change page table contents in order to change the ATBR.
  • FIG. 7 is a view showing another embodiment of a method for reporting an event such as mode conversion according to the present invention.
  • the host system 135 when the host system 135 branches to a trampoline according to a mode change, as shown in FIG. 3, the host system 135 notifies the attack detection device 100 of starting the trampoline (S710) and starts an event reporting process. However, the host system 135 reports the event by using the key S700 obtained in the execution of the previous trampoline, instead of acquiring the key during the execution of the trampoline (S720, S730). In other words, the host system 135 transmits to the attack detection device using the key obtained in the previous trampoline execution as a key for the current event report (S720).
  • the host system 135 When the host system 135 records an event such as a mode change with a key in a report register (S720 and S730), the host system 135 receives a key to be used for the next event report in advance (S740) and reports without a separate confirmation (ack) process. The process ends (S750).
  • an event such as a mode change with a key in a report register (S720 and S730)
  • the host system 135 receives a key to be used for the next event report in advance (S740) and reports without a separate confirmation (ack) process.
  • the process ends (S750).
  • FIG. 8 is a diagram illustrating another example of an attack detection apparatus according to the present invention.
  • the attack detection apparatus includes a traffic manager 800, a report manager 810, a trace manager 830, and a system manager 850.
  • the traffic manager 800 includes a snoop 802, a first verifier 804, and a first alarm generator 806.
  • the report manager 810 includes a report transmitter 812 and a key provider 814.
  • the trace manager 830 includes a trace receiver 832, a trace analyzer 834, a trace verifier 836, a tray management FSM 838, and an alarm temporary storage 840.
  • an alarm generator 842 is included in the trace receiver 832, a trace analyzer 834, a trace verifier 836, a tray management FSM 838, and an alarm temporary storage 840.
  • an alarm generator 842 included in the trace receiver 832, a trace analyze
  • the system manager 850 includes its own processor and memory and initializes and controls the traffic manager 800, the report manager 810, the trace manager 830, and the like.
  • the system manager 850 checks each of the alarm generators 806, 824, and 842 of the traffic manager 800, the report manager 810, and the trace manager 830 to determine whether a kernel code insertion attack has occurred.
  • the system manager 850 notifies the system manager that an alarm has occurred.
  • the snooper 802 snoops the traffic of the memory bus and the peripheral bus as shown in FIG. 1 and transfers the traffic to the verification unit 804.
  • the verification unit 804 determines whether the traffic received from the snoop 802 is a manifestation of a code insertion attack such as kernel code tampering, and transmits the result to the alarm generator 806.
  • the verification unit 804 may determine a write attempt for a physical code area including a trampoline, a memory map register that maps a virtual code area, and a page table as an indication of an attack.
  • the alarm generator 806 determines that the code insertion attack is detected by the verification unit 804, the alarm generator 806 generates and outputs an alarm.
  • the trace receiving unit 832 receives the data packet from the PTI of the host system.
  • the trace analyzer 834 processes the received packet into meaningful information and then sends it to the trace verifier 836. For example, the trace analyzer 834 parses the packet received through the trace receiver to determine the indirect branch destination address.
  • the trace verifying unit 836 determines whether a kernel code insertion attack is attempted using the information received from the trace analyzing unit 834, and the alarm temporary storage unit 840 or the alarm generating unit 842 according to the state of the host system. Pass the discrimination result to.
  • the trace verifier 836 removes addresses of indirect branches generated in the user mode among indirect branch destination addresses identified by the trace analyzer 832.
  • the mode information may be received by the trace management FSM 838 from the report management unit 810 and provided to the trace verification unit 836.
  • the trace verifying unit 836 compares the address related to the privileged mode or the address not related to any mode with the address information of the virtual code area of the host system determined when the attack detection apparatus is initially started.
  • the trace verifying unit 836 transmits the address to the alarm temporary storage unit 840 if the address is not in the virtual code area, and otherwise transfers the address to the alarm generating unit 842.
  • the trace management FSM 838 When the trace management FSM 838 receives information such as mode conversion from the report management unit, the trace management FSM 838 analyzes the information stored in the alarm temporary storage unit 840 and transmits the information to the alarm generation unit 842.
  • the trace verification unit 836 compares the start and end addresses of the trampolines stored in the database with the addresses analyzed by the trace analyzer 834 to detect an attempt to bypass the trampoline report through jumping in the middle of the trampoline.
  • the trace verifying unit 836 receives an address indicating a detour attempt, the trace verifying unit 836 generates an alarm through the alarm generating unit 842.
  • the report management unit 810 implements a protocol defined to follow the host system in order to determine the current state of the host system.
  • the key generation unit 822 prepares an arbitrary key for the keying register 814 to fetch the key when the trampoline start is notified through the trace manager 830.
  • the memory verification unit 826 accesses and reads the main memory of the host system through the memory access unit 828 to verify the event contents reported by the host system through the report register (for example, whether or not the ATBR is changed).
  • the report management FSM 820 controls other modules and generates an alarm through the alarm generator 824 when a malicious activity such as a fake report message is detected.
  • the report manager 810 may include registers as shown in FIG. 1.
  • Keying register 814 denies all write access and only allows read access.
  • the keying register 814 includes a value field that stores a key for each trampoline, and a verification field that indicates whether the key is available.
  • the report management FSM 820 sets a verification field to enable key use of the host system
  • the keying register 814 immediately fetches a new key from the key generator 822 and stores the key in the value field. If an available key is fetched by the host system, the keying register 814 clears the verification field to indicate that the key is not available.
  • the Ack register 816 operates almost the same as the keying register 814 except that a fixed value representing the ack is present in the value field.
  • the report register 818 does not allow any read access and passes it to the report management FSM 820 if there is a write access.
  • the report manager 810 waits for the start of the trampoline.
  • the report management FSM 820 configures the keying register 814 to make the key available, obtains the key from the key generator 822, and then returns the report register ( Wait for the report received via 818.
  • the report management FSM 820 controls the memory verification unit 826 to verify the page table contents, and through the Ack register 816 when the table contents of the virtual code area are correct. Provide a confirmation message.
  • FIG. 9 is a flowchart illustrating an embodiment of a hardware-based kernel code insertion attack detection method according to the present invention.
  • the attack detection apparatus locates the code blocks of the kernel related to mode conversion, ATBR address translation, PTI control, and the like, and replaces the identified code blocks with branch instructions for the trampoline ( S900).
  • the attack detection apparatus parses the received packet to grasp information such as an indirect branch destination address (S910).
  • the attack detection device receives a report of the mode change through the trampoline (S920).
  • An example of a specific method of reporting a mode conversion or the like is illustrated in FIGS. 3 and 7.
  • the attack detection device snoops traffic on the memory bus or the peripheral bus to detect malicious write attempts on the physical code region (S930).
  • the attack detection device uses the indirect branch destination address obtained by analyzing the packet received through the PTI and the mode conversion reported through the trampoline, and the attacker forcibly converts the processor into privileged mode outside the virtual code area to execute the code. Detect an attack to insert (S940). In addition, when an event such as ATBR address translation or control occurs, the attack detection device may be notified of the occurrence of the corresponding event through a trampoline to detect an attack through a malicious address change of an attacker (S940).
  • 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)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

하드웨어 기반의 커널 코드 삽입 공격 탐지 장치 및 그 방법이 개시된다. 장치는 호스트 시스템의 프로그램 트레이스 인터페이스(PTI)로부터 수신한 패킷을 파싱하여 간접 분기 목적지 주소를 파악하는 트레이스 관리부와, 트램폴린을 통해 모드 변환 등의 이벤트를 보고받는 보고 관리부와, 버스의 트래픽을 스누핑하여 메모리의 물리적 코드 영역에 대한 쓰기 시도를 검출하는 트래픽 관리부을 이용하여 삽임 공격을 탐지한다.

Description

하드웨어 기반의 커널 코드 삽입 공격 탐지 장치 및 그 방법
본 발명은 커널 코드에 대한 악성 코드 삽입 시도를 탐지하는 장치 및 그 방법에 관한 것으로서, 보다 상세하게는 공격 탐지 대상 시스템에 독립적인 하드웨어로 구현되어 대상 시스템의 커널 코드에 대한 쓰기 시도나 시스템이 커널 모드로 동작하는 동안에 발생하는 커널 코드 밖으로부터의 실행시도를 감지할 수 있는 장치 및 그 방법에 관한 것이다.
운영 체제 커널의 무결성을 보호하기 위하여 많은 보안 전문가들은 보안 모니터를 호스트 시스템에 대해 독립적으로 만들기 위해 노력하고 있다. 커널 무결성 모니터링에 대한 노력은 크게 두 가지 접근 방식으로 분류할 수 있다. 하나는 하드웨어 기반의 접근 방식이며 나머지 하나는 하이퍼바이저(hypervisor) 기반의 접근 방식이다.
하이퍼바이저 기반의 방식이 최근 인기를 얻고 있으나, 하이퍼바이저가 복잡해질수록 더욱 많은 소프트웨어 취약점을 가질 수 있다. 하이퍼바이저의 무결성을 보호하기 위해 추가적인 소프트웨어 레이어가 삽입될 수 있으나, 추가적인 소프트웨어 레이어 또한 새로운 취약점들을 발생시킬 수 있으므로 근본적인 해결책을 제공하지는 못한다.
커널 무결성 모니터링(kernel integrity monitoring)을 위한 기존 솔루션의 대부분은 커널이 사용하는 메모리에 대한 악의적인 쓰기를 탐지하는 방향으로 발전하여 왔다. 그러나 이에 못지않게 중요한 것은 커널에 대한 악성 코드 삽입 공격을 막는 것이다. 커널에 대한 많은 공격들이 공격자가 설계한 코드가 커널의 일부로 동작되도록 하는 방법으로 만들어지는데, 이와 같은 공격을 실현하는 가장 쉬운 방법이 코드 삽입이기 때문이다. 코드 삽입을 탐지하기 위한 방법으로 하이퍼바이저 기반의 접근 방법이나, 특정 프로세서가 제공하는 프로세서의 특수기능을 이용한 코드삽입탐지기술에 대한 연구들이 진행되고 있다. 그러나 이러한 접근 방법은 여전히 성능 문제를 크게 일으키거나, 앞서 언급한 보안 문제점이 있다.
본 발명이 이루고자 하는 기술적 과제는, 커널 코드 영역에 대한 쓰기 시도와 시스템이 커널모드로 동작하는 동안 발생하는 커널 코드 영역 밖으로부터 실행시도를 감지하여 커널 코드에 대한 악성 코드 삽입 시도를 탐지해 낼 수 있는 하드웨어 기반의 공격 탐지 장치 및 그 방법을 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 공격 탐지 장치의 일 예는, 호스트 시스템의 프로그램 트레이스 인터페이스(PTI)로부터 런타임 정보를 포함하는 패킷을 수신하고, 상기 패킷을 파싱하여 간접 분기 목적지 주소를 파악하는 트레이스 관리부; 호스트 시스템의 부트시 커널의 코드 블록들 중 주소변환 베이스 레지스터(ATBR) 변경, 모드 변환 또는 PTI 제어 레지스터 변경을 포함하는 이벤트와 관련 있는 코드 블록을 트램폴린에 대한 점프 명령으로 대체한 상태에서, 상기 이벤트 발생시 상기 트램폴린의 수행을 통해 이벤트를 보고받는 보고 관리부; 및 버스의 트래픽을 스누핑하여 메모리의 물리적 코드 영역에 대한 쓰기 시도를 검출하는 트래픽 관리부;를 포함한다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 공격 탐지 방법의 일 예는, 호스트 시스템의 프로그램 트레이스 인터페이스(PTI)로부터 런타임 정보를 포함하는 패킷을 수신하고, 상기 패킷을 파싱하여 간접 분기 목적지 주소를 파악하는 단계; 호스트 시스템의 부트시 커널의 코드 블록들 중 주소변환 베이스 레지스터(ATBR) 변경, 모드 변환 또는 PTI 제어 레지스터 변경을 포함하는 이벤트와 관련 있는 코드 블록을 트램폴린에 대한 점프 명령으로 대체한 상태에서, 상기 이벤트 발생시 상기 트램폴린의 수행을 통해 이벤트를 보고받는 단계; 및 버스의 트래픽을 스누핑하여 메모리의 물리적 코드 영역에 대한 쓰기 시도를 검출하는 단계;를 포함한다.
본 발명에 따르면, 타겟 시스템의 운영체제 커널보다 높은 권한을 가지는 소프트웨어 계층의 도움을 받지 않아도 되고, 기 존재하는 하드웨어 아키텍처를 새롭게 디자인하지 않고서도 커널 공격을 탐지할 수 있다.
도 1은 본 발명에 따른 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치의 일 실시 예의 구성을 도시한 도면,
도 2는 본 발명에 따른 모드 변환 추적 방법의 일 예를 도시한 도면,
도 3은 본 발명에 따른 ATBR 변경 등의 이벤트를 보고하는 방법의 일 예를 도시한 도면,
도 4는 본 발명에 따른 트램폴린의 일 예를 도시한 도면,
도 5는 본 발명에 따른 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치를 이용하여 재생 공격을 방어하는 방법의 일 예를 도시한 도면,
도 6은 본 발명에 따른 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치의 각 구성의 상호 의존성의 일 예를 도시한 도면,
도 7은 본 발명에 따른 이벤트 보고 방법의 다른 실시 예를 도시한 도면,
도 8은 본 발명에 따른 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치의 다른 실시 예를 도시한 도면, 그리고,
도 9는 본 발명에 따른 하드웨어 기반의 커널 코드 삽입 공격 탐지 방법의 일 실시 예의 흐름을 도시한 도면이다.
이하에서, 첨부된 도면들을 참조하여 본 발명에 따른 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치 및 그 방법에 대해 상세히 설명한다.
도 1은 본 발명에 따른 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치의 일 실시 예의 구성을 도시한 도면이다.
본 실시 예에서, 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치(이하, '공격 탐지 장치'라 함)(100)는 호스트 시스템(135)의 주소변환 베이스 레지스터(ATBR, Address Translation Base Register)의 올바른 값들을 미리 알고 있다고 가정한다. ATBR은 제1 레벨 페이지 테이블(또는 페이지 글로벌 디렉토리)의 기본 주소를 포함한다. 호스트 시스템(135)은 프로세서(140), 메모리(150) 및 주변기기(160) 등을 포함하는 일종의 컴퓨팅 장치로서 공격자가 커널 코드를 삽입하여 공격하려는 대상이다.
또한 호스트 시스템(135)의 커널 페이지 테이블들은 초기 부트(boot)시 가상 코드 영역과 물리 코드 영역을 올바르게 맵핑하고 있다고 가정한다. 여기서, 가상 코드 영역은 커널 코드를 저장하고 있는 가상 메모리 영역을 의미하고, 물리 코드 영역은 커널 코드를 저장하고 있는 물리 메모리 영역을 의미한다.
또한 공격 탐지 장치(100)는 호스트 시스템(135)이 부팅될 때, 특권 모드(privileged-mode)와 사용자 모드(user-mode) 사이의 모드 변환을 일으키는 커널의 코드 블록, 사용자 모드에서 특권 모드로 진입할 때 프로세서에 의해 수행되는 코드 블록(즉, 게이트웨이 코드 블록), ATBR 변경과 관련된 코드 블록, 게이트웨이 코드 블록의 주소를 변경하는 코드 블록, 프로그램 트레이스 인터페이스(PTI, Program Trace Interface)를 재구성하는 코드 블록 등의 위치를 파악한다. 공격 탐지 장치(100)는 파악한 각 코드 블록을 적당한 코드 스니핏(snippet)(이하, '트램폴린(trampolines)'이라 함)에 대한 분기(jump) 명령으로 대체한다. 여기서 각 코드블록에 대한 트램폴린은 대응되는 원래의 코드 블록을 수행하고 원래의 코드 블록의 수행에 따른 모드 변환이나 ATBR 주소 변경, PTI 제어 레지스터의 변경 등의 이벤트를 공격 탐지 장치(100)에게 보고하는 기능을 포함한다. 이벤트를 보고하는 트램폴린의 일 예는 도 4에 도시되어 있다.
각 코드 블록의 위치는 종래의 다양한 방법을 통해 파악될 수 있다. 예를 들어, 호스트 시스템(135)이 사용자 모드에서 특권 모드로 진입할 때, 프로세서(140)는 게이트웨이 코드 블록을 가리키는 지정 주소(designated addresse)를 파악한다. 대부분의 프로세서는 지정 주소를 계산하기 위하여 특별 레지스터(special register)를 포함한다. 따라서 공격 탐지 장치는 호스트 시스템(135)의 부트시, 특별 레지스터의 값들을 이용하여 게이트웨이 코드 블록의 위치를 파악할 수 있다.
도 1을 참조하면, 공격 탐지 장치(100)는 호스트 시스템(135)의 각 하드웨어와 연결되어 있으며, 트레이스 관리부(110), 보고 관리부(120), 트래픽 관리부(130)를 포함한다.
트레이스 관리부(110)는 프로세서(140)의 PTI(142)와 연결되며, PTI(142)로부터 다양한 런타임 정보를 포함하는 데이터 패킷을 수신한다. 여기서 PTI(142)는 디버깅 등의 목적을 위하여 프로세서에 구현된 외부 인터페이스로서, 디버깅 인터페이스라고도 한다. PTI(142)는 프로세서의 종류에 따라 다양한 이름으로 불려질 수 있으며, 일 예로 '인텔 x86 프로세서'에서는 '프로세서 트레이스(processor tracer)'로 불리며, 'ARM 프로세서'의 경우 'Program Trace Macrocell(PTM)'로 불린다. 따라서 본 실시 예에서 PTI(142)는 프로세서 내 다양한 정보를 외부로 출력할 수 있는 모든 종류의 인터페이스를 나타내는 것으로 정의한다.
트레이스 관리부(110)는 악의적인 삽입 코드가 특권 모드(privileged-mode)에서 수행되는지를 파악하기 위하여, 수신한 패킷을 파싱하여 간접 분기 목적지 주소(indirect branch target addressess)를 파악한다. 아래에서 살펴보겠지만, 보고 관리부(120)는 ATBR 변경이나 모드 변환 등의 이벤트가 발생하는 경우 트램폴린을 통해 ATBR 변경이나 모드 변환 등의 이벤트를 보고받는다. 따라서 트레이스 관리부(110)는 PTI(142)를 통해 파악한 간접 분기 목적지 주소와 보고 관리부(120)를 통해 파악된 ATBR 변경이나 모드 변환 등의 이벤트를 기초로, 공격자가 가상 코드 영역 밖에서 프로세서(140)를 강제적으로 특권 모드로 변환하려는 시도를 검출할 수 있다.
예를 들어, 트레이스 관리부(110)는 간접 분기 목적지 주소 리스트와 리스트 내 각 주소가 어떤 모드가 관련되어 있는지 호스트 시스템(135)의 초기 부팅시 알고 있다고 할 때, PTI를 통해 파악된 간접 분기 목적지 주소와 관련된 모드가 올바른지 보고 관리부(120)를 통해 보고받은 모드를 통해 파악하여 공격 여부를 탐지하고 알람을 발생한다.
보고 관리부(120)는 호스트 시스템(135)의 주변기기 버스(180)와 연결되며, 키잉(keying) 레지스터(122), 보고(notification) 레지스터(124), Ack 레지스터(126) 등을 포함한다. 보고 관리부(120)는 주변기기 버스와 두 개의 연결 관계(192,194)를 가질 수 있다. 제1 연결관계(194)를 통해, 프로세서(140)는 트램폴린이 수행되는 동안 ATBR 변경이나 모드 변환, PTI 제어 레지스터 변경 등의 이벤트를 보고 관리부(120)에 보고한다. 제2 연결관계(192)를 통해, 보고 관리부(120)는 호스트 시스템(135)의 메인 메모리(150)에 접근하고, 프로세서(140)의 보고를 검증하기 위하여 메모리(150)의 컨텐츠를 분석한다.
보다 구체적으로, 프로세서(140)가 커널 명령을 수행하다가 트램폴린에 대한 분기(jump) 명령을 만나면 트램폴린으로 분기하며, 트램폴린 수행을 통해 모드 변환이나 ATBR의 주소 변경, PTI 제어 레지스터 변경 등의 이벤트를 보고 관리부(120)에게 보고한다. 보고 관리부(120)가 각 레지스터(122,124,126)를 통해 프로세서(140)로부터 이벤트를 보고받는 방법에 다양한 실시 예는 도 3 및 도 7에 도시되어 있다. 예를 들어, ATBR의 주소 변경 등은 도 3의 프로토콜을 이용하여 보고하고, 모드 변환 등은 도 7의 프로토콜을 이용하여 보고 할 수 있다.
트래픽 관리부(130)는 호스트 시스템(140)의 메모리 버스(170) 및 주변기기 버스(180)와 연결(196,198,199)되며, 각 버스(170,180)의 트래픽을 분석하여 메인 메모리(150)에 대한 쓰기(write operation), PTI(142)의 제어 레지스터에 대한 쓰기 동작 등을 감시한다. 보다 구체적으로, 트래픽 관리부(130)는 메인 메모리(150)와 연결된 각 버스(170,180)의 트래픽을 스누핑(snooping)하여 프로세서(140) 또는 주변 기기(160)에 의한 메인 메모리(150)의 쓰기 동작을 파악함으로써 ATBR이 가리키고 있는 제1 레벨 페이지 테이블(페이지 글로벌 디렉토리) 등을 파악하거나, 주변기기 버스(180)의 트래픽을 스누핑하여 메모리 맵 제어 레지스터(memory-mapped control register)를 통해 PTI(142)를 제어하려는 모든 접근을 파악한다.
예를 들어, 공격자가 물리 코드 영역에 코드를 삽입하려고 시도한다고 가정하자. 트래픽 관리부(130)는 주변기기 버스(180)와의 연결 관계(198,199)를 통해 메인 메모리(150)에 대한 모든 쓰기 트래픽을 스누핑(snooping)하고, 물리 코드 영역에 쓰기 시도가 있으면 알람을 생성한다. 트래픽 관리부(130)는 프로세서(140)나 주변기기(160)로부터의 쓰기 트래픽을 계속하여 스누핑하므로, 직접 메모리 접근(Direct Memory Access)를 통한 쓰기 시도 등을 검출할 수 있다.
또 다른 예로, 트래픽 관리부(130)는 커널 불변 영역의 주소를 미리 가지고 있으며, 버스(170,180)의 트래픽을 스누핑하여 커널 불변 영역에 대한 쓰기 시도를 감지하면 알람을 생성할 수 있다. 여기서 커널 불변 영역이라고 함은 커널 코드 영역, 시스템 콜 테이블, 인터럽트 설명자 테이블(IDT, Interrupt Descriptor table) 등을 가리킨다. 커널 불변 영역에 대한 주소는 호스트 시스템(135)의 부트 시에 다양한 방법을 통해 파악될 수 있다.
또 다른 예로, 보고관리부(120)에 의해 ATBR 변경이 파악된 경우에, 트래픽 관리부(130)는 전체 ATBR의 페이지 테이블에 대한 패킷을 스누핑하는 것이 아니라, 변경된 ATBR을 기초로 현재 사용 중인 제1 레벨 페이지 테이블(또는 페이지 글로벌 디렉토리)을 파악하고 파악된 부분에 대한 패킷을 스누핑하여 감시한다.
도 2는 본 발명에 따른 모드 변환을 추적하는 방법의 일 예를 도시한 도면이다.
도 1 및 도 2를 함께 참조하면, 프로세서(140)의 PTI(142)는 직접 또는 간접 분기 목적지 주소를 순차적으로 트레이스 관리부(110)에 제공하고 있으며, 트레이스 관리부(110)는 PTI(142)로부터 각 분기 목적지 주소 정보를 수신하여 파악할 수 있다. 또한 모드 변환시, 프로세서(140)는 트램폴린으로 분기되어 트램폴린을 수행하므로, 보고 관리부(120)는 프로세서(140)로부터 모드 변환을 보고받을 수 있다.
예를 들어, 시간 (a)(200)의 분기 목적지 주소(200)와 연관된 모드는 사용자 모드이고, 그 다음 분기 목적지 주소와 연관된 모드는 특권 모드로서 모드 변환이 발생하므로, 프로세서(140)는 특권 모드에서 트램폴린의 수행을 통해 모드가 사용자 모드에서 특권 모드로 변환되었음을 보고 관리부(120)에 보고한다.
또 다른 예로, 시간 (b)의 분기 목적지 주소(210)와 연관된 모드는 특권 모드이고, 그 다음 분기 목적기 주소와 연관된 모드는 사용자 모드로서 모드 변환이 발생하므로, 프로세서(140)는 특권 모드에서 트램폴린의 수행을 통해 모드가 특권 모드에서 사용자 모드로 변환되었음을 보고 관리부(120)에 보고한다.
도 3은 본 발명에 따른 ATBR 변경 등의 이벤트를 보고하는 방법의 일 예를 도시한 도면이다.
도 1 및 도 3을 함께 참조하면, 호스트 시스템(135)은 ATBR의 변경이나 모드 변환 등이 발생함에 따라 트램폴린으로 분기하면, PTI를 통해 트램폴린 시작을 공격 탐지 장치(100)에게 알려준다(S320). 공격 탐지 장치(100)는 PTI(142)를 통해 호스트 시스템(135)으로부터 트램폴린 시작을 인지하면, 키잉 레지스터(122)에 임의의 키(0이 아닌 값으로 구성)를 생성하여 저장하고, 호스트 시스템(135)은 트램폴린의 수행을 통해 키잉 레지스터(122)를 읽어 키를 획득한다(S310). 키잉 레지스터(122)는 2회 이상 키를 읽어가는 것을 방지하기 위하여 호스트 시스템이 키잉 레지스터(122)를 한 번 읽으면, 리셋한다.
호스트 시스템(135)은 키잉 레지스터(122)로부터 키를 얻으면, 공격 탐지 장치(100)의 보고 레지스터(124)에 이벤트 내용(예를 들어, 모드 변환, ATBR 변환, PTI 제어 레지스터 변경 등)을 기록한다(S330). 공격 탐지 장치는 보고 레지스터(124)의 내용을 읽어 호스트 시스템(135)에서 발생한 이벤트를 확인할 수 있다.
공격자의 우회(bypass) 공격이나 재생(replay) 공격을 차단하기 위하여, 호스트시스템(135)은 이벤트 내용과 함께 이전 획득한 키를 함께 전송할 수 있다(S320). 즉 호스트 시스템(135)은 키와 이벤트 내용을 순차적으로 공격 탐지 장치(100)에 전송한다(S320,S330).
공격 탐지 장치(100)는 보고 레지스터(124)에 새롭게 저장된 보고 내용을 읽은 후, 검증이 필요한 경우 메인 메모리(150) 등에 접근하여 보고 내용을 검증한다. 예를 들어, ATBR 변경 보고인 경우에, 공격 탐지 장치(100)는 새로운 ATBR이 가리키고 있는 메모리 내용으로부터 해당 변경의 악성 여부를 판단한다. PTI 제어 레지스터의 변경 보고인 경우에, 공격 탐지 장치(100)는 메인 메모리에 저장된 PTI 제어 레지스터를 읽고, 호스트 시스템의 부트시 확보한 PTI 제어 레지스터와 비교하여 변경 여부를 검증한다. 모드 변환 보고인 경우에는 별도의 검증이 필요하지 않을 수 있다. 보고 내용이 검증된 후, 공격 탐지 장치(100)는 Ack 레지스터(126)에 확인 값을 기록하고, 호스트 시스템(135)이 Ack 레지스터(126)를 읽어 확인 값을 확인하면(S340), 이벤트 보고를 위한 세션이 종료된다.
도 4는 본 발명에 따른 주소 변경 이벤트를 보고하기 위한 트램폴린의 일 예를 도시한 도면이다.
도 4를 참조하면, ARM 시스템의 VBAR(vector base address register)과 같은 특별 레지스터를 변경하는 이벤트를 공격 탐지 장치에게 보고하기 위한 트램폴린의 일 예가 도시되어 있다. VBAR의 값은 ARM 시스템에서 게이트웨이 코드 블록의 위치를 파악하는데 사용된다.
트램폴린은 먼저 예외상황(exception)이나 인터럽트(interupt)를 비활성화상태로 변경한다(라인 2). 트램폴린은 간접 분기(indirect branch) 명령을 포함하지 않으며, 대신에 공격 탐지 장치로부터 키와 확인(ack)을 기다리기 위한 내부 루프를 구현하기 위하여 두 개의 직접 분기(direct branche)를 포함한다. 따라서 트램폴린의 10~11 라인의 명령어 사이에 어떤 다른 명령어가 실행되는 것을 막을 수 있다.
공격 탐지 장치의 트레이스 관리부(110)는 PTI(142)로부터 수신한 분기 목적지 주소(jump target address)(즉, 11라인)와 공격 탐지 장치(100)가 시작할 때 생성된 올바른 분기 목적지 주소(즉, 트램폴린의 시작 주소, 라인 1)들의 리스트를 비교함으로써 공격을 알아차릴 수 있다.
도 5는 본 발명에 따른 공격 탐지 장치를 이용하여 재생 공격을 방어하는 방법의 일 예를 도시한 도면이다.
도 1 및 도 5를 참조하면, 프로세서(140)가 트램폴린으로 점핑하여 공격 탐지 장치(100)에게 모드 변환 등의 이벤트 보고를 시작하려고 할 때, 공격자는 가짜 이벤트 보고(S500)를 트램폴린 시작(S510)과 진짜 이벤트 보고(S540) 사이에 공격 탐지 장치(100)로 전송하려고 시도할 수 있다.
이 경우, 공격 탐지 장치(100)는 트램폴린 시작 보고(S510) 후 이벤트 보고가 키를 수반하였는지 여부를 기초로 진짜 이벤트 보고(S540)와 가짜 이벤트 보고(S500)를 구분할 수 있다. 진짜 보고 메시지가 도달하고 확인 단계(S550)에 의해 세션이 종료되면 공격자는 가짜 보고 메시지를 보고 레지스터(124)에 기록할 수 없다.
도 6은 본 발명에 따른 공격 탐지 장치의 각 구성의 상호 의존성의 일 예를 도시한 도면이다.
도 6을 참조하면, 공격 탐지 장치의 대부분의 구성은 다른 구성 요소 또는 호스트 시스템의 상태 등에 의존한다. 그러나 두 개의 구성 요소, 즉 쓰기 모니터링(600)과 보안 부트(secure boot)(610)는 의존성이 없다.
점선으로 표시된 부분과 같이, 보안 부트(610)는 호스트 시스템이 초기에 삽입-프리(injection-free), ATRA(Address Translation Rediration Attack)-프리 상태로 구현되는 것을 보장한다. 실선은 공격자가 공격 탐지 장치의 특정 구성이나 상태를 무효화시키려면 극복하여야 하는 부분을 나타낸다. 예를 들어, 공격자가 ATBR이나 커널의 페이지 테이블을 변경하여 ATRA을 성공적으로 수행하지 않는 한, 대상 시스템은 ATRA-프리 상태이다. 다시 말해, 공격자는 ATBR을 변경하기 위하여 ATBR 트랙킹을 무효화시키거나 페이지 테이블 컨텐츠를 변경하기 위하여 쓰기 모니터링을 회피하여야 하므로, 공격 탐지 장치는 공격자의 공격을 용이하게 탐지할 수 있다.
도 7은 본 발명에 따른 모드 변환 등의 이벤트를 보고하는 방법의 다른 실시 예를 도시한 도면이다.
도 7을 참조하면, 도 3과 같이 호스트 시스템(135)은 모드 변환 등에 따라 트램폴린으로 분기하면 트램폴린 시작을 공격 탐지 장치(100)에게 알리면서(S710) 이벤트 보고 과정을 시작한다. 그러나 호스트 시스템(135)은 트램폴린의 수행 동안 키를 획득하는 것이 아니라 이전 트램폴린의 수행 과정에서에서 획득한 키(S700)를 이용하여 이벤트를 보고한다(S720,S730). 다시 말해, 호스트 시스템(135)은 이전 트램폴린 수행 과정에서 획득한 키를 현재의 이벤트 보고를 위한 키로 활용하여 공격 탐지 장치에게 전송한다(S720).
호스트 시스템(135)은 키와 함께 모드 변환 등의 이벤트를 보고 레지스터에 기록할 때(S720,S730), 다음 이벤트 보고에 사용할 키를 미리 수신하고(S740), 별도의 확인(ack) 과정 없이 보고 과정을 종료한다(S750).
도 8은 본 발명에 따른 공격 탐지 장치의 다른 일 예를 도시한 도면이다.
도 8을 참조하면, 공격 탐지 장치는 트래픽 관리부(800), 보고 관리부(810), 트레이스 관리부(830), 시스템 관리부(850)를 포함한다. 트래픽 관리부(800)는 스누퍼(802), 제1 검증부(804), 제1 알람 생성부(806)를 포함하고, 보고 관리부(810)는 보고 전달부(812), 키 제공부(814), 응답 제공부(816), 보고 수신부(818), 보고 관리 FSM(Finite State Machine)(820), 키 생성부(822), 제2 알람 생성부(824), 메모리 검증부(826), 메모리 접근부(828)를 포함하고, 트레이스 관리부(830)는 트레이스 수신부(832), 트레이스 분석부(834), 트레이스 검증부(836), 트레이 관리 FSM(838), 알람 임시 저장부(840), 알람 생성부(842)를 포함한다.
먼저 시스템 관리부(850)는 자신의 프로세서와 메모리를 포함하며 트래픽 관리부(800), 보고 관리부(810), 트레이스 관리부(830) 등을 초기화하고 제어한다. 시스템 관리부(850)는 트래픽 관리부(800), 보고 관리부(810), 트레이스 관리부(830)의 각 알람 생성부(806,824,842)를 체크하여 커널 코드 삽입 공격 여부를 파악한다. 알람 생성부들(806,824,842) 중 어느 하나가 알람을 생성한 경우에, 시스템 관리부(850)는 시스템 관리자에게 알람이 발생했음을 알린다.
다음으로 트래픽 관리부(800)에 대해 살펴본다.
스누퍼(802)는 도 1과 같이 메모리 버스와 주변기기 버스의 트래픽을 스누핑하여 검증부(804)로 전달한다. 검증부(804)는 스누퍼(802)로부터 전달받은 트래픽이 커널 코드 변조와 같은 코드 삽입 공격의 징후인지를 판별하고 그 결과를 알람 생성부(806)로 전달한다. 검증부(804)는 트램폴린을 포함하는 물리 코드 영역, 가상 코드 영역을 맵핑하는 메모리 맵 레지스터와 페이지 테이블에 대한 쓰기(wirte) 시도를 공격 징후로 판단할 수 있다. 알람 생성부(806)는 검증부(804)에 의해 코드 삽입 공격 징후로 판단되면, 알람을 생성하여 출력한다.
다음으로 트레이스 관리부(830)에 대해 살펴본다.
트레이스 수신부(832)는 호스트 시스템의 PTI로부터 데이터 패킷을 수신한다. 트레이스 분석부(834)는 전달받은 패킷을 의미있는 정보로 가공한 후 트레이스 검증부(836)로 보낸다. 예를 들어, 트레이스 분석부(834)는 트레이스 수신부를 통해 수신한 패킷을 파싱하여 간접 분기 목적지 주소를 파악한다.
트레이스 검증부(836)는 트레이스 분석부(834)로부터 전달받은 정보를 이용하여 커널 코드 삽입 공격 시도 여부를 판별하고, 호스트 시스템의 상태에 따라 알람 임시 저장부(840) 또는 알람 생성부(842)에게 판별 결과를 전달한다.
예를 들어, 트레이스 검증부(836)는 트레이스 분석부(832)에 의해 파악된 간접 분기 목적지 주소들 중 사용자 모드에서 발생한 간접분기의 주소들을 제거한다. 모드 정보는 트레이스 관리 FSM(838)이 보고 관리부(810)로부터 수신하여 트레이스 검증부(836)에 제공할 수 있다. 트레이스 검증부(836)는 특권 모드와 관련 있는 주소 또는 어떤 모드와도 관련없는 주소가 있다면, 이를 공격 탐지 장치의 초기 구동시 파악한 호스트 시스템의 가상 코드 영역에 대한 주소 정보 등과 비교한다. 그리고 트레이스 검증부(836)는 주소가 가상 코드 영역에 있는 것이 아니라면 알람 임시 저장부(840)로 전달하고, 그 외에는 알람 생성부(842)로 전달한다.
트레이스 관리 FSM(838)은 보고 관리부로부터 모드 변환 등의 정보를 수신하면, 알람 임시 저장부(840)에 저장된 정보를 분석하여 알람 생성부(842)로 전달한다. 트레이스 검증(836)부는 데이터베이스에 저장되어 있는 트램폴린의 시작 및 끝 주소와 트레이스 분석부(834)에서 분석된 주소를 비교하여, 트램폴린의 중간에서 점핑을 통해 트램폴린 보고를 우회하는 시도를 검출한다. 트레이스 검증부(836)는 우회 시도를 나타내는 주소를 수신하면, 알람 생성부(842)를 통해 알람을 발생한다.
마지막으로 보고 관리부(810)에 대해 살펴본다.
보고 관리부(810)는 호스트 시스템의 현재 상태를 파악하기 위하여 호스트 시스템이 따르도록 정의된 프로토콜을 구현하고 있다. 키 생성부(822)는 트레이스 관리부(830)를 통해 트램폴린 시작이 통보되면, 키잉 레지스터(814)가 키를 페치할 수 있도록 임의 키를 준비한다. 메모리 검증부(826)는 호스트 시스템이 보고 레지스터를 통해 보고한 이벤트 내용을 검증(예를 들어, ATBR의 변경 여부)하기 위하여 호스트 시스템의 메인 메모리를 메모리 접근부(828)를 통해 접근하여 읽는다. 보고 관리 FSM(820)은 다른 모듈들을 제어하고 가짜 보고 메시지와 같은 악의적 행위가 검출되면 알람 생성부(824)를 통해 알람을 생성한다.
보고 관리부(810)는 도 1과 같은 레지스터들을 포함할 수 있다. 키잉 레지스터(814)는 모든 쓰기 접근을 거부하고 오직 읽기 접근만을 허락한다. 예를 들어, 키잉 레지스터(814)는 각 트램폴린을 위한 키를 저장하는 값 필드, 키가 이용가능한지 여부를 나타내는 검증 필드를 포함한다. 보고 관리 FSM(820)이 호스트 시스템의 키 사용이 가능하도록 검증 필드를 설정하면, 키잉 레지스터(814)는 즉시 키 생성부(822)로부터 새로운 키를 페치하여 값 필드에 키를 저장한다. 이용 가능한 키가 호스트 시스템에 의해 페치되면, 키잉 레지스터(814)는 키가 이용 불가능함을 나타내기 위하여 검증 필드를 삭제(clear)한다. Ack 레지스터(816)는 확인(ack)을 나타내는 고정 값이 값 필드에 존재한다는 점을 제외하면, 키잉 레지스터(814)와 거의 동일하게 작동한다. 보고 레지스터(818)는 어떠한 읽기 접근도 허락하지 않으며, 쓰기 접근이 있으면 이를 보고 관리 FSM(820)으로 전달한다.
예를 들어, ATBR 변경 보고를 처리하기 위하여, 보고 관리부(810)는 트램폴린의 시작을 기다린다. 트레이스 관리부(830)가 PTI로부터 트램폴린 시작을 보고받으면, 보고 관리 FSM(820)은 키가 이용 가능하도록 키잉 레지스터(814)를 구성하고, 키 생성부(822)로부터 키를 획득한 후 보고 레지스터(818)를 통해 수신되는 보고를 기다린다. 이벤트 보고가 키를 수반하여 수신되면, 보고 관리 FSM(820)은 메모리 검증부(826)가 페이지 테이블 컨텐츠를 검증하도록 제어하고, 가상 코드 영역의 테이블 컨텐츠가 올바른 경우에 Ack 레지스터(816)를 통해 확인 메시지를 제공한다.
도 9는 본 발명에 따른 하드웨어 기반의 커널 코드 삽입 공격 탐지 방법의 일 실시 예의 흐름을 도시한 도면이다.
도 9를 참조하면, 공격 탐지 장치는 호스트 시스템의 부트 동안에, 모드 변환, ATBR 주소 변환, PTI 제어 등과 관련된 커널의 코드 블록들의 위치를 파악하고, 파악한 코드 블록들을 트램폴린에 대한 분기 명령으로 대체된다(S900).
공격 탐지 장치는 호스트 시스템의 PTI를 통해 런타임 정보를 포함하는 패킷을 수신하면, 수신한 패킷을 파싱하여 간접 분기 목적지 주소 등의 정보를 파악한다(S910). 이와 동시에 공격 탐지 장치는 호스트 시스템의 모드 변환 등이 발생하면 트램폴린을 통해 모드 변환 등을 보고받는다(S920). 모드 변환 등을 보고받는 구체적인 방법의 일 예는 도 3 및 도 7에 도시되어 있다. 또한 공격 탐지 장치는 메모리 버스나 주변기기 버스의 트래픽을 스누핑하여 물리 코드 영역에 대한 악의적 쓰기 시도 등을 검출한다(S930).
공격 탐지 장치는 PTI를 통해 수신한 패킷을 분석하여 파악한 간접 분기 목적지 주소와 트램폴린을 통해 보고받은 모드 변환 등을 정보를 이용하여, 공격자가 가상 코드 영역 밖에서 프로세서 등을 특권 모드로 강제 변환하여 코드를 삽입하는 공격 등을 탐지한다(S940). 또한 공격 탐지 장치는 ATBR 주소 변환이나 제어 등의 이벤트가 발생하면 트램폴린을 통해 해당 이벤트의 발생 사실을 통지받아 공격자의 악의적인 주소 변경 등을 통한 공격을 탐지할 수 있다(S940).
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 다양한 형태의 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (9)

  1. 호스트 시스템의 프로그램 트레이스 인터페이스(PTI)로부터 런타임 정보를 포함하는 패킷을 수신하고, 상기 패킷을 파싱하여 간접 분기 목적지 주소를 파악하는 트레이스 관리부;
    호스트 시스템의 부트시 커널의 코드 블록들 중 주소변환 베이스 레지스터(ATBR) 변경, 모드 변환 또는 PTI 제어 레지스터 변경을 포함하는 이벤트와 관련 있는 코드 블록을 트램폴린에 대한 점프 명령으로 대체한 상태에서, 상기 이벤트 발생시 상기 트램폴린의 수행을 통해 이벤트를 보고받는 보고 관리부; 및
    버스의 트래픽을 스누핑하여 메모리의 물리적 코드 영역에 대한 쓰기 시도를 검출하는 트래픽 관리부;를 포함하는 것을 특징으로 하는 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치.
  2. 제 1항에 있어서, 상기 트레이스 관리부는,
    상기 보고 관리부에서 보고받은 이벤트를 기초로 상기 간접 분기 목적지 주소와 관련된 모드가 올바른지 파악하여 공격 여부를 탐지하는 것을 특징으로 하는 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치.
  3. 제 1항에 있어서,
    상기 트레이스 관리부는 상기 PTI로부터 트램폴린의 시작을 통보받고,
    상기 보고 관리부는 상기 트레이스 관리부에 의해 트램폴린의 시작을 통보받으면 키를 생성하여 상기 호스트 시스템으로 제공하고, 상기 호스트 시스템으로부터 키와 모드 변환 정보 또는 주소변환 베이스 레지스터(ATBR) 변경 정보를 수신하는 것을 특징으로 하는 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치.
  4. 제 3항에 있어서,
    상기 보고 관리부는, 키잉 레지스터, 보고 레지스터 및 Ack 레지스터를 포함하고,
    상기 보고 관리부는 상기 트레이스 관리부에 의해 트램폴린의 시작을 통보받으면 키를 생성하여 상기 키잉 레지스터에 저장하고, 상기 호스트 시스템이 상기 키잉 레지스터를 한 번 읽으면 상기 키잉 레지스터를 리셋하고, 상기 호스트 시스템이 상기 보고 레지스터에 모드 변환 정보 또는 주소변환 베이스 레지스터(ATBR) 변경 정보를 기록하면 상기 보고 레지스터를 읽어 모드 변환 정보를 파악하는 것을 특징으로 하는 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치.
  5. 제 1항에 있어서, 상기 트래픽 관리부는,
    버스의 트래픽을 스누핑하여 불변코드영역, ATBR의 제1 레벨 페이지 테이블 또는 PTI에 대한 접근을 감시하는 것을 특징으로 하는 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치.
  6. 호스트 시스템의 프로그램 트레이스 인터페이스(PTI)로부터 런타임 정보를 포함하는 패킷을 수신하고, 상기 패킷을 파싱하여 간접 분기 목적지 주소를 파악하는 단계;
    호스트 시스템의 부트시 커널의 코드 블록들 중 주소변환 베이스 레지스터(ATBR) 변경, 모드 변환 또는 PTI 제어 레지스터 변경을 포함하는 이벤트와 관련 있는 코드 블록을 트램폴린에 대한 점프 명령으로 대체한 상태에서, 상기 이벤트 발생시 상기 트램폴린의 수행을 통해 이벤트를 보고받는 단계; 및
    버스의 트래픽을 스누핑하여 메모리의 물리적 코드 영역에 대한 쓰기 시도를 검출하는 단계;를 포함하는 것을 특징으로 하는 하드웨어 기반의 커널 코드 삽입 공격 탐지 방법.
  7. 제 6항에 있어서,
    상기 보고받은 이벤트를 기초로 상기 간접 분기 목적지 주소와 관련된 모드가 올바른지 파악하여 공격 여부를 탐지하는 단계;를 더 포함하는 것을 특징으로 하는 하드웨어 기반의 커널 코드 삽입 공격 탐지 방법.
  8. 제 6항에 있어서,
    상기 PTI로부터 트램폴린의 시작을 통보받는 단계;
    키를 생성하여 상기 호스트 시스템으로 제공하는 단계;
    상기 호스트 시스템으로부터 키와 이벤트 정보를 순차적으로 수신하는 단계;를 더 포함하는 것을 특징으로 하는 하드웨어 기반의 커널 코드 삽입 공격 탐지 방법.
  9. 제 6항 내지 제 8항 중 어느 한 항에 기재된 방법을 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
PCT/KR2016/004318 2015-06-12 2016-04-26 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치 및 그 방법 Ceased WO2016200045A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
SG11201610083TA SG11201610083TA (en) 2015-06-12 2016-04-26 Hardware-based kernel code insertion attack detecting device and method therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2015-0083669 2015-06-12
KR1020150083669A KR101658641B1 (ko) 2015-06-12 2015-06-12 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치 및 그 방법

Publications (1)

Publication Number Publication Date
WO2016200045A1 true WO2016200045A1 (ko) 2016-12-15

Family

ID=57102348

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/004318 Ceased WO2016200045A1 (ko) 2015-06-12 2016-04-26 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치 및 그 방법

Country Status (3)

Country Link
KR (1) KR101658641B1 (ko)
SG (1) SG11201610083TA (ko)
WO (1) WO2016200045A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112199669A (zh) * 2020-09-25 2021-01-08 杭州安恒信息技术股份有限公司 一种检测rop攻击的方法和装置
CN115955273A (zh) * 2022-11-15 2023-04-11 航天新长征大道科技有限公司 一种光通信总线监听记录板卡

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102494167B1 (ko) * 2015-11-25 2023-02-01 삼성전자주식회사 메모리의 커널영역을 보호하기 위한 전자장치 및 방법
KR101851330B1 (ko) 2016-10-11 2018-04-23 서울대학교산학협력단 코드 재사용 공격 탐지 장치 및 그 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007189661A (ja) * 2006-01-13 2007-07-26 Samsung Electronics Co Ltd QoSを提供するワイブロ端末及びワイブロネットワークにおけるQoS提供方法
KR101240311B1 (ko) * 2012-01-09 2013-03-06 주식회사 잉카인터넷 리눅스 기반 네트워크 패킷 침입 탐지 시스템 및 방법
KR101265099B1 (ko) * 2011-06-15 2013-05-20 주식회사 터보테크 소프트웨어 보안 처리방법 및 기록매체
KR20130142135A (ko) * 2010-10-20 2013-12-27 어드밴스드 마이크로 디바이시즈, 인코포레이티드 민감한 코드와 데이터를 보호하는 아키텍처를 포함하는 방법 및 장치
KR101358815B1 (ko) * 2013-06-04 2014-02-11 서울대학교산학협력단 스누프 기반의 커널 무결성 감시 장치 및 그 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100745640B1 (ko) 2005-08-11 2007-08-02 주식회사 웨어플러스 커널 메모리를 보호하는 방법 및 그 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007189661A (ja) * 2006-01-13 2007-07-26 Samsung Electronics Co Ltd QoSを提供するワイブロ端末及びワイブロネットワークにおけるQoS提供方法
KR20130142135A (ko) * 2010-10-20 2013-12-27 어드밴스드 마이크로 디바이시즈, 인코포레이티드 민감한 코드와 데이터를 보호하는 아키텍처를 포함하는 방법 및 장치
KR101265099B1 (ko) * 2011-06-15 2013-05-20 주식회사 터보테크 소프트웨어 보안 처리방법 및 기록매체
KR101240311B1 (ko) * 2012-01-09 2013-03-06 주식회사 잉카인터넷 리눅스 기반 네트워크 패킷 침입 탐지 시스템 및 방법
KR101358815B1 (ko) * 2013-06-04 2014-02-11 서울대학교산학협력단 스누프 기반의 커널 무결성 감시 장치 및 그 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112199669A (zh) * 2020-09-25 2021-01-08 杭州安恒信息技术股份有限公司 一种检测rop攻击的方法和装置
CN112199669B (zh) * 2020-09-25 2022-05-17 杭州安恒信息技术股份有限公司 一种检测rop攻击的方法和装置
CN115955273A (zh) * 2022-11-15 2023-04-11 航天新长征大道科技有限公司 一种光通信总线监听记录板卡

Also Published As

Publication number Publication date
KR101658641B1 (ko) 2016-09-22
SG11201610083TA (en) 2017-01-27

Similar Documents

Publication Publication Date Title
RU2691187C1 (ru) Система и способы аудита виртуальной машины
CN102521537B (zh) 基于虚拟机监控器的隐藏进程检测方法和装置
US8955104B2 (en) Method and system for monitoring system memory integrity
US9270697B2 (en) Hardware-assisted integrity monitor
US8732824B2 (en) Method and system for monitoring integrity of running computer system
WO2013169059A1 (ko) 웹 서비스 모니터링 시스템 및 방법
CN103077351B (zh) 虚拟机系统的反检测系统
WO2018182126A1 (ko) 안전 소프트웨어 인증 시스템 및 방법
US20160232354A1 (en) System memory integrity monitoring
Prakash et al. Enforcing system-wide control flow integrity for exploit detection and diagnosis
Mirzamohammadi et al. Ditio: Trustworthy auditing of sensor activities in mobile & iot devices
WO2016200045A1 (ko) 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치 및 그 방법
KR20200114487A (ko) 취약점 진단방법 및 이를 위한 진단장치
CN106909835B (zh) 一种基于cpu时空隔离机制实现内核完整性度量的方法
WO2019039730A1 (ko) 랜섬웨어 방지 장치 및 방법
Röckl et al. TeeFilter: High-assurance network filtering engine for high-end IoT and edge devices based on TEEs
CN107688481B (zh) 一种支持多节点的kvm虚拟机隐藏进程检测系统
WO2016190485A1 (ko) 데이터 무단 엑세스 차단 방법 및 그 기능이 구비된 컴퓨팅 장치
WO2019066099A1 (ko) 통합된 분석 모델에 기초하여 이상 행동을 감지하는 시스템 및 그 방법
WO2018088680A1 (ko) 차단된 사이트로의 접속 요청을 처리하는 보안 시스템 및 방법
WO2019039617A1 (ko) 웹 애플리케이션의 동적 분석을 위한 api 호출 정보 제공 방법 및 장치
Payne Improving host-based computer security using secure active monitoring and memory analysis
WO2022107991A1 (ko) 분할된 보안 모듈을 구비하는 컴퓨터 장치 및 보안 모듈 업데이트 방법
WO2014030978A1 (ko) 이동식 저장매체 보안시스템 및 그 방법
Bushouse et al. Arav: monitoring a cloud's virtual routers

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: 16807687

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: 16807687

Country of ref document: EP

Kind code of ref document: A1