1 |
1
디바이스가 응용 프로그램의 자원을 보호하기 위한 방법에 있어서,보호 대상으로 설정된 응용 프로그램이 실행되는 동안, 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하는 단계; 및상기 판단 결과에 따라, 상기 응용 프로그램의 자원에 대한 접근 권한을 제어하는 단계를 포함하는, 방법
|
2 |
2
제1항에 있어서, 상기 자원에 대한 접근 권한을 제어하는 단계는상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인 경우, 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 대한 접근 권한 정보 및 상기 응용 프로그램의 레지스터 값을 백업하는 단계;상기 메모리 페이지에 대한 접근 권한을 재설정하고, 상기 레지스터 값을 삭제하는 단계를 포함하는, 방법
|
3 |
3
제2항에 있어서,상기 메모리 페이지에 대한 접근 권한 정보 및 상기 레지스터 값 중 적어도 하나가 백업되어 있는 경우, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 없는 상태로 전환되면, 상기 백업된 값을 이용하여 상기 메모리 페이지에 대한 접근 권한 정보 및 상기 레지스터 값 중 적어도 하나를 복구하는 단계를 더 포함하는, 방법
|
4 |
4
제1항에 있어서, 상기 판단하는 단계는상기 응용 프로그램의 실행 모드가 커널 모드인지 유저 모드인지 여부에 기초하여, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하는 단계를 포함하는, 방법
|
5 |
5
제1항에 있어서,상기 운영 체제가 시스템 호출을 처리하기 위하여, 상기 응용 프로그램의 자원에 대한 접근을 시도하는 단계;상기 시스템 호출에 기초하여, 상기 자원에 대한 접근 권한을 제어하는 단계를 더 포함하는, 방법
|
6 |
6
제5항에 있어서, 상기 자원에 대한 접근 권한을 제어하는 단계는상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 저장된 데이터를 암호화할 지 여부를 결정하는 단계;상기 결정된 결과에 따라, 상기 데이터를 암호화한 후, 상기 운영 체제의 상기 메모리 페이지에 대한 접근을 허용하거나, 상기 암호화된 데이터를 상기 운영 체제에 제공하는 단계를 더 포함하는, 방법
|
7 |
7
제1항에 있어서, 상기 운영 체제가 시스템 호출을 처리하기 위해, 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 대한 접근을 시도함을 감지하는 단계;상기 시스템 호출에 의해 처리될 데이터의 원본 데이터를 획득하는 단계;상기 운영 체제에 의해 상기 시스템 호출에 대한 처리가 완료되면, 상기 시스템 호출에 따라 처리된 데이터를 획득하는 단계;상기 원본 데이터의 해시값과 상기 시스템 호출에 따라 처리된 데이터의 해시값을 비교함으로써, 상기 시스템 호출에 따라 처리된 데이터의 무결성을 검증하는 단계를 더 포함하는, 방법
|
8 |
8
제1항에 있어서,상기 응용 프로그램이 보호 대상으로 설정되면, 상기 응용 프로그램의 자원이 할당된 메모리 페이지는 보호 대상으로 등록되는, 방법
|
9 |
9
제8항에 있어서,상기 운영 체제에 의해 상기 응용 프로그램의 자원으로 새로운 메모리 페이지가 할당됨을 감지하는 단계;상기 할당된 새로운 메모리 페이지가 상기 보호 대상으로 등록된 메모리 페이지와 동일하다고 판단되면, 상기 새로운 메모리 페이지에 대한 할당을 해제하는 단계를 더 포함하는, 방법
|
10 |
10
제8항에 있어서,상기 운영 체제가 상기 응용 프로그램의 페이지 테이블을 수정하는 경우, 상기 수정된 페이지 테이블에 따라 상기 응용 프로그램의 자원으로 할당된 메모리 페이지를 보호 대상으로 등록하거나 보호 대상에서 해제하는 단계를 더 포함하는, 방법
|
11 |
11
제1항에 있어서, 상기 운영 체제 대신 다른 응용 프로그램이 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하고, 상기 판단 결과에 따라 상기 응용 프로그램의 자원에 대한 접근 권한을 수행하는, 방법
|
12 |
12
응용 프로그램의 자원을 보호하기 위한 디바이스에 있어서,보호 대상으로 설정되어 실행 중인 응용 프로그램;상기 응용 프로그램에서 발생된 시스템 호출을 처리하는 운영 체제;상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하고, 상기 판단 결과에 따라, 상기 응용 프로그램의 자원에 대한 접근 권한을 제어하는 응용 프로그램 보호부;상기 응용 프로그램의 자원을 포함하는 하드웨어를 포함하는 디바이스
|
13 |
13
제12항에 있어서, 상기 응용 프로그램 보호부는상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인 경우, 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 대한 접근 권한 정보 및 상기 응용 프로그램의 레지스터 값을 백업하고, 상기 메모리 페이지에 대한 접근 권한을 재설정하고, 상기 레지스터 값을 삭제하는, 디바이스
|
14 |
14
제13항에 있어서, 상기 응용 프로그램 보호부는상기 메모리 페이지에 대한 접근 권한 정보 및 상기 레지스터 값 중 적어도 하나가 백업되어 있는 경우, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 없는 상태로 전환되면, 상기 백업된 값을 이용하여 상기 메모리 페이지에 대한 접근 권한 정보 및 상기 레지스터 값 중 적어도 하나를 복구하는, 디바이스
|
15 |
15
제12항에 있어서, 상기 응용 프로그램 보호부는상기 응용 프로그램의 실행 모드가 커널 모드인지 유저 모드인지 여부에 기초하여, 상기 운영 체제가 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하는, 디바이스
|
16 |
16
제12항에 있어서, 상기 응용 프로그램 보호부는상기 운영 체제가 시스템 호출을 처리하기 위하여, 상기 응용 프로그램의 자원에 대한 접근을 시도하면, 상기 시스템 호출에 기초하여, 상기 자원에 대한 접근 권한을 제어하는, 디바이스
|
17 |
17
제16항에 있어서, 상기 응용 프로그램 보호부는상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 저장된 데이터를 암호화할 지 여부를 결정하고, 상기 결정된 결과에 따라, 상기 데이터를 암호화한 후, 상기 운영 체제의 상기 메모리 페이지에 대한 접근을 허용하거나, 상기 데이터를 상기 운영 체제에 제공하는, 디바이스
|
18 |
18
제12항에 있어서, 상기 응용 프로그램 보호부는상기 운영 체제가 시스템 호출을 처리하기 위해, 상기 응용 프로그램의 자원으로 할당된 메모리 페이지에 대한 접근을 시도함을 감지하면, 상기 시스템 호출에 의해 처리될 데이터의 원본 데이터를 획득하고, 상기 운영 체제에 의해 상기 시스템 호출에 대한 처리가 완료되면, 상기 시스템 호출에 따라 처리된 데이터를 획득하고, 상기 원본 데이터의 해시값과 상기 시스템 호출에 따라 처리된 데이터의 해시값을 비교함으로써, 상기 시스템 호출에 따라 처리된 데이터의 무결성을 검증하는, 디바이스
|
19 |
19
제12항에 있어서,상기 응용 프로그램이 보호 대상으로 설정되면, 상기 응용 프로그램의 자원이 할당된 메모리 페이지는 보호 대상으로 등록되는, 디바이스
|
20 |
20
제19항에 있어서, 상기 응용 프로그램 보호부는 상기 운영 체제에 의해 상기 응용 프로그램의 자원으로 새로운 메모리 페이지가 할당됨을 감지하고, 상기 할당된 새로운 메모리 페이지가 상기 보호 대상으로 등록된 메모리 페이지와 동일하다고 판단되면, 상기 새로운 메모리 페이지에 대한 할당을 해제하는, 디바이스
|
21 |
21
제19항에 있어서, 상기 응용 프로그램 보호부는 상기 운영 체제가 상기 응용 프로그램의 페이지 테이블을 수정하는 경우, 상기 수정된 페이지 테이블에 따라 상기 응용 프로그램의 자원으로 할당된 메모리 페이지를 보호 대상으로 등록하거나 보호 대상에서 해제하는, 디바이스
|
22 |
22
제17항에 있어서,상기 운영 체제 대신 다른 응용 프로그램이 상기 응용 프로그램의 자원에 접근할 수 있는 상태인지 여부를 판단하고, 상기 판단 결과에 따라 상기 응용 프로그램의 자원에 대한 접근 권한을 수행하는, 디바이스
|
23 |
23
제1항 내지 제11항 중 어느 한 항에 있어서, 상기 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체
|
24 |
24
제1항 내지 제11항 중 어느 한 항에 있어서, 하드웨어와 결합되어 상기 방법을 실행시키는 컴퓨터 프로그램
|