KR101967663B1 - A system for access control based on the role of process in the white list - Google Patents

A system for access control based on the role of process in the white list Download PDF

Info

Publication number
KR101967663B1
KR101967663B1 KR1020180084927A KR20180084927A KR101967663B1 KR 101967663 B1 KR101967663 B1 KR 101967663B1 KR 1020180084927 A KR1020180084927 A KR 1020180084927A KR 20180084927 A KR20180084927 A KR 20180084927A KR 101967663 B1 KR101967663 B1 KR 101967663B1
Authority
KR
South Korea
Prior art keywords
file
role
policy
list
execution
Prior art date
Application number
KR1020180084927A
Other languages
Korean (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 KR1020180084927A priority Critical patent/KR101967663B1/en
Application granted granted Critical
Publication of KR101967663B1 publication Critical patent/KR101967663B1/en

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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/604Tools and structures for managing or administering access control systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Automation & Control Theory (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Abstract

The present invention relates to an access control system based on ta role of an applied process, capable of safely and doubly protecting a system. According to the present invention, the access control system based on a role of an applied process comprises a process role list, a role policy list, an executing process list, a file execution control unit, an applied file determination unit, a role policy management unit, a role policy storage unit, a process generation management unit, and a role-based policy control unit.

Description

인가된 프로세스의 역할 기반 접근 통제 시스템 { A system for access control based on the role of process in the white list }A Role Based Access Control System for Authorized Processes.

본 발명은 실행되는 파일에 대하여 인가 파일 여부를 판단하여 인가된 파일을 인가 파일 목록에 저장하고, 인가 파일 목록에 저장된 실행 파일의 프로세스에 대하여 역할에 기반한 통제 정책을 수행하는, 인가된 프로세스의 역할 기반 접근 통제 시스템에 관한 것이다.The present invention relates to a method and apparatus for judging whether a file to be executed is an authorization file, storing an authorized file in an authorization file list, performing a role-based control policy on the process of the executable file stored in the authorization file list Based access control system.

특히, 본 발명은 인가 파일 목록에 저장된 실행 파일의 프로세스에 대하여, 역할 접근 통제 정책을 커널 계층의 드라이버에 설정하여, 해당 프로세스의 역할을 기반으로 파일 및 레지스트리에 대한 접근을 통제하는, 인가된 프로세스의 역할 기반 접근 통제 시스템에 관한 것이다.In particular, the present invention relates to a method of controlling access to a file and a registry based on a role of a process by setting a role access control policy in a driver of a kernel layer for an executable file process stored in an authorized file list, Based access control system.

또한, 본 발명은 사용자의 접근에 대하여 기존에 수행했던 정당한 사용자의 접근 패턴을 대비하여 상이한 접근을 수행하면 해당 접근을 통제함으로써, 정상적인 사용자가 아닌 해커 또는 악의적 의도를 가진 사용자들이 사용자 계정을 탈취하여 정상 인증을 거쳐 공격하더라도 이를 방지하는, 인가된 프로세스의 역할 기반 접근 통제 시스템에 관한 것이다.In addition, according to the present invention, when a different approach is performed in contrast to a legitimate user access pattern that has been performed for a user's access, a hacker who is not a normal user or a user with malicious intention seizes a user account Based access control system of an authorized process for preventing an attack even after normal authentication.

일반적으로, 악성코드를 검출하기 위해 파일의 패턴 정보와 비정상적인 파일을 검색하기 위한 탐지 정보의 일치 여부를 판단한다. 즉, 종래 악성코드 검출 기술은 주로 블랙리스트(blacklist)를 활용한 바이러스 탐지 방식을 이용하고 있다.Generally, it is determined whether the pattern information of the file matches the detection information for searching for an abnormal file in order to detect malicious code. That is, the conventional malicious code detection technology mainly uses a virus detection method using a blacklist.

그런데 알려지지 않은 악성코드가 전례 없이 증가함에 따라, 컴퓨터 단말 보호를 위해 알려져 있는 악성코드를 탐지하는 솔루션, 즉, 블랙리스트를 이용하는 솔루션에 더 이상 전적으로 의존할 수 없게 되었다. 또한, 알려지지 않은 악성코드의 위협을 식별하여도, 이 악성코드를 분석한 후 해당 악성코드의 시그너처를 생성하여 감염되어 있는 컴퓨터 단말에 적용하기까지는 항상 24시간에서 72시간 정도의 시간이 필요하다. 따라서 새로운 악성코드가 반영되어 갱신되는 기간 동안 컴퓨터 단말의 데이터와 시스템은 위협에 노출된다. With unprecedented growth of unknown malware, it no longer depends entirely on solutions that detect known malicious code for computer terminal protection, that is, blacklisted solutions. In addition, even though the threat of unknown malicious code is identified, it takes 24 to 72 hours to analyze the malicious code and generate the signature of the malicious code and apply it to the infected computer terminal. Therefore, the data and the system of the computer terminal are exposed to the threat during the update period by reflecting the new malicious code.

따라서 이와 같은 환경에 처해있는 컴퓨터 단말 시스템들을 위한 대안으로써, 화이트 리스트 기반의 솔루션이 개발되어 연구되고 있다[특허문헌 1,2,3]. 즉, 상기 선행기술들은 인가된 파일에 대해서만 실행을 허용해주는 방식을 채용하고 있다. 따라서 해당 기술은 패턴 업데이트가 거의 없고 낮은 사양의 컴퓨터 단말에서도 무리 없이 사용할 수 있다.Therefore, a white list-based solution has been developed and studied as an alternative for computer terminal systems in such environments [Patent Literatures 1, 2, and 3]. That is, the prior art employs a scheme that allows execution only for authorized files. Therefore, the technology has little pattern update and can be used without difficulty even on a low specification computer terminal.

그러나 상기와 같은 종래기술은 인가 파일에 대해서만 실행을 허용하기 때문에, 인가 파일 목록에 알려지지 않은 악성코드가 포함이 되어 있는 경우에는 컴퓨터 단말을 보호할 수 없게 된다.However, since the above-described conventional technology allows only the authorized file to be executed, it is impossible to protect the computer terminal when malicious code unknown to the authorized file list is included.

다시 말하면, 상기 종래 기술은 인가 파일에 대한 실행 허용을 또는 비인가 파일에 대한 실행을 차단하나, 인가 파일이 실행되어 프로세스가 된 이후에는 추가적인 통제를 진행하지 않는다. 따라서 알려지지 않은 악성코드가 인가파일 목록에 추가된 이후에는, 문서 및 중요 시스템 자원에 접근하여 유출 및 변조하는 행위에 대하여 대응할 수 없다는 문제점이 있다.In other words, the above-described prior art prevents execution of an authorization file or execution of an unauthorized file, but does not proceed with additional control after the authorization file is executed and the process becomes a process. Therefore, after an unknown malicious code is added to the authorized file list, there is a problem in that it can not cope with an operation of accessing a document and important system resources to leak and modulate.

한국등록특허 제10-1247943호(2013.04.02.공고)Korean Registered Patent No. 10-1247943 (Announcement of Apr. 02, 2013) 한국등록특허 제10-1838973호(2018.03.19.공고)Korean Patent No. 10-1838973 (Announcement of Mar. 19, 2018) 한국등록특허 제10-1780891호(2017.09.21.공고)Korean Registered Patent No. 10-1780891 (Announcement of September 21, 2017)

본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 실행되는 파일에 대하여 인가 파일 여부를 판단하여 인가된 파일을 인가 파일 목록에 저장하고, 인가 파일 목록에 저장된 실행 파일의 프로세스에 대하여 역할에 기반한 통제 정책을 수행하는, 인가된 프로세스의 역할 기반 접근 통제 시스템을 제공하는 것이다.An object of the present invention is to solve the above-mentioned problems, and it is an object of the present invention to provide a method and apparatus for judging whether or not an authorized file is an executable file, storing an authorized file in an authorized file list, Based access control system that implements a control policy based on a user-defined process.

특히, 본 발명의 목적은 역할이 부여된 인가 프로세스는 역할에 해당하는 역할 접근 통제 정책을 통하여 보호되고 있는 파일의 접근을 허용하고, 역할이 부여되지 않은 인가 프로세스는 파일 접근 통제 정책을 통하여 보호되고 있는 파일에 대한 접근을 차단하는, 인가된 프로세스의 역할 기반 접근 통제 시스템을 제공하는 것이다.Particularly, the object of the present invention is to allow the authorized process to access the protected file through the role access control policy corresponding to the role, and the authorized process without the role to be protected through the file access control policy Based access control system that blocks access to a file that has been granted access.

또한, 본 발명의 목적은 실행파일에 대한 인가파일 여부를 판단할 때 인가파일인 경우 실행을 허용하면서 인가 파일 목록에서 프로세스의 역할이 존재하는지 확인하여 프로세스 역할이 없는 경우 실행만 허용하고, 프로세스 역할이 있는 경우 프로세스 역할과 프로세스 역할 정책을 커널 계층의 드라이버 모듈에 설정하고, 실행 허용 후 커널 드라이버에서 프로세스가 생성되어 프로세스의 목록을 생성할 때, 이미 설정된 역할 목록에서 동일한 경로의 역할 목록이 존재하는 경우 프로세스 목록에 프로세스 역할을 저장하는, 인가된 프로세스의 역할 기반 접근 통제 시스템을 제공하는 것이다.It is another object of the present invention to provide a method and apparatus for allowing an executable file to be executed when determining whether an executable file is an authorization file, , The process role and the process role policy are set in the driver module of the kernel layer, and when the process is generated in the kernel driver after the execution is permitted, a list of the roles having the same path exists in the already set role list Based access control system of an authorized process that stores the process role in the process list.

또한, 본 발명의 목적은 인가된 프로세스가 역할 부여 여부에 따라 역할 기반 접근 통제 정책을 적용할지 파일 기반 접근 통제 정책을 적용할지 여부를 판단하여 보호되고 있는 파일에 대한 접근 여부를 통제하는, 인가된 프로세스의 역할 기반 접근 통제 시스템을 제공하는 것이다.It is another object of the present invention to provide a method and apparatus for controlling access to a protected file by determining whether to apply a role-based access control policy or a file- Based access control system.

특히, 본 발명의 목적은 역할이 부여된 인가 프로세스가 파일 접근 통제 정책이 적용되어 보호되고 있는 파일을 접근할 때, 프로세스 역할 정책을 파일 접근 통제 정책 보다 먼저 적용하여 보호되고 있는 파일에 대한 접근을 허용하고, 역할이 부여되지 않은 인가 프로세스는 역할 정책이 존재하지 않기 때문에 파일 접근 통제 정책이 적용되어 통제 정책에 의하여 보호되고 있는 파일의 접근을 차단하는, 인가된 프로세스의 역할 기반 접근 통제 시스템을 제공하는 것이다.In particular, it is an object of the present invention to provide a method and apparatus for accessing a protected file by applying a role role policy before a file access control policy, The authorization process that does not have a role is granted the role-based access control system of the authorized process which blocks the access of the file protected by the control policy by applying the file access control policy since the role policy does not exist. .

상기 목적을 달성하기 위해 본 발명은 컴퓨터 시스템의 운영체제 상에서 실행되고, 상기 운영체제의 사용자 계층에서 실행되는 프로세스의 파일 접근 요청에 대하여 접근 통제를 수행하는, 인가된 프로세스의 역할 기반 접근 통제 시스템에 관한 것으로서, 프로세스 경로를 기반으로 프로세스의 역할을 목록으로 저장하는 프로세스역할 목록; 프로세스의 역할에 대하여 접근통제 정책(이하 역할정책)을 저장하는 역할정책 목록; 실행되는 프로세스의 경로 및 역할을 저장하는 실행프로세스 목록; 상기 프로세스가 파일 실행을 요청하는 경우, 요청된 파일(이하 요청파일)의 실행을 보류하고, 상기 요청파일이 인가 파일인지 여부의 결과에 따라 상기 요청파일의 실행을 허용하거나 차단하는 파일실행 통제부; 상기 요청파일이 인가파일인지 여부를 판단하여, 판단결과를 상기 파일실행 통제부에 반환하는 인가파일 판단부; 상기 요청파일이 인가파일인 경우, 상기 요청파일의 프로세스 역할 및, 해당역할에 역할정책을 상기 프로세스역할 목록 및, 상기 역할정책 목록에 반영하도록 요청하는 역할정책 관리부; 상기 역할정책 관리부의 요청에 따라 상기 프로세스역할 목록 및, 상기 역할정책 목록을 갱신하는 역할정책 저장부; 프로세스를 생성할 때, 상기 프로세스역할 목록을 조회하여, 상기 프로세스의 경로 및 역할을 상기 실행프로세스 목록에 추가하여 저장하는 프로세스생성 관리부; 및, 상기 프로세스가 파일 실행이 아닌 파일접근(이하 실행외 파일접근)을 요청하는 경우, 상기 프로세스의 역할을 기반으로 접근 통제를 수행하는 역할기반 정책통제부를 포함하는 것을 특징으로 한다.In order to achieve the above object, the present invention relates to a role-based access control system of an authorized process, which is executed on an operating system of a computer system and performs access control on a file access request of a process executed in a user layer of the operating system A list of process roles that list the roles of the process based on the process path; A list of role policies that store access control policies (hereafter, role policies) for the roles of the processes; A list of execution processes that store the path and role of the running process; A file execution control unit that suspends execution of a requested file (hereinafter referred to as a request file) when the process requests execution of the file, and permits or blocks execution of the request file according to a result of whether the request file is an authorization file ; An authorization file determination unit for determining whether the request file is an authorization file and returning a determination result to the file execution control unit; A role policy manager for requesting the process role of the request file and the role policy to be reflected in the process role list and the role policy list when the request file is an authorization file; A role policy storage unit for updating the process role list and the role policy list according to a request of the role policy management unit; A process generation management unit for inquiring the process role list when the process is created, adding the path and the role of the process to the execution process list, and storing the process; And a role-based policy control unit for performing access control based on the role of the process when the process requests file access (hereinafter referred to as non-execution file access) rather than file execution.

또, 본 발명은 인가된 프로세스의 역할 기반 접근 통제 시스템에 있어서, 상기 파일실행 통제부, 상기 역할정책 저장부, 상기 프로세스생성 관리부, 및, 상기 역할기반 정책통제부는 상기 운영체제의 커널 계층에 구성되고, 상기 인가파일 판단부 및, 역할정책 관리부는 상기 운영체제의 사용자 계층에 구성되는 것을 특징으로 한다.In the role-based access control system of an authorized process, the file execution control unit, the role policy storage unit, the process generation management unit, and the role-based policy control unit are configured in the kernel layer of the operating system The authorization file determination unit, and the role policy management unit are configured in the user layer of the operating system.

또, 본 발명은 인가된 프로세스의 역할 기반 접근 통제 시스템에 있어서, 상기 시스템은, 상기 프로세스가 프로세스의 역할이 존재하지 않는 경우 파일기반 요청된 파일(이하 요청파일)을 기반으로 접근통제를 수행하는 파일기반 정책통제부를 더 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a role-based access control system for an authorized process, wherein the system performs access control based on a file-based requested file (hereinafter referred to as a request file) And a file-based policy control unit.

또, 본 발명은 인가된 프로세스의 역할 기반 접근 통제 시스템에 있어서, 상기 인가파일 판단부는 상기 요청파일의 실행코드의 해시값을 추출하여 인증정보를 생성하고, 사전에 설정된 인가파일의 인증정보와 대비하여 상기 요청파일이 인가파일인지 여부를 판단하고, 상기 인가파일의 인증정보는 상기 인가파일의 실행코드의 해시값으로 만들어지는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a role-based access control system for an authorized process, wherein the authorization file determination unit extracts a hash value of an executable code of the request file to generate authentication information, And determines whether the request file is an authorization file, and the authentication information of the authorization file is made a hash value of the executable code of the authorization file.

또, 본 발명은 인가된 프로세스의 역할 기반 접근 통제 시스템에 있어서, 상기 프로세스역할 목록은 프로세스의 경로를 기반으로 프로세스 역할을 목록으로 저장하고, 상기 실행프로세스 목록은 프로세스ID를 기반으로 프로세스 역할을 목록으로 저장하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a role-based access control system for an authorized process, wherein the process role list stores a process role list based on a path of the process, .

상술한 바와 같이, 본 발명에 따른 인가된 프로세스의 역할 기반 접근 통제 시스템에 의하면, 알려지지 않은 악성 프로그램이 인가 파일에 추가되어도, 파일 접근 통제 정책에 의하여 보호되고 있는 파일을 접근할 수 있는 역할이 부여되지 않았기 때문에, 파일을 접근하여 유출 또는 변조하는 행위를 차단하여, 이중으로 시스템을 안전하게 보호할 수 있는 효과가 얻어진다. 즉, 알려지지 않은 악성 프로그램이 인가파일 목록 추가와 프로세스 역할이 동시에 부여되지 않는 한, 파일 실행 시 인가 파일 여부로 판단하여 실행을 차단하고, 혹시 실행이 되더라도 역할이 부여되지 않았기 때문에 파일 접근 통제 정책에 의하여 보호되고 있는 파일의 유출 및 변조 행위를 차단할 수 있다.As described above, according to the role-based access control system of the authorized process according to the present invention, even if an unknown malicious program is added to the authorization file, the role of accessing the file protected by the file access control policy is given Therefore, it is possible to block the operation of accessing and leaking or modulating the file, thereby providing an effect of safely protecting the system. That is, unless an unknown malicious program adds the authorized file list and the process role is concurrently granted, it is determined that the file is an authorized file and the execution is blocked. If the malicious program does not grant the role even if it is executed, It is possible to block the leakage and tampering of protected files.

또한, 본 발명에 따른 인가된 프로세스의 역할 기반 접근 통제 시스템에 의하면, 파일의 해시값을 기반으로 프로세스 역할을 부여함으로써, 경로 기반으로 프로세스 역할을 부여하는 기존의 기술에 비하여, 변조된 파일에 대한 역할 부여로 인해 프로세스에 역할이 잘못 부여되어, 보호되고 있는 파일의 유출 및 변조가 발생하는 경우를 근본적으로 차단할 수 있는 효과가 얻어진다.In addition, according to the role-based access control system of the authorized process according to the present invention, compared to the existing technique of granting the process role based on the path by granting the process role based on the hash value of the file, It is possible to fundamentally block the case where the role is given to the process due to the role assignment and the leakage and modulation of the protected file occur.

또한, 본 발명에 따른 인가된 프로세스의 역할 기반 접근 통제 시스템에 의하면, 보호되고 있는 파일의 접근 통제 정책을 설정하고 허용하여야 할 프로세스는 경로를 추가하여 허용하던 이전 방식에 비하여, 해시값이 일치하면 프로세스 역할을 부여하고 역할 기반 정책에 의하여 접근을 허용하기 때문에, 기존에 접근 통제 정책을 설정한 후 접근 통제 정책에 프로세스 경로를 지속적으로 추가 또는 변경함으로써 생기는 관리의 불편함을 줄이는 효과가 얻어진다.In addition, according to the role-based access control system of the authorized process according to the present invention, the processes to be set and allowed in the access control policy of the protected file are compared with the previous method in which the path is added, Since the process role is granted and the access is allowed by the role based policy, it is possible to reduce the inconvenience of management caused by continuously adding or changing the process path to the access control policy after setting the access control policy.

도 1은 본 발명을 실시하기 위한 전체 시스템에 대한 구성도.
도 2는 본 발명의 일실시예에 따른 인가된 프로세스의 역할 기반 접근 통제 시스템에 대한 블록도.
도 3은 본 발명의 일실시예에 따른 파일실행 통제부가 수행하는 방법을 설명하는 흐름도.
도 4는 본 발명의 일실시예에 따른 인가파일 판단부 및 역할정책 관리부가 수행하는 방법을 설명하는 흐름도.
도 5는 본 발명의 일실시예에 따른 역할정책 저장부가 수행하는 방법을 설명하는 흐름도.
도 6은 본 발명의 일실시예에 따른 프로세스생성 관리부가 수행하는 방법을 설명하는 흐름도.
도 7은 본 발명의 일실시예에 따른 역할기반 정책통제부가 수행하는 방법을 설명하는 흐름도.
도 8은 본 발명의 일실시예에 따른 파일기반 정책통제부가 수행하는 방법을 설명하는 흐름도.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram of an entire system for implementing the present invention. FIG.
2 is a block diagram of a role based access control system of an authorized process in accordance with an embodiment of the present invention;
3 is a flowchart illustrating a method of performing a file execution control unit according to an embodiment of the present invention.
4 is a flowchart illustrating a method performed by an authorization file determination unit and a role policy management unit according to an embodiment of the present invention.
FIG. 5 is a flowchart illustrating a method of performing a role policy storage unit according to an embodiment of the present invention. FIG.
FIG. 6 is a flowchart illustrating a method performed by a process generation management unit according to an embodiment of the present invention; FIG.
FIG. 7 is a flowchart illustrating a method performed by a role-based policy control unit according to an exemplary embodiment of the present invention; FIG.
FIG. 8 is a flowchart illustrating a method performed by a file-based policy control unit according to an exemplary embodiment of the present invention; FIG.

이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the drawings.

또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.In the description of the present invention, the same parts are denoted by the same reference numerals, and repetitive description thereof will be omitted.

먼저, 본 발명을 구현하기 위한 전체 시스템의 구성의 예에 대하여 도 1을 참조하여 설명한다.First, an example of the configuration of the entire system for implementing the present invention will be described with reference to FIG.

도 1에서 보는 바와 같이, 본 발명은 통상의 컴퓨터 시스템 내에서 구현된다. 즉, 본 발명의 실시를 위한 전체 시스템은 컴퓨터 시스템 상에서의 하드웨어(60), 운영체제(OS, 20), 상기 운영체제 상에서 수행되는 프로세스(10), 접근통제 모듈(30), 인가파일검사 모듈(40)으로 구성된다. 또한, 화이트리스트를 저장하기 위한 데이터베이스(50)를 추가하여 구성될 수 있다.As shown in Figure 1, the present invention is implemented within a conventional computer system. That is, the overall system for implementing the present invention includes hardware 60, an operating system (OS) 20, a process 10 performed on the operating system, an access control module 30, an authorization file checking module 40 ). Further, it may be configured by adding a database 50 for storing a whitelist.

먼저, 하드웨어(60)는 입출력 장치, 저장장치(하드디스크 등), 네트워크 장치(네트워크 카드 등) 등 시스템의 물리적 자원을 말한다. 운영체제(20)는 컴퓨터 시스템을 운영하는 시스템 프로그램으로서, 통상 커널계층이라고 부르기도 한다. 일반적으로 사용자의 컴퓨터 프로그램들은 사용자 계층에서 프로세스로 실행된다.First, the hardware 60 refers to physical resources of the system such as an input / output device, a storage device (hard disk, etc.), a network device (a network card, etc.) The operating system 20 is a system program for operating a computer system, which is also commonly referred to as a kernel layer. Typically, user computer programs run as a process at the user level.

특히, 하드웨어(60)는 하드디스크, USB와 같은 저장장치 자원을 포함하며, 프로세스(10)가 파일에 접근하여 파일을 변조하는 경우, 해당 프로세스(10)는 커널 계층을 통하여 하드웨어(60)에 접근하여 변조된 내용이 저장된다. 즉, 하드웨어(60)의 저장장치에 파일이 저장되고, 프로세스(10)에 의해 변조된 내용이 파일에 반영되어 저장된다.In particular, the hardware 60 includes storage resources such as a hard disk and a USB, and when the process 10 accesses and modifies a file, the process 10 is transferred to the hardware 60 through the kernel layer Accessed and modulated contents are stored. That is, the file is stored in the storage device of the hardware 60, and the contents modulated by the process 10 are reflected and stored in the file.

또한, 운영체제(20)의 커널계층은 API함수 등 시스템콜을 처리하는 시스템 처리모듈, 하드웨어 장치(60)를 제어하기 위한 드라이버(23) 등으로 구성된다. 호출된 시스템콜(또는 API함수)은 커널계층의 시스템 처리모듈에서 처리되어, 필요한 경우 드라이버에 의해 시스템 자원에 접근한다. 이때 API 함수를 호출하는 것을 시스템콜(system call)이라고 부르기로 한다. 즉, 컴퓨터 시스템의 자원(하드웨어 자원)을 이용하기 위하여, 사용자 계층에서 시스템콜이 호출된다.The kernel layer of the operating system 20 includes a system processing module for processing a system call such as an API function, a driver 23 for controlling the hardware device 60, and the like. The called system call (or API function) is processed by the system processing module of the kernel layer and, if necessary, accessed by the driver. At this time, calling the API function is called a system call. That is, in order to use the resources (hardware resources) of the computer system, a system call is called at the user layer.

구체적으로, 운영체제(20)가 제공하는 파일시스템의 시스템콜(open(), read(), write() 등)에 의해, 파일이 열기(open), 생성, 변경, 쓰기 작업 등이 수행된다. 또한, 운영체제(20)가 제공하는 파일실행 시스템콜(exec(), system() 등)에 의해, 실행파일이 실행된다. 즉, 시스템콜에는 프로세스의 생성 및 종료에 대한 호출 함수도 포함된다.Specifically, a file is opened, created, changed, or written by a system call (open (), read (), write (), etc.) of the file system provided by the operating system 20. The executable file is executed by a file execution system call (exec (), system (), etc.) provided by the operating system 20. That is, the system call includes a call function for creating and terminating a process.

한편, 프로세스가 생성 및 종료되는 경우나, 프로세스가 파일을 실행하거나 접근하려 할 때 자동으로 호출되는 함수가 콜백 함수이다. 그리고 콜백 함수에 의하여 프로세스 생성/종료, 파일의 접근 등이 직접적으로 수행되나, 여기서는 설명의 편의를 위하여 시스템콜에 의해 수행된다고 설명한다.On the other hand, a callback function is a function that is automatically called when a process is created and terminated, or when a process attempts to execute or access a file. It is explained that the callback function is used to create / terminate the process and access the file directly. However, for convenience of explanation, it is explained that it is executed by the system call.

다음으로, 프로세스(10)는 컴퓨터 프로그램이 운영체제 상에서 실행되는 상태를 말하는 것으로서, 프로그램, (프로그램) 코드라 부르기도 한다. 따라서 악성행위를 수행하는 프로세스를 악성 코드, 악성 프로그램, 악성 프로세스 등으로 혼용한다.Next, the process 10 refers to a state in which the computer program is executed on the operating system, and is also referred to as a program (program) code. Therefore, malicious code, malicious programs, and malicious processes are used in combination.

또한, 프로세스(10)는 프로세스(10)는 컴퓨터 시스템의 자원(하드웨어 자원)을 이용하기 위하여, 시스템 동적 라이브러리(Win32.dll 등)의 API(Application programming interface) 함수를 호출한다. 특히, 프로세스(10)는 파일을 생성, 열기(open), 실행 작업 등을 하기 위하여, API함수 등 시스템콜을 호출한다. 즉, 사용자 계층의 프로세스(10)는 API함수를 호출함으로써 운영체제의 커널계층의 자원에 대한 서비스를 이용한다. 한편, 이때, 프로세스(10)는 해당 파일의 경로와 프로세스 정보 등을 인자로 전달한다.Process 10 also invokes an API (Application Programming Interface) function of the system dynamic library (such as Win32.dll) to utilize the resources (hardware resources) of the computer system. In particular, the process 10 invokes a system call, such as an API function, to create, open, or execute a file. That is, the process 10 of the user layer uses a service for resources of the operating system kernel layer by calling an API function. At this time, the process 10 transfers the path of the corresponding file and the process information as factors.

한편, 프로세스(10)는 파일실행 시스템콜이나 프로세스 생성 시스템콜(fork, execve 등)에 의해 생성된다. 즉, 하나의 프로세스가 파일실행 시스템콜에 의하여 파일을 실행시키면, 해당 파일의 실행에 의한 또 다른 프로세스가 생성될 수 있다.On the other hand, the process 10 is generated by a file execution system call or a process generation system call (fork, execve, etc.). That is, when one process executes a file by a file execution system call, another process by execution of the file can be created.

특히, 프로세스가 생성될 때, 사전에 등록된 함수(또는 콜백함수)를 통하여 프로세스 실행 경로(또는 프로세스 경로) 및 프로세스 ID가 인자로 전달된다. 여기서 콜백함수는 프로세스 생성/종료 시스템 콜이 호출되었을 때 자동으로 호출되기 위한 함수로서, 사전에 작성되어 해당 시스템콜에 등록된다.In particular, when a process is created, the process execution path (or process path) and process ID are passed as arguments through a previously registered function (or callback function). Here, the callback function is a function to be called automatically when the process creation / termination system call is called, and is created in advance and registered in the corresponding system call.

즉, 프로세스가 생성 및 종료될 때 콜백함수로 프로세스 실행 경로 및 프로세스 ID가 인자로 넘어온다. 그리고 드라이버에서 관리되고 있는 실행프로세스 목록에 프로세스 ID를 키로 하여 정보 리스트를 생성된다. 또한, 커널 API 함수를 통하여 사용자ID를 조회하고, 프로세스 경로를 통하여 프로세스역할 목록을 조회하여 저장한다. 또한, 새로 실행되는 프로세스들은 실행프로세스 목록에 추가되어 관리된다.That is, when a process is created and terminated, the callback function passes the process execution path and the process ID as arguments. An information list is generated with the process ID as a key in the list of execution processes managed by the driver. Also, the user ID is inquired through the kernel API function, and the process role list is inquired and stored through the process path. Also, newly executed processes are added and managed in the execution process list.

다음으로, 접근통제 모듈(30)은 프로세스(10)의 파일(특히, 실행파일)에 대하여 인가 파일인지 여부를 결정하여 통제하거나, 해당 프로세스의 역할에 기반하여 파일에 대한 접근(열기, 생성 등)을 통제한다. 즉, 접근통제 모듈(30)은 프로세스(10)를 통하여 파일을 실행하거나 파일을 변조하는 경우, 해당 파일에 대한 통제를 수행한다.Next, the access control module 30 determines whether the file (in particular, the executable file) of the process 10 is an authorized file and controls or accesses the file based on the role of the corresponding process ). That is, when the access control module 30 executes the file through the process 10 or modulates the file, the access control module 30 performs control on the file.

이때, 접근통제 모듈(30)은 시스템콜을 후킹하여, 파일의 실행, 생성, 열기 등 자원에 대한 접근을 통제할 수 있다. 즉, 접근통제 모듈(30)은 시스템콜을 후킹하기 위한 모듈(또는 시스템콜 후킹모듈)를 구성하여, 통상의 후킹(hooking) 방법으로 시스템콜 또는 시스템 동적 라이브러리(API 함수)를 후킹한다. 이때 시스템콜은 파일의 실행, 생성, 변경, 열기 등 파일에 대한 접근을 위한 호출 함수 또는, 프로세스의 생성 및 종료에 대한 호출 함수이다.At this time, the access control module 30 can hook up a system call and control access to resources such as execution, creation, and opening of a file. That is, the access control module 30 configures a module (or a system call hooking module) for hooking a system call and hooks a system call or a system dynamic library (API function) by a normal hooking method. At this time, the system call is a call function for accessing a file such as execution, creation, modification, opening of a file, or a call function for creation and termination of a process.

구체적으로, 접근통제 모듈(30)은 실행파일의 실행이 요청되는 경우, 프로세스 정보와 실행파일 경로를 조회한 후, 파일의 실행을 보류한다. 실행을 보류시킨 후 조회된 프로세스 정보와 실행파일 경로를 인가파일검사 모듈(40)에 넘겨 인가 파일 여부를 확인하게 한다. 그리고 접근통제 모듈(30)은 실행파일이 인가된 것인지 여부(또는 인가파일 여부)의 판단결과를 인가파일검사 모듈(40)으로부터 전달받는다. 그리고 해당 파일의 인가 여부에 따라 파일의 실행 또는 차단을 수행한다.Specifically, when the execution of the executable file is requested, the access control module 30 queries the process information and executable file path, and then suspends execution of the file. After the execution is suspended, the inquiry process information and the execution file path are passed to the authorization file checking module 40 to confirm whether the file is an authorization file. Then, the access control module 30 receives the determination result of whether the executable file is authorized (or whether it is an authorized file) from the authorization file checking module 40. And executes or blocks the file according to whether or not the file is authorized.

또한, 접근통제 모듈(30)은 해당 파일이 인가 파일인 경우, 프로세스 역할과 역할 기반 파일 접근 통제 정책을 조회한다. 그래서, 동일한 경로의 프로세스 역할이 존재하면, 프로세스 역할 정보와 역할 접근 통제 정책을 설정한다. 즉, 인가 파일 여부와 함께 프로세스 역할과 역할 기반 정책을 설정한다.If the file is an authorization file, the access control module 30 inquires the process role and the role-based file access control policy. Thus, if there is a process role in the same path, it sets up process role information and role access control policy. In other words, you set the role and role-based policy together with the authorization file.

특히, 인가파일검사 모듈(40)을 통해 인가 파일 여부와 프로세스 역할 및 역할 접근 통제 정책이 조회되면, 접근통제 모듈(30)은 인가 파일인 경우 실행을 허용한다. 또한, 프로세스 역할 및 역할 정책은 동일한 프로세스 역할과 역할 정책이 설정되어 있는지 조회한다. 그리고 동일한 프로세스 역할과 역할 정책이 존재하지 않는 경우, 접근통제 모듈(30)에 저장한다. 또한, 비인가 파일인 경우 실행을 차단한다.In particular, if the authorization file is checked through the authorization file checking module 40 and the process role and the role access control policy are inquired, the access control module 30 permits the authorization file to be executed. In addition, process roles and role policies query whether the same process roles and role policies are set. If the same process role and role policy do not exist, it is stored in the access control module 30. If the file is unauthorized, execution is blocked.

다음으로, 인가파일검사 모듈(40)은 요청된 파일에 대하여 인가된 파일인지 여부를 판단한다.Next, the authorization file checking module 40 determines whether the requested file is an authorized file.

즉, 인가파일검사 모듈(40)은 요청된 경로의 파일을 열어, 파일 헤더 정보, 실행 영역 데이터 위치 정보, 실행 영역의 데이터를 정해진 규칙에 따라 검사한다. 특히, 인가파일검사 모듈(40)은 해당 영역의 데이터를 기반으로 해시값을 생성하고, 생성된 해시값과 데이터베이스를 통하여 생성된 인가 파일 목록의 해시값을 비교하여 동일한 해시값이 존재하는지 확인한다. 동일한 해시값이 있으면 인가 파일로 판단하고, 동일한 해시값이 없으면 비인가 파일로 판단한다. 이러한 검사를 통해, 해당 프로세스(10)가 최초에 등록된 정상적인 파일인지 아니면 다른 원인에 의하여 변조된 파일인지를 판단한다. 이때, 인가파일 여부를 판단하기 위한 판단 조건은 사전에 구비된다. 판단조건은 악성 프로세스로 판단된 파일을 제외하고 PC 시스템에 존재하는 실행 파일을 검색하여 인가 파일 리스트를 생성한다.That is, the authorization file checking module 40 opens the file of the requested route, and checks the file header information, the execution area data location information, and the execution area data according to a predetermined rule. In particular, the authorization file checking module 40 generates a hash value based on the data of the corresponding area, compares the generated hash value with the hash value of the authorization file list generated through the database, and checks whether the same hash value exists . If the same hash value exists, it is determined that the file is an authorization file. If there is no identical hash value, it is determined that the file is an unauthorized file. Through this check, it is determined whether the process 10 is a normal file registered at the beginning or a file modulated by another cause. At this time, a judgment condition for judging whether or not the file is an authorization file is provided in advance. The judgment condition is to search for an executable file existing in the PC system except for the file judged to be a malicious process, and generate an authorized file list.

다음으로, 데이터베이스(50)는 인가파일 정보와, 인가파일의 프로세스 역할 정보를 저장하는 인가파일DB(51), 및, 역할 접근 통제 정책을 저장하는 역할정책DB(52)로 이루어진다. 그러나 데이터베이스(50)의 구성은 바람직한 일실시예일 뿐이며, 구체적인 장치를 개발하는데 있어서, 접근 및 검색의 용이성 및 효율성 등을 감안하여 데이터베이스 구축이론에 의하여 다른 구조로 구성될 수 있다.Next, the database 50 is composed of an authorization file DB 51 for storing authorization file information, process role information of the authorization file, and a role policy DB 52 for storing a role access control policy. However, the configuration of the database 50 is only a preferred embodiment, and other structures may be constructed in accordance with the database construction theory in consideration of the ease and efficiency of access and retrieval in developing a specific device.

다음으로, 본 발명의 일실시예에 따른 인가된 프로세스의 역할 기반 접근 통제 시스템의 구성을 도 2를 참조하여 보다 구체적으로 설명한다.Next, the configuration of a role-based access control system of an authorized process according to an embodiment of the present invention will be described in more detail with reference to FIG.

도 2에서 보는 바와 같이, 본 발명에 따른 역할 기반 접근 통제 시스템은 커널계층에 구성된 접근통제 모듈(30), 및, 사용자 계층에 구성된 인가파일검사 모듈(40)로 구성된다.As shown in FIG. 2, the role-based access control system according to the present invention includes an access control module 30 configured at the kernel layer and an authorization file checking module 40 configured at the user layer.

접근통제 모듈(30)은 파일이 실행되는 행위를 통제하는 파일실행 통제부(31), 프로세스 역할 및 역할접근 통제 정책을 저장하는 역할정책 저장부(32), 프로세스가 생성될 때 호출되어 실행프로세스 목록에 생성된 프로세스의 정보를 추가하여 저장하는 프로세스생성 관리부(33), 역할에 기반하여 통제하는 역할기반 정책통제부(34), 및, 파일에 기반하여 통제하는 파일기반 정책통제부(35)로 구성된다. 또한, 프로세스의 역할에 대한 목록을 저장하는 프로세스역할 목록(36), 현재 실행되는 프로세스에 대하여 프로세스 ID 및 프로세스 역할을 목록으로 저장하는 실행프로세스 목록(37), 역할정책을 목록으로 저장하는 역할정책 목록(38), 및, 파일정책을 목록으로 저장하는 파일정책 목록(39)을 더 포함하여 구성된다.The access control module 30 includes a file execution control unit 31 for controlling the execution of a file, a role policy storage unit 32 for storing a process role and a role access control policy, A role-based policy control unit 34 that controls based on the role, and a file-based policy control unit 35 that controls based on the file, . In addition, a list of process roles (36) for storing a list of roles of the processes, a list of execution processes (37) for storing a process ID and a process role for a currently executed process as a list, a role policy A list 38, and a file policy list 39 for storing a file policy as a list.

또한, 인가파일검사 모듈(40)은 인가파일 여부를 판단하여 그 결과를 반환하는 인가파일 판단부(41), 및, 인가파일인 경우 프로세스 역할과 그 역할정책을 접근통제 모듈(30)에 반영하게 하는 역할정책 관리부(42)로 구성된다.In addition, the authorization file checking module 40 judges whether the authorization file is an authorization file and returns the result, and if the authorization file is a authorization file, the process role and its role policy are reflected in the access control module 30 And a role-policy managing unit 42 for managing the role-policy managing unit 42.

먼저, 파일실행 통제부(31)는 프로세스가 파일 실행을 요청하는 경우, 해당 파일(또는 요청된 파일, 요청파일)의 실행을 보류하고, 해당 파일이 인가 파일인지 여부를 판단하여 그 결과에 따라 해당 파일의 실행을 허용하거나 차단한다.First, the file execution control unit 31 suspends the execution of the file (or the requested file and the request file) when the process requests the execution of the file, determines whether or not the file is an authorization file, Allow or block the execution of the file.

즉, 파일실행 통제부(31)는 해당 파일의 실행을 보류하고, 해당 파일의 인가 파일 여부의 판단을 인가파일 판단부(41)에 요청한다. 특히, 파일 경로를 조회하고 프로세스 정보를 조회한 후 실행 행위를 보류시킨다. 그리고 파일실행 통제부(31)는 인가파일 판단부(41)로부터 인가 파일 여부에 대한 응답을 수신하면, 인가 파일 여부의 결과에 따라 보류된 행위(또는 보류된 해당 파일의 실행)에 대한 실행 여부를 결정한다.That is, the file execution control unit 31 suspends the execution of the file and requests the authorization file determination unit 41 to determine whether the file is an authorization file. Specifically, the file path is inquired, the process information is inquired, and the execution action is suspended. When the file execution control unit 31 receives a response to the authorization file determination unit 41 from the authorization file determination unit 41, the file execution control unit 31 determines whether the execution of the held action (or the execution of the held corresponding file) .

구체적인 수행 방법이 도 3에 도시되고 있다.A concrete implementation method is shown in Fig.

도 3에서 보는 바와 같이, 먼저, 프로세스(10)가 파일 작업을 요청하면, 파일실행 통제부(31)는 해당 파일의 경로를 조회하고, 요청한 프로세스의 정보를 조회한다.As shown in FIG. 3, when the process 10 requests the file operation, the file execution control unit 31 inquires the path of the file and inquires the information of the requested process.

여기서, 프로세스 정보는 프로세스 ID, 사용자 ID, 프로세스 경로(프로세스의 실행파일 경로, 프로세스의 실행 경로), 프로세스 역할 목록 등을 포함한다. 이 정보는 역할 통제 정책 및 파일 통제 정책에 활용되고, 또한 프로세스 정보를 참조하여 로그를 생성한다.Here, the process information includes a process ID, a user ID, a process path (an executable file path of a process, an execution path of a process), a process role list, and the like. This information is used in the role control policy and the file control policy, and also the log is generated by referring to the process information.

구체적으로, 파일을 실행하거나 접근하려 할 때, 시스템콜(또는 콜백 함수)을 통해 파일의 정보를 가지고 있는 핸들이 인자로 전달된다. 상기 파일정보 핸들을 이용하여, 운영체제에서 관리되고 있는 파일 정보를 참조하여 파일의 경로를 조회한다.Specifically, when trying to execute or access a file, a handle containing information about the file is passed as an argument via a system call (or callback function). The path of the file is inquired by referring to the file information managed by the operating system by using the file information handle.

또한, 현재 수행 중인 프로세스(또는 현재 프로세스)의 프로세스 ID를 운영체제에 조회한다. 즉, 커널 API함수 등을 통해 현재 프로세스의 ID를 조회할 수 있다. 조회된 프로세스 ID(해당 파일작업을 요청한 프로세스의 프로세스 ID)를 이용하여, 실행프로세스 목록(37)을 참조하여 프로세스 경로를 조회한다.It also queries the operating system for the process ID of the current process (or current process). That is, the ID of the current process can be inquired through a kernel API function or the like. The process path is referred to by referring to the execution process list 37 by using the inquired process ID (the process ID of the process requesting the file operation).

다음으로, 요청된 파일 작업(파일의 접근 행위)을 분석하여, 어떤 행위(작업)를 하고자 하는지를 확인한다. 즉, 파일의 접근 행위가 파일의 생성, 열기, 실행 중 어떤 행위인지를 확인한다.Next, analyze the requested file operation (access behavior of the file) and confirm what action (operation) is desired. That is, it confirms whether the file access operation is any of creation, opening, and execution of a file.

다음으로, 확인 결과, 파일의 실행으로 판단된 경우, 실행 보류를 위하여 파일 행위를 저장하고, 조회된 파일 경로와 프로세스 정보를 인가파일 판단부(41)에 전달한다. 만약, 확인 결과, 파일의 실행이 아닌 경우 역할기반 정책통제부(34)에 전달한다.Next, if it is determined that the file is to be executed as a result of the check, the file action is stored for execution hold and the inquired file path and process information are transmitted to the authorization file determination unit 41. If it is determined that the file is not to be executed, it is transmitted to the role-based policy control unit 34.

다음으로, 파일실행 통제부(31)는 인가파일 판단부(41)로부터 해당 파일의 인가파일 여부의 결과를 반환받는다. 반환되는 결과가 인가된 파일인 경우, 보류되어 저장되어 있는 행위를 실행 허용하여 진행한다. 인가된 파일이 아닌 경우 실행 차단하고 행위를 종료한다.Next, the file execution control unit 31 receives a result of the authorization file determination unit 41 as to whether or not the file is an authorization file. If the returned result is an authorized file, execute the stored action that is pending and proceed. If it is not an authorized file, it blocks execution and terminates the action.

다음으로, 인가파일 판단부(41)는 요청된 파일(또는 실행파일, 요청파일)이 인가파일인지 여부를 판단하여, 판단결과를 파일실행 통제부(31)에 반환한다. 특히, 인가파일 판단부(41)는 사전에 저장된 인가파일의 인증정보를 이용하여 실행파일의 인가파일 여부를 판단한다.Next, the authorization file determination unit 41 determines whether the requested file (or executable file, request file) is an authorization file, and returns the determination result to the file execution control unit 31. [ In particular, the authorization file determination unit 41 determines whether or not the authorization file of the executable file is determined by using the authorization information of the authorization file stored in advance.

또한, 역할정책 관리부(42)는 실행파일이 인가파일인 경우, 해당 실행파일에 대한 프로세스역할 목록(36)과 역할정책 목록(38)을 반영하게 한다. 바람직하게는, 역할정책 관리부(42)는 인가파일 판단부(41)의 호출(요청)에 의해 수행된다.If the executable file is an authorization file, the role policy management unit 42 reflects the process role list 36 and the role policy list 38 for the executable file. Preferably, the role policy management unit 42 is performed by a request (request) from the authorization file determination unit 41.

이때, 인가파일 판단부(41) 또는 역할정책 관리부(42)는 사전에 저장된 인가파일의 인증정보나, 사전에 저장된 프로세스 역할, 및, 역할정책을 이용한다. 즉, 인가파일DB(51)에는 인가파일의 인증정보, 및, 각 인가파일에 대한 프로세스 역할을 사전에 저장해두고, 역할정책DB(52)에는 프로세스 역할에 대한 역할 정책을 사전에 저장해둔다.At this time, the authorization file determination unit 41 or the role policy management unit 42 uses the authorization information of the authorization file stored in advance, the previously stored process role, and the role policy. That is, the authorization information of the authorization file and the process role for each authorization file are stored in advance in the authorization file DB 51, and the role policy for the process role is stored in the role policy DB 52 in advance.

특히, 인가파일DB(51)에는 컴퓨터 단말에서 존재하는 모든 실행 가능한 인가 파일에 대한 인증정보(인가파일 인지 여부를 식별 또는 인증할 수 있는 정보)를 저장하고, 각 인가파일에 대한 프로세스 역할도 함께 저장한다. 바람직하게는, 인가파일의 인증정보는 인가파일의 해시값이다. 더욱 바람직하게는, 인가파일의 인증정보는 인가파일의 실행코드에 대한 해시값이다.In particular, the authorization file DB 51 stores authentication information (information capable of identifying or authenticating whether or not an authorization file exists) for all executable authorization files existing in the computer terminal, . Preferably, the authentication information of the authorization file is a hash value of the authorization file. More preferably, the authentication information of the authorization file is a hash value for the executable code of the authorization file.

또한, 바람직하게는, 인가파일 판단부(41) 또는 역할정책 관리부(42)는 인가 파일에 대한 해시값(인증정보)과 프로세스 역할 정책 등을 인가파일DB(51) 또는 역할정책DB(52)를 통하여 조회하여, 메모리 상에 해시 테이블 형태(또는 해시 테이블 구조)로 저장해둔다. 이를 통해, 판단을 위한 검색 속도를 높일 수 있다.Preferably, the authorization file determination unit 41 or the role policy management unit 42 stores the hash value (authentication information) and the process role policy for the authorization file in the authorization file DB 51 or the role policy DB 52, And stores it in a memory as a hash table form (or a hash table form). Thus, the search speed for judgment can be increased.

한편, 해시 테이블 구조란 메모리 상에 자료를 저장하고 조회하는 자료 구조 중 하나이다, 해시 테이블 구조의 장점은 조회해야 할 정보가 많아도 해시값으로 신속하게 인덱싱을 할 수 있다. 따라서 검색속도를 높여 신속하게 판단할 수 있다.On the other hand, the hash table structure is one of the data structures for storing and retrieving data in the memory. The advantage of the hash table structure is that the hash value can be quickly indexed even if there is a lot of information to be retrieved. Therefore, the search speed can be increased and the judgment can be made quickly.

즉, 파일 경로는 다음과 같이 이용된다. 프로세스에 의해 파일 실행시에, 현재 행위를 보류하고 조회된 파일의 경로 및 프로세스 정보를 전달받는다, 인가파일 판단부(41)에서는 실행이 보류된 경로의 파일을 열어 실행 영역의 데이터를 조회하고, 이 조회된 데이터를 해시값으로 변환하여 동일한 해시값이 존재하는지 여부를 판단한다. 그래서 동일한 해시값이 존재하면 인가 파일이어서 실행을 허용하고, 없는 경우 실행을 차단한다.That is, the file path is used as follows. When the file is executed by the process, the current action is suspended, and the path and the process information of the inquired file are received. In the authorization file determination unit 41, the file of the execution- And converts the inquired data into a hash value to determine whether or not the same hash value exists. Thus, if the same hash value exists, it is an authorization file, allowing execution, and blocking execution if it does not exist.

구체적인 수행 방법이 도 4에 도시되고 있다.A specific implementation method is shown in Fig.

도 4에서 보는 바와 같이, 인가파일 판단부(41)는 파일실행 통제부(31)의 요청에 의하여 수행된다. 즉, 파일실행 통제부(31)에 의해 파일(실행파일)의 실행이 보류된 후 프로세스 정보와 파일의 경로를 전달받는다.As shown in FIG. 4, the authorization file determination unit 41 is performed at the request of the file execution control unit 31. That is, after execution of the file (execution file) is suspended by the file execution control unit 31, the process information and the path of the file are received.

다음으로, 인가파일 판단부(41)는 해당 실행파일(요청파일)의 경로를 참조하여, 실행파일을 오픈(open)하여 실행파일의 파일 내용을 읽어온다. 이것은 해당 실행파일의 인증정보를 추출하여 사전에 저장된 인가파일의 인증정보와 대비하기 위한 것이다. 이때, 인증정보는 실행파일의 파일 내용을 해시한 값이다. 바람직하게는, 실행파일의 실행코드를 해시한 해시값이다.Next, the authorization file determination unit 41 refers to the path of the executable file (request file), opens the executable file, and reads the file content of the executable file. This is for extracting the authentication information of the executable file and comparing it with the authentication information of the authorization file stored in advance. At this time, the authentication information is a value obtained by hashing the file contents of the executable file. It is preferably a hash value obtained by hashing executable code of an executable file.

구체적으로, 실행파일의 헤더 정보를 확인하여 실행 가능한 파일인지 확인하고, 실행 영역 데이터(또는 실행코드)의 시작 번지를 확인한다. 시작 번지로 이동하여 실행 데이터의 크기만큼 데이터를 복사하고, 이 영역의 데이터로 해시값을 추출한다.Concretely, the header information of the executable file is checked to confirm that the executable file is executable, and the start address of the execution area data (or executable code) is confirmed. At the start address, data is copied as much as the size of the execution data, and the hash value is extracted from the data of this area.

실행파일의 실행에 직접적으로 관련이 있는 데이터만을 이용하여 해시값을 추출하기 때문에, 동일한 실행을 하는 파일이면 다른 영역의 데이터가 다르다 하더라도 동일한 파일로 인식할 수 있다. 또한, 인가파일 정보를 저장하기 위한 데이터량이 불필요하게 증가하는 것을 방지할 수 있고, 동일한 행위를 하는 실행 파일을 다른 파일로 인식하는 문제를 보완할 수 있다.The hash value is extracted using only the data directly related to the execution of the executable file. Therefore, even if the data in the different area is different, the same file can be recognized as the same file. In addition, it is possible to prevent an unnecessary increase in the amount of data for storing authorization file information, and it is possible to solve the problem of recognizing an executable file that performs the same action as another file.

다음으로, 인가파일 판단부(41)는 실행 파일에서 생성된 인증정보(해시값)이 해시 테이블(인가파일의 인증정보, 즉, 해시값을 저장해둔 테이블)에 동일하게 존재하는지를 검색한다. 동일한 인증정보(해시값)이 없는 경우 비인가 파일로 판정을 하고, 동일한 해시값이 있는 경우 인가파일로 판정한다.Next, the authorization file determination unit 41 searches whether the authentication information (hash value) generated in the executable file exists in the same hash table (authentication information of the authorization file, that is, the table storing the hash value). If there is no identical authentication information (hash value), it is judged as an unauthorized file. If there is the same hash value, it is judged as an authorized file.

다음으로, 판정 결과를 파일실행 통제부(31)에 전달한다.Next, the determination result is transmitted to the file execution control unit 31. [

또한, 해당 실행파일이 인가 파일인 경우, 역할정책 관리부(42)는 할당하여 할 프로세스 역할이 있는지 조회한다. 이때, 역할정책DB(52)를 참조하여 해당 인가파일의 프로세스 역할을 조회한다.If the executable file is an authorization file, the role policy management unit 42 inquires whether there is a role to be assigned. At this time, referring to the role policy DB 52, the process role of the authorization file is inquired.

다음으로, 프로세스 역할이 있는 경우, 역할정책 관리부(42)는 역할정책 저장부(32)를 통해, 조회된 프로세스의 역할이 프로세스역할 목록(36)에 있는지 조회하고, 목록(36)에 없으면 프로세스 역할 정보를 해당 목록(36)에 저장하도록 한다. 이때, 프로세스역할 목록(36)에서 프로세스 경로를 이용하여 존재하는지 여부를 판단한다.Next, when there is a process role, the role policy management section 42 inquires, via the role policy storage section 32, whether the role of the inquired process is in the process role list 36. If the process role list 36 is not found, So that the role information is stored in the corresponding list 36. At this time, it is determined whether or not the process role list 36 exists using the process path.

또한, 역할정책 관리부(42)는 프로세스 역할에 해당하는 역할 접근 통제 정책을 역할정책DB(52)에서 조회한다. 그리고 역할정책 저장부(32)를 통해, 조회된 역할 접근 통제 정책이 역할정책 목록(38)에 있는지 조회하고, 역할정책 목록(38)에 없으면 해당 목록(38)에 역할 접근 통제 정책을 저장하도록 한다.In addition, the role policy management unit 42 inquires of the role policy DB 52 about the role access control policy corresponding to the process role. The role access control policy is stored in the list 38 if the role access policy is in the role policy list 38 through the role policy storage unit 32. If the role access policy is not in the role policy list 38, do.

여기서, 프로세스 역할이란 해당 프로세스가 수행하는 주요 기능을 정의하여 설정한 것이다. 예를 들어, 프로세스 역할은 문서편집, 메일, 웹브라우저, 레지스트리 편집 등 기능으로 구분된다. 인터넷 익스플로러, 크롬, 모질라 등은 모두 웹브라우저의 기능을 수행함으로써, 이들 실행파일에 의한 프로세스들은 모두 "웹브라우저"의 역할을 갖는다.Here, the process role is defined by defining a main function performed by the corresponding process. For example, the process role is divided into functions such as document editing, mail, web browser, and registry editing. Internet Explorer, Chrome, Mozilla, and others all perform functions of a Web browser, so that all the processes by these executable files have the role of a "Web browser".

또한, 프로세스 역할에 대한 역할 정책은 프로세스의 역할에 따라 통제 정책을 달리 부여하고, 해당 프로세스가 특정 역할을 가지면 특정 역할에 해당하는 통제정책으로 해당 프로세스를 통제하는 정책이다.In addition, a role policy for a process role is a policy that differently assigns a control policy according to the role of a process and controls the process by a control policy corresponding to a specific role when the process has a specific role.

일례로서, 웹브라우저의 역할에 대하여 레지스트리를 편집할 수 없도록 통제정책을 설정할 수 있다. 이 경우, 프로세스가 웹브라우저의 역할인데, 레지스트리를 편집하려고 하면 역할 통제정책에 따라 해당 접근(작업)을 차단한다.As an example, a control policy can be set so that the registry can not be edited for the role of the web browser. In this case, the process is the role of the web browser. If you try to edit the registry, it blocks the access (work) according to the role control policy.

다른 예로서, 문서 편집 역할에 대하여 문서 확장자를 가지는 객체에 대하여 접근 허용하도록 역할정책을 설정할 수 있다. 또한 문서 확장자를 가지는 객체에 대하여 모든 프로세스는 접근 차단하도록 파일 통제정책을 설정할 수 있다. 이 경우, 프로세스가 문서 편집 역할인데, 문서를 편집하려 하면 파일 통제 정책에 우선하는 역할 정책에 의하여 문서 편집이 허용되고, 프로세스가 역할이 없는 경우 파일 통제 정책에 의하여 문서 편집이 차단된다.As another example, a role policy can be set to allow access to an object having a document extension for a document editing role. Also, a file control policy can be set to block access to all processes for objects with document extensions. In this case, the process is a document editing role. If a document is edited, document editing is permitted by the role policy that overrides the file control policy. If the process does not have the role, document editing is blocked by the file control policy.

또 다른 예로서, 문서파일인 경우에도 파일 통제 정책과 다르게 역할 통제 정책이 역할별로 다르게 설정될 수 있다. 예를 들면, 파일 통제 정책은 워드 문서 확장자 doc, docx에 대하여 읽기 권한만 부여하고, 쓰기, 삭제, 파일명 변경을 모든 프로세스에 대하여 차단하는 정책을 설정한다. 이에 반해 역할 통제 정책은 워드 확장자 doc, docx에 대하여 모든 권한을 부여하는 정책을 설정한다. 정책을 적용하는 방식은 프로세스 역할을 조회하고 역할에 해당하는 정책이 있으면 역할 정책을 먼저 적용하고, 없는 경우 파일통제정책을 적용한다.As another example, in the case of a document file, a role control policy may be set differently for each role, as opposed to a file control policy. For example, the file control policy sets a policy to grant only read access to the word document extensions doc, docx, and to block write, delete, and file name changes for all processes. In contrast, the role control policy sets a policy that grants full rights to the word extensions doc and docx. The method of applying the policy is to inquire the role of the process. If there is a policy corresponding to the role, apply the role policy first, and if not, apply the file control policy.

다음으로, 역할정책 저장부(32)는 역할정책 관리부(42)로부터 프로세스 역할 및 역할 접근 통제 정책을 전달받고, 해당 역할 및 통제정책을 프로세스역할 목록(36)이나 역할정책 목록(38)에 반영하여 갱신시킨다.Next, the role policy storage unit 32 receives the process role and role access control policy from the role policy management unit 42 and reflects the corresponding role and control policy in the process role list 36 or the role policy list 38 .

구체적인 방법이 도 5에 도시되고 있다.A specific method is shown in Fig.

도 5에서 보는 바와 같이, 먼저, 역할정책 저장부(32)는 프로세스 역할 목록(36)에 대하여 프로세스 경로를 기반으로 동일한 프로세스 역할 목록이 있는지 조회한다.As shown in FIG. 5, first, the role policy storage unit 32 inquires the process role list 36 about the same process role list based on the process path.

동일한 경로의 프로세스 역할 목록이 없는 경우 프로세스 역할 목록(36)에 전달된 프로세스 역할 정보를 저장한다.If there is no process role list in the same path, the process role information transferred to the process role list 36 is stored.

또한, 역할 통제 정책도 역할 값에 해당하는 역할 통제 정책이 있는지 역할정책 목록(38)에 있는지를 조회한다. 역할 값에 해당하는 역할 통제 정책이 해당 목록(38)에 없는 경우, 전달된 역할 정책을 해당 목록(38)에 추가하여 저장한다.In addition, the role control policy also inquires whether there is a role control policy corresponding to the role value or whether it exists in the role policy list (38). If the role control policy corresponding to the role value is not present in the corresponding list (38), the transferred role policy is added to the list (38) and stored.

일례로서, 프로세스 역할 목록(36)의 구성은 다음과 같이 구성될 수 있다.As an example, the configuration of the process role list 36 may be configured as follows.

즉, 워드 문서 역할은 doc, docx 확장자 파일에 대한 접근을 허용하는 역할 정책이 적용된다. 파워포인트 문서 역할은 ppt, pptx 확장자 파일에 대한 접근을 허용하는 역할 정책이 적용된다. 엑셀 문서 역할은 xls, xlsx 확장자 파일에 대한 접근을 허용하는 역할 정책이 적용된다. 한글 문서 역할은 hwp 확장자 파일에 대한 접근을 허용하는 역할 정책이 적용된다.That is, the role of the word document is a role policy that allows access to doc and docx extension files. The PowerPoint document role is governed by a role policy that allows access to the ppt, pptx extension files. The Excel document role is governed by a role policy that allows access to xls, xlsx extension files. The Hangul document role is governed by a role policy that allows access to the hwp extension file.

다음으로, 프로세스생성 관리부(33)는 프로세스가 생성될 때, 프로세스ID, 프로세스의 경로, 역할 등을 실행프로세스 목록(37)에 추가하여 저장한다. 이때, 프로세스 경로를 기반으로 프로세스역할 목록(36)을 조회하여, 목록(36)에 저장된 프로세스 역할 등을 참조한다.Next, when the process is created, the process creation management section 33 adds the process ID, the path of the process, the role, and the like to the execution process list 37 and stores it. At this time, the process role list 36 is inquired based on the process path, and the process role stored in the list 36 is referenced.

즉, 프로세스생성 관리부(33)는 프로세스 생성의 시스템 콜(또는 콜백함수)에 의해 실행(호출)된다. 즉, 프로세스를 생성할 때 자동으로 호출되는 함수에 의해 실행되며, 이때, 프로세스 ID와 프로세스 경로(프로세스 실행파일의 경로)가 인자(argument)로 전달된다.That is, the process creation management unit 33 is executed (called) by a system call (or a callback function) of process creation. That is, it is executed by a function that is automatically called when a process is created. At this time, the process ID and the process path (the path of the process executable file) are passed as arguments.

그리고 프로세스생성 관리부(33)는 전달받은 프로세스 경로를 기반으로(경로를 키로 하여 검색하여) 프로세스역할 목록(36)에서 해당 프로세스의 프로세스 역할을 조회(검색)한다.Then, the process creation management unit 33 retrieves (searches) the process role of the corresponding process from the process role list 36 based on the received process path (searching with a path as a key).

그리고 프로세스생성 관리부(33)는 해당 프로세스의 프로세스 ID, 프로세스 경로, 조회된 프로세스 역할을 실행프로세스 목록(37)에 반영하여 갱신시킨다.Then, the process creation management unit 33 reflects the process ID, the process path, and the inquired process role of the corresponding process in the execution process list 37 and updates it.

구체적인 방법이 도 6에 도시되고 있다.A specific method is shown in Fig.

도 6에서 보는 바와 같이, 먼저, 프로세스생성 관리부(33)는 인자로 넘어온 프로세스 경로를 기반으로 프로세스역할 목록(36)을 참조하여, 해당 프로세스의 프로세스 역할이 목록에 있는지 조회한다.As shown in FIG. 6, first, the process generation management unit 33 refers to the process role list 36 based on the process path passed as an argument, and inquires whether the process role of the process is included in the list.

동일한 경로의 프로세스 역할 목록이 없는 경우, 역할이 없다고 판단하고 프로세스 ID와 프로세스 경로를 실행프로세스 목록(37)에 저장한다. 이때, 해당 프로세스에는 프로세스 역할이 없다는 것이 저장된다.If there is no process role list in the same path, it is determined that there is no role, and the process ID and the process path are stored in the execution process list 37. At this time, it is stored that there is no process role in the process.

또한, 동일한 경로의 프로세스 역할 목록이 있는 경우, 프로세스 역할을 조회하여, 프로세스 ID, 프로세스 경로, 및 조회된 프로세스 역할 목록을 실행프로세스 목록(37)에 추가하여 저장한다.If there is a process role list in the same path, the process role is inquired, and the process ID, the process path, and the list of the inquired process role are added to the execution process list 37 and stored.

프로세스가 생성되어 통제되는 과정을 요약하면 다음과 같다.The process of creating and controlling a process is summarized as follows.

프로세스 A가 실행파일 B를 실행할 것으로 요청하면, 파일실행 통제부(31)에서 실행파일 B가 인가파일인지 여부를 인가파일 판단부(41)에 요청한다. 그리고 인가파일 판단부(41)에서 인가파일로 판단되면, 역할정책 관리부(42)에서 해당 실행파일 B 또는 프로세스 B의 역할 및 역할정책이 있는지를 DB(51,52)를 참조하여 판단한다. 그리고 역할정책 관리부(42)는 역할정책 저장부(32)를 통해 프로세스 B(또는 실행파일 B)의 프로세스 역할 및 역할정책을 프로세스역할 목록(36)과 역할정책 목록(38)에 등록하도록 한다. 그리고 파일실행 통제부(31)는 실행파일 B를 실행하게 하고, 실행파일 B의 프로세스 B가 생성된다. 이때, 프로세스생성 관리부(33)는 프로세스역할 목록(36)을 참조하여, 프로세스 B의 프로세스ID, 프로세스 경로, 및, 프로세스 역할을 실행프로세스 목록(37)에 등록한다.When the process A requests the execution file B to be executed, the file execution control unit 31 requests the application file determination unit 41 whether the execution file B is an authorization file. If the authorization file determination unit 41 determines that the file is an authorization file, the role policy management unit 42 refers to the DBs 51 and 52 to determine whether there is a role or role policy of the executable file B or the process B in the role policy management unit 42. The role policy management unit 42 registers the process role and the role policy of the process B (or the execution file B) in the process role list 36 and the role policy list 38 through the role policy storage unit 32. [ Then, the file execution control unit 31 causes the execution file B to be executed, and the process B of the execution file B is generated. At this time, the process creation management unit 33 refers to the process role list 36, and registers the process ID, process path, and process role of the process B in the execution process list 37.

즉, 실행파일의 실행 요청시에 이를 보류하고 프로세스 정보와 실행 파일 경로를 기반으로 인가 파일 여부 및 프로세스역할 목록(36)을 조회한다. 인가 파일 여부와 더불어 프로세스역할 목록(36)을 설정할 때 프로세스 경로를 기반으로 목록을 설정한다. 그리고, 실행이 허용되어 실행파일의 프로세스가 생성될 때, 프로세스 ID와 프로세스 경로를 함수의 인자로 전달받으면, 프로세스 경로를 기반으로(키로 이용하여) 프로세스역할 목록(36)을 조회하여, 생성된 프로세스의 정보(프로세스ID, 프로세스 경로, 프로세스 역할 등)를 실행프로세스 목록(37)에 반영합니다.That is, when an execution file is requested to be executed, the process is suspended and the authorization file and process role list 36 are inquired based on the process information and the execution file path. When setting up the process role list 36 together with the authorization file, a list is set based on the process path. When the execution of the executable file is permitted and the process ID and the process path are received as parameters of the function when the process is created, the process role list 36 is inquired based on the process path (using the key) Reflects process information (process ID, process path, process role, etc.) into the list of running processes (37).

일례로서, 워드 문서 역할은 doc, docx 확장자 파일에 대한 접근을 허용하는 역할 정책이 적용된다. 또한, 파워포인트 문서 역할은 ppt, pptx 확장자 파일에 대한 접근을 허용하는 역할 정책이 적용된다. 엑셀 문서 역할은 xls, xlsx 확장자 파일에 대한 접근을 허용하는 역할 정책이 적용된다. 한글 문서 역할은 hwp 확장자 파일에 대한 접근을 허용하는 역할 정책이 적용된다.As an example, the role of a word document is to apply a role policy that allows access to doc, docx extension files. In addition, the PowerPoint document role is governed by a role policy that allows access to ppt, pptx extension files. The Excel document role is governed by a role policy that allows access to xls, xlsx extension files. The Hangul document role is governed by a role policy that allows access to the hwp extension file.

이때, 실행파일의 실행 요청 시에 인가 파일로 판단되고 해당 프로세스의 역할이 워드 문서 역할, 파워 포인트 문서 역할, 한글 문서 역할이 설정되어 있다면, 3개의 프로세스 역할이 프로세스역할 목록(36)에 프로세스 경로 기반으로 프로세스가 생성되기 전에 추가되어 갱신된다. 해당 경로의 실행파일이 실행 허용되어 프로세스가 생성되면, 인자로 넘어오는 프로세스 경로와 프로세스 ID 정보를 이용하여 해당하는 실행프로세스 목록(37)에 추가하여 생성한다. 이때, 프로세스역할 목록(37)을 경로 기반으로 조회하여 실행프로세스 목록(37)에 설정한다.At this time, when the execution file is requested to be executed, it is determined as an authorization file. If the role of the corresponding process is a word document role, a PowerPoint document role, and a Hangul document role, three process roles are assigned to the process role list Based process is added and updated before the process is created. When the execution file of the corresponding path is allowed to be executed and the process is created, the process is added to the corresponding execution process list 37 by using the process path and the process ID information which are passed as arguments. At this time, the process role list 37 is inquired based on a path, and is set in the execution process list 37.

따라서 실행프로세스 목록(37)에 프로세스 역할들이 설정되어 있기 때문에, 문서파일의 접근이 요청되면, 요청되는 시스템콜의 현재 프로세스 ID를 커널 API 함수를 통해 조회한 후, 조회된 프로세스 ID를 기반으로 실행프로세스 목록(37)을 참조하여, 요청한 프로세스의 프로세스 역할들을 조회할 수 있고, 이를 통해, 역할 존재 여부를 판단한다.Therefore, since the process roles are set in the execution process list 37, when the access of the document file is requested, the current process ID of the requested system call is inquired through the kernel API function, Referring to the process list 37, the process roles of the requested process can be inquired, thereby determining whether or not the role exists.

다음으로, 역할기반 정책통제부(34)는 프로세스(10)가 실행이 아닌 파일접근 요청(또는 실행외 파일 작업)에 대하여, 요청하는 프로세스의 역할을 기반으로 접근 통제를 수행한다. 즉, 요청된 작업이 파일 실행인 경우 파일실행 통제부(31)에서 통제가 진행되고, 요청된 작업이 파일의 접근인 경우 역할기반 정책통제부(34)에 의해 역할 기반에 의한 접근 통제가 수행된다.Next, the role-based policy control unit 34 performs access control based on the role of the requesting process for the file access request (or non-execution file operation), which is not executed by the process 10. [ That is, if the requested operation is a file execution, control is performed by the file execution control unit 31. If the requested operation is access to a file, role-based access control is performed by the role-based policy control unit 34 do.

구체적인 방법이 도 7에 도시되고 있다.A specific method is shown in Fig.

도 7에서 보는 바와 같이, 먼저, 역할기반 정책통제부(34)는 프로세스 ID를 기반으로 실행프로세스 목록(37)을 참조하여, 프로세스 정보 및 역할을 조회한다. 이때, 프로세스 ID는 커널 시스템 함수(운영체제에서 제공되는 함수)를 이용하여 현재 프로세스(당해 작업을 수행하는 프로세스)의 ID를 조회한다.As shown in FIG. 7, first, the role-based policy control unit 34 refers to the execution process list 37 based on the process ID, and inquires about the process information and the role. At this time, the process ID inquires the ID of the current process (the process performing the work) using the kernel system function (a function provided by the operating system).

실행프로세스 목록(37)을 조회하여, 조회된 프로세스 정보에서 프로세스 역할이 존재하는지 판단한다.It inquires the execution process list 37 and determines whether a process role exists in the inquired process information.

그리고, 프로세스 역할에 존재하는 경우, 역할정책 목록(38)에서 해당 프로세스의 역할 정책을 조회한다. 해당 프로세스의 역할의 개수 만큼의 프로세스 역할 정책을 조회한다. 즉, 프로세스 역할 목록의 수만큼 역할 기반 정책을 조회하여 일치하는 파일 및 레지스트리 경로의 정책이 있는 경우 이를 적용하여, 파일 기반 정책에 의하여 보호되고 있는 파일 및 레지스트리의 접근을 허용한다.If it exists in the process role, the role policy of the corresponding process is inquired from the role policy list 38. Query process role policies as many as the number of roles of the corresponding process. In other words, by querying the role-based policies for as many process role lists as possible, it applies the policies for matching file and registry paths, if any, to allow access to files and registries protected by file-based policies.

조회된 프로세스 역할 정책에 따라 보호되고 있는 파일 또는 레지스트리 접근을 허용한다. 만약, 프로세스의 역할 또는 역할 정책이 존재하지 않는 경우, 파일 기반 정책통제부(34)에서 통제를 진행하게 한다. 즉, 역할기반 정책통제부(34)는 프로세스 역할과 역할 정책이 존재할 때 파일 기반 정책에 우선하여 정책을 적용한다.Allows file or registry access that is protected by the referenced process role policy. If the role or role policy of the process does not exist, the file-based policy control unit 34 causes the control to proceed. That is, the role-based policy control unit 34 applies the policy in preference to the file-based policy when the process role and the role policy exist.

다음으로, 요청된 작업이 파일 실행인 경우 파일실행 통제부(31)에서 통제를 진행하고, 요청된 작업이 파일의 접근인 경우 역할 기반에 의한 접근 통제를 수행한다.Next, when the requested operation is a file execution, the file execution control unit 31 performs control, and performs role-based access control when the requested operation is the file access.

구체적으로, 프로세스 역할 존재 유무와 역할 통제 정책 유무를 판단하여, 프로세스의 역할과, 해당 역할에 대한 역할 정책인 존재하는 경우 역할 정책에 따라 통제를 진행한다. 만약, 프로세스의 역할 또는 역할 정책이 존재하지 않는 경우, 파일 기반 정책통제부(35)에서 통제를 진행하게 한다.Specifically, the presence or absence of a process role and the presence or absence of a role control policy are determined, and the process is controlled according to the role of the process and the role policy, if any, of the role. If the role or role policy of the process does not exist, the file-based policy control unit 35 causes the control to proceed.

즉, 역할기반 정책통제부(34)는 프로세스 역할과 역할 정책이 존재할 때 파일 기반 정책에 우선하여 정책을 적용한다. 프로세스 역할에 해당하는 역할 기반 정책을 적용하여, 파일 기반 정책에 의하여 보호되고 있는 파일 및 레지스트리의 접근을 허용한다.That is, the role-based policy control unit 34 applies the policy in preference to the file-based policy when the process role and the role policy exist. Apply role-based policies corresponding to process roles to allow access to files and registries protected by file-based policies.

다음으로, 파일기반 정책통제부(35)는 프로세스(10)의 역할이 존재하지 않는 인가 프로세스가 파일 기반 정책에 의해서 보호되고 있는 파일을 접근하려고 하는 경우 이에 대한 접근을 차단한다.Next, the file-based policy control unit 35 blocks access to the file, which is protected by the file-based policy, when the authorization process, in which the role of the process 10 does not exist, attempts to access the file.

특히, 파일기반 정책통제부(35)는 파일정책을 리스트로 기록되는 파일정책 목록(39)을 사전에 설정하여 저장하고, 프로세스가 접근하고자 하는 파일이 파일정책 목록(39)에 존재하면 해당 파일에 대한 접근 통제를 수행한다.In particular, the file-based policy control unit 35 sets and stores a file policy list 39 to be recorded as a list of file policies in advance, and if the file to be accessed by the process exists in the file policy list 39, And access control to

파일정책 목록(39)은 파일 식별자와 해당 파일에 대한 접근통제 내용으로 구성된다. 이때, 바람직하게는, 파일 식별자는 파일의 경로로 설정되고, 파일의 접근통제 내용은 사용자(사용자ID), 사용자 그룹(그룹ID), 프로세스 경로 등에 의해 차단 또는 허용하는 통제이다.The file policy list 39 includes a file identifier and access control contents for the file. Preferably, the file identifier is set to the path of the file, and the access control content of the file is a control that is blocked or allowed by a user (user ID), a user group (group ID), a process path,

즉, 파일정책은 파일의 경로, 파일명, 확장자 등을 기반으로 설정된다. 즉, 파일의 경로 전체 또는 일치하는 파일명, 또는 파일의 확장자가 일치하는지 판단하고, 일치하는 정책이 있는 경우 파일의 행위에 대하여 정책이 허용할 것인지 판단한다.That is, the file policy is set based on the path of the file, the file name, the extension, and the like. That is, it is determined whether or not the entire path of the file, the file name of the matching file, or the extension of the file coincides with each other.

파일정책의 일례로서, 실행은 통제, 쓰기는 허용, 삭제는 허용 등이 정책으로 설정되어 있으면, 파일에 대한 접근 요청의 접근 행위를 기반으로 허용 차단 여부를 판단한다.As an example of a file policy, if execution is control, write is permitted, deletion is allowed, and the policy is set as such, it is determined whether or not the file is permitted to be blocked based on the accessing behavior of the access request to the file.

구체적인 방법이 도 8에 도시되고 있다.A specific method is shown in Fig.

도 8에서 보는 바와 같이, 먼저, 파일기반 정책통제부(35)는 역할기반 정책통제부(34)로부터 파일의 경로 등을 전달받는다.As shown in FIG. 8, first, the file-based policy control unit 35 receives a file path from the role-based policy control unit 34.

다음으로, 파일기반 정책통제부(35)는 프로세스가 접근하고 있는 파일의 경로에 파일 정책이 존재하는지를 판단한다.Next, the file-based policy control unit 35 determines whether a file policy exists in the path of a file that the process is accessing.

다음으로, 파일기반 정책통제부(35)는 파일 정책이 일치하면, 일치 결과에 따라 허용 또는 차단을 수행한다. 즉, 사용자 정보, 프로세스 정보를 비교하여 일치하는 정보가 있는 경우 해당 행위의 허용 여부를 판단하여 접근 행위를 차단할지 여부를 판단한다. 정책 상 접근 행위를 차단하도록 설정되어 있기 때문에 접근 행위를 차단한다.Next, the file-based policy control unit 35 performs the permission or blocking according to the matching result when the file policy matches. That is, if user information and process information are compared and there is matching information, it is determined whether or not the corresponding action is permitted, and it is determined whether to block the accessing action. It is blocked by the policy because it is set to block access.

이상, 본 발명자에 의해서 이루어진 발명을 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.Although the present invention has been described in detail with reference to the above embodiments, it is needless to say that the present invention is not limited to the above-described embodiments, and various modifications may be made without departing from the spirit of the present invention.

10 : 프로세스 20 : 운영체제
30 : 접근통제 모듈 31 : 파일실행 통제부
32 : 역할정책 저장부 33 : 프로세스생성 관리부
34 : 역할기반 정책통제부 35 : 파일기반 정책통제부
36 : 프로세스역할 목록 37 : 실행프로세스 목록
38 : 역할정책 목록 39 : 파일정책 목록
40 : 인가파일검사 모듈 41 : 인가파일 판단부
42 : 역할정책 관리부
50 : 데이터베이스 51 : 인가파일DB
52 : 역할정책DB
60 : 하드웨어
10: Process 20: Operating system
30: access control module 31: file execution control section
32: Role policy storage unit 33: Process creation management unit
34: role-based policy control unit 35: file-based policy control unit
36: List of Process Roles List 37: List of Execution Processes
38: Role policy list 39: File policy list
40: authorization file checking module 41: authorization file judgment unit
42: Role policy manager
50: database 51: authorization file DB
52: Role policy DB
60: Hardware

Claims (5)

컴퓨터 시스템의 운영체제 상에서 실행되고, 상기 운영체제의 사용자 계층에서 실행되는 프로세스의 파일 접근 요청에 대하여 접근 통제를 수행하는, 인가된 프로세스의 역할 기반 접근 통제 시스템에 있어서,
프로세스 경로를 기반으로 프로세스의 역할을 목록으로 저장하는 프로세스역할 목록;
프로세스의 역할에 대하여 접근통제 정책(이하 역할정책)을 저장하는 역할정책 목록;
실행되는 프로세스의 ID, 경로 및 역할을 저장하는 실행프로세스 목록;
상기 프로세스가 파일 실행을 요청하는 경우, 요청된 파일(이하 요청파일)의 실행을 보류하고, 상기 요청파일이 인가 파일인지 여부의 결과에 따라 상기 요청파일의 실행을 허용하거나 차단하는 파일실행 통제부;
상기 요청파일이 인가파일인지 여부를 판단하여, 판단결과를 상기 파일실행 통제부에 반환하는 인가파일 판단부;
상기 요청파일이 인가파일인 경우, 상기 요청파일의 프로세스 역할 및, 해당역할에 역할정책을 상기 프로세스역할 목록 및, 상기 역할정책 목록에 반영하도록 요청하는 역할정책 관리부;
상기 역할정책 관리부의 요청에 따라 상기 프로세스역할 목록 및, 상기 역할정책 목록을 갱신하는 역할정책 저장부;
프로세스를 생성할 때, 상기 프로세스역할 목록을 조회하여, 생성되는 프로세스의 ID를 기반으로, 프로세스의 경로 및 역할을 상기 실행프로세스 목록에 추가하여 저장하는 프로세스생성 관리부; 및,
상기 프로세스가 파일 실행이 아닌 파일접근(이하 실행외 파일접근)을 요청하는 경우, 상기 프로세스의 역할을 기반으로 접근 통제를 수행하는 역할기반 정책통제부를 포함하고,
상기 인가파일 판단부는 상기 요청파일의 실행코드의 해시값을 추출하여 인증정보를 생성하고, 사전에 설정된 인가파일의 인증정보와 대비하여 상기 요청파일이 인가파일인지 여부를 판단하고, 상기 인가파일의 인증정보는 상기 인가파일의 실행코드의 해시값으로 만들어지고,
인가파일의 해시값과, 해당 인가파일의 프로세스 역할은 인가파일DB에 저장되고,
프로세스 역할에 대한 역할 정책은 사전에 역할정책DB에 저장되고,
상기 인가파일 판단부는 상기 인가파일DB를 참조하여 상기 요청파일이 인가파일 여부를 확인하고,
상기 역할정책 관리부는 상기 요청파일이 인가파일인 경우, 상기 인가파일DB 및 역할정책DB를 참조하여 해당 인가파일의 프로세스 역할 및 역할 정책을 조회하고, 상기 역할정책 저장부를 통해, 조회된 해당 인가파일의 프로세스 역할을 상기 프로세스 역할 목록에 저장하도록 하되, 프로세스 경로를 요청파일의 경로로 하여 프로세스 경로 기반으로 저장하도록 하고,
상기 역할기반 정책통제부는 프로세스 ID를 기반으로 상기 실행프로세스 목록을 참조하여, 프로세스 정보 및 역할을 조회하는 것을 특징으로 하는 인가된 프로세스의 역할 기반 접근 통제 시스템.
A role-based access control system of an authorized process which executes access control on a file access request of a process executed on an operating system of a computer system and executed in a user layer of the operating system,
A list of process roles that list the roles of the process based on the process path;
A list of role policies that store access control policies (hereafter, role policies) for the roles of the processes;
A list of execution processes that store the IDs, paths, and roles of the running processes;
A file execution control unit that suspends execution of a requested file (hereinafter referred to as a request file) when the process requests execution of the file, and permits or blocks execution of the request file according to a result of whether the request file is an authorization file ;
An authorization file determination unit for determining whether the request file is an authorization file and returning a determination result to the file execution control unit;
A role policy manager for requesting the process role of the request file and the role policy to be reflected in the process role list and the role policy list when the request file is an authorization file;
A role policy storage unit for updating the process role list and the role policy list according to a request of the role policy management unit;
A process generation management unit that inquires the process role list when creating a process and adds a process path and a role to the execution process list based on an ID of the process to be created; And
And a role-based policy control unit for performing access control based on the role of the process when the process requests file access (hereinafter referred to as non-execution file access) rather than file execution,
The authorization file determination unit extracts a hash value of the executable code of the request file to generate authentication information, determines whether the request file is an authorization file in contrast to authentication information of a preset authorization file, The authentication information is made into a hash value of the executable code of the authorization file,
The hash value of the authorization file and the process role of the authorization file are stored in the authorization file DB,
The role policy for the process role is stored in the role policy DB in advance,
The authorization file determination unit determines whether the request file is an authorization file by referring to the authorization file DB,
If the request file is an authorization file, the role policy management unit refers to the authorization file DB and the role policy DB to inquire the process role and the role policy of the authorization file, and, through the role policy storage unit, The process role is stored in the process role list, the process path is stored as a path of the request file based on the process path,
Wherein the role-based policy control unit refers to the execution process list based on the process ID, and inquires the process information and the role.
제1항에 있어서,
상기 파일실행 통제부, 상기 역할정책 저장부, 상기 프로세스생성 관리부, 및, 상기 역할기반 정책통제부는 상기 운영체제의 커널 계층에 구성되고,
상기 인가파일 판단부 및, 역할정책 관리부는 상기 운영체제의 사용자 계층에 구성되는 것을 특징으로 하는 인가된 프로세스의 역할 기반 접근 통제 시스템.
The method according to claim 1,
Wherein the file execution control unit, the role policy storage unit, the process generation management unit, and the role based policy control unit are configured in a kernel layer of the operating system,
Wherein the authorization file determination unit and the role policy management unit are configured in a user layer of the operating system.
제1항에 있어서, 상기 시스템은,
상기 프로세스가 프로세스의 역할이 존재하지 않는 경우 파일기반 요청된 파일(이하 요청파일)을 기반으로 접근통제를 수행하는 파일기반 정책통제부를 더 포함하는 것을 특징으로 하는 인가된 프로세스의 역할 기반 접근 통제 시스템.
The system of claim 1,
And a file-based policy control unit for performing access control based on a file-based requested file (hereinafter referred to as a request file) when the process does not have a role of a process. .
삭제delete 삭제delete
KR1020180084927A 2018-07-20 2018-07-20 A system for access control based on the role of process in the white list KR101967663B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180084927A KR101967663B1 (en) 2018-07-20 2018-07-20 A system for access control based on the role of process in the white list

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180084927A KR101967663B1 (en) 2018-07-20 2018-07-20 A system for access control based on the role of process in the white list

Publications (1)

Publication Number Publication Date
KR101967663B1 true KR101967663B1 (en) 2019-04-11

Family

ID=66167266

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180084927A KR101967663B1 (en) 2018-07-20 2018-07-20 A system for access control based on the role of process in the white list

Country Status (1)

Country Link
KR (1) KR101967663B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102101250B1 (en) * 2019-09-11 2020-04-20 주식회사 아신아이 A document file access control system based on role of process via file signature analysis
WO2021107342A1 (en) * 2019-11-28 2021-06-03 (주) 위세아이텍 Device and method for monitoring state of vibration of rotating equipment using deep learning-based time series analysis
KR20230100483A (en) * 2021-12-28 2023-07-05 울산과학기술원 Security setting device, method of set per-process security policy, and computer program for the method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101247943B1 (en) 2012-09-21 2013-04-02 주식회사 윈스테크넷 Apparatus and method for checking virus using whitelist
KR101565590B1 (en) * 2015-01-07 2015-11-04 (주) 바이러스체이서 A system for expanding the security kernel with system for privilege flow prevention based on white list
KR101650287B1 (en) * 2016-03-08 2016-08-23 주식회사 시큐브 File access control system based on volume guid and method thereof
KR101780891B1 (en) 2016-02-17 2017-09-21 박영춘 System and method of blocking ransomware based on white list and black list
KR101838973B1 (en) 2016-02-17 2018-03-19 동명대학교산학협력단 Agent based security threat monitoring system using white list

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101247943B1 (en) 2012-09-21 2013-04-02 주식회사 윈스테크넷 Apparatus and method for checking virus using whitelist
KR101565590B1 (en) * 2015-01-07 2015-11-04 (주) 바이러스체이서 A system for expanding the security kernel with system for privilege flow prevention based on white list
KR101780891B1 (en) 2016-02-17 2017-09-21 박영춘 System and method of blocking ransomware based on white list and black list
KR101838973B1 (en) 2016-02-17 2018-03-19 동명대학교산학협력단 Agent based security threat monitoring system using white list
KR101650287B1 (en) * 2016-03-08 2016-08-23 주식회사 시큐브 File access control system based on volume guid and method thereof

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102101250B1 (en) * 2019-09-11 2020-04-20 주식회사 아신아이 A document file access control system based on role of process via file signature analysis
WO2021107342A1 (en) * 2019-11-28 2021-06-03 (주) 위세아이텍 Device and method for monitoring state of vibration of rotating equipment using deep learning-based time series analysis
KR20230100483A (en) * 2021-12-28 2023-07-05 울산과학기술원 Security setting device, method of set per-process security policy, and computer program for the method
KR102630816B1 (en) * 2021-12-28 2024-01-29 울산과학기술원 Security setting device, method of set per-process security policy, and computer program for the method

Similar Documents

Publication Publication Date Title
US7698741B2 (en) Controlling the isolation of an object
US9665708B2 (en) Secure system for allowing the execution of authorized computer program code
US9594898B2 (en) Methods and systems for controlling access to resources and privileges per process
US20180189300A1 (en) Method and system for providing restricted access to a storage medium
US8181219B2 (en) Access authorization having embedded policies
US8321932B2 (en) Program-based authorization
US7818781B2 (en) Behavior blocking access control
US8650578B1 (en) System and method for intercepting process creation events
US20030233544A1 (en) Methods and systems for providing a secure application environment using derived user accounts
KR101565590B1 (en) A system for expanding the security kernel with system for privilege flow prevention based on white list
KR20060051383A (en) System and method of aggregating the knowledge base of antivirus software applications
US20070050369A1 (en) Accessing file under confinement
KR101967663B1 (en) A system for access control based on the role of process in the white list
US20050119902A1 (en) Security descriptor verifier
KR101956725B1 (en) A system for server access control using permitted execution files and dynamic library files
KR20040083409A (en) method for computer protection with real-time monitoring and thereby computer and thereby system
JP4444604B2 (en) Access control device and program thereof
KR20030090568A (en) System for protecting computer resource and method thereof
KR20200122014A (en) Data security method based on program protection
US11983288B1 (en) Operating system enhancements to prevent surreptitious access to user data files
CN115270157A (en) Access control method and system
JP2023516517A (en) Data protection system

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant