1 |
1
임베디드 시스템(EMBEDDED SYSTEM)의 하드웨어 로더(HARDWARE LOADER)가, 프로그램을 로딩할 때마다 난수를 기반으로 복수개의 주변 장치들 및 메모리 각각의 주소 영역을 랜덤하게 설정하는 단계;상기 하드웨어 로더가, 상기 랜덤하게 설정된 주소 영역을 기반으로 상기 복수개의 주변 장치들 및 상기 메모리 각각에 상응하는 랜덤 시작 주소를 어드레스 테이블(ADDRESS TABLE)에 기록하는 단계; 및상기 하드웨어 로더가, 상기 어드레스 테이블을 기반으로 상기 메모리에 마운트된 프로그램 코드를 상기 랜덤하게 설정된 주소 영역에 상응하게 재설정하는 단계를 포함하는 것을 특징으로 하는 임베디드 시스템의 주소 공간 레이아웃 랜덤화 방법
|
2 |
2
청구항 1에 있어서,상기 설정하는 단계는현재 프로그램의 실행이 종료되고 다른 프로그램이 로딩되는 경우, 새롭게 생성되는 난수를 기반으로 상기 주소 영역을 랜덤하게 업데이트하고, 상기 어드레스 테이블은 랜덤하게 업데이트된 주소 영역에 상응하게 업데이트되는 것을 특징으로 하는 임베디드 시스템의 주소 공간 레이아웃 랜덤화 방법
|
3 |
3
청구항 1에 있어서,상기 재설정하는 단계는상기 프로그램 코드가 상기 복수개의 주변 장치들 중 어느 하나의 타겟 주변 장치로 접근하기 위한 접근 코드일 경우, 상기 접근 코드에 포함된 상기 타겟 주변 장치의 시작 주소를 상기 어드레스 테이블에 기록된 상기 타겟 주변 장치의 랜덤 시작 주소로 변경하는 것을 특징으로 하는 임베디드 시스템의 주소 공간 레이아웃 랜덤화 방법
|
4 |
4
청구항 1에 있어서,상기 주소 공간 레이아웃 랜덤화 방법은상기 하드웨어 로더가, 상기 임베디드 시스템의 읽기 전용 메모리의 시작 위치에 인터럽트 서비스 루틴(INTERRUPT SERVICE ROUTINE, ISR) 영역을 매핑하는 단계; 및상기 프로그램 코드의 재설정이 완료된 경우, 상기 하드웨어 로더가 인터럽트를 발생시켜 상기 메모리에 마운트된 프로그램 코드의 시작 위치로 이동하기 위한 인터럽트 서비스 루틴을 호출하는 단계를 더 포함하는 것을 특징으로 하는 임베디드 시스템의 주소 공간 레이아웃 랜덤화 방법
|
5 |
5
청구항 4에 있어서,상기 인터럽트 서비스 루틴 영역에 대한 접근 권한은 상기 하드웨어 로더에게만 할당되는 것을 특징으로 하는 임베디드 시스템의 주소 공간 레이아웃 랜덤화 방법
|
6 |
6
청구항 1에 있어서,상기 설정하는 단계는상기 임베디드 시스템의 읽기 전용 메모리에 저장된 하드웨어 관련 정보를 참조하여 상기 주소 영역을 랜덤하게 설정하되, 상기 하드웨어 관련 정보는 상기 복수개의 주변 장치들과 메모리의 개수 및 상기 복수개의 주변 장치들과 메모리 각각의 주소 영역 크기를 포함하는 것을 특징으로 하는 임베디드 시스템의 주소 공간 레이아웃 랜덤화 방법
|
7 |
7
청구항 3에 있어서,상기 프로그램 코드는 위치-독립 코드(POSITION-INDEPENDENT CODE)에 상응하고, 상기 접근 코드는 하나의 패턴으로 단일화되는 것을 특징으로 하는 임베디드 시스템의 주소 공간 레이아웃 랜덤화 방법
|
8 |
8
청구항 3에 있어서,상기 프로그램 코드의 재설정이 완료된 이후에 프로그램의 실행을 기반으로 상기 접근 코드가 입력되는 경우, 상기 임베디드 시스템의 어드레스 디코더(ADDRESS DECODER)가 상기 접근 코드에 포함된 랜덤 시작 주소를 참조하여 상기 타겟 주변 장치로의 접근을 수행하는 것을 특징으로 하는 임베디드 시스템의 주소 공간 레이아웃 랜덤화 방법
|
9 |
9
임베디드 시스템에서 프로그램이 로딩될 때마다 난수를 기반으로 복수개의 주변 장치들 및 메모리 각각의 주소 영역을 랜덤하게 설정하고, 상기 랜덤하게 설정된 주소 영역을 기반으로 복수개의 주변 장치들 및 상기 메모리 각각에 상응하는 랜덤 시작 주소를 어드레스 테이블(ADDRESS TABLE)에 기록하고, 상기 어드레스 테이블을 기반으로 상기 메모리에 마운트된 프로그램 코드를 상기 랜덤하게 설정된 주소 영역에 상응하게 재설정하는 하드웨어 로딩부; 및상기 프로그램이 로딩될 때마다 상기 난수를 생성하는 난수 생성부를 포함하는 것을 특징으로 하는 주소 공간 레이아웃 랜덤화 장치
|
10 |
10
청구항 9에 있어서,상기 하드웨어 로딩부는현재 프로그램의 실행이 종료되고 다른 프로그램이 로딩되는 경우, 새롭게 생성되는 난수를 기반으로 상기 주소 영역을 랜덤하게 업데이트하고, 랜덤하게 업데이트된 주소 영역에 상응하게 상기 어드레스 테이블을 업데이트하는 것을 특징으로 하는 주소 공간 레이아웃 랜덤화 장치
|
11 |
11
청구항 9에 있어서,상기 하드웨어 로딩부는상기 프로그램 코드가 상기 복수개의 주변 장치들 중 어느 하나의 타겟 주변 장치로 접근하기 위한 접근 코드일 경우, 상기 접근 코드에 포함된 상기 타겟 주변 장치의 시작 주소를 상기 어드레스 테이블에 기록된 상기 타겟 주변 장치의 랜덤 시작 주소로 변경하는 것을 특징으로 하는 주소 공간 레이아웃 랜덤화 장치
|
12 |
12
청구항 9에 있어서,상기 하드웨어 로딩부는상기 임베디드 시스템의 읽기 전용 메모리의 시작 위치에 상기 메모리에 기반한 인터럽트 서비스 루틴(INTERRUPT SERVICE ROUTINE, ISR) 영역을 매핑하고, 상기 프로그램 코드의 재설정이 완료된 경우에 인터럽트를 발생시켜 상기 메모리에 마운트된 프로그램 코드의 시작 위치로 이동하기 위한 인터럽트 서비스 루틴을 호출하는 것을 특징으로 하는 주소 공간 레이아웃 랜덤화 장치
|
13 |
13
청구항 12에 있어서,상기 인터럽트 서비스 루틴 영역에 대한 접근 권한은 상기 하드웨어 로딩부에게만 할당되는 것을 특징으로 하는 주소 공간 레이아웃 랜덤화 장치
|
14 |
14
청구항 9에 있어서,상기 하드웨어 로딩부는상기 임베디드 시스템의 읽기 전용 메모리에 저장된 하드웨어 관련 정보를 참조하여 상기 주소 영역을 랜덤하게 설정하되, 상기 하드웨어 관련 정보는 상기 복수개의 주변 장치들과 메모리의 개수 및 상기 복수개의 주변 장치들과 메모리 각각의 주소 영역 크기를 포함하는 것을 특징으로 하는 주소 공간 레이아웃 랜덤화 장치
|
15 |
15
청구항 11에 있어서,상기 프로그램 코드는 위치-독립 코드(POSITION-INDEPENDENT CODE)에 상응하고, 상기 접근 코드는 하나의 패턴으로 단일화되는 것을 특징으로 하는 주소 공간 레이아웃 랜덤화 장치
|
16 |
16
청구항 11에 있어서,상기 프로그램 코드의 재설정이 완료된 이후에 프로그램의 실행을 기반으로 상기 접근 코드가 입력되는 경우, 상기 임베디드 시스템의 어드레스 디코더(ADDRESS DECODER)를 기반으로 상기 접근 코드에 포함된 랜덤 시작 주소를 참조하여 상기 타겟 주변 장치로의 접근을 수행하는 것을 특징으로 하는 주소 공간 레이아웃 랜덤화 장치
|