KR20100022853A - System and controlling method for data protection by memory relocation - Google Patents

System and controlling method for data protection by memory relocation Download PDF

Info

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
Application number
KR1020080081554A
Other languages
Korean (ko)
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 한양대학교 산학협력단
Priority to KR1020080081554A priority Critical patent/KR20100022853A/en
Publication of KR20100022853A publication Critical patent/KR20100022853A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting 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

PURPOSE: A system for protecting data through memory rearrangement and a control method thereof are provided to rearrange the order of memories in a source code of an application program, thereby preventing an attacker from easily obtaining important data. CONSTITUTION: A memory rearrangement module constructing unit(110) constructs a memory rearrangement module for rearranging data in a source code. A source code correcting unit(120) rearranges a source code of the data using the memory rearrangement module constructing unit. A storage processor performs a control operation to store the rearranged source code in a memory. A compiler(130) compiles the rearranged source code.

Description

메모리 재배치를 통한 데이터 보호 시스템 및 그 제어 방법{SYSTEM AND CONTROLLING METHOD FOR DATA PROTECTION BY MEMORY RELOCATION}Data protection system and its control method through memory relocation {SYSTEM AND CONTROLLING METHOD FOR DATA PROTECTION BY MEMORY RELOCATION}

본 발명은 메모리 재배치를 통한 데이터 보호 시스템 및 그 제어 방법에 관한 것이다.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 data protection system 110 through memory relocation according to an example of the present invention includes a memory relocation module constructing unit 110, a source code correction unit 120, and a compiler 130. .

메모리 재배치 모듈 구축부(110)는 소스 코드 차원에서 데이터를 재배치하기 위한 메모리 재배치 모듈을 구축한다.The memory relocation module construction unit 110 builds a memory relocation module for relocating data at the source code level.

본 발명의 일례에 따른 메모리 재배치 모듈은 소스 차원에서 상기 데이터를 일정 단위로 분할하고, 상기 분할된 데이터를 재배치하는 데에 사용되는 모듈이다.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 code correction unit 120 performs an operation of applying the memory relocation module for relocating the source code of the data to the performance source code. That is, the source code correction unit 120 is responsible for applying the memory relocation module to the security-relevant application program that is actually being developed.

이때, 소스 코드 수정부(120)는 상기 메모리 재배치 모듈을 이용해, 상기 데이터를 일정 단위로 분할하고, 상기 분할된 데이터를 재배치할 수 있다.In this case, the source code correction unit 120 may divide the data into a predetermined unit by using the memory rearrangement module and rearrange the divided data.

또한, 소스 코드 수정부(120)는 상기 메모리 재배치 모듈을 이용해, 상기 데이터의 소스 코드 내의 문자 또는 문자열을 선정된 다른 문자 또는 문자열로 변경하여 상기 소스 코드를 재배치할 수 있다.In addition, the source code corrector 120 may rearrange 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.

또한, 상기 소스 코드를 메모리에 저장하도록 제어하는 저장 처리부(미도시)를 더 포함하여 구성될 수 있다.The apparatus may further include a storage processor (not shown) for controlling the source code to be stored in the memory.

컴파일러(130)는 상기와 같이 재배치된 소스 코드를 컴파일할 수 있다.The compiler 130 may compile the source code relocated as described above.

따라서, 본 발명의 일례에 따르면, 응용 프로그램의 소스코드 차원에서 메모리의 순서를 재배치하므로 중요한 데이터를 공격자가 쉽게 취득할 수 없다.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 Bytes data 220 on the original source code 210 is called d, and the position at which d data starts on the memory is called s 230, d is each s. 230, s + 1 231, s + 2 232, and s + 3 233. This is a problem that the attacker can easily acquire or modify the data when the location of the s (230) is identified.

하지만 본 발명에 따른 메모리 재배치를 통한 데이터 보호 시스템에 의하면, 원본 데이터 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 data 1, 2, 3, 4 (410, 411, 412, 413) is called d1, d2, d3, d4, and protected data 1, 2, 3, 4 (420, 421, 422, 423). When d1 ', d2', d3 ', and d4' are used, data of d1, d2, d3, and d4 used in an application program is not data in real memory, and in fact, d1 ', d2', d3 ', protected by d4 '.

d1', d2', d3', d4'는 메모리 재배치 모듈(430)에 의해 관리되는 메모리 주소이기 때문에 응용프로그램에서는 d1', d2', d3', d4'의 존재 유무를 알 수가 없다. Since d1 ', d2', d3 ', and d4' are memory addresses managed by the memory relocation module 430, applications do not know whether d1 ', d2', d3 ', and d4' exist.

d1', d2', d3', d4'는 메모리 재배치 모듈(430)에 의해서만 접근이 될 수 있 는 데이터의 메모리 주소이다.d1 ', d2', d3 ', and d4' are memory addresses of data that can only be accessed by the memory relocation module 430.

예를 들어, 응용프로그램에서 d3에 접근하려고 할 때에는, 메모리 재배치 모듈(430)에 의해 d3'(422)으로부터 원본 데이터의 값을 계산하여 응용프로그램에 사용할 수 있는 환경을 제공할 수 있다.For example, when an application program tries to access d3, the memory relocation module 430 may calculate an original data value from d3 '422 to provide an environment that can be used for the application program.

메모리 재배치 모듈(430)에서는 d3'(422)의 원본 데이터가 요청되면 메모리 재배치 시 사용되었던 공식의 역변환을 통해 원본 데이터를 취득할 수 있다.When the original data of the d3 '422 is requested, the memory relocation module 430 may acquire the original data through an inverse transformation of a formula used when the memory is relocated.

예를 들어, 메모리 재배치 모듈(430)에서 0x12345678과 같은 데이터를 상/하위 2 바이트씩 메모리를 재배치하는 공식을 이용하여 실제 메모리에 0x56781234 와 같이 저장하였을 경우에는, 응용프로그램에서 원본 데이터를 요청하였을 시 이를 다시 상/하위 2 바이트씩 재배치하는 방법을 이용하여 0x12345678와 같은 원본 데이터를 취득할 수 있다.For example, when the memory relocation module 430 stores data such as 0x12345678 in the real memory by using a formula for relocating the memory by two bytes, the original data is requested from the application. The original data such as 0x12345678 can be obtained by using the method of rearranging these two bytes by the upper / lower two bytes again.

도 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)

소스 코드 차원에서 데이터를 재배치하기 위한 메모리 재배치 모듈을 구축하는 단계;Building a memory relocation module for relocating data at source code level; 상기 메모리 재배치 모듈을 이용하여 상기 데이터의 소스 코드를 재배치하는 단계; 및Relocating the source code of the data using the memory relocation module; And 상기 재배치된 소스 코드를 메모리에 저장하는 단계Storing the relocated source code in a memory 를 포함하는 것을 특징으로 하는 메모리 재배치를 통한 데이터 보호 시스템의 제어 방법.Control method of a data protection system through memory relocation comprising a. 제1항에 있어서,The method of claim 1, 상기 메모리 재배치 모듈을 이용하여 상기 데이터의 소스 코드를 재배치하는 단계는,Relocating the source code of the data using the memory relocation module, 상기 메모리 재배치 모듈을 이용해, 상기 데이터를 일정 단위로 분할하고, 상기 분할된 데이터를 재배치하는 단계Dividing the data into a predetermined unit by using the memory relocation module and relocating the divided data 인 것을 특징으로 하는 메모리 재배치를 통한 데이터 보호 시스템의 제어 방법.The control method of a data protection system through memory relocation, characterized in that. 제1항에 있어서,The method of claim 1, 상기 메모리 재배치 모듈을 이용하여 상기 데이터의 소스 코드를 재배치하는 단계는,Relocating the source code of the data using the memory relocation module, 상기 메모리 재배치 모듈을 이용해, 상기 데이터의 소스 코드 내의 문자 또는 문자열을 선정된 다른 문자 또는 문자열로 변경하여 상기 소스 코드를 재배치하는 단계Relocating the source code by changing a character or string in the source code of the data to another selected character or string using the memory relocation module; 인 것을 특징으로 하는 메모리 재배치를 통한 데이터 보호 시스템의 제어 방법.The control method of a data protection system through memory relocation, characterized in that. 제1항에 있어서,The method of claim 1, 상기 재배치된 소스 코드를 컴파일하는 단계Compiling the relocated source code 를 더 포함하는 것을 특징으로 하는 메모리 재배치를 통한 데이터 보호 시스템의 제어 방법.The control method of the data protection system by relocating the memory further comprising. 소스 코드 차원에서 데이터를 재배치하기 위한 메모리 재배치 모듈을 구축하는 메모리 구축부;A memory builder for constructing a memory relocation module for relocating data at a source code level; 상기 메모리 재배치 모듈을 이용하여 상기 데이터의 소스 코드를 재배치하는 소스 코드 수정부; 및A source code correction unit for relocating the source code of the data using the memory relocation module; And 상기 재배치된 소스 코드를 메모리에 저장하도록 제어하는 저장 처리부A storage processor for controlling the relocated source code to be stored in a memory 를 포함하는 것을 특징으로 하는 메모리 재배치를 통한 데이터 보호 시스템.Data protection system through a memory relocation comprising a. 제5항에 있어서,The method of claim 5, 상기 소스 코드 수정부는,The source code correction unit, 상기 메모리 재배치 모듈을 이용해, 상기 데이터를 일정 단위로 분할하고, 상기 분할된 데이터를 재배치하는 것을 특징으로 하는 메모리 재배치를 통한 데이터 보호 시스템.And using the memory relocation module to divide the data into predetermined units and relocate the divided data. 제5항에 있어서,The method of claim 5, 상기 소스 코드 수정부는,The source code correction unit, 상기 메모리 재배치 모듈을 이용해, 상기 데이터의 소스 코드 내의 문자 또는 문자열을 선정된 다른 문자 또는 문자열로 변경하여 상기 소스 코드를 재배치하는 것을 특징으로 하는 메모리 재배치를 통한 데이터 보호 시스템.And relocating the source code by changing a character or a character string in the source code of the data to another selected character or character string using the memory relocation module. 제5항에 있어서,The method of claim 5, 상기 재배치된 소스 코드를 컴파일하는 컴파일러A compiler to compile the relocated source code 를 더 포함하는 것을 특징으로 하는 메모리 재배치를 통한 데이터 보호 시스템.Data protection system through memory relocation, characterized in that it further comprises.
KR1020080081554A 2008-08-20 2008-08-20 System and controlling method for data protection by memory relocation KR20100022853A (en)

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)

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