KR20100022853A - System and controlling method for data protection by memory relocation - Google Patents
System and controlling method for data protection by memory relocation Download PDFInfo
- Publication number
- KR20100022853A KR20100022853A KR1020080081554A KR20080081554A KR20100022853A KR 20100022853 A KR20100022853 A KR 20100022853A KR 1020080081554 A KR1020080081554 A KR 1020080081554A KR 20080081554 A KR20080081554 A KR 20080081554A KR 20100022853 A KR20100022853 A KR 20100022853A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- source code
- memory
- memory relocation
- relocating
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 117
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000012937 correction Methods 0.000 claims description 8
- 230000008707 rearrangement Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 2
- 238000004886 process control Methods 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
Description
본 발명은 메모리 재배치를 통한 데이터 보호 시스템 및 그 제어 방법에 관한 것이다.The present invention relates to a data protection system and its control method through memory relocation.
인터넷이 발달함에 따라, 사용자들의 정보가 공격자에 의해 누출될 수 있는 확률도 증가하고 있다. 최근에는 메모리 탐지 기법을 통한 인터넷 뱅킹시의 사용자 정보 누출 기법과 같이 수동적이 아닌, 능동적인 공격 방법도 발생하고 있다.As the Internet develops, the probability that users' information may be leaked by attackers is increasing. Recently, non-passive and active attack methods such as leaking user information in internet banking through memory detection techniques have also occurred.
이뿐만이 아니라 DRM(Digital Rights Management)기법을 사용하는 일부 솔루션에서는 메모리 탐지를 통한 데이터 누출에 대한 방지가 되어있지 않은 실정이다.In addition, some solutions that use Digital Rights Management (DRM) techniques do not provide protection against data leakage through memory detection.
인터넷 뱅킹의 경우 키보드 해킹방지 솔루션을 통한 입력장치와 프로세스(Process)간의 데이터 보호만이 이루어지기 때문에, 키보드 해킹방지 솔루션을 이용하는 사용자라고 하더라도 공격자가 메모리 탐지 특성을 이용하여 사용자의 정보 누출을 통한 인터넷 뱅킹에서의 개인 정보취득 및 계좌 이체 등의 공격을 할 수 있다.In case of internet banking, only data protection between input device and process is achieved through keyboard hacking prevention solution. Attacks on banking, personal information acquisition, and bank transfers can be made.
종래에는 프로그램의 내부 데이터 취득을 방지하기 위하여, 프로세스 접근 권한을 제한하는 방법을 이용하거나, API 후킹(Hooking)이라는 기술을 이용하여 인증된 프로그램에서 대상 데이터를 요청하고 암호화된 원본 데이터를 복호화하여 인증된 프로그램으로 제공하는 방법을 주로 이용하였다.Conventionally, in order to prevent acquiring internal data of a program, by using a method of restricting process access authority or by requesting target data from an authenticated program using a technique called API hooking, decrypting the encrypted original data is authenticated. The method of providing the program was mainly used.
그러나, 프로세스 접근 권한을 제한하는 종래 기술은 공격자가 프로세스 내에서 접근 권한을 확인하는 루틴을 크랙(crack)하거나, 운영체제의 프로세스 정보에서 접근 권한 부분을 수정함으로써 무력화할 수 있다. However, the prior art of limiting process access rights can be neutralized by an attacker cracking a routine to check access rights within a process or modifying the access right portion of the operating system's process information.
또한, API 후킹(Hooking) 기술을 이용한 데이터 보호 방법에서는 공격자가 또 다른 종류의 API 후킹을 데이터 보호하는 API 후킹 보호 루틴보다 이전에 등록을 함으로써, API Hooking 되기 전/후의 데이터를 취득하므로 이러한 보호 방법이 쉽게 공격당할 수 있는 문제점이 있다.In addition, in the data protection method using API hooking technology, the attacker acquires data before and after API hooking by registering before API hooking protection routine that protects another kind of API hooking. There is a problem that can be easily attacked.
그뿐만 아니라, DRM이 적용된 음원의 경우에는 원본 데이터가 복구되어 재생되기 바로 전에 해당 데이터가 존재하는 메모리영역을 탐지하여 별도의 파일로 저장함으로써 공격자가DRM이 적용되어있지 않은 원본 음원을 취득할 수 있다. 따라서, 인증되지 않은 사용자라 하더라도 취득한 원본 음원의 재생이 가능하기 때문에 쉽게 배포될 수 있으며, 이로 인해 컨텐츠 제공자의 권리와 이익이 침해받을 수 있는 문제점이 있었다.In addition, in the case of DRM applied sound source, an attacker can acquire the original sound source without DRM by detecting the memory area where the data exists and saving it as a separate file just before the original data is recovered and played. have. Therefore, even an unauthenticated user can easily distribute the acquired original sound source, and thus there is a problem that the rights and interests of the content provider can be infringed.
본 발명은 상기와 같은 종래 기술을 개선하기 위해 안출된 것으로서, 응용 프로그램의 소스코드 차원에서 메모리의 순서를 재배치하여 중요한 데이터를 공격자가 쉽게 취득할 수 없는 데이터 보호 방법을 제공하고자 한다.SUMMARY OF THE INVENTION The present invention has been made to improve the prior art as described above, and provides a data protection method in which an attacker cannot easily acquire important data by rearranging the order of memories at the source code level of an application program.
또한, 본 발명은 메모리에 저장되는 메모리의 순서를 재배치하여, 공격자가 메모리 취득/변형 공격을 시도하여도 해당 공격을 무력화하고자 한다.In addition, the present invention is to rearrange the order in which the memory is stored in the memory, to defeat the attack even if the attacker attempts a memory acquisition / modification attack.
본 발명의 일측에 따른 메모리 재배치를 통한 데이터 보호 시스템은, 소스 코드 차원에서 데이터를 재배치하기 위한 메모리 재배치 모듈을 구축하는 단계, 상기 메모리 재배치 모듈을 이용하여 상기 데이터의 소스 코드를 재배치하는 단계, 및 상기 소스 코드를 메모리에 저장하는 단계를 포함한다.According to an aspect of the present invention, a data protection system using memory relocation includes: constructing a memory relocation module for relocating data at a source code level; relocating source code of the data using the memory relocation module; and Storing the source code in a memory.
이때, 상기 메모리 재배치 모듈을 이용하여 상기 데이터의 소스 코드를 재배치하는 단계는, 상기 메모리 재배치 모듈을 이용해, 상기 데이터를 일정 단위로 분할하고, 상기 분할된 데이터를 재배치하는 단계일 수 있다.In this case, the relocating the source code of the data using the memory relocation module may include dividing the data into a predetermined unit by using the memory relocation module and relocating the divided data.
이때, 상기 메모리 재배치 모듈을 이용하여 상기 데이터의 소스 코드를 재배치하는 단계는, 상기 메모리 재배치 모듈을 이용해, 상기 데이터의 소스 코드 내의 문자 또는 문자열을 선정된 다른 문자 또는 문자열로 변경하여 상기 소스 코드를 재배치하는 단계일 수 있다.In this case, relocating the source code of the data by using the memory relocation module may include converting a character or a string in the source code of the data into another selected character or a string by using the memory relocation module. May be a step of relocating.
이때, 상기 소스 코드를 컴파일하는 단계를 더 포함할 수 있다.In this case, the method may further include compiling the source code.
본 발명의 일측에 따른 메모리 재배치를 통한 데이터 보호 시스템은, 소스 코드 차원에서 데이터를 재배치하기 위한 메모리 재배치 모듈을 구축하는 메모리 구축부, 상기 메모리 재배치 모듈을 이용하여 상기 데이터의 소스 코드를 재배치하는 소스 코드 수정부, 및 상기 소스 코드를 메모리에 저장하도록 제어하는 저장 처리부를 포함한다.According to an aspect of the present invention, a data protection system through memory relocation includes: a memory constructing unit for constructing a memory relocation module for relocating data at a source code level; a source for relocating the source code of the data using the memory relocation module; A code processor, and a storage processor for controlling the source code to be stored in a memory.
이때, 상기 소스 코드 수정부는 상기 메모리 재배치 모듈을 이용해, 상기 데이터를 일정 단위로 분할하고, 상기 분할된 데이터를 재배치할 수 있다.In this case, the source code modification unit may divide the data into a predetermined unit by using the memory relocation module, and may relocate the divided data.
이때, 상기 소스 코드 수정부는 상기 메모리 재배치 모듈을 이용해, 상기 데이터의 소스 코드 내의 문자 또는 문자열을 선정된 다른 문자 또는 문자열로 변경하여 상기 소스 코드를 재배치할 수 있다.In this case, the source code modification unit may relocate the source code by changing a character or a string in the source code of the data to another selected character or string using the memory relocation module.
이때, 상기 소스 코드를 컴파일하는 컴파일러를 더 포함할 수 있다.At this time, it may further include a compiler for compiling the source code.
본 발명에 따르면, 응용 프로그램의 소스코드 차원에서 메모리의 순서를 재배치하여 중요한 데이터를 공격자가 쉽게 취득할 수 없는 데이터 보호 방법을 제공할 수 있다.According to the present invention, it is possible to provide a data protection method in which an attacker cannot easily acquire important data by rearranging the order of memories at the source code level of an application program.
또한, 본 발명에 따르면 메모리에 저장되는 메모리의 순서를 재배치하므로, 공격자가 메모리 취득/변형 공격을 시도하여도 해당 공격을 효율적으로 무력화 할 수 있다.In addition, according to the present invention, since the order of the memories stored in the memory is rearranged, even if an attacker attempts a memory acquisition / modification attack, the attack can be effectively disabled.
이하 첨부된 도면들 및 첨부된 도면들에 기재된 내용들을 참조하여 본 발명 의 바람직한 실시예를 상세하게 설명하지만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings and the contents described in the accompanying drawings, but the present invention is not limited or limited by the embodiments. Like reference numerals in the drawings denote like elements.
또한, 본 명세서에서 기재한 모듈(module)이란 용어는 특정한 기능이나 동작을 처리하는 하나의 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현할 수 있다.In addition, the term module described herein refers to a unit for processing a specific function or operation, which may be implemented in hardware or software, or a combination of hardware and software.
도 1은 본 발명의 일례에 따른 메모리 재배치를 통한 데이터 보호 시스템의 구성도이다. 도 1을 참조하여 본 발명의 일례에 따른 메모리 재배치를 통한 데이터 보호 시스템을 설명하기로 한다.1 is a block diagram of a data protection system through memory relocation according to an example of the present invention. A data protection system through memory relocation according to an example of the present invention will be described with reference to FIG. 1.
도 1에 도시된 바와 같이, 본 발명의 일례에 따른 메모리 재배치를 통한 데이터 보호 시스템(110)은 메모리 재배치 모듈 구축부(110), 소스 코드 수정부(120), 및 컴파일러(130)를 포함한다.As shown in FIG. 1, the
메모리 재배치 모듈 구축부(110)는 소스 코드 차원에서 데이터를 재배치하기 위한 메모리 재배치 모듈을 구축한다.The memory relocation
본 발명의 일례에 따른 메모리 재배치 모듈은 소스 차원에서 상기 데이터를 일정 단위로 분할하고, 상기 분할된 데이터를 재배치하는 데에 사용되는 모듈이다.The memory relocation module according to an example of the present invention is a module used to divide the data into a predetermined unit at a source level and to relocate the divided data.
예를 들어, C++의 경우 메모리 재배치 모듈은, new_int 클래스에서 4 bytes 크기의 변수 형인 int를 WORD(2bytes) 단위로 나눈 뒤 상위 부분의 16 bit와 하위 부분의 16 bit를 교환하는 방식으로 4 bytes 변수의 메모리 내용을 재구성할 수 있다.For example, in the case of C ++, the memory relocation module divides the 4-byte variable type int into WORD (2bytes) in the new_int class, and then exchanges the 4-byte variable in the upper part and 16-bit in the lower part. The contents of the memory can be reconstructed.
즉, 메모리 재배치 모듈은 0x12345678의 경우, 이를 0x1234와 0x5678로 나누고, 다시 순서를 바꾸어 0x56781234로 메모리에 저장하도록 제어할 수 있다.That is, in the case of 0x12345678, the memory relocation module may divide the data into 0x1234 and 0x5678 and change the order to store the data in the memory as 0x56781234.
또한, 본 발명의 또 다른 일례에 따른 메모리 재배치 모듈은 상기 데이터의 소스 코드 내의 문자 또는 문자열을 선정된 다른 문자 또는 문자열로 변경하여 상기 소스 코드를 재배치하도록 구성될 수 있다.In addition, the memory rearrangement module according to another example of the present invention may be configured to rearrange the source code by changing a character or string in the source code of the data to another selected character or string.
소스 코드 수정부(120)는 상기 데이터의 소스 코드를 재배치하는 상기 메모리 재배치 모듈을 실적 소스 코드에 적용하는 동작을 수행한다. 즉, 소스 코드 수정부(120)는 상기 메모리 재배치 모듈을 실제 개발되고 있는 보안이 필요한 응용 프로그램에 적용하는 기능을 담당한다.The source
이때, 소스 코드 수정부(120)는 상기 메모리 재배치 모듈을 이용해, 상기 데이터를 일정 단위로 분할하고, 상기 분할된 데이터를 재배치할 수 있다.In this case, the source
또한, 소스 코드 수정부(120)는 상기 메모리 재배치 모듈을 이용해, 상기 데이터의 소스 코드 내의 문자 또는 문자열을 선정된 다른 문자 또는 문자열로 변경하여 상기 소스 코드를 재배치할 수 있다.In addition, the
또한, 상기 소스 코드를 메모리에 저장하도록 제어하는 저장 처리부(미도시)를 더 포함하여 구성될 수 있다.The apparatus may further include a storage processor (not shown) for controlling the source code to be stored in the memory.
컴파일러(130)는 상기와 같이 재배치된 소스 코드를 컴파일할 수 있다.The
따라서, 본 발명의 일례에 따르면, 응용 프로그램의 소스코드 차원에서 메모리의 순서를 재배치하므로 중요한 데이터를 공격자가 쉽게 취득할 수 없다.Therefore, according to an example of the present invention, since the memory is rearranged at the source code level of an application program, important data cannot be easily obtained by an attacker.
도 2 및 도 3은 본 발명의 일례에 따른 메모리 재배치 후의 데이터 구조를 설명하기 위한 도면이다. 보다 상세하게 설명하면, 도 2는 종래의 데이터가 메모리상에 저장된 구조를 나타내며, 도 3은 본 발명의 일례에 따른 데이터가 메모리 상에 저장된 구조를 나타낸다.2 and 3 are diagrams for explaining a data structure after memory relocation according to an example of the present invention. In more detail, FIG. 2 illustrates a structure in which conventional data is stored on a memory, and FIG. 3 illustrates a structure in which data according to an example of the present invention is stored on a memory.
도 2에 도시된 바와 같이 데이터가 메모리에 순차적으로 배치되는 경우에는, 메모리 주소 값을 추출하기 쉽기 때문에 데이터의 보호가 어렵다.As shown in FIG. 2, when data is sequentially arranged in a memory, data protection is difficult because it is easy to extract a memory address value.
그러나, 본 발명의 일례에 따르면, 개발자는 메모리 재배치 모듈을 구축할 때, 해쉬(hash)값 등을 통하여, 도 3에 도시된 바와 같이 메모리를 재배치하는 방법을 이용하여 데이터를 보호할 수 있다.However, according to an example of the present invention, when building a memory relocation module, a developer may protect data by using a method of relocating the memory as shown in FIG. 3 through a hash value or the like.
즉, 메모리가 재배치된 상태에서는 공격자가 해당 데이터가 존재하는 메모리 주소 값을 추측하기 어렵기 때문에 데이터 보호가 가능하다.In other words, when the memory is relocated, it is difficult for an attacker to guess the memory address value where the data exists.
한편, 이때 메모리 재배치 모듈에 오브퍼스케이터(obfuscator)를 적용하는 경우에는, 데이터의 소스 코드 내의 문자 또는 문자열을 선정된 다른 문자 또는 문자열로 변경하여 상기 소스 코드를 재배치할 수 있다. 그러므로, 공격자가 데이터를 취득함으로써 얻을 수 있는 이득보다 이를 취득하기 위한 노력을 훨씬 더 크게 함으로써 메모리 재배치 모듈을 보호할 수 있다. In the meantime, when the obfuscator is applied to the memory relocation module, the source code may be rearranged by changing a character or a string in the source code of the data to another selected character or string. Therefore, it is possible to protect the memory relocation module by making the effort to obtain the data much larger than the gain that an attacker can obtain by acquiring the data.
예를 들어, 도 2에 도시된 바와 같이 원본 소스코드(210) 상의 4 Bytes 데이터(220)를 d 라 하고, d 데이터가 메모리상에서 시작되는 위치를 s(230) 라 하였을 때, d 는 각각 s(230), s+1(231), s+2(232), s+3(233)의 위치에 저장된다. 이는 공격자가 s(230)의 위치를 파악하게 되면 쉽게 데이터를 취득하거나 변조할 수 있는 문제점이 있다.For example, as shown in FIG. 2, when 4
하지만 본 발명에 따른 메모리 재배치를 통한 데이터 보호 시스템에 의하면, 원본 데이터 d 는, 각각 연속적이지 않은 메모리 주소인 s'(330), s''(331), s'''(332), s''''(333)을 갖게 되며, 이 메모리 주소는 메모리 재배치 모듈에 의해 관리된다.However, according to the data protection system through the memory relocation according to the present invention, the original data d is s' (330), s' '(331), s'' '(332), s' which are respectively non-contiguous memory addresses. Will have '' '(333), and this memory address is managed by the memory relocation module.
따라서, 본 발명의 일례에 따른 메모리 재배치를 통한 데이터 보호 시스템에 의하면, 운영체제 프로세스 제어 블록(Process Control Block)을 수정함으로써 무력화되거나, 선점형 API 후킹(Hooking)을 함으로써 무력화되는 종래 기술에 비해, 더 나은 데이터 보호 솔루션을 제공할 수 있다.Therefore, according to the data protection system through the memory relocation according to an example of the present invention, compared to the prior art that is disabled by modifying the operating system process control block (Process Control Block), or disabled by preemptive API hooking (Hooking) It can provide a better data protection solution.
도 4는 본 발명의 일례에 따른 메모리 재배치를 통한 데이터 보호 시스템에 의하여 관리되는 데이터가 사용되는 방법이 도시된 도면이다. 도 4를 참조하여 본 발명의 일례에 따른 메모리 재배치를 통한 데이터 보호 시스템에 의하여 관리되는 데이터가 사용되는 방법을 설명하기로 한다.4 is a diagram illustrating a method of using data managed by a data protection system through memory relocation according to an example of the present invention. A method of using data managed by a data protection system through memory relocation according to an example of the present invention will be described with reference to FIG. 4.
각각의 데이터 1, 2, 3, 4(410, 411, 412, 413)를 d1, d2, d3, d4라고 하고, 보호된 데이터 1, 2, 3, 4(420, 421, 422, 423)를 d1', d2', d3', d4'라고 하였을 때, 응용프로그램에서 사용하는 d1, d2, d3, d4의 데이터는 실제 메모리에 존재하는 데이터가 아니며, 실제로는 d1', d2', d3', d4'로 보호되어 있다.Each of the
d1', d2', d3', d4'는 메모리 재배치 모듈(430)에 의해 관리되는 메모리 주소이기 때문에 응용프로그램에서는 d1', d2', d3', d4'의 존재 유무를 알 수가 없다. Since d1 ', d2', d3 ', and d4' are memory addresses managed by the
d1', d2', d3', d4'는 메모리 재배치 모듈(430)에 의해서만 접근이 될 수 있 는 데이터의 메모리 주소이다.d1 ', d2', d3 ', and d4' are memory addresses of data that can only be accessed by the
예를 들어, 응용프로그램에서 d3에 접근하려고 할 때에는, 메모리 재배치 모듈(430)에 의해 d3'(422)으로부터 원본 데이터의 값을 계산하여 응용프로그램에 사용할 수 있는 환경을 제공할 수 있다.For example, when an application program tries to access d3, the
메모리 재배치 모듈(430)에서는 d3'(422)의 원본 데이터가 요청되면 메모리 재배치 시 사용되었던 공식의 역변환을 통해 원본 데이터를 취득할 수 있다.When the original data of the d3 '422 is requested, the
예를 들어, 메모리 재배치 모듈(430)에서 0x12345678과 같은 데이터를 상/하위 2 바이트씩 메모리를 재배치하는 공식을 이용하여 실제 메모리에 0x56781234 와 같이 저장하였을 경우에는, 응용프로그램에서 원본 데이터를 요청하였을 시 이를 다시 상/하위 2 바이트씩 재배치하는 방법을 이용하여 0x12345678와 같은 원본 데이터를 취득할 수 있다.For example, when the
도 5는 본 발명의 일례에 따른 메모리 재배치를 통한 데이터 보호 시스템의 제어 방법을 설명하기 위한 흐름도이다. 도 5를 참조하여 본 발명의 일례에 따른 메모리 재배치를 통한 데이터 보호 시스템의 제어 방법을 설명하기로 한다.5 is a flowchart illustrating a control method of a data protection system through memory relocation according to an example of the present invention. A control method of a data protection system through memory relocation according to an example of the present invention will be described with reference to FIG. 5.
본 발명의 일례에 따른 데이터 보호 시스템은, 소스 코드 차원에서 데이터를 재배치하기 위한 메모리 재배치 모듈을 구축한다(S510).The data protection system according to an exemplary embodiment of the present invention builds a memory relocation module for relocating data at the source code level (S510).
본 발명의 일례에 따른 메모리 재배치 모듈은 상기 데이터를 일정 단위로 분할하고, 상기 분할된 데이터를 재배치하도록 구성되어 구축될 수 있다.The memory rearrangement module according to an embodiment of the present invention may be configured and constructed to divide the data into predetermined units and to rearrange the divided data.
또한 본 발명의 또 다른 일례에 따른 메모리 재배치 모듈은 상기 데이터의 소스 코드 내의 문자 또는 문자열을 선정된 다른 문자 또는 문자열로 변경하여 상 기 소스 코드를 재배치하도록 구성되어 구축될 수 있다.In addition, the memory rearrangement module according to another embodiment of the present invention may be constructed and configured to rearrange the source code by changing a character or a string in the source code of the data to another selected character or string.
데이터 보호 시스템은 상기 메모리 재배치 모듈을 이용하여 상기 데이터의 소스 코드를 재배치한다(S520).The data protection system relocates the source code of the data by using the memory relocation module (S520).
즉, 데이터 보호 시스템은 상기 메모리 재배치 모듈을 이용해, 상기 데이터를 일정 단위로 분할하고, 상기 분할된 데이터를 재배치할 수 있다.That is, the data protection system may divide the data into predetermined units by using the memory relocation module, and relocate the divided data.
또한, 메모리 재배치 모듈은 상기 메모리 재배치 모듈을 이용해, 상기 데이터의 소스 코드 내의 문자 또는 문자열을 선정된 다른 문자 또는 문자열로 변경하여 상기 소스 코드를 재배치할 수 있다.Also, the memory relocation module may relocate the source code by changing a character or a string in the source code of the data to another selected character or a string using the memory relocation module.
이와 같이 재배치된 소스 코드를 메모리에 저장할 수 있다.This redistributed source code can be stored in memory.
이후, 데이터 보호 시스템은 컴파일러를 이용하여 상기 소스 코드를 컴파일 할 수 있다(S530).Thereafter, the data protection system may compile the source code using a compiler (S530).
따라서, 본 발명의 일례에 따르면, 응용 프로그램의 소스코드 차원에서 메모리의 순서를 재배치하여 중요한 데이터를 공격자가 쉽게 취득할 수 없도록 하여, 공격자가 메모리 취득/변형 공격을 시도하여도, 해당 공격을 효율적으로 무력화할 수 있다.Therefore, according to an example of the present invention, the order of the memory is rearranged at the source code level of the application program so that the attacker cannot easily acquire important data, so that even if the attacker attempts a memory acquisition / modification attack, the attack can be efficiently executed. Can be neutralized.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해 져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined not only by the claims below, but also by those equivalent to the claims.
도 1은 본 발명의 일례에 따른 메모리 재배치를 통한 데이터 보호 시스템의 구성도이다.1 is a block diagram of a data protection system through memory relocation according to an example of the present invention.
도 2 및 도 3은 본 발명의 일례에 따른 메모리 재배치 후의 데이터 구조를 설명하기 위한 도면이다.2 and 3 are diagrams for explaining a data structure after memory relocation according to an example of the present invention.
도 4는 본 발명의 일례에 따른 데이터 보호 시스템에 의하여 데이터가 사용되는 방법이 도시된 도면이다.4 is a diagram illustrating how data is used by a data protection system in accordance with an example of the present invention.
도 5는 본 발명의 일례에 따른 메모리 재배치를 통한 데이터 보호 시스템의 제어 방법을 설명하기 위한 흐름도이다.5 is a flowchart illustrating a control method of a data protection system through memory relocation according to an example of the present invention.
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
100: 데이터 보호 시스템100: data protection system
110: 메모리 재배치 모듈 구축부110: memory relocation module builder
120: 소스 코드 수정부120: source code correction
130: 컴파일러130: compiler
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080081554A KR20100022853A (en) | 2008-08-20 | 2008-08-20 | System and controlling method for data protection by memory relocation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080081554A KR20100022853A (en) | 2008-08-20 | 2008-08-20 | System and controlling method for data protection by memory relocation |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100022853A true KR20100022853A (en) | 2010-03-03 |
Family
ID=42175275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080081554A KR20100022853A (en) | 2008-08-20 | 2008-08-20 | System and controlling method for data protection by memory relocation |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20100022853A (en) |
-
2008
- 2008-08-20 KR KR1020080081554A patent/KR20100022853A/en not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Matetic et al. | {BITE}: Bitcoin lightweight client privacy using trusted execution | |
Ren et al. | Design space exploration and optimization of path oblivious ram in secure processors | |
EP1942431B1 (en) | Software or other information integrity verification using variable block length and selection | |
Bhatkar et al. | Address obfuscation: An efficient approach to combat a broad range of memory error exploits | |
Wurster et al. | A generic attack on checksumming-based software tamper resistance | |
Chen et al. | Defeating memory corruption attacks via pointer taintedness detection | |
US7730322B2 (en) | System and method of foiling buffer-overflow and alien-code attacks | |
Hasabnis et al. | Light-weight bounds checking | |
US10237059B2 (en) | Diversified instruction set processing to enhance security | |
CN110945509B (en) | Apparatus and method for controlling access to data in a protected memory region | |
US20150101045A1 (en) | Creating a relatively unique environment for computing platforms | |
US11775177B2 (en) | Integrity tree for memory integrity checking | |
EP3127034A1 (en) | Software protection | |
WO2012115882A2 (en) | Systems and methods for enhanced security in wireless communication | |
JP2011227897A (en) | Method, device and computer program support for verification of checksum for self-modified computer code | |
CN110210211B (en) | Data protection method and computing equipment | |
US20210144170A1 (en) | System and method for protection against side channel attacks | |
Milenković et al. | Hardware support for code integrity in embedded processors | |
Milenković et al. | Using instruction block signatures to counter code injection attacks | |
Lin et al. | Control-flow carrying code | |
Santos et al. | Leveraging speculative architectures for runtime program validation | |
Jakobsson | Secure remote attestation | |
KR20100022853A (en) | System and controlling method for data protection by memory relocation | |
Zonouz et al. | Dynamic memory protection via Intel SGX-supported heap allocation | |
Champagne et al. | The reduced address space (ras) for application memory authentication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |