WO2014014200A1 - 컴퓨터 시스템과, 컴퓨터 시스템의 주소 이동 방법 및 컴퓨터 시스템의 시스템함수 모니터링 방법 - Google Patents

컴퓨터 시스템과, 컴퓨터 시스템의 주소 이동 방법 및 컴퓨터 시스템의 시스템함수 모니터링 방법 Download PDF

Info

Publication number
WO2014014200A1
WO2014014200A1 PCT/KR2013/005206 KR2013005206W WO2014014200A1 WO 2014014200 A1 WO2014014200 A1 WO 2014014200A1 KR 2013005206 W KR2013005206 W KR 2013005206W WO 2014014200 A1 WO2014014200 A1 WO 2014014200A1
Authority
WO
WIPO (PCT)
Prior art keywords
function
memory
address
memory area
monitoring
Prior art date
Application number
PCT/KR2013/005206
Other languages
English (en)
French (fr)
Inventor
서동필
Original Assignee
주식회사 안랩
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 주식회사 안랩 filed Critical 주식회사 안랩
Publication of WO2014014200A1 publication Critical patent/WO2014014200A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Definitions

  • the present invention provides a technique for effectively utilizing the entire address range by redirection to an address range that is inaccessible due to an address range specification (access) limit, so that the number of bits corresponding to the entire address range of the memory device, that is, the OS environment If there is a memory access module that supports a smaller bit number memory area approach, an address transfer function for moving to the remaining address ranges that are inaccessible (specified) within some accessible address ranges of the entire address range of the memory device. It is possible to effectively use the entire address range of the memory device by storing it, and to realize the system function monitoring based on this, it is possible to hook in kernel mode like 32bit OS even in 64bit OS environment, providing the same level of security as 32bit OS. Related to the available technologies.
  • OS operating system
  • an address range that can be accessed according to a relative addressing method in a memory based on a system function table by a memory access module supporting an x bit memory region access method is shown in FIG. to be. Therefore, based on the system function table by the memory access module that supports the 32-bit memory area approach, the address range that can be accessed according to the relative addressing method in the memory of the 64-bit OS environment is Full address range The rest of the address range has access limitations.
  • the present invention intends to propose a method of effectively using the entire address range by redirection to an address range inaccessible due to a limit of address range designation.
  • Embodiments of the present invention are technologies that can effectively use the entire address range by redirection to an address range that is inaccessible due to the limitation of address range designation, and are smaller than the number of bits corresponding to the entire address range of the memory device, that is, the OS environment. If there is a memory access module that supports the bit number memory area approach, the address movement function is stored to move to the remaining address ranges that are inaccessible (specified) within some accessible address ranges of the entire address range of the memory device. Therefore, the entire address range of the memory device can be effectively used, and system function monitoring can be used based on this to enable hooking in the kernel mode like 32bit OS in 64bit OS environment, so that it can provide the same level of security as 32bit OS. I would like to propose a solution.
  • an address movement function is stored in at least one first memory area of the partial memory area to access at least one second memory area of the remaining memory area except the partial memory area of the entire memory area.
  • the memory access module accesses the at least one first memory area and calls the address movement function based on the address information addressed to the at least one first memory area, the at least one address by the address movement function. To access the second memory area.
  • a method of moving an address of a computer system comprising: at least one first memory area in a part of a memory area accessible by a memory access module of the memory device; Storing an address movement function for accessing at least one second memory area in the remaining memory area except the partial memory area among all memory areas; And when the memory access module accesses the at least one first memory area and calls the address movement function based on the address information addressed in the at least one first memory area, the at least one address by the address movement function. And accessing a second memory area of the.
  • System function monitoring method of a computer system for achieving the above object, at least one of the remaining memory area except for some memory area accessible by the memory access module of the entire memory area of the memory device; Storing a monitoring function for performing a specific monitoring in a two memory area; Storing an address movement function for accessing the at least one second memory area in at least one first memory area of the partial memory area of the memory device;
  • the at least one system function table including address information addressed to a memory area stored in the memory device for each system function, wherein the address movement function stores address information of a specific system function identified as a target of the specific monitoring.
  • the address movement function is accessed by accessing the at least one first memory area based on the changed address information of the specific system function identified in the system function table. Calling; And accessing the at least one second memory area by the address movement function in the memory access module to call the monitoring function.
  • a system function monitoring method of a computer system for achieving the above object, a plurality of second in the remaining memory area except for some of the memory area accessible by the memory access module of the entire memory area of the memory device; Storing each monitoring function mapped to each system function identification information in a memory area; An address for accessing a specific memory area in which a handler gateway function relays access to the plurality of second memory areas according to the system function identification information in one first memory area of the partial memory area of the memory device.
  • a transfer function In a system function table including address information indicating an address stored in the memory device for each system function, an address of each system function corresponding to each system function identification information identified as a target of monitoring according to each monitoring function Changing information into address information addressed in the one first memory area in which the address movement function is stored;
  • the address is accessed by accessing the one first memory area based on the changed address information of the specific system function identified in the system function table.
  • a memory access module when a memory access module supports a memory area access method having a bit number corresponding to the entire address range of the memory device, that is, a bit number smaller than that of the OS environment, the access of the entire address range of the memory device is specified.
  • an address transfer function e.g. jumper code
  • the entire address range of the memory device can be effectively used, and further, the system By realizing function monitoring, it is possible to hook in kernel mode like 32bit OS even in 64bit OS environment, and provide the same level of security as 32bit OS.
  • 1 is an exemplary diagram illustrating an accessible address range according to a relative address designation method in x bit.
  • FIG. 2 is a block diagram showing the configuration of a computer system according to a preferred embodiment of the present invention.
  • FIG. 3 is a block diagram showing an address movement applied to a system function monitoring method in a computer system according to a first exemplary embodiment of the present invention.
  • Figure 4 is a block diagram showing the application of address movement to the system function monitoring method in a computer system according to a second embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating an address movement method of a computer system according to an exemplary embodiment of the present invention.
  • FIG. 6 is an operation flowchart showing a system function monitoring method of a computer system according to a first embodiment of the present invention.
  • FIG. 7 is a flowchart illustrating a method of monitoring a system function of a computer system according to a second exemplary embodiment of the present invention.
  • FIG. 2 illustrates a computer system according to a preferred embodiment of the present invention.
  • a computer system includes a memory device 120 and a memory access module 110 accessible to some memory areas of an entire memory area of the memory device 120.
  • the memory device 120 includes at least one first memory area within the partial memory area accessible by the memory access module 110, except for the partial memory area of the entire memory area.
  • An address movement function for accessing at least one second memory area in the remaining memory area is stored, and the at least one first memory based on the address information addressed to the at least one first memory area in the memory access module 110.
  • the address movement function may allow the at least one second memory area to be accessed.
  • address information is generally addressed in a memory area of the memory device 120, for convenience of description, the memory area in which the function is stored and the address in which the function is stored are mixed, and the range and address range of the memory area are mixed. You may.
  • a computer system is provided by the memory device 120 in a 64-bit environment.
  • the full address range addressed to the entire memory area Some address ranges addressed to some memory areas You only have access to.
  • the present invention is applied to a computer system having a memory access module 110 that supports a memory area access method having a number of bits corresponding to the entire address range of the memory device 120, that is, a bit smaller than the OS environment.
  • the memory access module 110 is a module for accessing a specific memory area among the entire memory areas of the memory device 120, for example, a function call handler module for calling a system function stored in the memory device 120.
  • a function call handler module for calling a system function stored in the memory device 120.
  • CPU program
  • the memory device 120 of the 64-bit environment and the memory access module 110 of the 32-bit memory area access method will be described.
  • the memory device 120 As described above, in the memory device 120 according to the computer system of the present invention, at least one first memory area in the partial memory area accessible by the memory access module 110, the partial memory area of the entire memory area.
  • the address translation function for accessing at least one second memory area in the remaining memory area except for the above is stored.
  • some address ranges addressed to some memory areas accessible by the memory access module 110 In other words, in the memory device 120, some address ranges addressed to some memory areas accessible by the memory access module 110. An entire address range addressed to the entire memory region of the memory device 120 at at least one first address therein An address movement function for accessing at least one second address within the remaining address range addressed to the remaining memory area may be stored.
  • the address moving function is a function of accessing a specific second address based on the address information of the specific second address included when the address moving function is called, including the address information of the specific second address, for example, a jumper code. It may include.
  • the memory access module 110 is based on the number of bits smaller than the number of bits (bit) corresponding to the entire memory area of the memory device 120 and provides address information for accessing each memory area in the partial memory area. It is desirable to store.
  • the memory access module 110 supports the 32-bit memory area approach as described above, the address information stored in the memory access module 110, It will have a structure based on 32 bits to access two addresses.
  • the memory access module 110 may access each memory area in a part of the memory area of the memory device 120 based on the stored address information. Thus, the memory access module 110, the entire address range of the memory device 120 Part of the address range depending on the relative address designation method Only addresses within the site could be specified.
  • the memory access by storing the address movement function for moving the memory access module 110 to the second memory area inaccessible to the first memory area accessible to the memory device 120,
  • the module 110 accesses the first memory area and calls the address movement function based on the address information addressed to the accessible first memory area
  • the module 110 redirects the address movement function to the second memory area.
  • the result of accessing the second memory area that is not accessible by the address movement function can be obtained.
  • the memory access module 110 stores the entire address range of the memory device 120 by storing an address movement function for moving to the remaining address ranges that are not accessible (designated) within the memory.
  • Some address ranges that can be accessed (specified) When the address movement function is called by accessing the first address in the address range, the address movement function redirects to a specific second address, thereby accessing the second address in the remaining address range that is not accessible (specified) by the address movement function. You can get the result.
  • Global address range of device 120 Some address ranges that can be accessed (specified) The entire address range of the memory device 120 can be effectively used by storing an address movement function for moving to the remaining address ranges that are not accessible (designated).
  • FIG. 3 a first embodiment in which a redirection to an inaccessible (designated) address in the computer system of the present invention is applied to a system function monitoring method will be described.
  • System functions are functions whose purpose is to allow the operating system to manage hardware resources efficiently and to allow applications to use hardware resources easily and safely. Malicious programs, however, have the problem of exploiting these system functions.
  • the system function monitoring method uses a hooking method in which the address of the system function stored in the system function table is replaced with the address of the monitoring function, and the system function is called by the monitoring function.
  • a detailed configuration of applying the system function monitoring method in the computer system of the present invention is as follows.
  • the memory access module 110 includes a system function table 115, and based on the address information of the specific system function identified in the system function table 115 when a call to a specific system function is requested. Accesses the stored memory area and calls the specific system function.
  • the system function table 115 includes address information addressed in the memory area stored in the memory device 120 for each system function. More specifically, the system function table 115 stores system function identification information (eg, function index) and address information stored in the memory device 120 corresponding to each system function stored in the memory device 120. It is desirable to do it.
  • system function identification information eg, function index
  • the memory access module 110 for example, when a call to the system function (func1) is requested, the system function 1 is stored based on the address information of the system function (func1) based on the system function table 115 System function 1 can be called by accessing the memory area.
  • the memory access module 110 is preferably a function call handler module.
  • the computer system 100 may further include a monitoring control module 130 for controlling system function monitoring.
  • the monitoring control module 130 includes the address information addressed in the at least one second memory area in which the monitoring function for performing a specific monitoring is stored in the at least one first memory area of the memory device 120. Save address movement function.
  • the monitoring control module 130 stores the monitoring function 1 in the second memory area that is inaccessible to the memory access module 110 among the entire memory areas of the memory device 120.
  • the monitoring control module 130 may write address information addressed to the second memory area in which the monitoring function 1 is stored in the first memory area accessible from the memory access module 110 among the entire memory areas of the memory device 120. You can store the containing address jumper.
  • the memory device 120 stores an address movement function for accessing a first address within a partial address range accessible by the memory access module 110 to a second address in which the monitoring function 1 for performing a specific monitoring is stored. .
  • the monitoring control module 130 in the system function table 115, the address information of the specific system function to be confirmed as the target of the specific monitoring to the at least one first memory area in which the address movement function is stored. Change to addressed address information.
  • the monitoring control module 130 if the monitoring target by the monitoring function 1 is a system function (func1), in the system function table 115, the address information of the system function (func1) address movement function (jumper) This addressing address information can be changed.
  • the monitoring control module 130 may include the system function identification information of the system function func1 on the system function identification information (for example, the function index) and the address information of the system function func1 in the system function table 115. You can change the address information by overwriting the Myfunc1 function, including the function index (eg function index) and the address information of the first address.
  • the memory access module 110 accesses the first memory area based on the changed address information of the system function func1 based on the system function table 115.
  • a moving function jumper may be called, and a monitoring function 1 accessed and stored in the second memory area based on the address information addressed to the second memory area by the address moving function jumper may be called.
  • the memory access module 110 when a system function func1 called for monitoring of the monitoring function 1 is requested, based on the system function table 115, the first address according to the changed address information of the system function func1. Calling the address movement function by accessing to, the address movement function redirects to the second address where the monitoring function 1 is stored, and accesses the second address within the remaining address range that is not accessible by the address movement function. Once you get the result, you can call monitoring function1.
  • the monitoring function 1 performs a monitoring function (eg, recording process information for calling the system function func1, recording the number of times the system function func1 is called, etc.) set as its own, and then performs the original function. Call system function 1.
  • a monitoring function eg, recording process information for calling the system function func1, recording the number of times the system function func1 is called, etc.
  • the computer system of the present invention the entire address range of the memory device 120 Among the address ranges in which the memory access module 110 stores the monitoring functions in an address range that cannot be accessed (designated) and accesses (designated)
  • the address movement function for moving the monitoring function to the stored address it is possible to effectively use the entire address range of the memory device 120 to realize the system function monitoring through the hooking method.
  • the monitoring control module 130 stores a plurality of monitoring functions mapped to each system function identification information in one first memory area accessible from the memory access module 110 among all memory areas of the memory device 120.
  • the address gateway function including the specific address information addressed to the specific memory area in which the handler gateway function relays access to the second memory area is stored.
  • the specific address of the specific memory region in which the handler gateway function is stored is an address having the same meaning as the second address described above, and is stored in the remaining memory region that is inaccessible to the memory access module 110 among the entire memory regions of the memory device 120. Address addressed, that is, the entire address range of the memory device 120 It is preferable that the address within the remaining address range of the memory access module 110 is not accessible.
  • the monitoring control module 130 stores the monitoring function 1 and the monitoring function 2 in a plurality of second memory areas inaccessible to the memory access module 110 among the entire memory areas of the memory device 120.
  • the monitoring control module 130 stores the handler gateway function in a specific memory area (an area having the same meaning as the second memory area) that is inaccessible to the memory access module 110 among the entire memory areas of the memory device 120. Can be.
  • the monitoring control module 130 may include a specific address addressed to a specific memory area in which a handler gateway function is stored in one first memory area accessible from the memory access module 110 among all memory areas of the memory device 120. You can store a jumper that contains information.
  • the monitoring control module 130 transfers the address information of each system function corresponding to each system function identification information identified as a target of monitoring according to the respective monitoring functions in the system function table 115.
  • the function is changed to address information addressed in the one first memory area in which the function is stored.
  • the monitoring control module 130 if the monitoring target by the monitoring function 1 is a system function (func1), the monitoring target by the monitoring function 2 is a system function (func2), in the system function table 115,
  • the address information of the system function func1 and the address information of the system function func2 may be changed into address information addressed by the address movement function jumper.
  • the memory access module 110 accesses one first memory area based on the changed address information of the system function func1 identified in the system function table 115. Calling an address movement function (jumper), accessing the specific memory area based on the specific address information by an address movement function (jumper), and calling a handler gateway function, and a plurality of second memories by the handler gateway function.
  • the monitoring function 1 mapped to the system function identification information of the system function func1 of the area is accessed and the monitoring function 1 can be called.
  • the memory access module 110 accesses one first memory area based on the changed address information of the system function func1 identified in the system function table 115. Calling an address movement function (jumper), accessing the specific memory area based on the specific address information by an address movement function (jumper), and calling a handler gateway function, and a plurality of second memories by the handler gateway function.
  • the monitoring function 2 mapped to the system function identification information of the system function func2 among the regions may be accessed and the monitoring function 2 may be called.
  • the memory access module 110 accesses the same first address based on the system function table 115, whether or not the system function func1 is called or the system function func2 is called. If the address movement function redirects to a specific address where the handler gateway function is stored, the result is that the address gateway function accesses a specific address in the remaining address range that cannot be accessed (specified) by the address movement function, thus calling the handler gateway function. Then, the corresponding monitoring function 1 or monitoring function 2 can be called by the handler gateway function.
  • the monitoring function 1 performs the monitoring function set on its own as follows, and then calls the original system function 1, and the monitoring function 2 performs the monitoring function set on its own as before, and then Call system function 2.
  • the memory access module 110 stores monitoring functions in an inaccessible address range, and stores handler gateway functions relayed to each monitoring function, and some accessible address ranges. By storing one address movement function for moving the handler gateway function to the stored address, it is possible to effectively use the entire address range of the memory device 120 to realize system function monitoring through a hooking method.
  • the memory access module 110 supports the memory area access method of the number of bits corresponding to the entire address range of the memory device 120, that is, the number of bits smaller than the OS environment
  • the entire address range of the memory device 120 can be effectively used by storing an address movement function for moving to the remaining address ranges that are inaccessible (assignable) within some address ranges that are accessible (assignable) among the entire address range of the device 120.
  • system function monitoring is realized, so hooking is possible in kernel mode like 32bit OS even in 64bit OS environment, so it can provide the same level of security as 32bit OS.
  • FIGS. 5 to 7 an address movement method and a system function monitoring method of a computer system according to the present invention will be described with reference to FIGS. 5 to 7.
  • FIGS. 5 to 7 the configuration shown in FIGS. 1 to 4 described above will be described with reference to the corresponding reference numerals.
  • the address shifting method of the computer system may include at least one first memory area within a part of a memory area accessible by the memory access module 110 among the entire memory areas of the memory device 120. An address movement function for accessing at least one second memory area in the remaining memory areas except for some memory areas is stored.
  • the address movement method of the computer system the entire address range of the memory device 120
  • Some of the above address ranges Save the address movement function to access at least one second address in the remaining address range except for (S10).
  • the address shifting function when the address shifting function is called by accessing the first memory area based on address information addressed to the first memory area accessible by the memory access module 110, By moving the address moving function to the second memory area, the result of accessing the second memory area that is not accessible by the address moving function can be obtained.
  • the address shifting method of the computer system includes the entire address range of the memory device 120 in the memory access module 110.
  • Some address ranges that can be accessed (specified) When accessing the first address within (S20), the address movement function stored in the first address is called, and the address movement function is redirected to a specific second address (redirection), which is impossible to access (specified) by the address movement function.
  • a result of accessing the second address within the address range may be obtained (S30).
  • the system function monitoring method of the computer system stores a monitoring function 1 for performing a specific monitoring in a second memory area that is inaccessible to the memory access module 110 among the entire memory areas of the memory device 120.
  • the system function monitoring method of the computer system according to the present invention, the entire address range in the memory device 120 Some address ranges accessible by the memory access module 110 of Save a monitoring function for performing a specific monitoring in at least one second address in the remaining address range except for (S100).
  • system function monitoring method of the computer system includes a first memory area accessible from the memory access module 110 among the entire memory areas of the memory device 120 and a second memory area in which the monitoring function 1 is stored.
  • An address movement function (jumper) including addressed address information may be stored.
  • the system function monitoring method of the computer system the partial address range accessible from the memory access module 110 In at least one first address therein, an address movement function for accessing at least one second address in which a monitoring function for performing a specific monitoring is stored (S110).
  • the address information of the system function func1 may be changed to the address information addressed by the address movement function jumper.
  • the address movement function is stored in the system function table 115 in the address information of the system function func1.
  • the address information of the first address is changed.
  • the system function monitoring method of the computer system when the system function (func1) call is requested, based on the changed address information of the system function (func1) based on the system function table 115, the first memory
  • the address movement function (jumper) can be called by accessing the area, and the monitoring function 1 stored in the second memory area can be called based on the address information addressed to the second memory area by the address movement function (jumper). .
  • the system function monitoring method of the computer system when a system function (func1) call is requested, based on the system function table 115 to the first address according to the changed address information of the system function (func1) In step S130, the address movement function is called.
  • the address movement function is redirected to a second address where the monitoring function 1 is stored, so that the address movement function is redirected to a second address within the remaining address range which is not accessible (specified) by the address movement function.
  • the result of approaching is obtained (S140), and the monitoring function 1 may be called (S150).
  • the monitoring function 1 performs a monitoring function (eg, recording process information for calling the system function func1, recording the number of times the system function func1 is called, etc.) set as its own, and then performs the original function. Call system function 1.
  • a monitoring function eg, recording process information for calling the system function func1, recording the number of times the system function func1 is called, etc.
  • a system function monitoring method of a computer system includes monitoring functions such as monitoring function 1 and monitoring function 2 in a plurality of second memory areas inaccessible from the memory access module 110 among the entire memory areas of the memory device 120. Save it.
  • the system function monitoring method of the computer system according to the present invention, the entire address range in the memory device 120 Some address ranges accessible by the memory access module 110 of Each of the monitoring functions 1 and 2 performing specific monitoring is stored in at least one second address in the remaining address range except for (S200).
  • system function monitoring method of the computer system includes a specific memory area (region having the same meaning as the second memory area) that is inaccessible to the memory access module 110 among the entire memory areas of the memory device 120, You can store handler gateway functions.
  • An address movement function (jumper) including specific address information addressed to may be stored.
  • each of the monitoring functions mapped by the system function identification information stores an address movement function for accessing a specific address stored in a handler gateway function for relaying access to a plurality of stored second addresses (S210).
  • system function monitoring method of the computer system in the system function table 115, address information of each system function corresponding to each system function identification information identified as a target of monitoring according to each monitoring function is determined. Is changed into address information addressed in the one first memory area in which the address movement function is stored.
  • the system function monitoring method of the computer system if the monitoring target by the monitoring function 1 is a system function (func1), the monitoring target by the monitoring function 2 is a system function (func2), the system function table In operation 115, the address information of the system function func1 and the address information of the system function func2 may be changed into address information addressed by the address movement function jumper.
  • the system function monitoring method of the computer system according to the present invention, the system function (func1) and system function in the system function table 115 to perform specific monitoring for the system function (func1) and system function (func2)
  • the address information of func2 is changed to the address information of the first address in which the address movement function is stored (S220).
  • the system function monitoring method of the computer system is based on the changed address information of the system function func1 identified in the system function table 115 when the system function func1 is called. 1 Access the memory area and call the address movement function (jumper), access the specific memory area based on the specific address information by the address movement function (jumper) and call the handler gateway function, and by the handler gateway function The monitoring function 1 mapped to the system function identification information of the system function func1 among the plurality of second memory areas may be accessed to call the monitoring function 1.
  • the system function monitoring method of the computer system when a system function (func1) call is requested, based on the system function table 115 to the first address according to the changed address information of the system function (func1) In step S230, the address movement function is called.
  • the address movement function redirects to a specific address where a handler gateway function is stored, so that it cannot be accessed (designated) by the address movement function to a specific address within the remaining address range.
  • the result of the access result is called and the handler gateway function is called (S240), the second address mapped to the system function identification information of the system function func1 is accessed by the handler gateway function (S250), and the stored monitoring function 1 is accessed. It may be called (S260).
  • the monitoring function 1 performs the monitoring function set on the same as the existing one, and then calls the original system function 1.
  • the system function monitoring method of the computer system when the system function (func2) call is requested, in step SS230 ⁇ S260 described above, the change of the system function (func1) confirmed in the system function table 115 Accessing a first memory area based on the address information and calling an address movement function (jumper), and accessing the specific memory area based on the specific address information by the address movement function (jumper) to handle the handler gateway function
  • the monitoring function 2 which is mapped to the system function identification information of the system function func2 among the plurality of second memory areas by the handler gateway function, may be accessed to call the monitoring function 2.
  • the system function monitoring method of the computer system accesses the same first address based on the system function table 115, whether the system function func1 is called or the system function func2 is called.
  • the address movement function is called, and the address movement function redirects to the specific address where the handler gateway function is stored, resulting in access to a specific address in the remaining address range that is inaccessible (specified) by the address movement function.
  • the handler gateway function is called, and the corresponding monitoring function 1 or monitoring function 2 can be called by the handler gateway function.
  • the memory access module 110 has a memory area approach that supports the number of bits corresponding to the entire address range of the memory device 120, that is, the number of bits smaller than the OS environment
  • the system function monitoring is realized, so it is possible to hook in kernel mode like 32bit OS even in 64bit OS environment and provide the same level of security as 32bit OS.
  • the method of moving an address of a computer system and a method of monitoring a system function of a computer system may be implemented in program instruction form that can be executed by various computer means and recorded in a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
  • Magneto-optical media and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
  • program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은, 컴퓨터 시스템과, 컴퓨터 시스템의 주소 이동 방법 및 컴퓨터 시스템의 시스템함수 모니터링 방법이 개시되어 있다. 본 발명의 실시예들은 메모리장치의 전체 주소범위에 대응하는 비트 수 즉 OS 환경 보다 작은 비트 수의 메모리영역 접근 방식을 지원하는 메모리접근모듈을 갖는 경우, 메모리장치의 전체 주소범위 중 접근(지정) 가능한 일부 주소범위 내에 접근(지정) 불가능한 나머지 주소범위로 이동시키기 위한 주소이동함수를 저장함으로써 메모리장치의 전체 주소범위를 효과적으로 이용할 수 있고, 이를 기반으로 시스템함수 모니터링을 실현하여 64bit OS 환경에서도 32bit OS와 같이 커널모드에서 후킹이 가능해져 32bit OS와 동일한 수준의 보안 기능을 제공할 수 있는 기술에 대한 것이다.

Description

컴퓨터 시스템과, 컴퓨터 시스템의 주소 이동 방법 및 컴퓨터 시스템의 시스템함수 모니터링 방법
본 발명은 실시예들은 주소범위 지정(접근) 한계로 접근이 불가능한 주소범위로 이동(redirection)하여 전체 주소범위를 효과적으로 이용할 수 있는 기술로서, 메모리장치의 전체 주소범위에 대응하는 비트 수 즉 OS 환경 보다 작은 비트 수의 메모리영역 접근 방식을 지원하는 메모리접근모듈을 갖는 경우, 메모리장치의 전체 주소범위 중 접근(지정) 가능한 일부 주소범위 내에 접근(지정) 불가능한 나머지 주소범위로 이동시키기 위한 주소이동함수를 저장함으로써 메모리장치의 전체 주소범위를 효과적으로 이용할 수 있고, 이를 기반으로 시스템함수 모니터링을 실현하여 64bit OS 환경에서도 32bit OS와 같이 커널모드에서 후킹이 가능해져 32bit OS와 동일한 수준의 보안 기능을 제공할 수 있는 기술들과 관련된다.
최근 컴퓨터 시스템의 기능이 다양화되면서 운영체제(OS) 환경이 32bit 환경에서 64bit 환경으로 발전하는 추세이며, 64bit OS 환경에서는 시스템함수테이블의 구조가 절대주소 지정방식에서 상대주소 지정방식으로 변경되었다.
하지만, OS 환경이 32bit에서 64bit로 발전하는 과도기인 현재의 컴퓨터 시스템에서는, 64bit OS 환경에서 구조적 이유로 32bit 메모리영역 접근(어드레싱) 방식만을 지원하는 경우가 있다. 이처럼, 64bit OS 환경에서 구조적 이유로 32bit 어드레싱 방식만을 지원하는 경우, 64bit 환경의 메모리에서 제공하는 전체 주소 범위 중 일부 주소범위에 대해서만 접근할 수 없는 한계를 갖는다.
예를 들면, 도 1에 도시된 바와 같이 x bit의 메모리영역 접근 방식을 지원하는 메모리접근모듈에 의한 시스템함수테이블을 기초로 메모리에서 상대주소 지정방식에 따라 접근 가능한 주소범위는
Figure PCTKR2013005206-appb-I000001
이다. 따라서, 32bit 메모리영역 접근 방식을 지원하는 메모리접근모듈에 의한 시스템함수테이블을 기초로 64bit OS 환경의 메모리에서 상대주소 지정방식에 따라 접근 가능한 주소범위는
Figure PCTKR2013005206-appb-I000002
이며, 전체 주소범위
Figure PCTKR2013005206-appb-I000003
중 나머지 주소범위에는 접근할 수 있는 한계를 갖는다.
이에, 본 발명에서는, 주소범위 지정의 한계로 접근이 불가능한 주소범위로 이동(redirection)하여 전체 주소범위를 효과적으로 이용할 수 있는 방안을 제안하고자 한다.
본 발명의 실시예들은 주소범위 지정의 한계로 접근이 불가능한 주소범위로 이동(redirection)하여 전체 주소범위를 효과적으로 이용할 수 있는 기술로서, 메모리장치의 전체 주소범위에 대응하는 비트 수 즉 OS 환경 보다 작은 비트 수의 메모리영역 접근 방식을 지원하는 메모리접근모듈을 갖는 경우, 메모리장치의 전체 주소범위 중 접근(지정) 가능한 일부 주소범위 내에 접근(지정) 불가능한 나머지 주소범위로 이동시키기 위한 주소이동함수를 저장함으로써 메모리장치의 전체 주소범위를 효과적으로 이용할 수 있고, 이를 기반으로 시스템함수 모니터링을 실현하여 64bit OS 환경에서도 32bit OS와 같이 커널모드에서 후킹이 가능해져 32bit OS와 동일한 수준의 보안 기능을 제공할 수 있는 방안을 제안하고자 한다.
상기 목적을 달성하기 위한 본 발명의 제 1 관점에 따른 컴퓨터 시스템은, 메모리장치; 및 상기 메모리장치의 전체 메모리영역 중 일부 메모리영역에 접근 가능한 메모리접근모듈을 포함하고; 상기 메모리장치에는, 상기 일부 메모리영역 내 적어도 하나의 제1메모리영역에, 상기 전체 메모리영역 중 상기 일부 메모리영역을 제외한 나머지 메모리영역 내 적어도 하나의 제2메모리영역으로 접근시키는 주소이동함수가 저장되어, 상기 메모리접근모듈에서 상기 적어도 하나의 제1메모리영역에 어드레싱된 주소정보를 기초로 상기 적어도 하나의 제1메모리영역에 접근하여 상기 주소이동함수를 호출하면, 상기 주소이동함수에 의해 상기 적어도 하나의 제2메모리영역으로 접근되도록 한다.
상기 목적을 달성하기 위한 본 발명의 제 2 관점에 따른 컴퓨터 시스템의 주소 이동 방법은, 메모리장치의 전체 메모리영역 중 메모리접근모듈에 의해 접근 가능한 일부 메모리영역 내 적어도 하나의 제1메모리영역에, 상기 전체 메모리영역 중 상기 일부 메모리영역을 제외한 나머지 메모리영역 내 적어도 하나의 제2메모리영역으로 접근시키는 주소이동함수가 저장되는 단계; 및 상기 메모리접근모듈에서 상기 적어도 하나의 제1메모리영역에 어드레싱된 주소정보를 기초로 상기 적어도 하나의 제1메모리영역에 접근하여 상기 주소이동함수를 호출하면, 상기 주소이동함수에 의해 상기 적어도 하나의 제2메모리영역으로 접근되도록 하는 단계를 포함한다.
상기 목적을 달성하기 위한 본 발명의 제 3 관점에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 메모리장치의 전체 메모리영역 중 메모리접근모듈에 의해 접근 가능한 일부 메모리영역을 제외한 나머지 메모리영역 내 적어도 하나의 제2메모리영역에, 특정 모니터링을 수행하는 모니터링함수를 저장하는 단계; 상기 메모리장치의 상기 일부 메모리영역 내 적어도 하나의 제1메모리영역에, 상기 적어도 하나의 제2메모리영역으로 접근시키는 주소이동함수를 저장하는 단계; 각 시스템함수 별로 상기 메모리장치에서 저장된 메모리영역에 어드레싱된 주소정보를 포함하는 시스템함수테이블에서, 상기 특정 모니터링의 수행 대상으로 확인되는 특정 시스템함수의 주소정보를 상기 주소이동함수가 저장된 상기 적어도 하나의 제1메모리영역에 어드레싱된 주소정보로 변경하는 단계; 상기 메모리접근모듈에서 상기 특정 시스템함수의 호출이 요청되는 경우, 상기 시스템함수테이블에서 확인되는 상기 특정 시스템함수의 변경된 주소정보를 기초로 상기 적어도 하나의 제1메모리영역에 접근하여 상기 주소이동함수를 호출하는 단계; 및 상기 메모리접근모듈에서 상기 주소이동함수에 의해 상기 적어도 하나의 제2메모리영역에 접근되어 상기 모니터링함수를 호출하는 단계를 포함한다.
상기 목적을 달성하기 위한 본 발명의 제 4 관점에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 메모리장치의 전체 메모리영역 중 메모리접근모듈에 의해 접근 가능한 일부 메모리영역을 제외한 나머지 메모리영역 내 다수의 제2메모리영역에, 각 시스템함수식별정보 별로 매핑된 각 모니터링함수를 저장하는 단계; 상기 메모리장치의 상기 일부 메모리영역 내 하나의 제1메모리영역에, 상기 각 시스템함수식별정보에 따라 상기 다수의 제2메모리영역에 대하여 접근을 중계하는 핸들러게이트웨이함수가 저장된 특정 메모리영역으로 접근시키는 주소이동함수를 저장하는 단계; 각 시스템함수 별로 상기 메모리장치 내에서 저장된 주소를 나타내는 주소정보를 포함하는 시스템함수테이블에서, 상기 각 모니터링함수에 따른 모니터링의 수행 대상으로 확인되는 상기 각 시스템함수식별정보에 대응되는 각 시스템함수의 주소정보를 상기 주소이동함수가 저장된 상기 하나의 제1메모리영역에 어드레싱된 주소정보로 변경하는 단계; 상기 메모리접근모듈에서 상기 각 시스템함수 중 특정 시스템함수의 호출이 요청되는 경우, 상기 시스템함수테이블에서 확인되는 상기 특정 시스템함수의 변경된 주소정보를 기초로 상기 하나의 제1메모리영역에 접근하여 상기 주소이동함수를 호출하는 단계; 상기 메모리접근모듈에서 상기 주소이동함수에 의해 상기 특정 주소정보를 기초로 상기 특정 메모리영역에 접근되어 상기 핸들러게이트웨이함수를 호출하는 단계; 및 상기 메모리접근모듈에서 상기 핸들러게이트웨이함수에 의해 상기 다수의 제2메모리영역 중 상기 특정 시스템함수의 시스템함수식별정보에 매핑된 특정 모니터링함수가 저장된 제2메모리영역에 접근되어 상기 특정 모니터링함수를 호출하는 단계를 포함한다.
본 발명의 실시예들은 메모리장치의 전체 주소범위에 대응하는 비트 수 즉 OS 환경 보다 작은 비트 수의 메모리영역 접근 방식을 지원하는 메모리접근모듈을 갖는 경우, 메모리장치의 전체 주소범위 중 접근(지정) 가능한 일부 주소범위 내에 접근(지정) 불가능한 나머지 주소범위의 원하는 주소로 이동시키기 위한 주소이동함수(예 : jumper 코드)를 저장함으로써 메모리장치의 전체 주소범위를 효과적으로 이용할 수 있고, 더 나아가 이를 기반으로 시스템함수 모니터링을 실현하여 64bit OS 환경에서도 32bit OS와 같이 커널모드에서 후킹이 가능해져 32bit OS와 동일한 수준의 보안 기능을 제공할 수 있다.
도 1은 x bit에서 상대주소 지정방식에 따라 접근 가능한 주소범위를 보여주는 예시도이다.
도 2는 본 발명의 바람직한 실시예에 따른 컴퓨터 시스템의 구성을 나타내는 블록도이다.
도 3은 본 발명의 바람직한 제1실시예에 따른 컴퓨터 시스템에서 주소 이동을 시스템함수 모니터링 방법에 적용하여 보여주는 블록도이다.
도 4는 본 발명의 바람직한 제2실시예에 따른 컴퓨터 시스템에서 주소 이동을 시스템함수 모니터링 방법에 적용하여 보여주는 블록도이다.
도 5는 본 발명의 바람직한 실시예에 따른 컴퓨터 시스템의 주소 이동 방법을 나타내는 동작 흐름도이다.
도 6은 본 발명의 바람직한 제1실시예에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법을 나타내는 동작 흐름도이다.
도 7은 본 발명의 바람직한 제2실시예에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법을 나타내는 동작 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 설명한다.
도 2는 본 발명의 바람직한 실시예에 따른 컴퓨터 시스템을 도시한 도면이다.
도 1에 도시된 바와 같이, 본 발명에 따른 컴퓨터 시스템은, 메모리장치(120)와, 메모리장치(120)의 전체 메모리영역 중 일부 메모리영역에 접근 가능한 메모리접근모듈(110)을 포함한다.
여기서, 본 발명에 따른 컴퓨터 시스템에서 메모리장치(120)에는, 메모리접근모듈(110)에서 접근 가능한 상기 일부 메모리영역 내 적어도 하나의 제1메모리영역에, 상기 전체 메모리영역 중 상기 일부 메모리영역을 제외한 나머지 메모리영역 내 적어도 하나의 제2메모리영역으로 접근시키는 주소이동함수가 저장되어, 메모리접근모듈(110)에서 상기 적어도 하나의 제1메모리영역에 어드레싱된 주소정보를 기초로 상기 적어도 하나의 제1메모리영역에 접근하여 상기 주소이동함수를 호출하면, 상기 주소이동함수에 의해 상기 적어도 하나의 제2메모리영역으로 접근되도록 할 수 있다.
이하에서는 메모리장치(120)의 메모리영역에 주소정보가 어드레싱되는 것이 일반적이므로, 설명의 편의를 위해 함수가 저장된 메모리영역 및 함수가 저장된 주소를 혼용하고, 메모리영역의 범위 및 주소범위를 혼용하여 설명할 수도 있다.
예를 들어, OS 환경이 32bit 환경에서 64bit 환경으로 발전하면서 여전히 32bit 메모리영역 접근(어드레싱) 방식을 지원하는 메모리접근모듈을 채택하고 있는 경우의 컴퓨터 시스템은, 64bit 환경의 메모리장치(120)에서 제공하는 전체 메모리영역에 어드레싱되는 전체 주소범위
Figure PCTKR2013005206-appb-I000004
중 일부 메모리영역에 어드레싱되는 일부 주소범위
Figure PCTKR2013005206-appb-I000005
에 대해서만 접근할 수 밖에 없다.
이처럼, 본 발명은 메모리장치(120)의 전체 주소범위에 대응하는 비트 수 즉 OS 환경 보다 작은 비트 수의 메모리영역 접근 방식을 지원하는 메모리접근모듈(110)을 갖는 컴퓨터 시스템에 적용하기 위한 것이다.
여기서, 메모리접근모듈(110)은, 메모리장치(120)의 전제 메모리영역 중 특정 메모리영역에 접근하기 위한 모듈로서, 예를 들면 메모리장치(120)에 저장된 시스템함수를 호출하기 위한 함수호출핸들러모듈(예 : KiSystemService() 함수), CPU, 프로그램 등 다양한 형태를 포함할 수 있다.
이하에서는 설명의 편의를 위해, 64bit 환경의 메모리장치(120) 및 32bit 메모리영역 접근 방식의 메모리접근모듈(110)을 언급하여 설명하도록 한다.
전술한 바와 같이, 본 발명의 컴퓨터 시스템에 따른 메모리장치(120)에는, 메모리접근모듈(110)에서 접근 가능한 일부 메모리영역 내 적어도 하나의 제1메모리영역에, 상기 전체 메모리영역 중 상기 일부 메모리영역을 제외한 나머지 메모리영역 내 적어도 하나의 제2메모리영역으로 접근시키는 주소이동함수가 저장된다.
다시 말해, 메모리장치(120)에는, 메모리접근모듈(110)에서 접근 가능한 일부 메모리영역에 어드레싱되는 일부 주소범위
Figure PCTKR2013005206-appb-I000006
내의 적어도 하나의 제1주소에, 메모리장치(120)의 전체 메모리영역에 어드레싱되는 전체 주소범위
Figure PCTKR2013005206-appb-I000007
중 나머지 메모리영역에 어드레싱되는 나머지 주소범위 내 적어도 하나의 제2주소로 접근시키는 주소이동함수가 저장될 수 있다.
이때, 주소이동함수는, 특정 제2주소의 주소정보를 포함하여, 주소이동함수가 호출되는 경우 포함된 특정 제2주소의 주소정보를 기초로 특정 제2주소로 접근시키는 함수로써, 예컨대 jumper코드를 포함할 수 있다.
그리고, 메모리접근모듈(110)은, 메모리장치(120)의 전체 메모리영역에 대응되는 bit(bit) 수 보다 작은bit 수를 기초로 하며 상기 일부 메모리영역 내 각 메모리영역에 접근하기 위한 주소정보를 저장하는 것이 바람직하다.
이때, 전술한 바와 같이 메모리접근모듈(110)이 32bit 메모리영역 접근 방식을 지원한다면, 메모리접근모듈(110)에 저장된 주소정보들은,
Figure PCTKR2013005206-appb-I000008
개의 주소에 접근하기 위해 32bit를 기초로 하는 구조를 가질 것이다.
이러한 메모리접근모듈(110)은, 저장된 주소정보를 기초로 상대주소 접근방식에 따라 메모리장치(120)의 일부 메모리영역 내 각 메모리영역에 접근하는 것이 바람직하다. 이에, 메모리접근모듈(110)은, 메모리장치(120)의 전체 주소범위
Figure PCTKR2013005206-appb-I000009
중 상대주소 지정방식에 따라 일부 주소범위
Figure PCTKR2013005206-appb-I000010
내의 주소에만 접근(지정)이 가능하였다.
하지만, 본 발명에 따르면, 메모리장치(120)의 전체 메모리영역 중 메모리접근모듈(110)이 접근 가능한 제1메모리영역에 접근 불가능한 제2메모리영역으로 이동시키기 위한 주소이동함수를 저장함으로써, 메모리접근모듈(110)은, 접근 가능한 제1메모리영역에 어드레싱된 주소정보를 기초로 제1메모리영역에 접근하여 주소이동함수를 호출하게 되면, 주소이동함수가 제2메모리영역으로 이동(redirection)시켜, 주소이동함수에 의해 접근 불가능한 제2메모리영역에 접근하는 결과를 얻을 수 있다.
다시 말해, 즉, 본 발명에 따르면, 접근(지정) 가능한 일부 주소범위
Figure PCTKR2013005206-appb-I000011
내에 접근(지정) 불가능한 나머지 주소범위로 이동시키기 위한 주소이동함수를 저장함으로써, 메모리접근모듈(110)은, 메모리장치(120)의 전체 주소범위
Figure PCTKR2013005206-appb-I000012
중 접근(지정) 가능한 일부 주소범위
Figure PCTKR2013005206-appb-I000013
내의 제1주소에 접근함으로써 주소이동함수를 호출하게 되면, 주소이동함수가 특정 제2주소로 이동(redirection)시켜, 주소이동함수에 의해 접근(지정) 불가능한 나머지 주소범위 내의 제2주소로 접근하는 결과를 얻을 수 있다.
따라서, 본 발명의 컴퓨터 시스템에 따르면, 메모리장치(120)의 전체 주소범위에 대응하는 비트 수 즉 OS 환경 보다 작은 비트 수의 메모리영역 접근 방식을 지원하는 메모리접근모듈(110)을 갖는 경우, 메모리장치(120)의 전체 주소범위
Figure PCTKR2013005206-appb-I000014
중 접근(지정) 가능한 일부 주소범위
Figure PCTKR2013005206-appb-I000015
내에 접근(지정) 불가능한 나머지 주소범위로 이동시키기 위한 주소이동함수를 저장함으로써 메모리장치(120)의 전체 주소범위를 효과적으로 이용할 수 있다.
이하에서는 도 3을 참조하여 본 발명의 컴퓨터 시스템에서 전술한 바와 같이 접근(지정) 불가능한 주소로의 이동(redirection)을 시스템함수 모니터링 방법에 적용하는 제1실시예를 설명하도록 한다.
먼저, 시스템함수 모니터링 방법을 간략하게 설명하도록 한다.
시스템함수들은, 운영체제가 하드웨어 자원을 효율적으로 관리하고 응용 프로그램들이 쉽고 안전하게 하드웨어 자원을 사용할 수 있도록 하기 위한 목적을 갖는 함수이다. 그러나 악의 있는 프로그램은 이러한 시스템함수를 악용할 수 있는 문제점을 갖는다.
운영체제 위에서 실행되는 모든 프로세스들을 완전히 신뢰할 수 없는 상황에서는, 운영체제가 제공하는 시스템함수를 감시(monitoring)하는 것이 필수적이다. 예를 들어 메모리 읽기 관련 함수를 불법적인 방법을 통해 임의의 프로세스 A가 사용한다면 다른 프로세스의 메모리 영역을 읽을 수 있다. 따라서 불법적으로 시스템함수를 호출하는 경우에 이 호출을 막는 기능이 필요하며 이를 위해서는 우선 어떤 프로세스가 어떤 시스템함수를 호출하고자 하는 지, 어떤 시스템함수가 호출되는 횟수 등을 모니터링하는 것이 선행되어야 한다.
이에, 시스템함수 모니터링 방법은, 시스템함수테이블에 저장된 시스템함수의 주소를 모니터링함수의 주소로 교체하고, 시스템함수는 모니터링함수에서 호출하도록 하는 후킹 방식을 이용하고 있다.
이러한 시스템함수 모니터링 방법을 본 발명의 컴퓨터 시스템에서 적용하는 구체적인 구성을 설명하면 다음과 같다.
메모리접근모듈(110)은, 시스템함수테이블(115)를 포함하며, 특정 시스템함수의 호출이 요청되는 경우 시스템함수테이블(115)에서 확인되는 상기 특정 시스템함수의 주소정보를 기초로 상기 특정 시스템함수가 저장된 메모리영역에 접근하여 상기 특정 시스템함수를 호출할 수 있다.
여기서, 시스템함수테이블(115)은, 각 시스템함수 별로 메모리장치(120) 에서 저장된 메모리영역에 어드레싱된 주소정보를 포함한다. 보다 구체적으로, 시스템함수테이블(115)은, 메모리장치(120) 내에서 저장된 각 시스템함수에 대응하여, 시스템함수식별정보(예 : 함수인덱스) 및 메모리장치(120) 내에서 저장된 주소정보를 저장하고 있는 것이 바람직하다.
이에, 메모리접근모듈(110)은, 예를 들어 시스템함수(func1)의 호출이 요청되는 경우, 시스템함수테이블(115)을 기초로 시스템함수(func1)의 주소정보를 기초로 시스템함수1이 저장된 메모리영역에 접근하여 시스템함수1을 호출할 수 있다. 이러한 메모리접근모듈(110)은, 함수호출핸들러모듈인 것이 바람직하다.
그리고 본 발명에 따른 컴퓨터 시스템(100)은, 시스템함수 모니터링 수행을 제어하는 모니터링제어모듈(130)을 더 포함할 수 있다.
모니터링제어모듈(130)은, 메모리장치(120)의 상기 적어도 하나의 제1메모리영역에, 특정 모니터링을 수행하는 모니터링함수가 저장된 상기 적어도 하나의 제2메모리영역에 어드레싱된 주소정보를 포함하는 상기 주소이동함수를 저장한다.
예컨대, 모니터링제어모듈(130)은, 메모리장치(120)의 전체 메모리영역 중 메모리접근모듈(110)에서 접근 불가능한 제2메모리영역에 모니터링함수1을 저장한다.
그리고, 모니터링제어모듈(130)은, 메모리장치(120)의 전체 메모리영역 중 메모리접근모듈(110)에서 접근 가능한 제1메모리영역에, 모니터링함수1이 저장된 제2메모리영역에 어드레싱된 주소정보를 포함하는 주소이동함수(jumper)를 저장할 수 있다.
즉, 메모리장치(120)에는, 메모리접근모듈(110)에서 접근 가능한 일부 주소범위 내의 제1주소에, 특정 모니터링을 수행하는 모니터링함수1이 저장된 제2주소로 접근시키는 주소이동함수가 저장되는 것이다.
그리고, 모니터링제어모듈(130)은, 시스템함수테이블(115)에서, 상기 특정 모니터링의 수행 대상으로 확인되는 상기 특정 시스템함수의 주소정보를 상기 주소이동함수가 저장된 상기 적어도 하나의 제1메모리영역에 어드레싱된 주소정보로 변경한다.
예컨대, 모니터링제어모듈(130)은, 모니터링함수1에 의한 모니터링 수행 대상이 시스템함수(func1)라고 하면, 시스템함수테이블(115)에서, 시스템함수(func1)의 주소정보를 주소이동함수(jumper)이 어드레싱된 주소정보로 변경할 수 있다. 예를 들면, 모니터링제어모듈(130)은, 시스템함수테이블(115)에서 시스템함수(func1)의 시스템함수식별정보(예 : 함수인덱스) 및 주소정보 위에, 시스템함수(func1)의 시스템함수식별정보(예 : 함수인덱스) 및 제1주소의 주소정보를 포함한 Myfunc1함수를 덮어씌워, 주소정보를 변경할 수 있을 것이다.
이에, 메모리접근모듈(110)은, 시스템함수(func1) 호출이 요청되는 경우, 시스템함수테이블(115)을 기초로 시스템함수(func1)의 변경된 주소정보를 기초로 제1메모리영역에 접근하여 주소이동함수(jumper)를 호출하고, 주소이동함수(jumper)에 의해 제2메모리영역에 어드레싱된 주소정보를 기초로 제2메모리영역에 접근되어 저장된 모니터링함수1을 호출할 수 있다.
즉, 메모리접근모듈(110)은, 모니터링함수1의 모니터링 대상인 시스템함수(func1) 호출이 요청되는 경우, 시스템함수테이블(115)을 기초로 시스템함수(func1)의 변경된 주소정보에 따른 제1주소에 접근하여 주소이동함수를 호출하게 되고, 주소이동함수가 모니터링함수1이 저장된 제2주소로 이동(redirection)시켜, 주소이동함수에 의해 접근(지정) 불가능한 나머지 주소범위 내의 제2주소로 접근하는 결과를 얻게 되어 모니터링함수1을 호출할 수 있다.
이에, 모니터링함수1은, 자신에 설정된 모니터링 기능(예 : 시스템함수(func1)을 호출 요청한 프로세스 정보 기록, 시스템함수(func1)이 호출된 횟수 기록 등)을 기존과 같이 수행하게 되고, 이후 원래의 시스템함수1을 호출하도록 한다.
따라서, 본 발명의 컴퓨터 시스템은, 메모리장치(120)의 전체 주소범위
Figure PCTKR2013005206-appb-I000016
중 메모리접근모듈(110)이 접근(지정) 불가능한 주소범위에 모니터링함수들을 저장하고 접근(지정) 가능한 일부 주소범위
Figure PCTKR2013005206-appb-I000017
내에 모니터링함수가 저장된 주소로 이동시키기 위한 주소이동함수를 저장함으로써, 메모리장치(120)의 전체 주소범위를 효과적으로 이용하여 후킹 방식을 통한 시스템함수 모니터링을 실현할 수 있도록 한다.
헌데, 전술과 같이 도 3을 참조하여 설명한 본 발명의 컴퓨터 시스템에서 적용하는 시스템함수 모니터링은, 모니터링함수 각각에 대한 주소이동함수가 요구되어, 모니터링함수의 개수가 100개이면 주소이동함수가 100개의 주소에 각각 저장되어야 하기 때문에 메모리자원의 비효율적 운영이 우려된다.
이에, 이하에서는 도 4를 참조하여 주소이동함수의 저장 주소 증가로 인한 메모리자원의 비효율적 운영 우려를 개선할 수 있는 제2실시예를 설명하도록 한다.
모니터링제어모듈(130)은, 메모리장치(120)의 전체 메모리영역 중 메모리접근모듈(110)에서 접근 가능한 하나의 제1메모리영역에, 각 시스템함수식별정보에 매핑된 각 모니터링함수가 저장된 다수의 제2메모리영역에 대하여 접근을 중계하는 핸들러게이트웨이함수가 저장된 특정 메모리영역에 어드레싱된 특정 주소정보를 포함하는 상기 주소이동함수를 저장한다.
이때, 핸들러게이트웨이함수가 저장된 특정 메모리영역의 특정 주소는, 전술의 제2주소와 동일한 의미의 주소로서, 메모리장치(120)의 전체 메모리영역 중 메모리접근모듈(110)에서 접근 불가능한 나머지 메모리영역에 어드레싱되는 주소, 즉 메모리장치(120)의 전체 주소범위
Figure PCTKR2013005206-appb-I000018
중 메모리접근모듈(110)에서 접근 불가능한 나머지 주소범위 내의 주소인 것이 바람직하다.
예컨대, 모니터링제어모듈(130)은, 메모리장치(120)의 전체 메모리영역 중 메모리접근모듈(110)에서 접근 불가능한 다수의 제2메모리영역에 각 모니터링함수1 및 모니터링함수2를 저장한다.
그리고, 모니터링제어모듈(130)은, 메모리장치(120)의 전체 메모리영역 중 메모리접근모듈(110)에서 접근 불가능한 특정 메모리영역(제2메모리영역과 동일한 의미의 영역)에, 핸들러게이트웨이함수를 저장할 수 있다.
그리고, 모니터링제어모듈(130)은, 메모리장치(120)의 전체 메모리영역 중 메모리접근모듈(110)에서 접근 가능한 하나의 제1메모리영역에, 핸들러게이트웨이함수가 저장된 특정 메모리영역에 어드레싱된 특정 주소정보를 포함하는 주소이동함수(jumper)를 저장할 수 있다.
이 후 모니터링제어모듈(130)은, 시스템함수테이블(115)에서, 상기 각 모니터링함수에 따른 모니터링의 수행 대상으로 확인되는 상기 각 시스템함수식별정보에 대응되는 각 시스템함수의 주소정보를 상기 주소이동함수가 저장된 상기 하나의 제1메모리영역에 어드레싱된 주소정보로 변경한다.
예컨대, 모니터링제어모듈(130)은, 모니터링함수1에 의한 모니터링 수행 대상이 시스템함수(func1), 모니터링함수2에 의한 모니터링 수행 대상이 시스템함수(func2)라고 하면, 시스템함수테이블(115)에서, 시스템함수(func1)의 주소정보 및 시스템함수(func2)의 주소정보를 주소이동함수(jumper)이 어드레싱된 주소정보로 변경할 수 있다.
이에, 메모리접근모듈(110)은, 시스템함수(func1) 호출이 요청되는 경우, 시스템함수테이블(115)에서 확인되는 시스템함수(func1)의 변경된 주소정보를 기초로 하나의 제1메모리영역에 접근하여 주소이동함수(jumper)를 호출하고, 주소이동함수(jumper)에 의해 상기 특정 주소정보를 기초로 상기 특정 메모리영역에 접근되어 핸들러게이트웨이함수를 호출하고, 핸들러게이트웨이함수에 의해 다수의 제2메모리영역 중 시스템함수(func1)의 시스템함수식별정보에 매핑된 모니터링함수1가 저장된 제2메모리영역에 접근되어 모니터링함수1를 호출할 수 있다.
물론, 메모리접근모듈(110)은, 시스템함수(func2) 호출이 요청되는 경우, 시스템함수테이블(115)에서 확인되는 시스템함수(func1)의 변경된 주소정보를 기초로 하나의 제1메모리영역에 접근하여 주소이동함수(jumper)를 호출하고, 주소이동함수(jumper)에 의해 상기 특정 주소정보를 기초로 상기 특정 메모리영역에 접근되어 핸들러게이트웨이함수를 호출하고, 핸들러게이트웨이함수에 의해 다수의 제2메모리영역 중 시스템함수(func2)의 시스템함수식별정보에 매핑된 모니터링함수2가 저장된 제2메모리영역에 접근되어 모니터링함수2를 호출할 수 있다.
즉, 메모리접근모듈(110)은, 시스템함수(func1)가 호출되든 또는 시스템함수(func2)가 호출되든, 시스템함수테이블(115)을 기초로 동일한 하나의 제1주소에 접근하여 주소이동함수를 호출하게 되고, 주소이동함수가 핸들러게이트웨이함수가 저장된 특정 주소로 이동(redirection)시켜, 주소이동함수에 의해 접근(지정) 불가능한 나머지 주소범위 내의 특정 주소로 접근하는 결과를 얻게 되어 핸들러게이트웨이함수를 호출하게 된고, 핸들러게이트웨이함수에 의해 해당되는 모니터링함수1 또는 모니터링함수2를 호출할 수 있게 된다.
이에, 모니터링함수1은, 자신에 설정된 모니터링 기능을 기존과 같이 수행하게 되고 이후 원래의 시스템함수1을 호출하도록 하고, 모니터링함수2는, 자신에 설정된 모니터링 기능을 기존과 같이 수행하게 되고 이후 원래의 시스템함수2를 호출하도록 한다.
따라서, 본 발명의 컴퓨터 시스템은, 메모리장치(120)의 전체 주소범위
Figure PCTKR2013005206-appb-I000019
중 메모리접근모듈(110)이 접근(지정) 불가능한 주소범위에 모니터링함수들을 저장하고 각 모니터링함수로 중계하는 핸들러게이트웨이함수를 저장하며, 접근(지정) 가능한 일부 주소범위
Figure PCTKR2013005206-appb-I000020
내에 핸들러게이트웨이함수가 저장된 주소로 이동시키기 위한 주소이동함수 1개를 저장함으로써, 메모리장치(120)의 전체 주소범위를 효과적으로 이용하여 후킹 방식을 통한 시스템함수 모니터링을 실현할 수 있도록 한다.
이상에서 설명한 바와 같이 본 발명에 따르면, 메모리장치(120)의 전체 주소범위에 대응하는 비트 수 즉 OS 환경 보다 작은 비트 수의 메모리영역 접근 방식을 지원하는 메모리접근모듈(110)을 갖는 경우, 메모리장치(120)의 전체 주소범위 중 접근(지정) 가능한 일부 주소범위 내에 접근(지정) 불가능한 나머지 주소범위로 이동시키기 위한 주소이동함수를 저장함으로써 메모리장치(120)의 전체 주소범위를 효과적으로 이용할 수 있고, 이를 기반으로 시스템함수 모니터링을 실현하여 64bit OS 환경에서도 32bit OS와 같이 커널모드에서 후킹이 가능해져 32bit OS와 동일한 수준의 보안 기능을 제공할 수 있다.
이하에서는, 도 5 내지 도7을 참조하여 본 발명에 따른 컴퓨터 시스템의 주소 이동 방법 및 시스템함수 모니터링 방법을 설명하도록 한다. 여기서, 설명의 편의를 위해 전술한 도 1 내지 도 4에 도시된 구성은 해당 참조번호를 언급하여 설명하겠다.
먼저, 도 5를 참조하여 본 발명의 바람직한 실시예에 따른 컴퓨터 시스템의 주소 이동 방법을 설명하도록 한다.
본 발명에 따른 컴퓨터 시스템의 주소 이동 방법은, 메모리장치(120)의 전체 메모리영역 중 메모리접근모듈(110)에서 접근 가능한 일부 메모리영역 내 적어도 하나의 제1메모리영역에, 상기 전체 메모리영역 중 상기 일부 메모리영역을 제외한 나머지 메모리영역 내 적어도 하나의 제2메모리영역으로 접근시키는 주소이동함수가 저장된다.
즉, 본 발명에 따른 컴퓨터 시스템의 주소 이동 방법은, 메모리장치(120)의 전체 주소범위
Figure PCTKR2013005206-appb-I000021
중 메모리접근모듈(110)에서 접근 가능한 일부 주소범위
Figure PCTKR2013005206-appb-I000022
내의 적어도 하나의 제1주소에, 메모리장치(120)의 전체 주소범위
Figure PCTKR2013005206-appb-I000023
중 상기 일부 주소범위
Figure PCTKR2013005206-appb-I000024
를 제외한 나머지 주소범위 내 적어도 하나의 제2주소로 접근시키는 주소이동함수를 저장한다(S10).
이에, 본 발명에 따른 컴퓨터 시스템의 주소 이동 방법은, 메모리접근모듈(110)에서 접근 가능한 제1메모리영역에 어드레싱된 주소정보를 기초로 제1메모리영역에 접근하여 주소이동함수를 호출하게 되면, 주소이동함수가 제2메모리영역으로 이동(redirection)시켜, 주소이동함수에 의해 접근 불가능한 제2메모리영역에 접근하는 결과를 얻을 수 있다.
즉, 본 발명에 따른 컴퓨터 시스템의 주소 이동 방법은, 메모리접근모듈(110)에서 메모리장치(120)의 전체 주소범위
Figure PCTKR2013005206-appb-I000025
중 접근(지정) 가능한 일부 주소범위
Figure PCTKR2013005206-appb-I000026
내의 제1주소에 접근하면(S20), 제1주소에 저장된 주소이동함수를 호출하게 되고, 주소이동함수가 특정 제2주소로 이동(redirection)시켜, 주소이동함수에 의해 접근(지정) 불가능한 나머지 주소범위 내의 제2주소로 접근하는 결과를 얻을 수 있다(S30).
이하에서는 도 6을 참조하여 본 발명의 제1실시예에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법을 설명하도록 한다.
본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 메모리장치(120)의 전체 메모리영역 중 메모리접근모듈(110)에서 접근 불가능한 제2메모리영역에 특정 모니터링을 수행하는 모니터링함수1을 저장한다.
즉, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 메모리장치(120)에서 전체 주소범위
Figure PCTKR2013005206-appb-I000027
중 메모리접근모듈(110)에 의해 접근 가능한 일부 주소범위
Figure PCTKR2013005206-appb-I000028
를 제외한 나머지 주소범위 내 적어도 하나의 제2주소에 특정 모니터링을 수행하는 모니터링함수를 저장한다(S100).
그리고, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 메모리장치(120)의 전체 메모리영역 중 메모리접근모듈(110)에서 접근 가능한 제1메모리영역에, 모니터링함수1이 저장된 제2메모리영역에 어드레싱된 주소정보를 포함하는 주소이동함수(jumper)를 저장할 수 있다.
즉, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 메모리접근모듈(110)에서 접근 가능한 일부 주소범위
Figure PCTKR2013005206-appb-I000029
내의 적어도 하나의 제1주소에, 특정 모니터링을 수행하는 모니터링함수가 저장된 적어도 하나의 제2주소로 접근시키는 주소이동함수를 저장한다(S110).
이에, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 시스템함수테이블(115)에서, 시스템함수(func1)의 주소정보를 주소이동함수(jumper)이 어드레싱된 주소정보로 변경할 수 있다.
즉, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 시스템함수(func1)에 대한 특정 모니터링을 수행하기 위해, 시스템함수테이블(115)에서 시스템함수(func1)의 주소정보를 주소이동함수가 저장된 제1주소의 주소정보로 변경하게 된다.
이에, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 시스템함수(func1) 호출이 요청되는 경우, 시스템함수테이블(115)을 기초로 시스템함수(func1)의 변경된 주소정보를 기초로 제1메모리영역에 접근하여 주소이동함수(jumper)를 호출하고, 주소이동함수(jumper)에 의해 제2메모리영역에 어드레싱된 주소정보를 기초로 제2메모리영역에 접근되어 저장된 모니터링함수1을 호출할 수 있다.
즉, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 시스템함수(func1) 호출이 요청되는 경우, 시스템함수테이블(115)을 기초로 시스템함수(func1)의 변경된 주소정보에 따른 제1주소에 접근하여 주소이동함수를 호출하게 된다(S130).
본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 주소이동함수가 모니터링함수1이 저장된 제2주소로 이동(redirection)시켜, 주소이동함수에 의해 접근(지정) 불가능한 나머지 주소범위 내의 제2주소로 접근하는 결과를 얻게 되어(S140), 모니터링함수1을 호출할 수 있다(S150).
이에, 모니터링함수1은, 자신에 설정된 모니터링 기능(예 : 시스템함수(func1)을 호출 요청한 프로세스 정보 기록, 시스템함수(func1)이 호출된 횟수 기록 등)을 기존과 같이 수행하게 되고, 이후 원래의 시스템함수1을 호출하도록 한다.
이하에서는 도 7을 참조하여 본 발명의 제2실시예에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법을 설명하도록 한다.
본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 메모리장치(120)의 전체 메모리영역 중 메모리접근모듈(110)에서 접근 불가능한 다수의 제2메모리영역에 각 모니터링함수 예컨대 모니터링함수1 및 모니터링함수2를 저장한다.
즉, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 메모리장치(120)에서 전체 주소범위
Figure PCTKR2013005206-appb-I000030
중 메모리접근모듈(110)에 의해 접근 가능한 일부 주소범위
Figure PCTKR2013005206-appb-I000031
를 제외한 나머지 주소범위 내 적어도 하나의 제2주소에 특정 모니터링을 수행하는 각 모니터링함수1,2를 저장한다(S200).
그리고, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 메모리장치(120)의 전체 메모리영역 중 메모리접근모듈(110)에서 접근 불가능한 특정 메모리영역(제2메모리영역과 동일한 의미의 영역)에, 핸들러게이트웨이함수를 저장할 수 있다.
이에, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 메모리장치(120)의 전체 메모리영역 중 메모리접근모듈(110)에서 접근 가능한 하나의 제1메모리영역에, 핸들러게이트웨이함수가 저장된 특정 메모리영역에 어드레싱된 특정 주소정보를 포함하는 주소이동함수(jumper)를 저장할 수 있다.
즉 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 메모리접근모듈(110)에서 접근 가능한 일부 주소범위
Figure PCTKR2013005206-appb-I000032
내의 제1주소에, 시스템함수식별정보 별로 매핑된 각 모니터링함수가 저장된 다수의 제2주소에 대하여 접근을 중계하는 핸들러게이트웨이함수가 저장된 특정 주소로 접근시키는 주소이동함수를 저장한다(S210).
그리고 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 시스템함수테이블(115)에서, 상기 각 모니터링함수에 따른 모니터링의 수행 대상으로 확인되는 상기 각 시스템함수식별정보에 대응되는 각 시스템함수의 주소정보를 상기 주소이동함수가 저장된 상기 하나의 제1메모리영역에 어드레싱된 주소정보로 변경한다.
예컨대, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 모니터링함수1에 의한 모니터링 수행 대상이 시스템함수(func1), 모니터링함수2에 의한 모니터링 수행 대상이 시스템함수(func2)라고 하면, 시스템함수테이블(115)에서, 시스템함수(func1)의 주소정보 및 시스템함수(func2)의 주소정보를 주소이동함수(jumper)이 어드레싱된 주소정보로 변경할 수 있다.
즉, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 시스템함수(func1) 및 시스템함수(func2)에 대한 특정 모니터링을 수행하기 위해, 시스템함수테이블(115)에서 시스템함수(func1) 및 시스템함수(func2)의 주소정보를 주소이동함수가 저장된 제1주소의 주소정보로 변경하게 된다(S220).
이에, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 시스템함수(func1) 호출이 요청되는 경우, 시스템함수테이블(115)에서 확인되는 시스템함수(func1)의 변경된 주소정보를 기초로 하나의 제1메모리영역에 접근하여 주소이동함수(jumper)를 호출하고, 주소이동함수(jumper)에 의해 상기 특정 주소정보를 기초로 상기 특정 메모리영역에 접근되어 핸들러게이트웨이함수를 호출하고, 핸들러게이트웨이함수에 의해 다수의 제2메모리영역 중 시스템함수(func1)의 시스템함수식별정보에 매핑된 모니터링함수1가 저장된 제2메모리영역에 접근되어 모니터링함수1를 호출할 수 있다.
즉, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 시스템함수(func1) 호출이 요청되는 경우, 시스템함수테이블(115)을 기초로 시스템함수(func1)의 변경된 주소정보에 따른 제1주소에 접근하여 주소이동함수를 호출하게 된다(S230).
이에, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 주소이동함수가 핸들러게이트웨이함수가 저장된 특정 주소로 이동(redirection)시켜, 주소이동함수에 의해 접근(지정) 불가능한 나머지 주소범위 내의 특정 주소로 접근하는 결과를 얻게 되어 핸들러게이트웨이함수를 호출하게 되고(S240), 핸들러게이트웨이함수에 의해 시스템함수(func1)의 시스템함수식별정보에 매핑된 제2주소에 접근되어(S250), 저장된 모니터링함수1을 호출할 수 있다(S260). 이에, 모니터링함수1은, 자신에 설정된 모니터링 기능을 기존과 같이 수행하게 되고 이후 원래의 시스템함수1을 호출하도록 한다.
한편, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 시스템함수(func2) 호출이 요청되는 경우, 전술의 SS230~S260단계에서, 시스템함수테이블(115)에서 확인되는 시스템함수(func1)의 변경된 주소정보를 기초로 하나의 제1메모리영역에 접근하여 주소이동함수(jumper)를 호출하고, 주소이동함수(jumper)에 의해 상기 특정 주소정보를 기초로 상기 특정 메모리영역에 접근되어 핸들러게이트웨이함수를 호출하고, 핸들러게이트웨이함수에 의해 다수의 제2메모리영역 중 시스템함수(func2)의 시스템함수식별정보에 매핑된 모니터링함수2가 저장된 제2메모리영역에 접근되어 모니터링함수2를 호출할 수 있다.
즉, 본 발명에 따른 컴퓨터 시스템의 시스템함수 모니터링 방법은, 시스템함수(func1)가 호출되든 또는 시스템함수(func2)가 호출되든, 시스템함수테이블(115)을 기초로 동일한 하나의 제1주소에 접근하여 주소이동함수를 호출하게 되고, 주소이동함수가 핸들러게이트웨이함수가 저장된 특정 주소로 이동(redirection)시켜, 주소이동함수에 의해 접근(지정) 불가능한 나머지 주소범위 내의 특정 주소로 접근하는 결과를 얻게 되어 핸들러게이트웨이함수를 호출하게 된고, 핸들러게이트웨이함수에 의해 해당되는 모니터링함수1 또는 모니터링함수2를 호출할 수 있게 된다.
이상에서 설명한 바와 같이 본 발명에 따르면, 메모리장치(120)의 전체 주소범위에 대응하는 비트 수 즉 OS 환경 보다 작은 비트 수의 메모리영역 접근 방식을 지원하는 (메모리접근모듈(110)을 갖는 경우, 메모리장치(120)의 전체 주소범위 중 접근(지정) 가능한 일부 주소범위 내에 접근(지정) 불가능한 나머지 주소범위로 이동시키기 위한 주소이동함수를 저장함으로써 메모리장치(120)의 전체 주소범위를 효과적으로 이용할 수 있고, 이를 기반으로 시스템함수 모니터링을 실현하여 64bit OS 환경에서도 32bit OS와 같이 커널모드에서 후킹이 가능해져 32bit OS와 동일한 수준의 보안 기능을 제공할 수 있다.
본 발명의 일실시예에 따른 컴퓨터 시스템의 주소 이동 방법과 컴퓨터 시스템의 시스템함수 모니터링 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (15)

  1. 메모리장치; 및
    상기 메모리장치의 전체 메모리영역 중 일부 메모리영역에 접근 가능한 메모리접근모듈을 포함하고;
    상기 메모리장치는,
    상기 일부 메모리영역 내 적어도 하나의 제1메모리영역에, 상기 전체 메모리영역 중 상기 일부 메모리영역을 제외한 나머지 메모리영역 내 적어도 하나의 제2메모리영역으로 접근시키는 주소이동함수가 저장되어, 상기 메모리접근모듈에서 상기 적어도 하나의 제1메모리영역에 어드레싱된 주소정보를 기초로 상기 적어도 하나의 제1메모리영역에 접근하여 상기 주소이동함수를 호출하면, 상기 주소이동함수에 의해 상기 메모리접근모듈이 상기 적어도 하나의 제2메모리영역으로 접근되는 것을 특징으로 하는 컴퓨터 시스템.
  2. 제 1 항에 있어서,
    상기 메모리접근모듈은,
    상기 메모리장치의 전체 메모리영역에 대응되는 비트(bit) 수 보다 작은 비트수를 기초로 하며 상기 일부 메모리영역 내 각 메모리영역에 접근하기 위한 주소정보를 저장하는 것을 특징으로 하는 컴퓨터 시스템.
  3. 제 2 항에 있어서,
    상기 메모리접근모듈은,
    상기 주소정보를 기초로 상대주소 접근방식에 따라 상기 일부 메모리영역 내 각 메모리영역에 접근하는 것을 특징으로 하는 컴퓨터 시스템.
  4. 제 2 항 또는 제 3 항에 있어서,
    상기 메모리접근모듈은,
    각 시스템함수 별로 상기 메모리장치에서 저장된 메모리영역에 어드레싱된 주소정보를 포함하는 시스템함수테이블을 포함하며, 특정 시스템함수의 호출이 요청되는 경우 상기 시스템함수테이블에서 확인되는 상기 특정 시스템함수의 주소정보를 기초로 상기 특정 시스템함수가 저장된 메모리영역에 접근하여 상기 특정 시스템함수를 호출하는 것을 특징으로 하는 컴퓨터 시스템.
  5. 제 4 항에 있어서,
    상기 적어도 하나의 제1메모리영역에, 특정 모니터링을 수행하는 모니터링함수가 저장된 상기 적어도 하나의 제2메모리영역에 어드레싱된 주소정보를 포함하는 상기 주소이동함수를 저장하는 모니터링제어모듈을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  6. 제 5 항에 있어서,
    상기 모니터링제어모듈은,
    상기 시스템함수테이블에서, 상기 특정 모니터링의 수행 대상으로 확인되는 상기 특정 시스템함수의 주소정보를 상기 주소이동함수가 저장된 상기 적어도 하나의 제1메모리영역에 어드레싱된 주소정보로 변경하는 것을 특징으로 하는 컴퓨터 시스템.
  7. 제 6 항에 있어서,
    상기 메모리접근모듈은,
    상기 특정 시스템함수의 호출이 요청되는 경우, 상기 시스템함수테이블에서 확인되는 상기 특정 시스템함수의 변경된 주소정보를 기초로 상기 적어도 하나의 제1메모리영역에 접근하여 상기 주소이동함수를 호출하고, 상기 주소이동함수에 의해 상기 적어도 하나의 제2메모리영역에 어드레싱된 주소정보를 기초로 상기 적어도 하나의 제2메모리영역에 접근되어 상기 모니터링함수를 호출하는 것을 특징으로 하는 컴퓨터 시스템.
  8. 제 4 항에 있어서,
    하나의 제1메모리영역에, 각 시스템함수식별정보에 매핑된 각 모니터링함수가 저장된 다수의 제2메모리영역에 대하여 접근을 중계하는 핸들러게이트웨이함수가 저장된 특정 메모리영역에 어드레싱된 특정 주소정보를 포함하는 상기 주소이동함수를 저장하는 모니터링제어모듈을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  9. 제 8 항에 있어서,
    상기 모니터링제어모듈은,
    상기 시스템함수테이블에서, 상기 각 모니터링함수에 따른 모니터링의 수행 대상으로 확인되는 상기 각 시스템함수식별정보에 대응되는 각 시스템함수의 주소정보를 상기 주소이동함수가 저장된 상기 하나의 제1메모리영역에 어드레싱된 주소정보로 변경하는 것을 특징으로 하는 컴퓨터 시스템.
  10. 제 9 항에 있어서,
    상기 메모리접근모듈은,
    상기 각 시스템함수 중 특정 시스템함수의 호출이 요청되는 경우, 상기 시스템함수테이블에서 확인되는 상기 특정 시스템함수의 변경된 주소정보를 기초로 상기 하나의 제1메모리영역에 접근하여 상기 주소이동함수를 호출하고, 상기 주소이동함수에 의해 상기 특정 주소정보를 기초로 상기 특정 메모리영역에 접근되어 상기 핸들러게이트웨이함수를 호출하고, 상기 핸들러게이트웨이함수에 의해 상기 다수의 제2메모리영역 중 상기 특정 시스템함수의 시스템함수식별정보에 매핑된 특정 모니터링함수가 저장된 제2메모리영역에 접근되어 상기 특정 모니터링함수를 호출하는 것을 특징으로 하는 컴퓨터 시스템.
  11. 제 6 항에 있어서,
    상기 핸들러게이트웨이함수가 저장된 상기 특정 메모리영역은,
    상기 메모리장치의 상기 전체 메모리영역 중 상기 나머지 메모리영역 내에 속하는 것을 특징으로 하는 컴퓨터 시스템.
  12. 메모리장치의 전체 메모리영역 중 메모리접근모듈에 의해 접근 가능한 일부 메모리영역 내 적어도 하나의 제1메모리영역에, 상기 전체 메모리영역 중 상기 일부 메모리영역을 제외한 나머지 메모리영역 내 적어도 하나의 제2메모리영역으로 접근시키는 주소이동함수가 저장되는 단계; 및
    상기 메모리접근모듈에서 상기 적어도 하나의 제1메모리영역에 어드레싱된 주소정보를 기초로 상기 적어도 하나의 제1메모리영역에 접근하여 상기 주소이동함수를 호출하면, 상기 주소이동함수에 의해 상기 메모리접근모듈이 상기 적어도 하나의 제2메모리영역으로 접근되는 단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 주소 이동 방법.
  13. 메모리장치의 전체 메모리영역 중 메모리접근모듈에 의해 접근 가능한 일부 메모리영역을 제외한 나머지 메모리영역 내 적어도 하나의 제2메모리영역에, 특정 모니터링을 수행하는 모니터링함수를 저장하는 단계;
    상기 메모리장치의 상기 일부 메모리영역 내 적어도 하나의 제1메모리영역에, 상기 적어도 하나의 제2메모리영역으로 접근시키는 주소이동함수를 저장하는 단계;
    각 시스템함수 별로 상기 메모리장치에서 저장된 메모리영역에 어드레싱된 주소정보를 포함하는 시스템함수테이블에서, 상기 특정 모니터링의 수행 대상으로 확인되는 특정 시스템함수의 주소정보를 상기 주소이동함수가 저장된 상기 적어도 하나의 제1메모리영역에 어드레싱된 주소정보로 변경하는 단계;
    상기 메모리접근모듈에서 상기 특정 시스템함수의 호출이 요청되는 경우, 상기 시스템함수테이블에서 확인되는 상기 특정 시스템함수의 변경된 주소정보를 기초로 상기 적어도 하나의 제1메모리영역에 접근하여 상기 주소이동함수를 호출하는 단계; 및
    상기 메모리접근모듈에서 상기 주소이동함수에 의해 상기 적어도 하나의 제2메모리영역에 접근되어 상기 모니터링함수를 호출하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 시스템함수 모니터링 방법.
  14. 메모리장치의 전체 메모리영역 중 메모리접근모듈에 의해 접근 가능한 일부 메모리영역을 제외한 나머지 메모리영역 내 다수의 제2메모리영역에, 각 시스템함수식별정보 별로 매핑된 각 모니터링함수를 저장하는 단계;
    상기 메모리장치의 상기 일부 메모리영역 내 하나의 제1메모리영역에, 상기 각 시스템함수식별정보에 따라 상기 다수의 제2메모리영역에 대하여 접근을 중계하는 핸들러게이트웨이함수가 저장된 특정 메모리영역으로 접근시키는 주소이동함수를 저장하는 단계;
    각 시스템함수 별로 상기 메모리장치 내에서 저장된 주소를 나타내는 주소정보를 포함하는 시스템함수테이블에서, 상기 각 모니터링함수에 따른 모니터링의 수행 대상으로 확인되는 상기 각 시스템함수식별정보에 대응되는 각 시스템함수의 주소정보를 상기 주소이동함수가 저장된 상기 하나의 제1메모리영역에 어드레싱된 주소정보로 변경하는 단계;
    상기 메모리접근모듈에서 상기 각 시스템함수 중 특정 시스템함수의 호출이 요청되는 경우, 상기 시스템함수테이블에서 확인되는 상기 특정 시스템함수의 변경된 주소정보를 기초로 상기 하나의 제1메모리영역에 접근하여 상기 주소이동함수를 호출하는 단계;
    상기 메모리접근모듈에서 상기 주소이동함수에 의해 상기 특정 주소정보를 기초로 상기 특정 메모리영역에 접근되어 상기 핸들러게이트웨이함수를 호출하는 단계; 및
    상기 메모리접근모듈에서 상기 핸들러게이트웨이함수에 의해 상기 다수의 제2메모리영역 중 상기 특정 시스템함수의 시스템함수식별정보에 매핑된 특정 모니터링함수가 저장된 제2메모리영역에 접근되어 상기 특정 모니터링함수를 호출하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 시스템함수 모니터링 방법.
  15. 제 12 항 내지 제 14 항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
PCT/KR2013/005206 2012-07-20 2013-06-12 컴퓨터 시스템과, 컴퓨터 시스템의 주소 이동 방법 및 컴퓨터 시스템의 시스템함수 모니터링 방법 WO2014014200A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120079459A KR101412200B1 (ko) 2012-07-20 2012-07-20 컴퓨터 시스템과, 컴퓨터 시스템의 주소 이동 방법 및 컴퓨터 시스템의 시스템함수 모니터링 방법
KR10-2012-0079459 2012-07-20

Publications (1)

Publication Number Publication Date
WO2014014200A1 true WO2014014200A1 (ko) 2014-01-23

Family

ID=49948996

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2013/005206 WO2014014200A1 (ko) 2012-07-20 2013-06-12 컴퓨터 시스템과, 컴퓨터 시스템의 주소 이동 방법 및 컴퓨터 시스템의 시스템함수 모니터링 방법

Country Status (2)

Country Link
KR (1) KR101412200B1 (ko)
WO (1) WO2014014200A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021006894A1 (en) * 2019-07-10 2021-01-14 Halliburton Energy Services, Inc. Enhanced over voltage protection of a downhole system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006323824A (ja) * 2005-02-28 2006-11-30 Sony Computer Entertainment Inc プロセッサシステム内においてスタックを分離して管理する方法および装置
KR20100009062A (ko) * 2008-07-17 2010-01-27 삼성전자주식회사 데이터 보안을 위한 파일 시스템 구성 방법 및 장치, 그에의해 만들어진 데이터 보안 영역에 접근하는 방법 및 장치,그에 따른 데이터 저장 장치
KR101014814B1 (ko) * 2009-07-22 2011-02-14 주식회사 즐게임 커널 감시기가 설치된 컴퓨터 시스템 및 커널 감시 방법
JP2011170749A (ja) * 2010-02-22 2011-09-01 Fujitsu Ltd シミュレーション装置及びシミュレーション方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006323824A (ja) * 2005-02-28 2006-11-30 Sony Computer Entertainment Inc プロセッサシステム内においてスタックを分離して管理する方法および装置
KR20100009062A (ko) * 2008-07-17 2010-01-27 삼성전자주식회사 데이터 보안을 위한 파일 시스템 구성 방법 및 장치, 그에의해 만들어진 데이터 보안 영역에 접근하는 방법 및 장치,그에 따른 데이터 저장 장치
KR101014814B1 (ko) * 2009-07-22 2011-02-14 주식회사 즐게임 커널 감시기가 설치된 컴퓨터 시스템 및 커널 감시 방법
JP2011170749A (ja) * 2010-02-22 2011-09-01 Fujitsu Ltd シミュレーション装置及びシミュレーション方法

Also Published As

Publication number Publication date
KR20140012479A (ko) 2014-02-03
KR101412200B1 (ko) 2014-06-27

Similar Documents

Publication Publication Date Title
KR100939398B1 (ko) 광대역 네트워크들을 위한 컴퓨터 아키텍쳐에서의 외부데이터 인터페이스
WO2012033237A1 (ko) 시스템 테스트 방법
WO2011053038A2 (ko) 교착 상태의 방지를 위한 데이터 처리 방법 및 시스템
US20070050580A1 (en) Apparatus, system, and method for implementing protected virtual memory subcontexts
WO2011065618A1 (ko) 능동 메모리 프로세서를 포함하는 네트워크-온-칩 시스템
WO2017213473A1 (en) Method for managing files and apparatus using the same
WO2021118125A1 (ko) 안드로이드 어플리케이션에 의해 실행 가능한 보안 컨테이너 구축 장치, 방법 및 그 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
WO2016064158A1 (ko) 재구성 가능 프로세서 및 그 동작 방법
WO2018036000A1 (zh) 应用程序跨系统运行的方法和装置
WO2014142553A1 (ko) 워크 로드에 따라 동적 자원 할당 가능한 상호 연결 패브릭 스위칭 장치 및 방법
WO2014119864A1 (en) Software migration method and apparatus in micro-server environment
WO2016085050A1 (ko) 주변기기와 연동하는 사용자 단말기 및 그것을 이용한 정보 유출 방지 방법
WO2015023144A1 (ko) 메모리 공유 환경에서 데이터 무결성 감시 장치 및 방법
WO2022124720A1 (ko) 운영체제 커널 메모리의 실시간 오류 검출 방법
WO2018016830A1 (ko) 파일 암호화 방지 장치 및 방법
WO2014014200A1 (ko) 컴퓨터 시스템과, 컴퓨터 시스템의 주소 이동 방법 및 컴퓨터 시스템의 시스템함수 모니터링 방법
WO2015130093A1 (en) Method and apparatus for preventing bank conflict in memory
WO2015060493A1 (ko) 주행 중 내비게이션 데이터의 부분 업데이트 장치 및 방법
WO2019225849A1 (ko) 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법
WO2014092381A1 (ko) 스크래치패드 메모리 관리 시스템 및 방법
WO2018097520A1 (ko) 컴퓨팅 장치의 리소스를 분배하는 컴퓨터 프로그램, 방법 및 장치
WO2018080192A1 (en) Electronic device and data transfer method thereof
WO2017115976A1 (ko) 접근성 이벤트를 이용한 유해 사이트 차단 방법 및 장치
WO2021107173A1 (ko) 인터럽트 처리 장치 및 방법
WO2019156279A1 (ko) 랜부팅 환경 기반 파일 보안 및 중앙화를 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

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

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

Country of ref document: EP

Kind code of ref document: A1