KR101810042B1 - 정보 노출 방지 장치 및 방법 - Google Patents

정보 노출 방지 장치 및 방법 Download PDF

Info

Publication number
KR101810042B1
KR101810042B1 KR1020150190803A KR20150190803A KR101810042B1 KR 101810042 B1 KR101810042 B1 KR 101810042B1 KR 1020150190803 A KR1020150190803 A KR 1020150190803A KR 20150190803 A KR20150190803 A KR 20150190803A KR 101810042 B1 KR101810042 B1 KR 101810042B1
Authority
KR
South Korea
Prior art keywords
page
memory area
random number
frame
memory
Prior art date
Application number
KR1020150190803A
Other languages
English (en)
Other versions
KR20170079823A (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 KR1020150190803A priority Critical patent/KR101810042B1/ko
Publication of KR20170079823A publication Critical patent/KR20170079823A/ko
Application granted granted Critical
Publication of KR101810042B1 publication Critical patent/KR101810042B1/ko

Links

Images

Classifications

    • 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/145Protection 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 virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • 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/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

메모리 영역의 정보를 포함하는 메모리 영역 구조체들의 연결 리스트 및 페이지 폴트가 발생된 주소에 기초하여 상기 페이지 폴트가 발생된 메모리 영역을 검색하는 메모리 영역 검색부를 포함하되, 상기 페이지 폴트가 발생된 메모리 영역에 난수로 초기화된 페이지 프레임을 할당하는 정보 노출 방지 장치.

Description

정보 노출 방지 장치 및 방법{APPARATUS AND METHOD FOR MITIGANG INFORMATION LEAK}
본 발명은 정보 노출 방지 장치 및 방법에 관한 것으로, 더욱 상세하게는 가상 메모리 시스템에서 난수 생성기를 이용하여 난수 값으로 초기화된 페이지를 이용하는 정보 노출 방지 장치 및 방법에 관한 것이다.
컴퓨팅 장치의 메모리 관리를 위해서 가상 메모리 기법이 널리 사용된다. 프로세스의 가상 메모리 공간의 데이터 값이 저장되는 페이지는 0으로 초기화되어 제공될 수 있다. 따라서, 가상 메모리 공간에서 0으로 초기화되는 페이지 내의 데이터 주변에는 0 값이 많을 가능성이 상대적으로 높다.
주변이 0의 값으로 둘러싸인 중요 데이터는 쉽게 구분되기 때문에, 공격자는 메모리 노출 보안 약점 또는 정보 누수를 통해 중요 데이터의 위치를 알 수 있다는 보안상의 약점이 있다. 또한, 데이터의 값을 읽어낼 수 있고, 이를 해독할 수 있다.
따라서, 보안에 중요한 역할을 하는 데이터 또한 이와 같은 보안 약점을 통해 노출될 가능성이 매우 높다는 문제점이 있다.
이에, 본 발명의 기술적 과제는 이러한 점에서 착안된 것으로 본 발명의 목적은 페이지 내에 있는 데이터를 구분하기 어렵게 하기 위해서 난수로 초기화되는 페이지 프레임을 프로세스에게 제공할 수 있는 정보 노출 방지 장치 및 방법을 제공하는 것이다.
상기한 본 발명의 목적을 실현하기 위한 일 실시예에 따른, 정보 노출 방지 장치는 메모리 영역의 정보를 포함하는 메모리 영역 구조체들의 연결 리스트 및 페이지 폴트가 발생된 주소에 기초하여 상기 페이지 폴트가 발생된 메모리 영역을 검색하는 메모리 영역 검색부를 포함하되, 상기 페이지 폴트가 발생된 메모리 영역에 난수로 초기화된 페이지 프레임을 할당한다.
본 발명의 일 실시예에 있어서, 상기 메모리 영역 구조체는 메모리 영역의 속성을 포함하고, 상기 속성은 페이지 프레임의 난수 초기화에 대응되는 난수 플래그를 포함할 수 있다.
본 발명의 일 실시예에 있어서, 발생된 페이지 폴트가 페이지의 첫 번째 접근에 의한 것인지 판단하는 페이지 폴트 판단부를 더 포함하되, 상기 난수 플래그 및 상기 페이지 폴트 판단부의 판단 결과에 기초하여 페이지 프레임을 난수로 초기화할 수 있다.
본 발명의 일 실시예에 있어서, 난수들로 채워진 상기 페이지 프레임을 생성하여 메모리로 전달하는 난수 페이지 생성부를 더 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 난수 페이지 생성부는 상기 페이지 프레임의 크기를 입력 받으며, 페이지 버퍼를 난수들로 채우는 난수 생성기 및 입력 받은 상기 페이지 프레임의 크기에 대응되는 수의 난수들이 존재하는 경우 상기 난수들로 채워진 상기 페이지 프레임을 상기 메모리로 전달하는 상기 페이지 버퍼를 포함할 수 있다.
상기한 본 발명의 목적을 실현하기 위한 일 실시예에 따른, 정보 노출 방지 방법은 메모리 영역의 정보를 포함하는 메모리 영역 구조체들의 연결 리스트 및 페이지 폴트가 발생된 주소에 기초하여 상기 페이지 폴트가 발생된 메모리 영역을 검색하는 단계 및 상기 페이지 폴트가 발생된 메모리 영역에 난수로 초기화된 페이지 프레임을 할당하는 단계를 포함한다.
본 발명의 일 실시예에 있어서, 상기 메모리 영역 구조체는 메모리 영역의 속성을 포함하고, 상기 속성은 페이지 프레임의 난수 초기화에 대응되는 난수 플래그를 포함할 수 있다.
본 발명의 일 실시예에 있어서, 발생된 페이지 폴트가 페이지의 첫 번째 접근에 의한 것인지 여부를 판단하는 단계를 더 포함하되, 상기 할당하는 단계는 상기 발생된 페이지 폴트가 페이지의 첫 번째 접근에 의한 것인지 여부 및 상기 난수 플래그에 기초하여 페이지 프레임을 난수로 초기화할 수 있다.
본 발명의 일 실시예에 있어서, 난수들로 채워진 상기 페이지 프레임을 생성하여 메모리로 전달하는 난수 페이지 생성 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 난수 페이지 생성 단계는 상기 페이지 프레임의 크기를 입력 받는 단계, 페이지 버퍼를 난수들로 채우는 단계 및 입력 받은 상기 페이지 프레임의 크기에 대응되는 수의 난수들이 상기 페이지 버퍼에 존재하는 경우 상기 페이지 버퍼에 존재하는 난수들로 채워진 상기 페이지 프레임을 상기 메모리로 전달하는 단계를 포함할 수 있다.
이와 같은 정보 노출 방지 장치 및 방법에 따르면, 난수로 초기화되는 페이지 프레임을 통해 메모리 노출 보안 약점이나 정보 누수로 인해 데이터의 위치가 노출되는 것을 방지할 수 있다.
도 1은 본 발명의 일 실시예에 따른 정보 노출 방지 방법을 설명하기 위한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 커널 자료구조를 설명하기 위한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 정보 노출 방지 장치를 설명하기 위한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 정보 노출 방지 방법을 설명하기 위한 흐름도이다.
도 5는 도 3의 메모리 영역 검색부를 설명하기 위한 블록도이다.
도 6은 도 4의 페이지 폴트가 발생된 메모리 영역을 검색하는 단계의 흐름도이다.
도 7은 도 3의 페이지 폴트 확인부를 설명하기 위한 블록도이다.
도 8은 도 3의 난수 페이지 생성부를 설명하기 위한 블록도이다.
도 9는 도 4의 난수로 초기화된 페이지 프레임을 할당하는 단계의 흐름도이다.
이하, 첨부한 도면들을 참조하여 본 발명을 보다 상세하게 설명하고자 한다.
도 1은 본 발명의 일 실시예에 따른 정보 노출 방지 방법을 설명하기 위한 개념도이다. 도 1의 (a)는 0으로 초기화된 페이지를 도시하며, 도 1의 (b)는 난수로 초기화된 페이지를 도시한다. 본 발명에 있어서 난수(random number)는 생성되기 전에는 예측할 수 없는 수를 의미한다.
도 1의 (a)를 참조하면, 페이지 프레임이 0의 값으로 초기화되는 경우 초기화된 페이지 내에 포함된 데이터는 주변이 0의 값으로 둘러싸일 수 있다. 따라서, 상기 페이지를 읽을 수 있는 공격자는 페이지 내에 포함된 데이터의 위치를 쉽게 탐지할 수 있다. 이와 관련된 CWE(Common Weakness Enumeration)는 CWE-401, CWE-200 등이 있으며, 이와 관련된 CVE(Common Vulnerabilities and Exposures)는 CVE-2012-0769, CVE-2005-3119 등이 있다.
도 1의 (b)를 참조하면, 본 발명의 일 실시예에 따른 정보 노출 방지 방법은 프로세스의 가상 메모리 공간에 제공되는 페이지 프레임을 난수로 초기화하여 제공할 수 있다. 따라서, 도 1의 (b)와 같이 난수로 초기화된 페이지 내에 데이터가 있는 경우, 상기 페이지를 읽을 수 있는 공격자는 페이지 내에 포함된 데이터와 난수를 구별하기 어렵기 때문에, 데이터의 위치뿐만 아니라 데이터의 값 또한 알기 어렵게 된다.
도 2는 본 발명의 일 실시예에 따른 커널 자료구조를 설명하기 위한 개념도이다.
일 실시예에서, 정보 노출 방지 장치 및 방법은 프로세스의 주소 공간과 관련된 모든 정보를 담고 있는 메모리 관리 구조체(mm_struct), 및 메모리 영역의 스택(stack), 힙(heap) 등의 정보를 담고 있는 메모리 영역 구조체(vm_area_struct)로 구성된 커널 자료구조를 이용할 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에서, 메모리 관리 구조체(mm_struct)는 메모리 영역 구조체(vm_area_struct)의 연결 리스트(mmap)를 포함할 수 있다.
메모리 영역 구조체(vm_area_struct)는 메모리 영역의 시작 주소(vm_start), 메모리 영역의 마지막 주소(vm_end), 메모리 영역의 속성들(vm_flags) 및 다음 메모리 영역 구조체(vm_area_struct)를 가리키는 포인터(vm_next)를 포함할 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에서, 연결 리스트(mmap)의 구성요소는 다음과 같은 형태의 시스템 호출(mmap)에 의해 연결 리스트(mmap)에 추가된다.
void *mmap(void *start, int len, int prot, int flags, int fd, int offset)
시스템 호출(mmap)을 통해 프로세스의 가상 주소 공간에 새로운 메모리 영역을 생성할 수 있고, 연결 리스트(mmap)에 새로운 구성요소, 즉, 메모리 영역 구조체(vm_area_struct)를 추가할 수 있다.
start는 메모리 영역의 시작 주소를 가리킬 수 있으나, start가 가리키는 주소에서 시작하지 않을 수 있다.
len은 메모리 영역의 길이를 포함할 수 있다.
prot는 메모리 영역의 접근 권한을 포함할 수 있다. 예를 들어, prot는 PROT_READ, PROT_WRITE, PROT_EXEC, PROT_NONE 등을 포함할 수 있다.
flags는 메모리 영역의 속성을 포함할 수 있다. 예를 들어, flags는 MAP_SHARED, MAP_PRIVATE, MAP_ANONYMOUS 등을 포함할 수 있다.
fd는 파일-메모리 맵핑에 사용되며, 맵핑할 파일의 파일 디스크립터(file descriptor)를 포함할 수 있다.
offset은 파일-메모리 맵핑에 사용되며, 맵핑할 파일 내 시작 오프셋(offset)을 포함할 수 있다.
시스템 호출(mmap)에 성공하면 커널 내부에 메모리 영역 구조체(vm_area_struct)가 생성되며, 메모리 영역의 시작 주소를 반환하고, 시스템 호출(mmap)의 flags 및 prot에 기초하여 시스템 호출(mmap)에 의해 생성되는 메모리 영역 구조체(vm_area_struct)의 vm_flags가 설정된다. 시스템 호출(mmap)이 실패하면, 즉, 에러가 발생하면 MAP_FAILED를 반환한다.
메모리 영역 구조체(vm_area_struct) 및 메모리 영역 구조체(vm_area_struct)의 연결 리스트(mmap)의 일반적인 구조 및 동작은 본 발명이 속하는 기술분야의 당업자에게 자명하므로, 메모리 영역 구조체(vm_area_struct) 및 연결 리스트(mmap)에 대한 더 이상의 자세한 설명은 생략한다.
본 발명의 일 실시예에 따른 시스템 호출(mmap)의 flags는 페이지 프레임의 난수 초기화에 대응되는 난수 플래그(MAP_RAND)를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 메모리 영역 구조체(vm_area_struct)의 메모리 영역의 속성들(vm_flags)은 페이지 프레임의 난수 초기화에 대응되는 난수 플래그(VM_RAND)를 더 포함할 수 있다.
일 실시예에서, 시스템 호출(mmap)을 호출 하였을 때 난수 플래그(MAP_RAND)가 페이지 프레임의 난수 초기화에 대응되는 값(예를 들어, 참(true))을 가지면, 시스템 호출(mmap)에 의해 생성되는 메모리 영역 구조체(vm_area_struct)의 vm_flags의 난수 플래그(VM_RAND)를 난수 초기화에 대응되는 값(예를 들어, 참(true))으로 설정할 수 있다.
도 3은 본 발명의 일 실시예에 따른 정보 노출 방지 장치를 설명하기 위한 블록도이다. 도 4는 본 발명의 일 실시예에 따른 정보 노출 방지 방법을 설명하기 위한 흐름도이다.
도 3 및 도 4를 참조하면, 정보 노출 방지 장치(10)는 메모리 영역 검색부(100), 페이지 폴트 확인부(200) 및 난수 페이지 생성부(300)를 포함할 수 있다.
여기서, 페이지 폴트(page fault)란 프로그램이 가상 메모리 공간에는 존재하지만 시스템의 메모리(예를 들어, RAM 등)에는 현재 존재하지 않는 데이터 또는 코드에 접근을 시도하였을 경우에 발생하는 현상을 의미한다.
예를 들어, 중앙 처리 장치(CPU, 21)는 접근하고자 하는 주소를 메모리 관리 유닛(22)으로 전달하고, 메모리 관리 유닛(22)은 상기 주소를 포함하는 페이지가 시스템의 메모리에 존재하는지 페이지 테이블(page table)을 통해 확인할 수 있다. 이후, 메모리 관리 유닛(22)은 CPU(21)를 인터럽트하고, 페이지 폴트 처리기(40)를 실행할 수 있다. 예를 들어, 페이지 폴트 처리기(40)는 정보 노출 방지 장치(10)와 마찬가지로 소프트웨어로 구현될 수 있다.
메모리 영역 검색부(100)는 페이지 폴트가 발생된 메모리 영역을 검색할 수 있다(S100). 일 실시예에서, 메모리 영역 검색부(100)는 페이지 폴트가 발생된 주소 및 메모리 영역 구조체(vm_area_struct)에 기초하여 페이지 폴트가 발생된 메모리 영역을 검색하고, 검색된 메모리 영역에 대응되는 메모리 영역 구조체(vm_area_struct)의 주소 및 난수 플래그(VM_RAND)를 반환할 수 있다.
정보 노출 방지 장치(10)는 반환된 난수 플래그(VM_RAND) 및 페이지 폴트가 페이지의 첫 번째 접근에 의한 것인지 여부에 기초하여, 상기 페이지 폴트가 발생된 메모리 영역에 난수로 초기화된 페이지 프레임을 할당할지, 또는 디스크(50)로부터 전달받은 새로운 페이지 프레임을 할당할지 여부를 판단할 수 있다(S300).
페이지 폴트 확인부(200)는 발생된 페이지 폴트가 페이지의 첫 번째 접근에 의한 것인지 여부를 판단할 수 있다.
난수 페이지 생성부(300)는 난수들로 채워진 페이지 프레임을 생성하여 메모리(30)로 전달할 수 있으며, 따라서 페이지 폴트가 발생된 메모리 영역에 난수로 초기화된 페이지 프레임이 할당될 수 있다(S400).
페이지 폴트가 발생된 메모리 영역에 페이지 프레임이 할당된 후, 페이지 테이블 엔트리(page table entry)를 갱신하여(S600) 페이지 폴트 처리기(40)의 실행이 종료될 수 있다.
이하에서, 도 5 및 도 6을 참조하여 메모리 영역 검색부(100)를 자세하게 설명한다.
도 5는 도 3의 메모리 영역 검색부를 설명하기 위한 블록도이다. 도 6은 도 4의 페이지 폴트가 발생된 메모리 영역을 검색하는 단계의 흐름도이다.
도 3 내지 도 6을 참조하면, 메모리 영역 검색부(100)는 페이지 폴트 처리기(40)로부터 페이지 폴트가 발생된 주소를 포함하는 입력1(IN_1) 및 메모리 영역 구조체(vm_area_struct)의 연결 리스트(mmap)를 포함하는 입력2(IN_2)를 전달 받을 수 있다(S110). 메모리 영역 검색부(100)는 입력1(IN_1) 및 입력2(IN_2)에 기초하여 페이지 폴트가 발생된 영역에 대응되는 메모리 영역 구조체(vm_area_struct)의 주소(OUT_1) 및 난수 플래그(VM_RAND)(OUT_2)를 반환할 수 있다(S160).
보다 구체적으로, 메모리 영역 검색부(100)는 제1 제어기(110), 버퍼(120) 및 필터(130)를 포함할 수 있다.
제1 제어기(110)는 입력2(IN_2)의 연결 리스트(mmap)를 전달받아, 상기 연결 리스트(mmap)의 첫 번째 원소(즉, 첫 번째 메모리 영역 구조체(vm_area_struct))를 버퍼(120)에 저장할 수 있다(S120).
버퍼(120)는 갖고 있는 메모리 영역 구조체(vm_area_struct)로부터 메모리 영역의 시작 주소(vm_start) 및 메모리 영역의 마지막 주소(vm_end)를 필터(130)로 전달하고, 다음 메모리 영역 구조체(vm_area_struct)를 가리키는 포인터(vm_next) 및 난수 플래그(VM_RAND)를 제1 제어기(110)로 전달할 수 있다(S130).
필터(130)는 입력1(IN_1)의 페이지 폴트가 발생된 주소를 버퍼(120)로부터 전달 받은 메모리 영역의 시작 주소 및 마지막 주소(vm_start, vm_end)와 비교하여 페이지 폴트가 발생된 메모리 영역을 검색할 수 있다.
예를 들어, 필터(130)는 페이지 폴트가 발생된 주소가 상기 메모리 영역의 시작 주소 및 마지막 주소(vm_start, vm_end)의 범위 내에 포함되는지 여부를 판단할 수 있다(S140).
판단 결과 페이지 폴트가 발생된 주소가 상기 메모리 영역의 시작 주소 및 마지막 주소(vm_start, vm_end)의 범위 내에 포함되는 경우, 현재 버퍼(120)에 저장된 메모리 영역 구조체(vm_area_struct)의 주소(OUT_1) 및 난수 플래그(VM_RAND)(OUT_2)를 반환할 수 있다(S160).
판단 결과 페이지 폴트가 발생된 주소가 상기 메모리 영역의 시작 주소 및 마지막 주소(vm_start, vm_end)의 범위 내에 포함되지 않는 경우, 제1 제어기(110)는 포인터(vm_next)를 통해 연결 리스트(mmap)의 다음 원소(즉, 다음 메모리 영역 구조체(vm_area_struct)를 버퍼(120)에 저장할 수 있다(S150). 이후, 페이지 폴트가 발생된 주소가 버퍼(120)에 저장된 메모리 영역 구조체(vm_area_struct)의 시작 주소 및 마지막 주소(vm_start, vm_end)의 범위 내에 포함될 때까지 단계 S130 내지 단계 S150을 반복할 수 있다.
이하에서, 도 7을 참조하여 페이지 폴트 확인부(200)를 자세하게 설명한다.
도 7은 도 3의 페이지 폴트 확인부를 설명하기 위한 블록도이다.
도 3, 도 4 및 도 7을 참조하면, 페이지 폴트 확인부(200)는 페이지 폴트 처리기(40)로부터 페이지 폴트가 발생된 페이지의 페이지 테이블 엔트리를 입력(IN_3)으로 전달 받을 수 있다. 페이지 폴트 확인부(200)는 입력 받은 페이지 테이블 엔트리에 기초하여 발생된 페이지 폴트가 페이지의 첫 번째 접근에 의한 것인지 여부를 판단하고, 판단 결과(OUT_3)를 반환할 수 있다.
보다 구체적으로, 페이지 폴트 확인부(200)는 입력 받은 페이지 테이블 엔트리가 미리 정해진 값으로 채워져 있는 경우, 발생된 페이지 폴트가 페이지의 첫 번째 접근에 의한 것으로 판단할 수 있다. 예를 들어, 상기 미리 정해진 값은 0일 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에서, 페이지 폴트 확인부(200)는 페이지 테이블 엔트리를 입력으로 받는 NOR 게이트를 포함할 수 있다.
일 실시예에서, 페이지 폴트 확인부(200)의 판단 결과(OUT_3)는, 첫 번째 접근에 의한 것으로 판단되는 경우 1의 값을 포함하고, 그렇지 않은 것으로 판단되는 경우 0의 값을 포함할 수 있으나, 이에 한정되는 것은 아니다.
도 8은 도 3의 난수 페이지 생성부를 설명하기 위한 블록도이다.
도 9는 도 4의 난수로 초기화된 페이지 프레임을 할당하는 단계의 흐름도이다.
도 3, 도 4, 도 8 및 도 9를 참조하면, 난수 페이지 생성부(300)는 페이지 폴트 처리기(40)로부터 페이지 프레임의 크기를 입력(IN_4)으로 전달 받을 수 있다. 난수 페이지 생성부(300)는 난수들로 채워지고, 입력 받은 페이지 프레임의 크기를 가지는 페이지 프레임(OUT_4)을 메모리(30)로 전달할 수 있다.
보다 구체적으로, 난수 페이지 생성부(300)는 제2 제어기(310), 초고속 난수 생성기(320) 및 페이지 버퍼(330)를 포함할 수 있다.
제2 제어기(310)는 입력된 페이지 프레임의 크기(IN_4)를 초고속 난수 생성기(320)로 전달하여 입력(IN_4)된 수량의 난수들이 존재하는지 여부를 판단할 수 있다(S420).
초고속 난수 생성기(320)는 페이지 버퍼(330)를 상시 난수로 채울 수 있다. 초고속 난수 생성기(320)는 제2 제어기(310)로부터 요청이 들어왔을 때, 페이지 버퍼(330)에 입력(IN_4)된 수량의 난수들이 존재하면 참 값을, 그렇지 않은 경우 거짓 값을 제2 제어기(310)로 반환할 수 있다(S430).
본 발명의 초고속 난수 생성기(320)는 대한민국 등록특허공보 제10-1401953호에 개시된 "그래픽 처리 장치를 활용한 난수 생성 장치 및 방법에 기초한 난수 생성기"를 포함할 수 있으며, 이에 대한 자세한 설명은 생략한다.
판단 결과 페이지 버퍼(330)에 입력(IN_4)된 수량의 난수들이 존재하는 경우, 입력(IN_4)을 페이지 버퍼(330)로 전달하여, 난수들로 채워지고 입력 받은 페이지 프레임의 크기를 가지는 페이지 프레임(OUT_4)을 메모리(30)로 전달할 수 있다(S440).
판단 결과 페이지 버퍼(330)에 입력(IN_4)된 수량의 난수들이 존재하지 않는 경우, 페이지 버퍼(330)에 입력(IN_4)된 수량의 난수들이 존재하게 될 때까지 단계 S420 내지 단계 S430을 반복할 수 있다.
10: 정보 노출 방지 장치 21: CPU
22: 메모리 관리 유닛 30: 캐시/메모리
40: 페이지 폴트 처리기 50: 디스크
100: 메모리 영역 검색부 110: 제1 제어기
120: 버퍼 130: 필터
200: 페이지 폴트 확인부 300: 난수 페이지 생성부
310: 제2 제어기 320: 초고속 난수 생성기
330: 페이지 버퍼

Claims (10)

  1. 메모리 영역의 정보를 포함하는 메모리 영역 구조체들의 연결 리스트 및 페이지 폴트가 발생된 주소에 기초하여 상기 페이지 폴트가 발생된 메모리 영역을 검색하는 메모리 영역 검색부;
    NOR 게이트를 통해 입력 받은 페이지 테이블 엔트리가 미리 정해진 값으로 채워져 있는 경우 발생된 페이지 폴트가 페이지의 첫 번째 접근에 의한 것으로 판단하는 페이지 폴트 확인부;를 포함하되,
    상기 메모리 영역 구조체는 메모리 영역의 속성을 포함하고,
    상기 속성은 페이지 프레임의 난수 초기화에 대응되는 난수 플래그를 포함하되,
    상기 페이지 폴트가 발생하고 페이지의 첫 번째 접근에 의한 경우 상기 페이지 폴트가 발생된 메모리 영역에 페이지 프레임을 난수로 초기화하고, 상기 페이지 폴트가 발생하고 페이지의 첫 번째 접근이 아닌 경우 상기 페이지 폴트가 발생된 메모리 영역에 디스크로부터 전달 받은 새로운 페이지 프레임을 할당하는 것을 특징으로 하는 정보 노출 방지 장치.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    난수들로 채워진 상기 페이지 프레임을 생성하여 메모리로 전달하는 난수 페이지 생성부를 더 포함하는 것을 특징으로 하는 정보 노출 방지 장치.
  5. 제4항에 있어서, 상기 난수 페이지 생성부는
    상기 페이지 프레임의 크기를 입력 받으며,
    페이지 버퍼를 난수들로 채우는 난수 생성기; 및
    입력 받은 상기 페이지 프레임의 크기에 대응되는 수의 난수들이 존재하는 경우 상기 난수들로 채워진 상기 페이지 프레임을 상기 메모리로 전달하는 상기 페이지 버퍼를 포함하는 것을 특징으로 하는 정보 노출 방지 장치.
  6. 메모리 영역의 정보를 포함하는 메모리 영역 구조체들의 연결 리스트 및 페이지 폴트가 발생된 주소에 기초하여 상기 페이지 폴트가 발생된 메모리 영역을 검색하는 단계; 및
    NOR 게이트를 통해 입력 받은 페이지 테이블 엔트리가 미리 정해진 값으로 채워져 있는 경우 발생된 페이지 폴트가 페이지의 첫 번째 접근에 의한 것으로 판단하는 단계;
    상기 페이지 폴트가 발생하고 페이지의 첫 번째 접근에 의한 경우 상기 페이지 폴트가 발생된 메모리 영역에 페이지 프레임을 난수로 초기화하고, 상기 페이지 폴트가 발생하고 페이지의 첫 번째 접근이 아닌 경우 상기 페이지 폴트가 발생된 메모리 영역에 디스크로부터 전달 받은 새로운 페이지 프레임을 할당하는 단계;를 포함하되,
    상기 메모리 영역 구조체는 메모리 영역의 속성을 포함하고,
    상기 속성은 페이지 프레임의 난수 초기화에 대응되는 난수 플래그를 포함하는 정보 노출 방지 방법.
  7. 삭제
  8. 삭제
  9. 제6항에 있어서,
    난수들로 채워진 상기 페이지 프레임을 생성하여 메모리로 전달하는 난수 페이지 생성 단계를 더 포함하는 것을 특징으로 하는 정보 노출 방지 방법.
  10. 제9항에 있어서, 상기 난수 페이지 생성 단계는
    상기 페이지 프레임의 크기를 입력 받는 단계;
    페이지 버퍼를 난수들로 채우는 단계; 및
    입력 받은 상기 페이지 프레임의 크기에 대응되는 수의 난수들이 상기 페이지 버퍼에 존재하는 경우 상기 페이지 버퍼에 존재하는 난수들로 채워진 상기 페이지 프레임을 상기 메모리로 전달하는 단계를 포함하는 것을 특징으로 하는, 정보 노출 방지 방법.
KR1020150190803A 2015-12-31 2015-12-31 정보 노출 방지 장치 및 방법 KR101810042B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150190803A KR101810042B1 (ko) 2015-12-31 2015-12-31 정보 노출 방지 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150190803A KR101810042B1 (ko) 2015-12-31 2015-12-31 정보 노출 방지 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170079823A KR20170079823A (ko) 2017-07-10
KR101810042B1 true KR101810042B1 (ko) 2017-12-18

Family

ID=59356345

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150190803A KR101810042B1 (ko) 2015-12-31 2015-12-31 정보 노출 방지 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101810042B1 (ko)

Also Published As

Publication number Publication date
KR20170079823A (ko) 2017-07-10

Similar Documents

Publication Publication Date Title
EP3427155B1 (en) Protected pointers
US20240045997A1 (en) Peripheral device with resource isolation
US9361218B2 (en) Method of allocating referenced memory pages from a free list
US10353831B2 (en) Trusted launch of secure enclaves in virtualized environments
JP4937339B2 (ja) 画像を直接レンダリングしてセキュアなメモリ領域で対応するユーザ入力と相関付ける方法およびシステム
US10255088B2 (en) Modification of write-protected memory using code patching
KR20060099404A (ko) 가상 머신들 간에서 페이지들을 공유하기 위한 방법,시스템 및 컴퓨터 판독가능 매체
US10042752B2 (en) Object descriptors
CN110442379A (zh) 保护有条件的推测指令执行
US10089247B2 (en) System and method for coupling a host device to secure and non-secure devices
US20240095174A1 (en) Method for detecting error of operating system kernel memory in real time
US8479182B2 (en) Program, apparatus, and method of optimizing a java object
US20120173842A1 (en) Operating System Management of Address-Translation-Related Data Structures and Hardware Lookasides
KR101810042B1 (ko) 정보 노출 방지 장치 및 방법
CN108241801B (zh) 处理系统调用的方法和装置
US11429412B2 (en) Guest protection from application code execution in kernel mode
CN114996719A (zh) 可信处理单元的隐私数据及金融隐私数据的安全分析方法
EP4343593A1 (en) Method, device, and electronic apparatus for securely passing data
US20240095363A1 (en) Method, device, and electronic apparatus for securely passing data
US20230029331A1 (en) Dynamically allocatable physically addressed metadata storage
WO2024067479A1 (zh) 一种容器逃逸的检测方法、电子设备及系统
US11768967B2 (en) Address verification for direct memory access requests
CN108932205B (zh) 一种防御RowHammer攻击的方法及设备
CN113806714A (zh) 一种应用程序的白名单信息安全传输方法与装置
Cox et al. A 3D-Stacked Architecture for Secure Memory Acquisition

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant