KR102058493B1 - 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법 - Google Patents
게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법 Download PDFInfo
- Publication number
- KR102058493B1 KR102058493B1 KR1020180059809A KR20180059809A KR102058493B1 KR 102058493 B1 KR102058493 B1 KR 102058493B1 KR 1020180059809 A KR1020180059809 A KR 1020180059809A KR 20180059809 A KR20180059809 A KR 20180059809A KR 102058493 B1 KR102058493 B1 KR 102058493B1
- Authority
- KR
- South Korea
- Prior art keywords
- file
- hash value
- operating system
- access
- guest operating
- Prior art date
Links
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
-
- 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/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Automation & Control Theory (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 게스트 운영체제의 실행파일 또는 게스트 운영체제에서 실행되는 실행파일의 실행요청을 감지하면, 실행파일이 실행되기 전에 해쉬값을 계산하고 사전에 저장된 해쉬값과 비교함으로써, 실행파일의 보안을 확보하고, 게스트 운영체제를 시작하기 전 게스트 운영체제의 파일 시스템을 파싱하고 가상화 드라이버에 대한 무결성을 검증하고, 검증결과 가상화 드라이버가 무결하면 가상화 드라이버가 할당된 메모리 영역, 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단하고, 가상화 드라이버에서 파일로의 접근이 발생하면, 접근 요청된 파일에 대한 접근권한을 판단하여 접근을 처리하도록 하여 파일을 보호한다.
Description
이하의 일 실시 예들은 가상화 시스템에서 게스트 운영체제를 운영함에 있어서 게스트 운영체제의 무결성을 확보하고 게스트 운영체제를 통해서 파일 에 접근할 때, 파일 입출력을 제어하는 보안 장치 및 방법에 관한 것이다.
"가상화"의 사전적 의미는 "실제로 있지 않거나 모호한 것에 대하여 실제로 존재하는 사실이나 개체로 가정하여 취급하는 것"으로 정의되어 있다.
본 발명에서 가상화 기술은 "컴퓨터 운영체제를 시스템 구조나 하드웨어에 영향을 받지 않고 설치, 사용할 수 있는 기술"이다.
가상화 기술은 최초로 1970년대에 IBM에서 제안한 기술로 당시에는 메인 프레임의 공간 절감과 비용적 문제를 해결하고자 제안되었다. 하지만, 최근에는 비용절감의 효과뿐만 아니라 호환성 및 유연성, 보안성을 제공하여 가상화 기술이 주목받고 있다. 주로 적용 분야는 클라우드 컴퓨팅을 위한 서버 가상화와 데스크톱 가상화, 모바일 가상화 등 분야가 다양하다.
이러한 가상화 기술을 보안성 때문에 이용되는 이유는, 높은 격리성(Isolation)이란 가상화의 장점에 바탕을 둔다. 가상화 환경은 일반적으로 게스트 운영체제가 실행되는 가상 머신과 이를 관리하는 호스트 운영체제가 실행되는 가상 머신 모니터(VMM; Virtual machine monitor) 혹은 하이퍼바아저(Hypervisor)로 구성되며, 각 가상 머신은 격리된 공간으로 존재한다. 특히 가상 머신에 위협이 발생한 경우에도 해당 가상 머신을 제외한 다른 가상 머신과 가상 머신 모니터에는 영향을 주지 않기 때문이다.
하지만, 가상화 시스템에서 기존에 물리머신에서 사용되는 보안솔루션들은 한계를 보이고 있고, 보안위협의 발생빈도도 크게 증가하고 있다.
가상화 시스템에서 보안솔루션이 한계를 보이는 대표적인 이유는 하나의 가상화 시스템에 다수의 운영체제가 설치될 수 있기 때문이다.
해커들이 가상화 시스템에 설치되는 운영체제 중에서 하나를 이용해서 운영체제 수준에서 공격하여 데이터에 접근하는 경우, 이를 막기 어려운 문제를 가지고 있다.
따라서, 데이터의 접근을 효율적으로 감시하고 차단할 수 있는 기술이 요구된다.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, 게스트 운영체제와 관련된 실행파일과 게스트 운영체제 하에서 실행되는 모든 실행파일에 해쉬값을 사전에 계산하여 저장하고, 실행파일이 실행되기 전에 해쉬값을 계산하고 사전에 저장된 해쉬값과 비교함으로써, 실행하고자 하는 실행파일의 무결성을 확인할 수 있다.
또한, 본 발명은 게스트 운영체제를 시작하기 전 게스트 운영체제의 파일 시스템을 파싱하고 가상화 드라이버에 대한 무결성을 검증하고, 검증결과 가상화 드라이버가 무결하면 가상화 드라이버가 할당된 메모리 영역, 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단하고, 가상화 드라이버에서 파일로의 접근이 발생하면, 접근 요청된 파일에 대한 접근권한을 판단하여 접근을 처리하도록 하여 파일을 보호하는 방법을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시 예에 따른 보안 장치에서 보안 서비스를 제공하는 방법은, 게스트 운영체제의 실행파일 또는 상기 게스트 운영체제에서 실행되는 실행파일의 실행요청을 감지하는 단계; 상기 실행파일의 실행요청을 감지하면, 상기 실행파일에 대응하는 해쉬값을 해쉬 테이블에서 검색하는 단계; 상기 해쉬 테이블에 상기 실행파일에 대응하는 해쉬값이 존재하면, 상기 실행파일의 해쉬값을 계산하는 단계; 상기 검색된 해쉬값과 상기 계산된 해쉬값을 비교하는 단계; 및 비교결과 상기 검색된 해쉬값과 상기 계산된 해쉬값이 동일하면 상기 실행파일의 실행을 허가하는 단계를 포함한다.
이때, 상기 실행파일의 실행요청을 감지하는 단계 이전에, 상기 실행파일의 설치를 요청받으면, 사전에 허가된 로컬 네트워크를 통한 설치 요청인지 확인하는 단계; 및 확인결과 설치 요청이 사전에 허가된 로컬 네트워크를 통한 설치 요청이면, 기설정된 해쉬 함수를 이용해서 상기 실행파일의 해쉬값을 계산하여 상기 실행파일에 대응하는 해쉬값으로 상기 해쉬 테이블에 저장하는 단계를 더 포함할 수 있다.
이때, 보안 장치에서 보안 서비스를 제공하는 방법은, 상기 실행파일의 갱신을 요청받으면, 사전에 허가된 로컬 네트워크를 통한 갱신 요청인지 확인하는 단계; 및 확인결과 갱신 요청이 사전에 허가된 로컬 네트워크를 통한 갱신 요청이면, 기설정된 해쉬 함수를 이용해서 갱신된 실행파일의 해쉬값을 계산하고, 상기 갱신된 실행파일의 해쉬값을 상기 실행파일에 대응하는 해쉬값으로 상기 해쉬 테이블에 저장하는 단계를 더 포함할 수 있다.
이때, 보안 장치에서 보안 서비스를 제공하는 방법은, 상기 해쉬 테이블에 상기 실행파일에 대응하는 해쉬값이 존재하지 않거나 또는 상기 검색된 해쉬값과 상기 계산된 해쉬값의 비교결과 상기 검색된 해쉬값과 상기 계산된 해쉬값이 동일하지 않으면 상기 실행파일의 실행을 차단하는 단계를 더 포함할 수 있다.
이때, 상기 해쉬 테이블은, 사전에 설치된 실행파일에 대응하는 해쉬값을 저장할 수 있다.
이때, 상기 해쉬 테이블은, 사전에 설치된 실행파일에 대응하는 해쉬값을 저장하고, 실행파일을 식별할 수 있는 식별자 정보 또는 실행파일의 경로 중에서 적어도 하나를 더 포함할 수 있다.
본 발명의 다른 실시 예에 따른 보안 장치에서 보안 서비스를 제공하는 방법은, 게스트 운영체제를 시작하기 전 게스트 운영체제 시스템의 파일 시스템을 파싱하고 상기 게스트 운영체제를 실행하는 가상화 드라이버에 대한 무결성을 검증하는 단계; 검증결과 상기 가상화 드라이버가 무결하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단하는 단계; 상기 게스트 운영체제와 상기 가상화 드라이버를 실행하는 단계; 상기 가상화 드라이버에서 파일로의 접근이 발생하면, 발생한 파일의 접근 정보를 호스트 운영체제 파일 보호부로 송신하여 접근 가능 여부를 문의하는 단계; 상기 호스트 운영체제 파일 보호부에서 보호정책 관리부를 통해서 상기 파일에 대한 접근권한을 판단하는 단계; 및 상기 파일로의 접근에 대한 판단 결과를 상기 가상화 드라이버로 송신하는 단계를 포함한다.
이때, 보안 장치에서 보안 서비스를 제공하는 방법은, 상기 가상화 드라이버에서 수신한 상기 파일에 대한 판단 결과가 접근 불가(deny)이면 상기 파일로의 접근을 차단하고, 수신한 상기 파일에 대한 판단 결과가 접근 허가(allow)이면, 상기 파일로의 요청된 접근을 수행하는 단계를 더 포함할 수 있다.
이때, 상기 메모리 영역의 변조를 차단하는 단계는, 상기 호스트 운영체제 파일 보호부에서 상기 가상화 드라이버의 시작 시간과 변조를 차단할 메모리 영역의 주소를 상기 가상화 드라이버로부터 수신하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단할 수 있다.
이때, 상기 파일에 대한 접근권한을 판단하는 단계는, 상기 보호정책 관리자에 저장된 보호 대상으로 기설정된 파일 목록에서 상기 파일의 접근 정보에 대한 접근권한을 확인하여 판단하고, 상기 파일의 접근 정보는, 상기 파일의 경로, 상기 파일에 접근하고자 하는 프로세스 정보 및 요청된 접근 종류를 포함하고, 상기 파일 목록은, 상기 파일의 경로와 접근 가능 프로세스의 상기 파일에 대한 접근 권한, 또는 상기 파일의 경로와 파일 수정 프로세스의 상기 파일에 대한 접근 권한을 포함할 수 있다.
이때, 상기 파일에 대한 접근권한을 판단하는 단계는, 상기 보호정책 관리자에 저장된 보호 대상으로 기설정된 파일 목록에서 상기 파일의 접근 정보에 대한 접근권한을 확인하여 판단하고, 상기 파일의 접근 정보는, 상기 파일의 확장자, 상기 파일에 접근하고자 하는 프로세스 정보 및 요청된 접근 종류를 포함하고, 상기 파일 목록은, 각 확장자에 대응하는 접근 가능 프로세스의 정보, 상기 접근 가능 프로세스가 해당 확장자에 대한 접근 권한, 또는 각 확장자에 대응하는 파일 수정 프로세스의 정보, 상기 파일 수정 프로세스가 해당 확장자에 대한 접근 권한을 포함할 수 있다.
본 발명의 일 실시 예에 따른 보안 서비스를 제공하는 보안 장치는, 실행파일에 대응하는 해쉬값이 해쉬 테이블에 존재하면, 상기 실행파일의 해쉬값을 계산하고, 상기 해쉬 테이블에서 검색된 해쉬값과 상기 계산된 해쉬값을 비교하여 상기 검색된 해쉬값과 상기 계산된 해쉬값이 동일하면 상기 실행파일의 실행을 허가로 판단하는 해쉬값 관리부; 및 게스트 운영체제의 실행파일 또는 상기 게스트 운영체제에서 실행되는 실행파일의 실행요청을 감지하면, 상기 해쉬값 관리부를 통해서 실행 가능 여부를 확인하고 판단 결과에 따라 상기 실행파일의 실행을 허가하는 호스트 운영체제 파일 보호부를 포함한다.
이때, 상기 해쉬값 관리부는, 상기 실행파일의 실행요청을 감지하기 이전에, 상기 실행파일의 설치를 요청 받으면, 기설정된 로컬 단말기로부터 사전에 허가된 로컬 네트워크를 통한 설치 요청인지 확인하고, 상기 기설정된 로컬 단말기로부터 상기 허가된 로컬 네트워크를 통한 설치 요청이면 기설정된 해쉬 함수를 이용해서 상기 실행파일의 해쉬값을 계산하여 상기 실행파일에 대응하는 해쉬값으로 상기 해쉬 테이블에 저장할 수 있다.
이때, 상기 해쉬값 관리부는, 상기 실행파일의 갱신을 요청 받으면, 기설정된 로컬 단말기로부터 사전에 허가된 로컬 네트워크를 통한 갱신 요청인지 확인하고, 상기 기설정된 로컬 단말기로부터 상기 허가된 로컬 네트워크를 통한 갱신 요청이면 기설정된 해쉬 함수를 이용해서 갱신된 실행파일의 해쉬값을 계산하고, 상기 갱신된 실행파일의 해쉬값을 상기 실행파일에 대응하는 해쉬값으로 상기 해쉬 테이블에 저장할 수 있다.
이때, 상기 해쉬값 관리부는, 상기 해쉬 테이블에 상기 실행파일에 대응하는 해쉬값이 존재하지 않거나 또는 상기 검색된 해쉬값과 상기 계산된 해쉬값의 비교결과 상기 검색된 해쉬값과 상기 계산된 해쉬값이 동일하지 않으면 상기 실행파일의 실행을 허가하지 않는 것으로 판단할 수 있다.
이때, 보안 서비스를 제공하는 보안 장치는, 상기 게스트 운영체제를 시작하기 전 게스트 운영체제 시스템의 파일 시스템을 파싱하고 상기 게스트 운영체제를 실행하는 가상화 드라이버에 대한 무결성을 검증하는 분석부; 파일의 접근 정보에 따른 파일에 대한 접근권한을 판단하는 보호정책 관리부; 및 파일로의 접근이 발생하면, 발생한 파일의 접근 정보를 상기 호스트 운영체제 파일 보호부로 송신하여 접근 가능 여부를 문의하는 상기 가상화 드라이버를 더 포함하고, 상기 호스트 운영체제 파일 보호부는, 검증결과 상기 가상화 드라이버가 무결하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단하고, 상기 가상화 드라이버로부터 상기 파일의 접근 정보를 수신하면, 상기 보호정책 관리자를 통해 상기 파일의 접근 정보에 따른 상기 파일에 대한 접근권한을 판단한 결과를 상기 가상화 드라이버로 송신할 수 있다.
이때, 상기 가상화 드라이브는, 상기 가상화 드라이버에서 수신한 상기 파일에 대한 판단 결과가 접근 불가(deny)이면 상기 파일로의 접근을 차단하고, 수신한 상기 파일에 대한 판단 결과가 접근 허가(allow)이면, 상기 파일로의 요청된 접근을 수행할 수 있다.
이때, 상기 호스트 운영체제 파일 보호부는, 상기 가상화 드라이버의 시작 시간과 변조를 차단할 메모리 영역의 주소를 상기 가상화 드라이버로부터 수신하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단할 수 있다.
이때, 상기 보호정책 관리부는, 상기 보호정책 관리부에 저장된 보호 대상으로 기설정된 파일 목록에서 상기 파일의 접근 정보에 대한 접근권한을 확인하여 판단하고, 상기 파일의 접근 정보는, 상기 파일의 경로, 상기 파일에 접근하고자 하는 프로세스 정보 및 요청된 접근 종류를 포함하고, 상기 파일 목록은, 상기 파일의 경로와 접근 가능 프로세스의 상기 파일에 대한 접근 권한, 또는 상기 파일의 경로와 파일 수정 프로세스의 상기 파일에 대한 접근 권한을 포함할 수 있다.
이때, 상기 보호정책 관리부는, 상기 보호정책 관리부에 저장된 보호 대상으로 기설정된 파일 목록에서 상기 파일의 접근 정보에 대한 접근권한을 확인하여 판단하고, 상기 파일의 접근 정보는, 상기 파일의 확장자, 상기 파일에 접근하고자 하는 프로세스 정보 및 요청된 접근 종류를 포함하고, 상기 파일 목록은, 각 확장자에 대응하는 접근 가능 프로세스의 정보, 상기 접근 가능 프로세스가 해당 확장자에 대한 접근 권한, 또는 각 확장자에 대응하는 파일 수정 프로세스의 정보, 상기 파일 수정 프로세스가 해당 확장자에 대한 접근 권한을 포함할 수 있다.
본 발명은 게스트 운영체제의 실행파일 또는 게스트 운영체제에서 실행되는 실행파일의 실행요청을 감지하면, 실행파일이 실행되기 전에 해쉬값을 계산하고 사전에 저장된 해쉬값과 비교함으로써, 실행하고자 하는 실행파일의 무결성을 확인할 수 있으며, 게스트 운영체제를 시작하기 전 게스트 운영체제의 파일 시스템을 파싱하고 가상화 드라이버에 대한 무결성을 검증하고, 검증결과 가상화 드라이버가 무결하면 가상화 드라이버가 할당된 메모리 영역, 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단하고, 가상화 드라이버에서 파일로의 접근이 발생하면, 접근 요청된 파일에 대한 접근권한을 판단하여 접근을 처리하도록 하여 파일을 보호할 수 있다.
도 1은 일 실시예에 따라 가상화 시스템에서 게스트 운영체제와 파일 시스템의 자원을 보안하는 보안 장치의 구성을 도시한 도면이다.
도 2는 일 실시예에 따라 가상화 드라이버의 메모리 영역에 대한 변조를 차단하기 위해 수정하는 페이지 테이블 엔트리를 도시한 도면이다.
도 3은 일 실시예에 따른 보안 장치에서 실행파일을 실행전에 검사하는 과정을 도시한 흐름도이다.
도 4는 일 실시예에 따른 보안 장치에서 실행파일을 설치하는 과정을 도시한 흐름도이다.
도 5는 일 실시예에 따른 보안 장치에서 실행파일을 갱신하는 과정을 도시한 흐름도이다.
도 6은 일 실시예에 따른 보안 장치에서 파일을 보호하는 과정을 도시한 흐름도이다.
도 7은 일 실시예에 따른 보안 장치에서 파일의 접근권한에 따라 파일의 접근을 처리하는 과정을 도시한 흐름도이다.
도 8은 일 실시예에 따라 보안 장치에서 파일을 보호하는 위한 메시지 흐름을 도시한 도면이다.
도 2는 일 실시예에 따라 가상화 드라이버의 메모리 영역에 대한 변조를 차단하기 위해 수정하는 페이지 테이블 엔트리를 도시한 도면이다.
도 3은 일 실시예에 따른 보안 장치에서 실행파일을 실행전에 검사하는 과정을 도시한 흐름도이다.
도 4는 일 실시예에 따른 보안 장치에서 실행파일을 설치하는 과정을 도시한 흐름도이다.
도 5는 일 실시예에 따른 보안 장치에서 실행파일을 갱신하는 과정을 도시한 흐름도이다.
도 6은 일 실시예에 따른 보안 장치에서 파일을 보호하는 과정을 도시한 흐름도이다.
도 7은 일 실시예에 따른 보안 장치에서 파일의 접근권한에 따라 파일의 접근을 처리하는 과정을 도시한 흐름도이다.
도 8은 일 실시예에 따라 보안 장치에서 파일을 보호하는 위한 메시지 흐름을 도시한 도면이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
이하, 실시 예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시 예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
이하에서는, 본 발명의 일 실시 예에 따라 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법을 첨부된 도 1 내지 도 8을 참조하여 상세히 설명한다.
도 1은 일 실시예에 따라 가상화 시스템에서 게스트 운영체제와 파일 시스템의 자원을 보안하는 보안 장치의 구성을 도시한 도면이다.
도 1을 참조하면, 보안 장치는 크게 게스트 운영체제 시스템(OS; Operating System)(110), 호스트 운영체제 시스템(OS; Operating System)(120) 및 로컬 단말기(130)를 포함하여 구성될 수 있다.
게스트 OS(110)은 IP 주소를 가지고 네트워크에 연결되며, 호스트 OS(120)는 IP 주소를 가지고 있지 않다, 호스트 OS(120)의 제어는 로컬 네트워크를 통한 로컬 단말기(130)를 통해서만 제어가 가능하며, 네트워크를 통해서 게스트 OS(110)로 전송되는 데이터는 호스트 OS(120)를 통해서 게스트 OS(110)로 전달 되지만, 호스트 OS(120)는 IP주소를 가지고 있지 않기 때문에 외부에서는 호스트 OS(120)에 직접적으로 접근할 수 없다.
보다 구체적으로 게스트 OS(110)은 가상화 드라이버(Para-virtualized Agent)(112), 파일 시스템(114)을 포함하고, 호스트 OS(120)는 호스트 운영체제(OS) 파일 보호부(122), 분석부(Parser)(124), 보호정책 관리부(126), 해쉬값 관리부(128)을 포함하여 구성될 수 있다.
해쉬값 관리부(128)는 게스트 운영체제의 실행파일 또는 게스트 운영체제에서 실행되는 실행파일의 설치를 요청 받으면, 기설정된 로컬 단말기(130)로부터 사전에 허가된 로컬 네트워크를 통한 설치 요청인지 확인하고, 기설정된 로컬 단말기(130)로부터 허가된 로컬 네트워크를 통한 설치 요청이면 기설정된 해쉬 함수를 이용해서 실행파일의 해쉬값을 계산하여 실행파일에 대응하는 해쉬값으로 해쉬 테이블에 저장한다.
이때, 실행파일의 해쉬값은 기설정된 해쉬 함수의 입력값으로 실행파일의 파일 내용을 입력하여 계산될 수 있다.
그리고, 실행파일은 실행파일구조에 해당하는 파일로서 예를 들어, 확장자가 EXE, DLL, SYS 등의 파일이 실행파일에 해당할 수 있다.
이때, 해쉬 테이블은 사전에 설치된 실행파일에 대응하는 해쉬값을 저장할 수 있다. 해쉬 테이블에 저장되는 해쉬값이 복수개인 경우 해쉬 테이블은 사전에 설치된 실행파일에 대응하는 해쉬값을 저장하고, 실행파일을 식별할 수 있는 식별자 정보 또는 실행파일의 경로 중에서 적어도 하나를 더 포함할 수 있다.
해쉬값 관리부(128)는 게스트 운영체제의 실행파일 또는 게스트 운영체제에서 실행되는 실행파일의 갱신을 요청 받으면, 기설정된 로컬 단말기(130)로부터 사전에 허가된 로컬 네트워크를 통한 갱신 요청인지 확인하고, 기설정된 로컬 단말기(130)로부터 허가된 로컬 네트워크를 통한 갱신 요청이면, 기설정된 해쉬 함수를 이용해서 갱신된 실행파일의 해쉬값을 계산하고, 갱신된 실행파일의 해쉬값을 실행파일에 대응하는 해쉬값으로 해쉬 테이블에 저장한다.
해쉬값 관리부(128)는 실행파일에 대응하는 해쉬값이 해쉬 테이블에 존재하면, 실행파일의 해쉬값을 계산하고, 해쉬 테이블에서 검색된 해쉬값과 계산된 해쉬값을 비교하여 검색된 해쉬값과 계산된 해쉬값이 동일하면 실행파일의 실행을 허가로 판단한다.
한편, 해쉬값 관리부(128)는 해쉬 테이블에 실행파일에 대응하는 해쉬값이 존재하지 않거나 또는 검색된 해쉬값과 계산된 해쉬값의 비교결과 검색된 해쉬값과 계산된 해쉬값이 동일하지 않으면 실행파일의 실행을 허가하지 않는 것으로 판단한다.
호스트 운영체제 파일 보호부(122)는 게스트 운영체제의 실행파일 또는 게스트 운영체제에서 실행되는 실행파일의 실행요청을 감지하면, 해쉬값 관리부(128)를 통해서 실행 가능 여부를 확인하고 판단 결과에 따라 실행파일의 실행을 허가한다.
가상화 드라이버(112)는 게스트 운영체제 시스템에서 시작하기에 앞서, 시작 시간과 가상화 드라이버의 메모리 영역 정보를 호스트 운영체제 파일 보호부(122)를 통해 분석부(124)로 제공하여 무결성 여부를 확인한다. 이때, 에이전트의 메모리 영역 정보에 해당하는 메모리 주소는 커널의 구조체(structure) 및 API(Application Programming Interface)를 통해 획득할 수 있다.
가상화 드라이버(112)는 운영체제에 관계 없이 구현될 수 있으나, 운영체제에 따라 구현 방법이 달리질 수 있다. 예를 들어, 윈도우(Windows)의 경우 파일 시스템 미니필터 드라이버(file system minifilter driver)를 통해 가상화 드라이버(112)가 구현될 수 있고, 리눅스(Linux)의 경우 커널 모듈(kernel module)을 통해 가상화 드라이버(112)가 구현될 수 있다.
분석부(124)는 게스트 OS(110)을 시작하기 전에 게스트 운영체제의 파일 시스템을 파싱하고 가상화 드라이버에 대한 무결성을 검증하고, 검증 결과를 호스트 운영체제 파일 보호부(122)로 제공한다.
호스트 운영체제 파일 보호부(122)는 분석부(124)의 검증결과 가상화 드라이버가 무결하면, 가상화 드라이버(112)가 할당된 메모리 영역의 변조를 차단한다.
또한, 호스트 운영체제 파일 보호부(122)는 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단한다.
보다 구체적으로, 호스트 운영체제 파일 보호부(122)는 수신한 가상화 드라이버(112)의 시작 시간과 가상화 드라이버(112)가 할당된 메모리 영역의 주소를 이용하여 가상화 드라이버(112)가 할당된 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단할 수 있다.
그리고, 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역의 주소와 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 주소를 이용해서 해당 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단할 수 있다.
도 2는 일 실시예에 따라 가상화 드라이버의 메모리 영역에 대한 변조를 차단하기 위해 수정하는 페이지 테이블 엔트리를 도시한 도면이다.
도 2를 참조하면, 호스트 운영체제 파일 보호부(122)는 페이지 테이블 엔트리(page table entry)에서 음영으로 표시한 접근 권한(RWX bits)을 쓰기금지에 해당하는 읽기(read)로 수정하여 변조를 차단할 수 있다.
한편, 메모리 영역에 대한 변조를 차단하기 위해서 인텔의 경우 메모리 가상화 기술인 Extended Page Table(EPT)를 활용하고, AMD의 경우 Nested Page Tables(NPT)를 활용 할 수 있다.
가상화 드라이버(112)는 파일로의 접근이 발생하면, 발생한 파일의 접근 정보를 호스트 운영체제 파일 보호부(122)로 송신하여 접근 가능 여부를 문의할 수 있다. 이때, 파일의 접근 정보는 파일의 경로(full path name), 파일에 접근하고자 하는 프로세스 정보 및 요청된 접근 종류(예를 들어, 읽기, 쓰기, 실행 등)를 포함할 수 있다.
호스트 운영체제 파일 보호부(122)는 가상화 드라이버(112)로부터 파일의 접근 정보를 수신하면, 보호정책 관리부(126)를 통해 파일의 접근 정보에 해당하는 파일의 접근권한을 판단하도록 요청하고, 보호정책 관리부(126)으로부터 판단결과를 수신하면 가상화 드라이버(112)로 송신한다.
보호정책 관리부(126)는 보호 대상으로 기설정된 파일 목록에서 파일의 접근 정보 대한 접근권한을 확인하여 접근 가능 여부를 판단할 수 있다. 이때, 파일 목록은 파일의 경로와 접근 가능 프로세스의 파일에 대한 접근 권한, 또는 파일의 경로와 파일 수정 프로세스의 파일에 대한 접근 권한을 포함할 수 있다.
한편 파일의 접근 정보가 파일의 확장자, 파일에 접근하고자 하는 프로세스 정보 및 요청된 접근 종류를 포함하고 있는 경우, 파일 목록은 각 확장자에 대응하는 접근 가능 프로세스의 정보, 접근 가능 프로세스가 해당 확장자에 대한 접근 권한, 또는 각 확장자에 대응하는 파일 수정 프로세스의 정보, 파일 수정 프로세스가 해당 확장자에 대한 접근 권한을 포함할 수 있다.
여기서, 접근 가능 프로세스의 파일에 대한 접근 권한은, 읽기(read)로 설정하여, 파일의 변조가 가능하지 않도록 할 수 있다. 그리고, 파일 수정 프로세스의 파일에 대한 접근 권한은 읽기(read), 쓰기(write) 및 실행(execute) 중에서 적어도 하나로 설정하여 사전에 설정된 파일 수정 프로세스만이 파일을 수정할 수 있도록 할 수 있다.
가상화 드라이버(112)는 호스트 운영체제 파일 보호부(122)로부터 파일에 대한 접근 가능 여부를 판단한 결과를 수신하고, 파일에 대한 판단 결과가 접근 불가(deny)이면 파일로의 접근을 차단하고, 파일에 대한 판단 결과가 접근 허가(allow)이면, 파일로의 요청된 접근을 수행하도록 할 수 있다.
한편, 가상화 드라이버(112)와 호스트 운영체제 파일 보호부(122)는 하이퍼콜 인터페이스(hypercall interface)를 이용해서 통신할 수 있다.
이하, 상기와 같이 구성된 본 발명에 따른 방법을 아래에서 도면을 참조하여 설명한다.
도 3은 일 실시예에 따른 보안 장치에서 실행파일을 실행전에 검사하는 과정을 도시한 흐름도이다.
도 3을 참조하면, 보안 장치는 게스트 운영체제의 실행파일 또는 게스트 운영체제에서 실행되는 실행파일의 실행요청을 감지하면(310), 실행파일에 대응하는 해쉬값을 해쉬 테이블에서 검색한다(312).
이때, 해쉬 테이블은 사전에 설치된 실행파일에 대응하는 해쉬값을 저장할 수 있다. 해쉬 테이블에 저장되는 해쉬값이 복수개인 경우 해쉬 테이블은 사전에 설치된 실행파일에 대응하는 해쉬값을 저장하고, 실행파일을 식별할 수 있는 식별자 정보 또는 실행파일의 경로 중에서 적어도 하나를 더 포함할 수 있다.
312단계의 검색결과 해쉬 테이블에 실행파일에 대응하는 해쉬값이 존재하면, 보안 장치는 실행파일의 해쉬값을 계산한다(314).
그리고, 보안 장치는 검색된 해쉬값과 계산된 해쉬값을 비교한다(316).
316단계의 비교결과 검색된 해쉬값과 계산된 해쉬값이 동일하면, 보안장치는 실행파일의 실행을 허가한다(318).
312단계의 검색결과 해쉬 테이블에 실행파일에 대응하는 해쉬값이 존재하지 않거나 316단계의 비교결과 검색된 해쉬값과 계산된 해쉬값이 동일하지 않으면, 보안장치는 실행파일의 실행을 차단한다(320).
한편, 보안 장치는 도 3에서 실행파일의 실행요청에 따라 해쉬값을 비교하기 위해서 실행파일을 설치할 때 해쉬값을 사전에 저장하여야 한다.
도 4는 일 실시예에 따른 보안 장치에서 실행파일을 설치하는 과정을 도시한 흐름도이다.
도 4를 참조하면, 보안 장치는 실행파일의 설치를 요청받으면(410), 사전에 허가된 로컬 네트워크를 통한 기설정된 로컬 단말기로부터 수신된 설치 요청인지 확인한다(412).
412단계의 확인결과 설치 요청이 사전에 허가된 로컬 네트워크를 통한 설치 요청이면, 보안장치는 기설정된 해쉬 함수를 이용해서 실행파일의 해쉬값을 계산하여 실행파일에 대응하는 해쉬값으로 해쉬 테이블에 저장한다(414).
412단계의 확인결과 설치 요청이 사전에 허가된 로컬 네트워크를 통한 설치 요청이 아니면, 보안장치는 실행파일의 설치를 차단한다(416).
도 5는 일 실시예에 따른 보안 장치에서 실행파일을 갱신하는 과정을 도시한 흐름도이다.
도 5를 참조하면, 보안 장치는 실행파일의 갱신을 요청받으면(510), 사전에 허가된 로컬 네트워크를 통한 기설정된 로컬 단말기로부터 수신된 갱신 요청인지 확인한다(512).
512단계의 확인결과 갱신 요청이 사전에 허가된 로컬 네트워크를 통한 설치 요청이면, 보안장치는 기설정된 해쉬 함수를 이용해서 갱신된 실행파일의 해쉬값을 계산하여 실행파일에 대응하는 해쉬값으로 해쉬 테이블에 저장하여 갱신한다(514).
512단계의 확인결과 갱신 요청이 사전에 허가된 로컬 네트워크를 통한 설치 요청이 아니면, 보안장치는 실행파일의 갱신을 차단한다(516).
도 6은 일 실시예에 따른 보안 장치에서 파일을 보호하는 과정을 도시한 흐름도이다.
도 6을 참조하면, 분석부에서 게스트 운영체제 시스템을 시작하기 전 게스트 운영체제의 파일 시스템을 파싱하고 가상화 드라이버에 대한 무결성을 검증한다(610).
검증결과 가상화 드라이버가 무결하면, 가상화 드라이버가 할당된 메모리 영역, 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단한다(612). 이때, 메모리의 변조를 차단하는 방법은 예를 들어, 가상화 드라이버가 할당된 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단할 수 있다.
그리고, 게스트 운영체제 시스템에서 게스트 운영체제의 실행을 시작하고(614), 가상화 드라이버의 실행을 시작한다(616).
614단계와 616단계에서 게스트 운영체제의 실행을 시작하고, 가상화 드라이버의 실행을 시작하기에 앞서, 도 3에서 설명드린 바와 같이 해쉬값의 비교를 통해서 실행 가능 여부에 따라 실행할 수 있다.
이후, 보안 장치는 게스트 운영체제와 가상화 드라이버가 실행 중인지 여부를 확인한다(618).
618단계의 확인결과 게스트 운영체제와 가상화 드라이버가 실행 중이면, 가상화 드라이버는 파일로 접근이 발생하는지 여부를 확인한다(620).
620단계의 확인결과 파일로의 접근이 발생하면, 가상화 드라이버는 파일의 접근권한에 따라 발생한 파일 입출력을 처리한다(622).
파일로의 접근을 처리하는 622단계를 아래 도 7을 통해 보다 구체적으로 설명하고자 한다.
도 7은 일 실시예에 따른 보안 장치에서 파일의 접근권한에 따라 파일의 접근을 처리하는 과정을 도시한 흐름도이다.
도 7을 참조하면, 가상화 드라이버는 파일의 접근 정보를 호스트 운영체제 파일 보호부로 송신하여 접근 가능 여부를 문의한다(710). 이때, 파일의 접근 정보는 파일의 경로(full path name), 파일에 접근하고자 하는 프로세스 정보 및 요청된 접근 종류(예를 들어, 읽기, 쓰기, 실행 등)를 포함할 수 있다.
호스트 운영체제 파일 보호부는 보호정책 관리부를 통해서 발생한 파일로의 접근에 대한 접근권한을 판단한다(712).
호스트 운영체제 파일 보호부는 발생한 파일로의 접근에 대한 판단 결과를 가상화 드라이버로 송신한다(714).
가상화 드라이버는 발생한 파일로의 접근에 대한 접근 가능 여부 판단결과가 접근 허가인지 확인한다(716).
716단계의 확인결과 발생한 파일로의 접근에 대한 판단 결과가 접근 허가(allow)이면, 가상화 드라이버는 발생한 파일로의 요청된 접근을 수행할 수 있도록 처리한다(718).
716단계의 확인결과 발생한 파일에 대한 판단 결과가 접근 불가(deny)이면, 가상화 드라이버는 발생한 파일로의 접근을 차단하도록 처리한다(720).
도 8은 일 실시예에 따라 보안 장치에서 파일을 보호하는 위한 메시지 흐름을 도시한 도면이다.
도 8을 참조하면, 가상화 드라이버(112)는 게스트 운영체제 시스템에서 시작하기에 앞서, 시작 시간과 가상화 드라이버의 메모리 영역 정보를 호스트 운영체제 파일 보호부(122)로 송신한다(810).
호스트 OS 파일 보호부(122)는 시작 시간과 가상화 드라이버의 메모리 영역 정보를 분석부(124)로 제공한다(812).
분석부(124)는 게스트 OS(110)을 시작하기 전에 게스트 운영체제의 파일 시스템을 파싱하고 가상화 드라이버에 대한 무결성을 검증한다(814).
그리고, 분석부(124)는 무결성을 판단한 결과를 호스트 OS 파일 보호부(122)로 제공한다(816).
호스트 OS 파일 보호부(122)는 분석부(124)의 검증결과 가상화 드라이버가 무결하면, 가상화 드라이버(112)가 할당된 메모리 영역, 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역에 쓰기가 금지되도록 읽기전용(read only)로 설정하여 변조를 차단한다(818).
이후, 가상화 드라이버(112)에서 파일로의 접근이 발생하면(820), 발생한 파일의 접근 정보를 호스트 OS 파일 보호부(122)로 송신하여 접근 가능 여부를 문의한다(822).
호스트 OS 파일 보호부(122)는 발생한 파일의 접근 정보를 보호정책 관리부(126)으로 제공하여 접근 가능 여부를 문의한다(824).
보호정책 관리부(126)는 보호 대상으로 기설정된 파일 목록에서 발생한 파일의 접근 정보에 대한 접근권한을 확인하여 접근 가능 여부를 판단하고(826), 판단결과를 호스트 OS 파일 보호부(122)로 송신한다(828).
호스트 OS 파일 보호부(122)는 보호정책 관리부(126)으로부터 발생한 파일의 접근 정보에 대한 접근 가능 여부를 판단한 판단결과를 수신하면, 수신한 판단결과를 가상화 드라이버(112)로 송신한다(830).
가상화 드라이버(112)는 발생한 파일의 접근에 대한 접근 가능 여부를 판단한 판단결과에 따라 발생한 파일로의 접근을 처리한다(832).
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
110; 게스트 운영체제 시스템
112; 가상화 드라이버
114; 파일 시스템
120; 호스트 운영체제 시스템
122; 호스트 운영체제 파일 보호부
124; 분석부
126; 보호정책 관리부
128; 해쉬값 분석부
130; 로컬 단말기
112; 가상화 드라이버
114; 파일 시스템
120; 호스트 운영체제 시스템
122; 호스트 운영체제 파일 보호부
124; 분석부
126; 보호정책 관리부
128; 해쉬값 분석부
130; 로컬 단말기
Claims (20)
- 게스트 운영체제의 실행파일 또는 상기 게스트 운영체제에서 실행되는 실행파일의 실행요청을 감지하는 단계;
상기 실행파일의 실행요청을 감지하면, 상기 실행파일에 대응하는 해쉬값을 해쉬 테이블에서 검색하는 단계;
상기 해쉬 테이블에 상기 실행파일에 대응하는 해쉬값이 존재하면, 상기 실행파일의 해쉬값을 계산하는 단계;
상기 검색된 해쉬값과 상기 계산된 해쉬값을 비교하는 단계; 및
비교결과 상기 검색된 해쉬값과 상기 계산된 해쉬값이 동일하면 상기 실행파일의 실행을 허가하는 단계
를 포함하는 보안 장치에서 보안 서비스를 제공하는 방법.
- 제1항에 있어서,
상기 실행파일의 실행요청을 감지하는 단계 이전에,
상기 실행파일의 설치를 요청받으면, 사전에 허가된 로컬 네트워크를 통한 설치 요청인지 확인하는 단계; 및
확인결과 설치 요청이 사전에 허가된 로컬 네트워크를 통한 설치 요청이면, 기설정된 해쉬 함수를 이용해서 상기 실행파일의 해쉬값을 계산하여 상기 실행파일에 대응하는 해쉬값으로 상기 해쉬 테이블에 저장하는 단계
를 더 포함하는 보안 장치에서 보안 서비스를 제공하는 방법.
- 제2항에 있어서,
상기 실행파일의 갱신을 요청받으면, 사전에 허가된 로컬 네트워크를 통한 갱신 요청인지 확인하는 단계; 및
확인결과 갱신 요청이 사전에 허가된 로컬 네트워크를 통한 갱신 요청이면, 기설정된 해쉬 함수를 이용해서 갱신된 실행파일의 해쉬값을 계산하고, 상기 갱신된 실행파일의 해쉬값을 상기 실행파일에 대응하는 해쉬값으로 상기 해쉬 테이블에 저장하는 단계
를 더 포함하는 보안 장치에서 보안 서비스를 제공하는 방법.
- 제1항에 있어서,
상기 해쉬 테이블에 상기 실행파일에 대응하는 해쉬값이 존재하지 않거나 또는 상기 검색된 해쉬값과 상기 계산된 해쉬값의 비교결과 상기 검색된 해쉬값과 상기 계산된 해쉬값이 동일하지 않으면 상기 실행파일의 실행을 차단하는 단계
를 더 포함하는 보안 장치에서 보안 서비스를 제공하는 방법.
- 제1항에 있어서,
상기 해쉬 테이블은,
사전에 설치된 실행파일에 대응하는 해쉬값을 저장하는
보안 장치에서 보안 서비스를 제공하는 방법.
- 제1항에 있어서,
상기 해쉬 테이블은,
사전에 설치된 실행파일에 대응하는 해쉬값을 저장하고,
실행파일을 식별할 수 있는 식별자 정보 또는 실행파일의 경로 중에서 적어도 하나를 더 포함하는
보안 장치에서 보안 서비스를 제공하는 방법.
- 제1항에 있어서,
상기 게스트 운영체제를 시작하기 전 게스트 운영체제 시스템의 파일 시스템을 파싱하고 상기 게스트 운영체제를 실행하는 가상화 드라이버에 대한 무결성을 검증하는 단계;
검증결과 상기 가상화 드라이버가 무결하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단하는 단계;
상기 게스트 운영체제와 상기 가상화 드라이버를 실행하는 단계;
상기 가상화 드라이버에서 파일로의 접근이 발생하면, 발생한 파일의 접근 정보를 호스트 운영체제 파일 보호부로 송신하여 접근 가능 여부를 문의하는 단계;
상기 호스트 운영체제 파일 보호부에서 보호정책 관리부를 통해서 상기 파일에 대한 접근권한을 판단하는 단계; 및
상기 파일로의 접근에 대한 판단 결과를 상기 가상화 드라이버로 송신하는 단계
를 포함하는 보안 장치에서 보안 서비스를 제공하는 방법.
- 제7항에 있어서,
상기 가상화 드라이버에서 수신한 상기 파일에 대한 판단 결과가 접근 불가(deny)이면 상기 파일로의 접근을 차단하고, 수신한 상기 파일에 대한 판단 결과가 접근 허가(allow)이면, 상기 파일로의 요청된 접근을 수행하는 단계를 더 포함하는
보안 장치에서 보안 서비스를 제공하는 방법.
- 제7항에 있어서,
상기 메모리 영역의 변조를 차단하는 단계는,
상기 호스트 운영체제 파일 보호부에서 상기 가상화 드라이버의 시작 시간과 변조를 차단할 메모리 영역의 주소를 상기 가상화 드라이버로부터 수신하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단하는
보안 장치에서 보안 서비스를 제공하는 방법.
- 제7항에 있어서,
상기 파일에 대한 접근권한을 판단하는 단계는,
상기 보호정책 관리부에 저장된 보호 대상으로 기설정된 파일 목록에서 상기 파일의 접근 정보에 대한 접근권한을 확인하여 판단하고,
상기 파일의 접근 정보는,
상기 파일의 경로, 상기 파일에 접근하고자 하는 프로세스 정보 및 요청된 접근 종류를 포함하고,
상기 파일 목록은,
상기 파일의 경로와 접근 가능 프로세스의 상기 파일에 대한 접근 권한, 또는 상기 파일의 경로와 파일 수정 프로세스의 상기 파일에 대한 접근 권한을 포함하는
보안 장치에서 보안 서비스를 제공하는 방법.
- 제7항에 있어서,
상기 파일에 대한 접근권한을 판단하는 단계는,
상기 보호정책 관리부에 저장된 보호 대상으로 기설정된 파일 목록에서 상기 파일의 접근 정보에 대한 접근권한을 확인하여 판단하고,
상기 파일의 접근 정보는,
상기 파일의 확장자, 상기 파일에 접근하고자 하는 프로세스 정보 및 요청된 접근 종류를 포함하고,
상기 파일 목록은,
각 확장자에 대응하는 접근 가능 프로세스의 정보, 상기 접근 가능 프로세스가 해당 확장자에 대한 접근 권한, 또는 각 확장자에 대응하는 파일 수정 프로세스의 정보, 상기 파일 수정 프로세스가 해당 확장자에 대한 접근 권한을 포함하는
보안 장치에서 보안 서비스를 제공하는 방법.
- 실행파일에 대응하는 해쉬값이 해쉬 테이블에 존재하면, 상기 실행파일의 해쉬값을 계산하고, 상기 해쉬 테이블에서 검색된 해쉬값과 상기 계산된 해쉬값을 비교하여 상기 검색된 해쉬값과 상기 계산된 해쉬값이 동일하면 상기 실행파일의 실행을 허가로 판단하는 해쉬값 관리부; 및
게스트 운영체제의 실행파일 또는 상기 게스트 운영체제에서 실행되는 실행파일의 실행요청을 감지하면, 상기 해쉬값 관리부를 통해서 실행 가능 여부를 확인하고 판단 결과에 따라 상기 실행파일의 실행을 허가하는 호스트 운영체제 파일 보호부
를 포함하는 보안 서비스를 제공하는 보안 장치.
- 제12항에 있어서,
상기 해쉬값 관리부는,
상기 실행파일의 실행요청을 감지하기 이전에, 상기 실행파일의 설치를 요청 받으면, 기설정된 로컬 단말기로부터 사전에 허가된 로컬 네트워크를 통한 설치 요청인지 확인하고, 상기 기설정된 로컬 단말기로부터 상기 허가된 로컬 네트워크를 통한 설치 요청이면 기설정된 해쉬 함수를 이용해서 상기 실행파일의 해쉬값을 계산하여 상기 실행파일에 대응하는 해쉬값으로 상기 해쉬 테이블에 저장하는
보안 서비스를 제공하는 보안 장치.
- 제13항에 있어서,
상기 해쉬값 관리부는,
상기 실행파일의 갱신을 요청 받으면, 기설정된 로컬 단말기로부터 사전에 허가된 로컬 네트워크를 통한 갱신 요청인지 확인하고, 상기 기설정된 로컬 단말기로부터 상기 허가된 로컬 네트워크를 통한 갱신 요청이면 기설정된 해쉬 함수를 이용해서 갱신된 실행파일의 해쉬값을 계산하고, 상기 갱신된 실행파일의 해쉬값을 상기 실행파일에 대응하는 해쉬값으로 상기 해쉬 테이블에 저장하는
보안 서비스를 제공하는 보안 장치.
- 제12항에 있어서,
상기 해쉬값 관리부는,
상기 해쉬 테이블에 상기 실행파일에 대응하는 해쉬값이 존재하지 않거나 또는 상기 검색된 해쉬값과 상기 계산된 해쉬값의 비교결과 상기 검색된 해쉬값과 상기 계산된 해쉬값이 동일하지 않으면 상기 실행파일의 실행을 허가하지 않는 것으로 판단하는
보안 서비스를 제공하는 보안 장치.
- 제12항에 있어서,
상기 게스트 운영체제를 시작하기 전 게스트 운영체제 시스템의 파일 시스템을 파싱하고 상기 게스트 운영체제를 실행하는 가상화 드라이버에 대한 무결성을 검증하는 분석부;
파일의 접근 정보에 따른 파일에 대한 접근권한을 판단하는 보호정책 관리부; 및
파일로의 접근이 발생하면, 발생한 파일의 접근 정보를 상기 호스트 운영체제 파일 보호부로 송신하여 접근 가능 여부를 문의하는 상기 가상화 드라이버를 더 포함하고,
상기 호스트 운영체제 파일 보호부는,
검증결과 상기 가상화 드라이버가 무결하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 변조를 차단하고,
상기 가상화 드라이버로부터 상기 파일의 접근 정보를 수신하면, 상기 보호정책 관리부를 통해 상기 파일의 접근 정보에 따른 상기 파일에 대한 접근권한을 판단한 결과를 상기 가상화 드라이버로 송신하는
보안 서비스를 제공하는 보안 장치.
- 제16항에 있어서,
상기 가상화 드라이버는,
상기 가상화 드라이버에서 수신한 상기 파일에 대한 판단 결과가 접근 불가(deny)이면 상기 파일로의 접근을 차단하고, 수신한 상기 파일에 대한 판단 결과가 접근 허가(allow)이면, 상기 파일로의 요청된 접근을 수행하는
보안 서비스를 제공하는 보안 장치.
- 제16항에 있어서,
상기 호스트 운영체제 파일 보호부는,
상기 가상화 드라이버의 시작 시간과 변조를 차단할 메모리 영역의 주소를 상기 가상화 드라이버로부터 수신하면, 상기 가상화 드라이버가 할당된 메모리 영역, 상기 게스트 운영체제의 마스터 부트 레코드(MBR)에 해당하는 메모리 영역 및 상기 게스트 운영체제의 볼륨 부트 레코드(VBR)에 해당하는 메모리 영역의 접근 권한을 읽기전용(read only)로 설정하여 변조를 차단하는
보안 서비스를 제공하는 보안 장치.
- 제16항에 있어서,
상기 보호정책 관리부는,
상기 보호정책 관리부에 저장된 보호 대상으로 기설정된 파일 목록에서 상기 파일의 접근 정보에 대한 접근권한을 확인하여 판단하고,
상기 파일의 접근 정보는,
상기 파일의 경로, 상기 파일에 접근하고자 하는 프로세스 정보 및 요청된 접근 종류를 포함하고,
상기 파일 목록은,
상기 파일의 경로와 접근 가능 프로세스의 상기 파일에 대한 접근 권한, 또는 상기 파일의 경로와 파일 수정 프로세스의 상기 파일에 대한 접근 권한을 포함하는
보안 서비스를 제공하는 보안 장치.
- 제16항에 있어서,
상기 보호정책 관리부는,
상기 보호정책 관리부에 저장된 보호 대상으로 기설정된 파일 목록에서 상기 파일의 접근 정보에 대한 접근권한을 확인하여 판단하고,
상기 파일의 접근 정보는,
상기 파일의 확장자, 상기 파일에 접근하고자 하는 프로세스 정보 및 요청된 접근 종류를 포함하고,
상기 파일 목록은,
각 확장자에 대응하는 접근 가능 프로세스의 정보, 상기 접근 가능 프로세스가 해당 확장자에 대한 접근 권한, 또는 각 확장자에 대응하는 파일 수정 프로세스의 정보, 상기 파일 수정 프로세스가 해당 확장자에 대한 접근 권한을 포함하는
보안 서비스를 제공하는 보안 장치.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180059809A KR102058493B1 (ko) | 2018-05-25 | 2018-05-25 | 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법 |
US17/058,705 US20210209222A1 (en) | 2018-05-25 | 2019-03-21 | Security device and method for providing security service through control of file input/output and integrity of guest operating system |
PCT/KR2019/003273 WO2019225849A1 (ko) | 2018-05-25 | 2019-03-21 | 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180059809A KR102058493B1 (ko) | 2018-05-25 | 2018-05-25 | 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190134323A KR20190134323A (ko) | 2019-12-04 |
KR102058493B1 true KR102058493B1 (ko) | 2019-12-23 |
Family
ID=68616411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180059809A KR102058493B1 (ko) | 2018-05-25 | 2018-05-25 | 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210209222A1 (ko) |
KR (1) | KR102058493B1 (ko) |
WO (1) | WO2019225849A1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102323732B1 (ko) * | 2020-04-02 | 2021-11-11 | 주식회사 수산아이앤티 | 해쉬 관리를 통해 파일을 보호하는 장치 및 방법 |
CN116601629A (zh) * | 2021-01-25 | 2023-08-15 | 华为技术有限公司 | 一种终端芯片及其度量方法 |
US12086234B2 (en) * | 2021-08-06 | 2024-09-10 | VMware LLC | System and method for checking reputations of executable files using file origin analysis |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101673774B1 (ko) * | 2015-06-01 | 2016-11-08 | 주식회사 수산아이앤티 | 가상화 시스템에서 파일 입출력 제어를 위한 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8819827B1 (en) * | 2010-11-10 | 2014-08-26 | Open Invention Network, Llc | Method and apparatus of performing data executable integrity verification |
US9531547B2 (en) * | 2015-04-06 | 2016-12-27 | Vmware, Inc. | Host-based digital signature verification for guest components |
US10185633B2 (en) * | 2015-12-15 | 2019-01-22 | Intel Corporation | Processor state integrity protection using hash verification |
-
2018
- 2018-05-25 KR KR1020180059809A patent/KR102058493B1/ko active IP Right Grant
-
2019
- 2019-03-21 US US17/058,705 patent/US20210209222A1/en not_active Abandoned
- 2019-03-21 WO PCT/KR2019/003273 patent/WO2019225849A1/ko active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101673774B1 (ko) * | 2015-06-01 | 2016-11-08 | 주식회사 수산아이앤티 | 가상화 시스템에서 파일 입출력 제어를 위한 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20190134323A (ko) | 2019-12-04 |
US20210209222A1 (en) | 2021-07-08 |
WO2019225849A1 (ko) | 2019-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101997061B1 (ko) | 리눅스 기반 안드로이드 컨테이너 플랫폼, 이를 탑재한 장치 및 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법 | |
US9747172B2 (en) | Selective access to executable memory | |
US9229881B2 (en) | Security in virtualized computer programs | |
US20210124824A1 (en) | Securing secret data embedded in code against compromised interrupt and exception handlers | |
KR101955189B1 (ko) | 스왑 아웃된 메모리 페이지의 가상 머신 가상화된 메모리로의 맵핑을 위한 가상 머신에서의 페이지 오류 삽입 | |
US10630484B2 (en) | Securing code loading by a guest in a virtual environment | |
US10296470B2 (en) | Systems and methods for dynamically protecting a stack from below the operating system | |
US9311475B2 (en) | Trusted execution of binaries and modules | |
KR101592782B1 (ko) | 전가상화 시스템에서 자원을 감시하는 장치 및 방법 | |
US9904484B2 (en) | Securing protected information based on software designation | |
KR102058493B1 (ko) | 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법 | |
US10474832B2 (en) | Method for controlling file input-output in virtualization system | |
KR20190021673A (ko) | 랜섬웨어 방지 장치 및 방법 | |
US11500787B2 (en) | Enforcing code integrity using a trusted computing base | |
US9398019B2 (en) | Verifying caller authorization using secret data embedded in code | |
KR102323732B1 (ko) | 해쉬 관리를 통해 파일을 보호하는 장치 및 방법 | |
US20240362049A1 (en) | Using virtual machine privilege levels to control write access to kernel memory in a virtual machine | |
CN117763538A (zh) | 动态链接库的注入方法、装置和计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |