KR101650287B1 - 볼륨 guid 기반 파일 접근 제어 시스템 및 그 방법 - Google Patents

볼륨 guid 기반 파일 접근 제어 시스템 및 그 방법 Download PDF

Info

Publication number
KR101650287B1
KR101650287B1 KR1020160027480A KR20160027480A KR101650287B1 KR 101650287 B1 KR101650287 B1 KR 101650287B1 KR 1020160027480 A KR1020160027480 A KR 1020160027480A KR 20160027480 A KR20160027480 A KR 20160027480A KR 101650287 B1 KR101650287 B1 KR 101650287B1
Authority
KR
South Korea
Prior art keywords
file
volume
path
guid
access control
Prior art date
Application number
KR1020160027480A
Other languages
English (en)
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 KR1020160027480A priority Critical patent/KR101650287B1/ko
Application granted granted Critical
Publication of KR101650287B1 publication Critical patent/KR101650287B1/ko

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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명은 유저 모드에서 동작하며, 접근 제어를 수행하기 위한 프로세스 실행 경로와 파일 경로를 볼륨 GUID(Globally Unique Identifier) 기반으로 변경하여 정책 DB에 저장하는 정책 설정부; 커널 모드에서 동작하며, 유저 모드의 어플리케이션에 의해 수행되는 프로세스의 실행을 탐지하면, 상기 프로세스의 실행 경로를 볼륨 GUID 기반으로 변경하여, 변경된 볼륨 GUID 기반 프로세스 실행 경로와 PID(Process ID)를 프로세스 볼륨 DB에 저장하는 프로세스 볼륨 관리부; 및 파일에 대한 접근 제어 명령 발생 시 해당 명령에 포함되어 있는 볼륨 GUID 기반의 파일 경로와 파일에 대한 접근을 시도한 프로세스의 PID를 획득하고, 해당 PID를 통해서 상기 프로세스 볼륨 DB에 저장된 볼륨 GUID 기반의 프로세스 실행 경로를 획득한 후 볼륨 GUID 기반의 파일 경로와 볼륨 GUID 기반의 프로세스 실행 경로를 가지고 상기 정책 DB의 정책과 비교하여 해당 파일에 대한 접근 허가 여부를 결정하는 접근 제어부를 포함하는 것을 특징으로 하는 볼륨 GUID 기반 파일 접근 제어 시스템에 관한 것이다.
본 발명에 의하면, 지정된 드라이브 문자 외의 드라이브 경로로 접근하거나, 드라이브 문자가 변경되거나, 드라이브 문자가 제거된 경우에도 드라이브 문자 및 그 외 드라이브 경로를 특정 볼륨을 가리키는 유일한 값인 볼륨 GUID로 표현하고 제어함으로써 정책 설정 및 제어 시점에서 동일한 대상임을 정확하게 판단할 수 있다.

Description

볼륨 GUID 기반 파일 접근 제어 시스템 및 그 방법{FILE ACCESS CONTROL SYSTEM BASED ON VOLUME GUID AND METHOD THEREOF}
본 발명은 윈도우 운영체제 내에서의 파일 접근 제어(File Access Control)에 관한 것으로, 파일 경로를 표현하는 방법 중 드라이브 문자가 아닌 볼륨(Volume) GUID(Globally Unique Identifier)를 이용해 접근 제어를 수행하는 볼륨 GUID 기반 파일 접근 제어 시스템 및 그 방법에 관한 것이다.
일반적으로 운영체제(Operating System: OS)는 보안을 위해 파일 접근 제어(File Access Control)를 수행한다. 통상 파일 접근 제어를 위해서는 파일의 식별이 필요하다. 파일 접근 제어를 위한 파일의 식별은 파일의 전체 경로 또는 파일 아이디(File ID)에 의해 이루어진다.
그 중 파일 아이디는 파일 오픈을 통해서 획득할 수 있으나 재진입으로 인한 위험성이 존재하고, 수행절차의 복잡성으로 인해 획득에 많은 시간이 소요된다.
파일 경로를 이용하는 경우 파일 아이디를 통한 접근 제어보다 시스템의 안전성 및 속도 향상에 이점이 존재하며 이는, 등록특허 제10-1221399호(파일 경로 기반 파일 접근 제어 시스템 및 방법)에 기술되어 있다.
윈도우에서 드라이브 문자는 특정 볼륨을 가리키는 A-Z 사이의 문자를 의미한다. 각 볼륨은 하나의 문자만 할당이 가능하지만, 그 외에 볼륨을 가리키는 드라이브 경로를 추가로 할당할 수 있다.
예를 들어, 특정 볼륨이 “C:” 드라이브 문자로 할당되어 있는 상태에서, 추가로 “D:\Cdrive“ 드라이브 경로 설정이 가능하며 이 경우 “C:\example.exe” 와 “D:\Cdrive\example.exe”는 동일한 “example.exe”를 의미한다.
파일 접근 제어 시스템에서 필요한 경로 정보는 크게 두 가지로, 파일 경로와 프로세스 실행 경로이다. 파일 경로는 시스템 저장소(예를 들어, 하드디스크) 내에서 그 파일의 위치를 의미하며, 파일 시스템 (미니)필터 드라이버를 통해 획득할 수 있다. 해당 경로는 항상 원본 파일(“C:\example.exe”)이 획득된다.
반면, 프로세스 실행 경로는 프로그램 파일이 실행된 경로를 의미하여, 프로세스 구조체를 통해 획득할 수 있다. 해당 경로는 프로세스가 실행된 위치에 따라 다르게 얻어지기 때문에 원본 파일 뿐만 아니라, 추가된 드라이브 경로(“D:\Cdrive\example.exe”)가 획득될 수 있다.
등록특허 제10-1221399호에 의하는 경우 드라이브 문자(예를 들어, C:)로 파일 경로를 표현하기 때문에, 다음과 같은 경우 오동작이 발생할 가능성이 있다.
첫째, 지정된 드라이브 문자 외의 드라이브 경로로 접근할 경우이다.
드라이브 문자 기반 파일 접근 제어 시스템에서 프로세스 실행 경로를 원본 파일 대상으로 정책 설정하면, 정책 상의 경로는 “C:\example.exe”지만 실행된 위치가 “D:\Cdrive\example.exe”로 획득되어 제어가 되지 않는 경우가 발생한다.
반대로, 프로세스 실행 경로를 추가된 드라이브 경로 대상으로 정책 설정하면, 정책 상의 경로는 “D:\Cdrive\example.exe”지만 실행된 위치가 “C:\example.exe”로 획득되어 제어가 되지 않는 경우가 발생한다.
또한, 파일 경로를 추가된 드라이브 경로 대상으로 정책 설정하면, 정책 상의 경로는 “D:\Cdrive\example.exe”지만 항상 원본 파일(“C:\example.exe”)로 획득되어 제어가 되지 않는 경우가 발생한다.
둘째, 드라이브 문자가 변경된 경우이다.
윈도우에서 각 볼륨은 하나의 드라이브 문자만 할당이 가능하지만, 그 문자가 고정은 아니며 다른 문자로 변경이 될 수 있다. 즉, 최초 “D:” 드라이브 문자로 할당되어 있는 상태에서 사용되고 있지 않은 “E:” 드라이브 문자로 변경이 가능하다.
만약, “D:\example.exe”를 대상으로 정책을 설정한 후, 드라이브 문자가 “E:”로 변경이 되었다면 정책 상의 경로와 획득된 경로(“E:\example.exe”)가 상이하여 정상적인 제어가 수행되지 않는다.
셋째, 드라이브 문자가 제거된 경우이다.
윈도우에서 각 볼륨은 드라이브 문자가 할당되지 않은 상태로 유지될 수 있다. 즉, 최초 “D:” 드라이브 문자로 할당되어 있는 상태에서 “D:” 드라이브 문자를 제거할 수 있으며, 해당 상태에서 드라이브 문자를 통한 접근은 불가능하지만 볼륨 GUID를 통한 접근은 가능하다.
만약, “D:” 드라이브 문자가 할당되어 있는 상태에서 “D:\example.txt”를 대상으로 정책을 설정한 후 드라이브 문자를 제거하였다면, “D:\example.txt”와 같이 드라이브 문자로 표현된 경로로의 접근은 불가능하다. 하지만, “\\?\{Volume GUID}\example.txt”와 같은 접근은 가능하기 때문에 결과적으로 정책상의 경로와 상이하여 정상적인 제어가 수행되지 않는다.
결국, 동일한 대상을 표현하는 방식이 다양하기 때문에, 선행기술에 의하는 경우 정책 비교 시 동일한 대상임에도 다른 대상으로 잘못 판단할 수 있는 문제를 가지고 있다.
등록특허 제10-1221399호(파일 경로 기반 파일 접근 제어 시스템 및 방법)
본 발명은 상기와 같은 문제점을 개선하기 위하여 발명된 것으로, 접근 제어를 수행하기 위한 프로세스 실행 경로와 파일 경로를 볼륨 GUID 기반으로 변경하여 정책을 설정하고, 파일에 대한 접근 제어 명령 발생 시 해당 명령으로부터 획득한 볼륨 GUID 기반 파일 경로와 프로세스의 실행을 탐지하여 획득한 볼륨 GUID 기반 프로세스 실행 경로를 정책 DB의 정책과 비교함으로써 정책 설정 및 제어 시점에서 동일한 대상임을 정확하게 판단할 수 있는 볼륨 GUID 기반 파일 접근 제어 시스템 및 그 방법을 제공하기 위한 것이다.
상기와 같은 목적을 달성하기 위하여, 본 발명은 유저 모드에서 동작하며, 접근 제어를 수행하기 위한 프로세스 실행 경로와 파일 경로를 볼륨 GUID(Globally Unique Identifier) 기반으로 변경하여 정책 DB에 저장하는 정책 설정부; 커널 모드에서 동작하며, 유저 모드의 어플리케이션에 의해 수행되는 프로세스의 실행을 탐지하면, 상기 프로세스의 실행 경로를 볼륨 GUID 기반으로 변경하여, 변경된 볼륨 GUID 기반 프로세스 실행 경로와 PID(Process ID)를 프로세스 볼륨 DB에 저장하는 프로세스 볼륨 관리부; 및 파일에 대한 접근 제어 명령 발생 시 해당 명령에 포함되어 있는 볼륨 GUID 기반의 파일 경로와 파일에 대한 접근을 시도한 프로세스의 PID를 획득하고, 해당 PID를 통해서 상기 프로세스 볼륨 DB에 저장된 볼륨 GUID 기반의 프로세스 실행 경로를 획득한 후 볼륨 GUID 기반의 파일 경로와 볼륨 GUID 기반의 프로세스 실행 경로를 가지고 상기 정책 DB의 정책과 비교하여 해당 파일에 대한 접근 허가 여부를 결정하는 접근 제어부를 포함한다.
상기 프로세스 볼륨 관리부는 커널 모드로 발생되는 API 또는 시스템 콜 후킹을 통해서 프로세스의 실행 및 종료를 탐지할 수 있다.
상기 프로세스 볼륨 관리부는 프로세스의 실행 시 프로세스 구조체를 통해서 PID(Process ID)와 프로세스 실행 경로를 획득하고, 프로세스 실행 경로를 볼륨 GUID 기반으로 변경하여 프로세스 볼륨 DB에 저장하며, 프로세스의 종료 시 해당 프로세스의 PID와 프로세스 실행 경로를 프로세스 볼륨 DB에서 제거할 수 있다.
파일에 대한 접근 제어 명령 발생 시 접근 제어 명령에 포함된 파일 경로를 볼륨 GUID 기반의 파일 경로로 변경하여 상기 접근 제어부로 출력하며, 파일에 접근한 프로세스 정보를 상기 접근 제어부로 출력하는 파일 입출력 감시부를 더 포함할 수 있다.
상기 접근 제어부는 상기 파일 입출력 감시부로부터 볼륨 GUID 기반의 파일 경로를 획득하는 파일 경로 추출 모듈; 상기 파일 입출력 감시부로부터 전달받은 프로세스 정보에서 PID(Process ID) 정보를 획득하고, 획득한 PID를 이용하여 상기 프로세스 볼륨 DB에서 해당하는 볼륨 GUID 기반 프로세스 실행 경로를 획득하는 프로세스 실행 경로 추출 모듈; 및 상기 파일 경로 추출 모듈에서 전달받은 볼륨 GUID 기반의 파일 경로와 상기 프로세스 실행 경로 추출 모듈에서 전달받은 볼륨 GUID 기반의 프로세스 실행 경로를 상기 정책 DB에 저장된 정보와 비교하여 해당 파일에 대한 접근 허가 여부를 결정하는 접근 제어 모듈을 포함할 수 있다.
한편, 상기와 같은 목적을 달성하기 위하여, 본 발명은 접근 제어를 수행하기 위한 프로세스 실행 경로와 파일 경로를 볼륨 GUID(Globally Unique Identifier) 기반으로 변경하여 정책 DB에 저장하는 정책 설정 단계; 유저 모드의 어플리케이션에 의해 수행되는 프로세스의 실행을 탐지하면, 상기 프로세스의 실행 경로를 볼륨 GUID 기반으로 변경하여, 변경된 볼륨 GUID 기반 프로세스 실행 경로와 PID(Process ID)를 프로세스 볼륨 DB에 저장하는 프로세스 정보 저장 단계; 파일에 대한 접근 제어 명령 발생 시 접근 제어 명령에 포함된 파일 경로를 볼륨 GUID 기반의 파일 경로로 변경하여 출력하고, 파일에 접근한 프로세스 정보를 출력하는 파일 입출력 감시단계; 상기 파일 입출력 감시단계를 통해 제공된 볼륨 GUID 기반의 파일 경로를 획득하는 파일 경로 획득 단계; 상기 파일 입출력 감시단계를 통해 제공된 프로세스의 PID를 획득하는 프로세스 PID 획득 단계; 획득한 PID를 통해서 상기 프로세스 볼륨 DB에 저장된 볼륨 GUID 기반의 프로세스 실행 경로를 획득하는 프로세스 실행 경로 추출 단계; 및 상기 파일 경로 획득 단계에서 획득한 볼륨 GUID 기반의 파일 경로와 상기 프로세스 실행 경로 추출 단계에서 획득한 볼륨 GUID 기반의 프로세스 실행 경로를 가지고 상기 정책 DB의 정책과 비교하여 해당 파일에 대한 접근 허가 여부를 결정하는 접근 제어 단계를 포함한다.
상기 프로세스 정보 저장 단계는 커널 모드로 발생되는 API 또는 시스템 콜 후킹을 통해서 프로세스의 실행 및 종료를 탐지할 수 있다.
상기 프로세스 정보 저장 단계는 프로세스의 실행 시 프로세스 구조체를 통해서 PID(Process ID)와 프로세스 실행 경로를 획득하고, 프로세스 실행 경로를 볼륨 GUID 기반으로 변경하여 프로세스 볼륨 DB에 저장하며, 프로세스의 종료 시 해당 프로세스의 PID와 프로세스 실행 경로를 프로세스 볼륨 DB에서 제거할 수 있다.
상기와 같은 구성의 본 발명에 따르면, 다음과 같은 효과를 도모할 수 있다.
본 발명은 지정된 드라이브 문자 외의 드라이브 경로로 접근하거나, 드라이브 문자가 변경되거나, 드라이브 문자가 제거된 경우에도 드라이브 문자 및 그 외 드라이브 경로를 특정 볼륨을 가리키는 유일한 값인 볼륨 GUID로 표현하고 제어함으로써 정책 설정 및 제어 시점에서 동일한 대상임을 정확하게 판단할 수 있다.
도 1은 본 발명의 일 실시예에 따른 볼륨 GUID 기반 파일 접근 제어 시스템의 구성을 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 볼륨 GUID 기반 파일 접근 제어 방법의 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되는 실시예를 참조하면 명확해질 것이다.
그러나, 본 발명은 이하에서 개시되는 실시예로 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이다.
본 명세서에서 본 실시예는 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
그리고 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
따라서, 몇몇 실시예에서, 잘 알려진 구성 요소, 잘 알려진 동작 및 잘 알려진 기술들은 본 발명이 모호하게 해석되는 것을 피하기 위하여 구체적으로 설명되지 않는다.
또한, 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하고, 본 명세서에서 사용된(언급된) 용어들은 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.
본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함하며, '포함(또는, 구비)한다'로 언급된 구성 요소 및 동작은 하나 이상의 다른 구성요소 및 동작의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다.
또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 정의되어 있지 않은 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부된 도면을 참고로 본 발명의 바람직한 실시예에 대하여 설명한다.
도 1 내지 도 2를 참고하면, 본 발명인 볼륨 GUID 기반 파일 접근 제어 시스템(100)은 정책 설정부(10), 프로세스 볼륨 관리부(20), 접근 제어부(30), 커널 API/시스템 콜 후킹 모듈(40) 및 파일 입출력 감시부(50)를 포함한다. 접근 제어부(30)는 파일 경로 추출 모듈(31), 프로세스 실행 경로 추출 모듈(32) 및 접근 제어 모듈(33)을 더 포함할 수 있다.
정책 설정부(10)는 유저 모드에서 동작하며, 접근 제어를 수행하기 위한 프로세스 실행 경로와 파일 경로를 볼륨 GUID(Globally Unique Identifier) 기반으로 변경하여 정책 DB(11)에 저장한다.
Windows의 경우 시스템에 어떤 장치가 마운트되면 레지스트리에 해당 장치의 GUID 값을 생성하고 후에 이 값을 사용해 장치를 다루게 된다. 마운트 된 장치들의 GUID 값은 "HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices" 키에 저장될 수 있다.
GetVolumeNameForVolumeMountPoint 등을 이용해서 Volume Name이란 것을 구해보면, GUID가 들어가는 볼륨명을 확인할 수 있다.
정책 설정부(10)는 드라이브 문자 혹은 그 외의 드라이브 경로로 입력된 경로를 볼륨 GUID 기반으로 변경하여 정책 DB(11)에 저장한다. 동일한 볼륨을 가리키는 드라이브 문자와 드라이브 경로의 경우 같은 볼륨 GUID로 변경하여 저장한다. 예를 들어, “C:\a.exe”와 “D:\Cdrive\a.exe”가 같은 대상이면 동일한 “\\?\{Volume GUID}\a.exe”로 저장된다.
정책 설정부(10)는 접근 제어의 프로세스 실행 경로가 “C:\a.exe”와 같은 경로로 입력되었다면 “C:“ 드라이브 문자의 볼륨 GUID를 구하여 “\\?\{Volume GUID}\a.exe”와 같은 경로로 변경하여 정책 DB(11)에 저장한다.
또한, 정책 설정부(10)는 접근 제어의 파일 경로가 “D:\Cdrive\b.txt”와 같은 경로로 입력되었다면 “D:\Cdrive” 드라이브 경로의 볼륨 GUID를 구하여 “\\?\{Volume GUID}\b.txt”와 같은 경로로 변경하여 정책 DB(11)에 저장한다.
정책 DB(11)에는 주체와 객체 정보 외에 다음과 같은 추가적인 정보가 포함된다. 예를 들어, 주체의 객체에 대한 접근 권한(read, write 등), 접속 IP 주소, 객체에 대한 접근 허용 시간 및 접근 허용 요일 등을 포함한다.
프로세스 볼륨 관리부(20)는 커널 모드에서 동작하며, 유저 모드의 어플리케이션에 의해 수행되는 프로세스의 실행을 탐지하면, 드라이브 문자 또는 그 외의 드라이브 경로로 입력된 프로세스의 실행 경로를 볼륨 GUID 기반으로 변경하여, 변경된 볼륨 GUID 기반 프로세스 실행 경로와 PID(Process ID)를 프로세스 볼륨 DB(21)에 저장한다. 예를 들어, “C:\a.exe”와 “D:\Cdrive\a.exe”가 같은 대상이면 동일한 “\\?\{Volume GUID}\a.exe”로 저장된다.
프로세스 볼륨 관리부(20)는 커널 모드로 발생되는 API 또는 시스템 콜을 후킹(Hooking)하는 커널 API/시스템 콜 후킹 모듈(40)을 통해서 프로세스의 실행 및 종료를 탐지한다.
프로세스 볼륨 관리부(20)는 프로세스의 실행 시 프로세스 구조체를 통해서 PID(Process ID)와 프로세스 실행 경로를 획득하고, 프로세스 실행 경로를 볼륨 GUID 기반으로 변경하여 프로세스 볼륨 DB(21)에 저장하며, 프로세스의 종료 시 해당 프로세스의 PID와 프로세스 실행 경로를 프로세스 볼륨 DB(21)에서 제거한다.
파일 입출력 감시부(50)는 파일에 대한 접근 제어 명령 발생 시 접근 제어 명령에 포함된 파일 경로를 볼륨 GUID 기반의 파일 경로로 변경하여 접근 제어부(30)로 출력하며, 파일에 접근한 프로세스 정보를 접근 제어부(30)로 출력한다.
구체적으로, 파일 입출력 감시부(50)는 파일 시스템 필터 드라이버 또는 파일 시스템 미니 필터 드라이버를 포함한다. 파일 시스템 필터 드라이버 또는 파일 시스템 미니 필터 드라이버는 파일 I/O(Input/Output)를 지속적으로 후킹하여 필터링 함으로써, 발생된 파일 I/O로부터 파일의 경로, 파일의 접근 속성 및 프로세스 정보(PID 등)를 얻는다. 파일의 경로는 볼륨 GUID 기반의 파일 경로 “\\?\{Volume GUID}\b.txt” 로 변경하여 접근 제어부(30)로 출력한다.
접근 제어부(30)는 파일에 대한 접근 제어 명령 발생 시 해당 명령에 포함되어 있는 볼륨 GUID 기반의 파일 경로와 파일에 대한 접근을 시도한 프로세스의 PID를 획득하고, 해당 PID를 통해서 프로세스 볼륨 DB(21)에 저장된 볼륨 GUID 기반의 프로세스 실행 경로를 획득한 후 볼륨 GUID 기반의 파일 경로와 볼륨 GUID 기반의 프로세스 실행 경로를 가지고 정책 DB(11)의 정책과 비교하여 해당 파일에 대한 접근 허가 여부를 결정한다.
도 1을 참고하면, 접근 제어부(30)는 파일에 접근을 시도한 프로세스의 PID “1234”를 획득하고, PID “1234”를 통해서 프로세스 볼륨 DB(21)에 저장된 볼륨 GUID 기반의 프로세스 실행 경로“\\?\{Volume GUID}\a.exe”를 획득한다.
구체적으로, 접근 제어부(30)는 파일 경로 추출 모듈(31), 프로세스 실행 경로 추출 모듈(32) 및 접근 제어 모듈(33)을 포함한다.
파일 경로 추출 모듈(31)은 파일 입출력 감시부(50)로부터 볼륨 GUID 기반의 파일 경로 “\\?\{Volume GUID}\b.txt” 를 획득한다.
프로세스 실행 경로 추출 모듈(32)은 파일 입출력 감시부(50)로부터 전달받은 프로세스 정보에서 PID(Process ID) 정보 “1234” 를 획득하고, 획득한 PID “1234” 를 이용하여 프로세스 볼륨 DB(21)에서 해당하는 볼륨 GUID 기반 프로세스 실행 경로“\\?\{Volume GUID}\a.exe”를 획득한다.
접근 제어 모듈(33)은 파일 경로 추출 모듈(31)에서 전달받은 볼륨 GUID 기반의 파일 경로 “\\?\{Volume GUID}\b.txt” 와 프로세스 실행 경로 추출 모듈(32)에서 전달받은 볼륨 GUID 기반의 프로세스 실행 경로“\\?\{Volume GUID}\a.exe”를 정책 DB(11)에 저장된 정보와 비교하여 파일 시스템(60)에 대한 접근 허가 여부를 결정한다.
도 1 내지 도 2를 참고하여, 본 발명인 볼륨 GUID 기반 파일 접근 제어 방법을 설명한다.
먼저, 정책 설정부(10)는 접근 제어를 수행하기 위한 프로세스 실행 경로와 파일 경로를 볼륨 GUID(Globally Unique Identifier) 기반으로 변경하여 정책 DB(11)에 저장하는 정책 설정 단계를 수행한다(S21).
프로세스 볼륨 관리부(20)는 유저 모드의 어플리케이션에 의해 수행되는 프로세스의 실행을 탐지하면, 프로세스의 실행 경로를 볼륨 GUID 기반으로 변경하여, 변경된 볼륨 GUID 기반 프로세스 실행 경로와 PID(Process ID)를 프로세스 볼륨 DB(21)에 저장하는 프로세스 정보 저장 단계를 수행한다(S22).
구체적으로, 프로세스 볼륨 관리부(20)는 커널 모드로 발생되는 API 또는 시스템 콜을 후킹하는 커널 API/시스템 콜 후킹 모듈(40)을 통해서 프로세스의 실행 및 종료를 탐지한다.
프로세스 볼륨 관리부(20)는 프로세스의 실행 시 프로세스 구조체를 통해서 PID(Process ID)와 프로세스 실행 경로를 획득하고, 프로세스 실행 경로를 볼륨 GUID 기반으로 변경하여 프로세스 볼륨 DB(21)에 저장하며, 프로세스의 종료 시 해당 프로세스의 PID와 프로세스 실행 경로를 프로세스 볼륨 DB(21)에서 제거한다.
파일 입출력 감시부(50)는 파일에 대한 접근 제어 명령 발생(파일 I/O) 시 접근 제어 명령에 포함된 파일 경로를 볼륨 GUID 기반의 파일 경로로 변경하여 출력하고, 파일에 접근한 프로세스 정보를 출력하는 파일 입출력 감시단계를 수행한다(S23).
구체적으로, 파일 입출력 감시부(50)는 파일 시스템 필터 드라이버 또는 파일 시스템 미니 필터 드라이버를 통해서 파일 I/O(Input/Output)를 지속적으로 후킹하여 필터링 함으로써, 발생된 파일 I/O로부터 파일의 경로, 파일의 접근 속성 및 프로세스 정보(PID 등)를 얻는다.
파일 경로 추출 모듈(31)은 파일 입출력 감시단계를 통해 제공된 볼륨 GUID 기반의 파일 경로를 획득하는 파일 경로 획득 단계를 수행한다(S24).
프로세스 실행 경로 추출 모듈(32)은 파일 입출력 감시단계를 통해 제공된 프로세스의 PID를 획득하는 프로세스 PID 획득 단계를 수행한다(S25).
프로세스 실행 경로 추출 모듈(32)은 획득한 PID를 통해서 프로세스 볼륨 DB(21)에 저장된 볼륨 GUID 기반의 프로세스 실행 경로를 획득하는 프로세스 실행 경로 추출 단계를 수행한다(S26).
마지막으로 접근 제어 모듈(33)은 파일 경로 획득 단계(S24)에서 획득한 볼륨 GUID 기반의 파일 경로와 프로세스 실행 경로 추출 단계(S26)에서 획득한 볼륨 GUID 기반의 프로세스 실행 경로를 가지고 정책 DB(11)의 정책과 비교하여 해당 파일에 대한 접근 허가 여부를 결정하는 접근 제어 단계를 수행한다(S27).
기타 구체적인 설명은 상기에서 자세하게 설명하였으므로 생략한다.
이상과 같이 본 발명은 드라이브 문자 및 그 외 드라이브 경로를 특정 볼륨을 가리키는 유일한 값인 볼륨 GUID로 표현하고 제어함으로써 정책 설정 및 제어 시점에서 동일한 대상임을 정확하게 판단할 수 있다.
그리고, 본 발명의 기본적인 기술적 사상의 범주 내에서 당해 업계 통상의 지식을 가진 자에게 있어서는 다른 많은 변형 및 응용 또한 가능함은 물론이다.
10...정책 설정부
11...정책 DB
20...프로세스 볼륨 관리부
21...프로세스 볼륨 DB
30...접근 제어부
31...파일 경로 추출 모듈
32...프로세스 실행 경로 추출 모듈
33...접근 제어 모듈
40...커널 API/시스템 콜 후킹 모듈
50...파일 입출력 감시부
60...파일 시스템
100... 볼륨 GUID 기반 파일 접근 제어 시스템

Claims (8)

  1. 삭제
  2. 유저 모드에서 동작하며, 접근 제어를 수행하기 위한 프로세스 실행 경로와 파일 경로를 볼륨 GUID(Globally Unique Identifier) 기반으로 변경하여 정책 DB에 저장하는 정책 설정부;
    커널 모드에서 동작하며, 유저 모드의 어플리케이션에 의해 수행되는 프로세스의 실행을 탐지하면, 상기 프로세스의 실행 경로를 볼륨 GUID 기반으로 변경하여, 변경된 볼륨 GUID 기반 프로세스 실행 경로와 PID(Process ID)를 프로세스 볼륨 DB에 저장하는 프로세스 볼륨 관리부; 및
    파일에 대한 접근 제어 명령 발생 시 해당 명령에 포함되어 있는 볼륨 GUID 기반의 파일 경로와 파일에 대한 접근을 시도한 프로세스의 PID를 획득하고, 해당 PID를 통해서 상기 프로세스 볼륨 DB에 저장된 볼륨 GUID 기반의 프로세스 실행 경로를 획득한 후 볼륨 GUID 기반의 파일 경로와 볼륨 GUID 기반의 프로세스 실행 경로를 가지고 상기 정책 DB의 정책과 비교하여 해당 파일에 대한 접근 허가 여부를 결정하는 접근 제어부를 포함하되,
    상기 프로세스 볼륨 관리부는 커널 모드로 발생되는 API 또는 시스템 콜 후킹을 통해서 프로세스의 실행 및 종료를 탐지하는 것을 특징으로 하는 볼륨 GUID 기반 파일 접근 제어 시스템.
  3. 유저 모드에서 동작하며, 접근 제어를 수행하기 위한 프로세스 실행 경로와 파일 경로를 볼륨 GUID(Globally Unique Identifier) 기반으로 변경하여 정책 DB에 저장하는 정책 설정부;
    커널 모드에서 동작하며, 유저 모드의 어플리케이션에 의해 수행되는 프로세스의 실행을 탐지하면, 상기 프로세스의 실행 경로를 볼륨 GUID 기반으로 변경하여, 변경된 볼륨 GUID 기반 프로세스 실행 경로와 PID(Process ID)를 프로세스 볼륨 DB에 저장하는 프로세스 볼륨 관리부; 및
    파일에 대한 접근 제어 명령 발생 시 해당 명령에 포함되어 있는 볼륨 GUID 기반의 파일 경로와 파일에 대한 접근을 시도한 프로세스의 PID를 획득하고, 해당 PID를 통해서 상기 프로세스 볼륨 DB에 저장된 볼륨 GUID 기반의 프로세스 실행 경로를 획득한 후 볼륨 GUID 기반의 파일 경로와 볼륨 GUID 기반의 프로세스 실행 경로를 가지고 상기 정책 DB의 정책과 비교하여 해당 파일에 대한 접근 허가 여부를 결정하는 접근 제어부를 포함하되,
    상기 프로세스 볼륨 관리부는 프로세스의 실행 시 프로세스 구조체를 통해서 PID(Process ID)와 프로세스 실행 경로를 획득하고, 프로세스 실행 경로를 볼륨 GUID 기반으로 변경하여 프로세스 볼륨 DB에 저장하며, 프로세스의 종료 시 해당 프로세스의 PID와 프로세스 실행 경로를 프로세스 볼륨 DB에서 제거하는 것을 특징으로 하는 볼륨 GUID 기반 파일 접근 제어 시스템.
  4. 유저 모드에서 동작하며, 접근 제어를 수행하기 위한 프로세스 실행 경로와 파일 경로를 볼륨 GUID(Globally Unique Identifier) 기반으로 변경하여 정책 DB에 저장하는 정책 설정부;
    커널 모드에서 동작하며, 유저 모드의 어플리케이션에 의해 수행되는 프로세스의 실행을 탐지하면, 상기 프로세스의 실행 경로를 볼륨 GUID 기반으로 변경하여, 변경된 볼륨 GUID 기반 프로세스 실행 경로와 PID(Process ID)를 프로세스 볼륨 DB에 저장하는 프로세스 볼륨 관리부; 및
    파일에 대한 접근 제어 명령 발생 시 해당 명령에 포함되어 있는 볼륨 GUID 기반의 파일 경로와 파일에 대한 접근을 시도한 프로세스의 PID를 획득하고, 해당 PID를 통해서 상기 프로세스 볼륨 DB에 저장된 볼륨 GUID 기반의 프로세스 실행 경로를 획득한 후 볼륨 GUID 기반의 파일 경로와 볼륨 GUID 기반의 프로세스 실행 경로를 가지고 상기 정책 DB의 정책과 비교하여 해당 파일에 대한 접근 허가 여부를 결정하는 접근 제어부를 포함하되,
    파일에 대한 접근 제어 명령 발생 시 접근 제어 명령에 포함된 파일 경로를 볼륨 GUID 기반의 파일 경로로 변경하여 상기 접근 제어부로 출력하며, 파일에 접근한 프로세스 정보를 상기 접근 제어부로 출력하는 파일 입출력 감시부를 더 포함하는 것을 특징으로 하는 볼륨 GUID 기반 파일 접근 제어 시스템.
  5. 청구항 4에 있어서,
    상기 접근 제어부는
    상기 파일 입출력 감시부로부터 볼륨 GUID 기반의 파일 경로를 획득하는 파일 경로 추출 모듈;
    상기 파일 입출력 감시부로부터 전달받은 프로세스 정보에서 PID(Process ID) 정보를 획득하고, 획득한 PID를 이용하여 상기 프로세스 볼륨 DB에서 해당하는 볼륨 GUID 기반 프로세스 실행 경로를 획득하는 프로세스 실행 경로 추출 모듈; 및
    상기 파일 경로 추출 모듈에서 전달받은 볼륨 GUID 기반의 파일 경로와 상기 프로세스 실행 경로 추출 모듈에서 전달받은 볼륨 GUID 기반의 프로세스 실행 경로를 상기 정책 DB에 저장된 정보와 비교하여 해당 파일에 대한 접근 허가 여부를 결정하는 접근 제어 모듈을 포함하는 것을 특징으로 하는 볼륨 GUID 기반 파일 접근 제어 시스템.
  6. 삭제
  7. 접근 제어를 수행하기 위한 프로세스 실행 경로와 파일 경로를 볼륨 GUID(Globally Unique Identifier) 기반으로 변경하여 정책 DB에 저장하는 정책 설정 단계;
    유저 모드의 어플리케이션에 의해 수행되는 프로세스의 실행을 탐지하면, 상기 프로세스의 실행 경로를 볼륨 GUID 기반으로 변경하여, 변경된 볼륨 GUID 기반 프로세스 실행 경로와 PID(Process ID)를 프로세스 볼륨 DB에 저장하는 프로세스 정보 저장 단계;
    파일에 대한 접근 제어 명령 발생 시 접근 제어 명령에 포함된 파일 경로를 볼륨 GUID 기반의 파일 경로로 변경하여 출력하고, 파일에 접근한 프로세스 정보를 출력하는 파일 입출력 감시단계;
    상기 파일 입출력 감시단계를 통해 제공된 볼륨 GUID 기반의 파일 경로를 획득하는 파일 경로 획득 단계;
    상기 파일 입출력 감시단계를 통해 제공된 프로세스의 PID를 획득하는 프로세스 PID 획득 단계;
    획득한 PID를 통해서 상기 프로세스 볼륨 DB에 저장된 볼륨 GUID 기반의 프로세스 실행 경로를 획득하는 프로세스 실행 경로 추출 단계; 및
    상기 파일 경로 획득 단계에서 획득한 볼륨 GUID 기반의 파일 경로와 상기 프로세스 실행 경로 추출 단계에서 획득한 볼륨 GUID 기반의 프로세스 실행 경로를 가지고 상기 정책 DB의 정책과 비교하여 해당 파일에 대한 접근 허가 여부를 결정하는 접근 제어 단계를 포함하되,
    상기 프로세스 정보 저장 단계는 커널 모드로 발생되는 API 또는 시스템 콜 후킹을 통해서 프로세스의 실행 및 종료를 탐지하는 것을 특징으로 하는 볼륨 GUID 기반 파일 접근 제어 방법.
  8. 접근 제어를 수행하기 위한 프로세스 실행 경로와 파일 경로를 볼륨 GUID(Globally Unique Identifier) 기반으로 변경하여 정책 DB에 저장하는 정책 설정 단계;
    유저 모드의 어플리케이션에 의해 수행되는 프로세스의 실행을 탐지하면, 상기 프로세스의 실행 경로를 볼륨 GUID 기반으로 변경하여, 변경된 볼륨 GUID 기반 프로세스 실행 경로와 PID(Process ID)를 프로세스 볼륨 DB에 저장하는 프로세스 정보 저장 단계;
    파일에 대한 접근 제어 명령 발생 시 접근 제어 명령에 포함된 파일 경로를 볼륨 GUID 기반의 파일 경로로 변경하여 출력하고, 파일에 접근한 프로세스 정보를 출력하는 파일 입출력 감시단계;
    상기 파일 입출력 감시단계를 통해 제공된 볼륨 GUID 기반의 파일 경로를 획득하는 파일 경로 획득 단계;
    상기 파일 입출력 감시단계를 통해 제공된 프로세스의 PID를 획득하는 프로세스 PID 획득 단계;
    획득한 PID를 통해서 상기 프로세스 볼륨 DB에 저장된 볼륨 GUID 기반의 프로세스 실행 경로를 획득하는 프로세스 실행 경로 추출 단계; 및
    상기 파일 경로 획득 단계에서 획득한 볼륨 GUID 기반의 파일 경로와 상기 프로세스 실행 경로 추출 단계에서 획득한 볼륨 GUID 기반의 프로세스 실행 경로를 가지고 상기 정책 DB의 정책과 비교하여 해당 파일에 대한 접근 허가 여부를 결정하는 접근 제어 단계를 포함하되,
    상기 프로세스 정보 저장 단계는 프로세스의 실행 시 프로세스 구조체를 통해서 PID(Process ID)와 프로세스 실행 경로를 획득하고, 프로세스 실행 경로를 볼륨 GUID 기반으로 변경하여 프로세스 볼륨 DB에 저장하며, 프로세스의 종료 시 해당 프로세스의 PID와 프로세스 실행 경로를 프로세스 볼륨 DB에서 제거하는 것을 특징으로 하는 볼륨 GUID 기반 파일 접근 제어 방법.
KR1020160027480A 2016-03-08 2016-03-08 볼륨 guid 기반 파일 접근 제어 시스템 및 그 방법 KR101650287B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160027480A KR101650287B1 (ko) 2016-03-08 2016-03-08 볼륨 guid 기반 파일 접근 제어 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160027480A KR101650287B1 (ko) 2016-03-08 2016-03-08 볼륨 guid 기반 파일 접근 제어 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR101650287B1 true KR101650287B1 (ko) 2016-08-23

Family

ID=56875675

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160027480A KR101650287B1 (ko) 2016-03-08 2016-03-08 볼륨 guid 기반 파일 접근 제어 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101650287B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107861833A (zh) * 2017-10-30 2018-03-30 平安科技(深圳)有限公司 识别码的生成方法和装置、计算机设备、可读存储介质
KR101967663B1 (ko) * 2018-07-20 2019-04-11 주식회사 아신아이 인가된 프로세스의 역할 기반 접근 통제 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100706338B1 (ko) * 2006-02-27 2007-04-13 전남대학교산학협력단 전자상거래에 있어서 가상접근통제 보안시스템
KR101221399B1 (ko) 2010-11-25 2013-01-14 주식회사 시큐브 파일 경로 기반 파일 접근 제어 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100706338B1 (ko) * 2006-02-27 2007-04-13 전남대학교산학협력단 전자상거래에 있어서 가상접근통제 보안시스템
KR101221399B1 (ko) 2010-11-25 2013-01-14 주식회사 시큐브 파일 경로 기반 파일 접근 제어 시스템 및 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107861833A (zh) * 2017-10-30 2018-03-30 平安科技(深圳)有限公司 识别码的生成方法和装置、计算机设备、可读存储介质
CN107861833B (zh) * 2017-10-30 2020-01-21 平安科技(深圳)有限公司 识别码的生成方法和装置、计算机设备、可读存储介质
KR101967663B1 (ko) * 2018-07-20 2019-04-11 주식회사 아신아이 인가된 프로세스의 역할 기반 접근 통제 시스템

Similar Documents

Publication Publication Date Title
US10318275B2 (en) Software update apparatus and method in virtualized environment
US8468522B2 (en) Virtual machine system, system for forcing policy, method for forcing policy, and virtual machine control program
US8677484B2 (en) Providing protection against unauthorized network access
US9413781B2 (en) System and method employing structured intelligence to verify and contain threats at endpoints
CN107977573B (zh) 用于安全的盘访问控制的方法和系统
CA3001282C (en) Log information generation apparatus and recording medium, and log information extraction apparatus and recording medium
KR101802800B1 (ko) 다중 운영 시스템 환경을 위한 미디어 보호 정책 시행
KR101799261B1 (ko) 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한
CN107463369B (zh) 一种虚拟桌面的接入设备控制方法与装置
EP2704004B1 (en) Computing device having a dll injection function, and dll injection method
EP3350741B1 (en) Detecting software attacks on processes in computing devices
WO2019100897A1 (zh) 一种应用程序启动方法、启动装置及计算机可读存储介质
US20130024944A1 (en) Confidential information leakage prevention system, confidential information leakage prevention method and confidential information leakage prevention program
US20180026986A1 (en) Data loss prevention system and data loss prevention method
US20170132022A1 (en) File-processing device for executing a pre-processed file, and recording medium for executing a related file-processing method in a computer
CN108763951A (zh) 一种数据的保护方法及装置
CN105335197A (zh) 终端中应用程序的启动控制方法和装置
CN114065196A (zh) Java内存马检测方法、装置、电子设备与存储介质
JP2007148805A (ja) 情報処理装置、情報処理方法およびプログラム
US8561195B1 (en) Detection of malicious code based on its use of a folder shortcut
KR101650287B1 (ko) 볼륨 guid 기반 파일 접근 제어 시스템 및 그 방법
US20180137274A1 (en) Malware analysis method and storage medium
JP2008305377A (ja) ネットワーク記憶装置の侵入保護システムおよび方法
US20160012245A1 (en) Computer security responsive to an operating environment
US9535713B2 (en) Manipulating rules for adding new devices

Legal Events

Date Code Title Description
GRNT Written decision to grant