KR102218799B1 - Detection system and detection method for important file - Google Patents

Detection system and detection method for important file Download PDF

Info

Publication number
KR102218799B1
KR102218799B1 KR1020190030760A KR20190030760A KR102218799B1 KR 102218799 B1 KR102218799 B1 KR 102218799B1 KR 1020190030760 A KR1020190030760 A KR 1020190030760A KR 20190030760 A KR20190030760 A KR 20190030760A KR 102218799 B1 KR102218799 B1 KR 102218799B1
Authority
KR
South Korea
Prior art keywords
file
list
important
service
creation
Prior art date
Application number
KR1020190030760A
Other languages
Korean (ko)
Other versions
KR20200111031A (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 KR1020190030760A priority Critical patent/KR102218799B1/en
Publication of KR20200111031A publication Critical patent/KR20200111031A/en
Application granted granted Critical
Publication of KR102218799B1 publication Critical patent/KR102218799B1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은, 별도의 디지털서명(또는 인증서)을 활용하지 않고, 악성코드 진단 시 예외 처리하여 오탐을 피해야만 하는 중요 시스템파일을 정확하게 식별/판단해낼 수 있는 새로운 방식의 중요파일 판단 기술(방법)을 실현하기 위한 것이다.The present invention is a new method of critical file determination technology (method) that does not utilize a separate digital signature (or certificate) and can accurately identify / judge important system files that should avoid false positives by handling exceptions when diagnosing malicious codes Is to realize.

Description

중요파일 판단 시스템 및 중요파일 판단 방법{DETECTION SYSTEM AND DETECTION METHOD FOR IMPORTANT FILE}Important file judgment system and important file judgment method {DETECTION SYSTEM AND DETECTION METHOD FOR IMPORTANT FILE}

본 발명은 중요 파일을 판단하는 기술에 관한 것으로, 더욱 상세하게는 악성코드 진단 시 예외 처리하여 오탐을 피해야만 하는 중요 파일을 정확하게 판단해낼 수 있는 기술에 관한 것이다.The present invention relates to a technology for determining an important file, and more particularly, to a technology capable of accurately determining an important file that should avoid false positives by processing an exception when diagnosing a malicious code.

최근, 정보(파일)를 파괴하는 형태의 공격을 가하는 악성코드부터 정보(파일)를 사용 불가능 상태로 변조시킬 뿐 완전히 파괴하지는 않는 형태의 공격을 가하는 악성코드(예: 랜섬웨어)까지, 그 공격 형태 및 공격 대상이 다양화된 수 많은 악성코드들이 등장하였다.Recently, the attack ranges from malicious codes that attack information (files) in the form of attacks to malicious codes (such as ransomware) that perform attacks in the form of not completely destroying information (files) that only modulates them to be unavailable. Numerous malicious codes with diversified forms and targets have appeared.

이에, 악성코드를 진단해 내 악성코드에 의한 공격을 차단하여 정보(파일)를 보호하기 위한 다양한 악성코드 진단 방식들이 개발되었으며, 앞으로도 계속해서 진화/다양화되는 악성코드들에 대응하기 위해 악성코드 진단 방식 역시 계속해서 진화/개발될 것이다.Accordingly, various malicious code diagnosis methods have been developed to protect information (files) by diagnosing malicious codes and blocking attacks by my malicious codes, and malicious codes to cope with malicious codes that continue to evolve/diversify in the future. Diagnostic methods will also continue to evolve/develop.

이러한 악성코드 진단 방식들의 진단 기법은 대응하고자 하는 악성코드에 따라 다를 수 있지만, 그 성능에 가장 중요한 영향을 미치는 공통된 점은 오탐 없이 악성코드 만을 진단해내는 정확성이라 할 수 있다.Diagnosis techniques of these malicious code diagnosis methods may differ depending on the malicious code to be countered, but the common point that most importantly affects its performance is the accuracy of diagnosing only malicious codes without false positives.

특히, 장치 내 파일시스템을 정상적으로 작동시키기 위해 필수적인 실행파일과 같은 중요 시스템파일이 악성코드로 오탐 된다면, 파일시스템 자체의 정상적 작동이 불가능해지는 심각한 상황이 초래될 수 있다.In particular, if an important system file, such as an executable file essential for normal operation of the device's file system, is falsely detected as a malicious code, a serious situation in which the file system itself cannot operate normally may result.

이에, 악성코드 진단 시 예외 처리해야만 하는 중요 시스템파일은 반드시 식별/판단될 수 있어야만 한다.Therefore, important system files that must be handled as exceptions when diagnosing malicious codes must be able to be identified/determined.

예를 들면 윈도우 OS(Operating System)의 경우, OS 제작사가 배포한 중요 시스템파일에 대해서는 제작사의 디지털서명(또는 인증서)을 가지고 있어, 해당 디지털서명을 통해 악성코드 진단 시 예외 처리해야만 하는 중요 파일인지 여부를 식별/판단할 수 있도록 하고 있다.For example, in the case of Windows OS (Operating System), important system files distributed by the OS manufacturer have the manufacturer's digital signature (or certificate), so whether it is an important file that should be handled as an exception when diagnosing malicious codes through the digital signature. It makes it possible to identify / judge whether or not.

헌데, 리눅스 OS의 경우, 윈도우 OS와 달리 디지털서명(또는 인증서)을 지원하고 있지 않기 때문에, 악성코드 진단 시 예외 처리해야만 하는 중요 시스템파일을 식별/판단해낼 수 있는 방법이 없는 실정이다.However, since Linux OS does not support digital signatures (or certificates) unlike Windows OS, there is no way to identify/determine important system files that should be handled as exceptions when diagnosing malicious codes.

이로 인해, 기존의 리눅스 OS 기반 장치에서는, 파일시스템을 정상적으로 작동시키기 위해 필수적인 실행파일과 같은 중요 시스템파일이 악성코드로 오탐될 가능성을 여전히 가지고 있는 상황인 것이다.For this reason, in the existing Linux OS-based device, there is still a possibility that important system files, such as executable files, which are essential for normal operation of the file system, are falsely detected as malicious codes.

이에, 본 발명에서는, 별도의 디지털서명(또는 인증서)을 활용하지 않고, 악성코드 진단 시 예외 처리하여 오탐을 피해야만 하는 중요 시스템파일을 정확하게 식별/판단해낼 수 있는 기술을 제안하고자 한다.Accordingly, the present invention proposes a technique capable of accurately identifying/determining important system files that should avoid false positives by handling exceptions when diagnosing malicious codes without using a separate digital signature (or certificate).

본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은, 별도의 디지털서명(또는 인증서)을 활용하지 않고, 악성코드 진단 시 예외 처리하여 오탐을 피해야만 하는 중요 시스템파일을 정확하게 식별/판단해낼 수 있는 중요파일 판단 시스템 및 중요파일 판단 방법을 제공하는데 있다.The present invention was created in view of the above circumstances, and the object to be reached in the present invention is an important system file that must avoid false positives by handling exceptions when diagnosing malicious codes without using a separate digital signature (or certificate). It is to provide an important file judgment system and an important file judgment method that can accurately identify/determine.

상기 목적을 달성하기 위한 본 발명의 제 1 관점에 따른 판단 대상이 되는 중요 파일의 실행 특성을 기반으로 후보 파일리스트를 생성하는 리스트생성단계; 및 파일시스템의 데이터 구조로부터 확인되는 파일 생성시점 및 파일 위치 중 적어도 하나를 근거로, 상기 후보 파일리스트에 속해있는 파일 중 특정 파일을 상기 중요 파일로 판단하는 중요파일판단단계를 포함한다.A list generation step of generating a candidate file list based on an execution characteristic of an important file to be determined according to the first aspect of the present invention for achieving the above object; And a critical file determination step of determining a specific file among files belonging to the candidate file list as the important file based on at least one of a file creation time and a file location identified from the data structure of the file system.

상기 목적을 달성하기 위한 본 발명의 제 2 관점에 따른 판단 대상이 되는 중요 파일의 실행 특성을 기반으로 후보 파일리스트를 생성하는 리스트생성부; 파일시스템의 데이터 구조로부터 확인되는 파일 생성시점 및 파일 위치 중 적어도 하나를 근거로, 상기 후보 파일리스트에 속해있는 파일 중 특정 파일을 상기 중요 파일로 판단하는 중요파일판단부를 포함한다.A list generator for generating a candidate file list based on the execution characteristics of an important file to be determined according to a second aspect of the present invention for achieving the above object; And an important file determination unit determining a specific file among files belonging to the candidate file list as the important file based on at least one of a file creation time and a file location identified from the data structure of the file system.

본 발명의 실시예들에 따르면, 별도의 디지털서명(또는 인증서)을 활용하지 않고, 파일시스템을 정상적으로 작동시키기 위해 필수적인 실행파일과 같은 중요 시스템파일을 정확하게 식별/판단해낼 수 있는 기술을 실현함으로써, 중요 시스템파일이 악성코드로 오탐될 가능성을 회피할 수 있도록 하는 효과를 도출한다.According to the embodiments of the present invention, by realizing a technology capable of accurately identifying/determining important system files such as executable files essential for normal operation of the file system without using a separate digital signature (or certificate), It derives the effect of avoiding the possibility of false detection of important system files as malicious codes.

도 1은 본 발명의 일 실시예에 따른 중요파일 판단 시스템의 구성을 보여주는 구성도이다.
도 2는 본 발명의 일 실시예에 따라 후보 파일리스트를 생성하는 과정을 보여주는 예시도이다.
도 3은 본 발명의 일 실시예에서 고려하는 파일시스템의 데이터 구조를 보여주는 예시도이다.
도 4는 본 발명의 일 실시예에 따른 중요파일 판단 방법을 보여주는 흐름도이다.
1 is a block diagram showing the configuration of an important file determination system according to an embodiment of the present invention.
2 is an exemplary diagram showing a process of generating a candidate file list according to an embodiment of the present invention.
3 is an exemplary diagram showing a data structure of a file system considered in an embodiment of the present invention.
4 is a flowchart illustrating a method of determining an important file according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.In the present invention, various modifications may be made and various embodiments may be provided, and specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the present invention to a specific embodiment, it is to be understood to include all changes, equivalents, and substitutes included in the spirit and scope of the present invention. In describing each drawing, similar reference numerals have been used for similar elements.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is referred to as being "connected" or "connected" to another component, it is understood that it may be directly connected or connected to the other component, but other components may exist in the middle. Should be. On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present application, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof, does not preclude in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this application. Does not.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 설명한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.

도 1은, 본 발명의 일 실시예에 따른 중요파일 판단 시스템의 구성을 보여주고 있다.1 shows a configuration of an important file determination system according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 본 발명에 따른 중요파일 판단 시스템(100)은, 독립된 사용자 디바이스(200)에 탑재되는 것이 바람직하다. 이러한 본 발명의 중요파일 판단 시스템(100)은, 사용자 디바이스(200)에 설치되는 어플리케이션, 또는 프로그램, 또는 엔진 형태일 수도 있다.As shown in FIG. 1, the critical file determination system 100 according to the present invention is preferably mounted on an independent user device 200. The important file determination system 100 of the present invention may be in the form of an application, a program, or an engine installed on the user device 200.

도 1에서는, 설명의 편의를 위해, 사용자 디바이스(200)에서 저장 공간을 통칭하는 메모리(160), 메모리(160)에 저장되어 있는 정보(파일)과 레지스트리/ 파일/네트워크/프로세스 관련 행위를 수행하는 주체인 프로세스 사이에서 정보(파일)에 대한 I/O를 제어하는 파일시스템(150)의 구성을 도시하였다.In FIG. 1, for convenience of explanation, a memory 160 collectively referred to as a storage space in the user device 200, information (file) stored in the memory 160, and registry/file/network/process-related actions are performed. The configuration of the file system 150 that controls I/O for information (files) between processes, which is a subject, is shown.

도 1에 도시된 바와 같이 본 발명에 따른 중요파일 판단 시스템(100)은, 판단 대상이 되는 중요 파일의 실행 특성을 기반으로 후보 파일리스트를 생성하는 리스트생성부(110)와, 파일시스템(150)의 데이터 구조로부터 확인되는 파일 생성시점 및 파일 위치 중 적어도 하나를 근거로, 후보 파일리스트에 속해있는 파일 중 특정 파일을 중요 파일로 판단하는 중요파일판단부(120)를 포함한다.As shown in FIG. 1, the critical file determination system 100 according to the present invention includes a list generator 110 that generates a candidate file list based on the execution characteristics of an important file to be determined, and a file system 150. ), based on at least one of a file creation time and a file location identified from the data structure of ), a critical file determination unit 120 that determines a specific file among files belonging to the candidate file list as an important file.

더 나아가 본 발명에 따른 중요파일 판단 시스템(100)은, 잠금처리부(130)을 더 포함할 수 있다.Furthermore, the critical file determination system 100 according to the present invention may further include a lock processing unit 130.

최근까지, 악성코드를 진단해 악성코드에 의한 공격을 차단하여 정보(파일)를 보호하기 위한 다양한 악성코드 진단 방식들이 계속해서 개발되고 있으며, 앞으로도 진화/다양화되는 악성코드들에 대응하기 위해 악성코드 진단 방식은 계속해서 진화/개발될 것이다.Until recently, various malicious code diagnosis methods to protect information (files) by diagnosing malicious codes and blocking attacks by malicious codes are continuously being developed, and in order to cope with the evolving/diversified malicious codes in the future, The code diagnosis method will continue to evolve/develop.

이러한 악성코드 진단 방식들의 진단 기법은 대응하고자 하는 악성코드에 따라 다를 수 있지만, 그 성능에 가장 중요한 영향을 미치는 공통된 점은 오탐 없이 악성코드 만을 진단해내는 정확성이라 할 수 있다.Diagnosis techniques of these malicious code diagnosis methods may differ depending on the malicious code to be countered, but the common point that most importantly affects its performance is the accuracy of diagnosing only malicious codes without false positives.

특히, 장치 내 파일시스템을 정상적으로 작동시키기 위해 필수적인 실행파일과 같은 중요 시스템파일이 악성코드로 오탐 된다면, 파일시스템 자체의 정상적 작동이 불가능해지는 심각한 상황이 초래될 수 있다.In particular, if an important system file, such as an executable file essential for normal operation of the device's file system, is falsely detected as a malicious code, a serious situation in which the file system itself cannot operate normally may result.

이에, 악성코드 진단 시 예외 처리해야만 하는 중요 시스템파일은 반드시 식별/판단될 수 있어야만 한다.Therefore, important system files that must be handled as exceptions when diagnosing malicious codes must be able to be identified/determined.

예를 들면 윈도우 OS(Operating System)의 경우, OS 제작사가 배포한 중요 시스템파일에 대해서는 제작사의 디지털서명(또는 인증서)을 가지고 있어, 해당 디지털서명을 통해 악성코드 진단 시 예외 처리해야만 하는 중요 파일인지 여부를 식별/판단할 수 있도록 하고 있다.For example, in the case of Windows OS (Operating System), important system files distributed by the OS manufacturer have the manufacturer's digital signature (or certificate), so whether it is an important file that should be handled as an exception when diagnosing malicious codes through the digital signature. It makes it possible to identify / judge whether or not.

헌데, 리눅스 OS의 경우, 윈도우 OS와 달리 디지털서명(또는 인증서)을 지원하고 있지 않기 때문에, 악성코드 진단 시 예외 처리해야만 하는 중요 시스템파일을 식별/판단해낼 수 있는 방법이 없는 실정이다.However, since Linux OS does not support digital signatures (or certificates) unlike Windows OS, there is no way to identify/determine important system files that should be handled as exceptions when diagnosing malicious codes.

이로 인해, 기존의 리눅스 OS 기반 디바이스(장치)에서는, 파일시스템을 정상적으로 작동시키기 위해 필수적인 실행파일과 같은 중요 시스템파일이 악성코드로 오탐될 가능성을 여전히 가지고 있는 상황인 것이다.For this reason, in the existing Linux OS-based device (device), there is still a possibility that important system files, such as executable files, which are essential to operate the file system normally, are falsely detected as malicious codes.

이에, 본 발명에서는, 별도의 디지털서명(또는 인증서)을 활용하지 않는 OS 예컨대 리눅스 OS에서도, 악성코드 진단 시 예외 처리하여 오탐을 피해야만 하는 중요 시스템파일을 정확하게 식별/판단해낼 수 있는 새로운 방식의 중요파일 판단 기술(방법)을 제안하고자 한다.Accordingly, in the present invention, even in an OS that does not use a separate digital signature (or certificate), such as a Linux OS, an exception is handled when diagnosing malicious codes, and a new method that can accurately identify/determine important system files that should avoid false positives. I would like to propose a technique (method) for determining important files.

결국, 도 1에 도시된 본 발명의 중요파일 판단 시스템(100)은 전술한 구성을 기반으로 본 발명에서 제안하고자 하는 새로운 방식의 중요파일 판단 기술(방법)을 실현할 수 있다. As a result, the important file determination system 100 of the present invention illustrated in FIG. 1 can realize a new method of critical file determination technology (method) proposed by the present invention based on the above-described configuration.

이하에서는, 이를 실현하기 위한 중요파일 판단 시스템(100) 내 각 구성에 대해 보다 구체적으로 설명하기로 한다.Hereinafter, each configuration in the critical file determination system 100 for realizing this will be described in more detail.

리스트생성부(110)는, 판단 대상이 되는 중요 파일의 실행 특성을 기반으로 후보 파일리스트를 생성한다.The list generation unit 110 generates a candidate file list based on the execution characteristics of an important file to be determined.

여기서, 판단 대상이 되는 중요 파일은, 식별/판단해내고자 하는 대상 파일을 의미하며, 구체적으로 파일시스템(150)을 정상적으로 작동시키기 위해 필수적인 실행파일과 같은 중요 시스템파일이 해당될 것이다.Here, the important file to be determined refers to a target file to be identified/determined, and specifically, an important system file such as an executable file essential for operating the file system 150 normally will correspond.

이러한 중요 시스템파일의 경우, 파일시스템(150) 작동 시 자동으로 실행되는 실행 특성을 갖는다.In the case of such an important system file, it has an execution characteristic that is automatically executed when the file system 150 is operated.

따라서, 리스트생성부(110)는, 판단 대상이 되는 중요 파일(이하, 중요 시스템파일)의 실행 특성 즉 파일시스템(150) 작동 시 자동으로 실행되는 특성을 기반으로, 파일시스템(150) 작동 시 자동으로 실행되는 파일들로 구성된 후보 파일리스트를 생성할 수 있다.Therefore, the list generation unit 110, based on the execution characteristics of the important files to be determined (hereinafter, important system files), that is, characteristics that are automatically executed when the file system 150 is operated, when the file system 150 is operated. A candidate file list composed of automatically executed files can be created.

구체적으로 설명하면, 리스트생성부(110)는, 파일시스템(150) 부팅 시 가장 먼저 생성되는 초기 프로세스로부터, 부팅 시 자동 실행되는 특성을 가지며 기 정의된 중요 서비스명과 매칭되는 서비스 리스트를 확인한다.Specifically, the list generation unit 110 checks a service list that has a characteristic automatically executed when booting and matches a predefined important service name from an initial process that is first generated when the file system 150 is booted.

초기 프로세스는, 파일시스템(150) 부팅 시 가장 먼저 프로세스 ID를 부여받아 동작하여 이후 각종 하드웨어 초기화 등 부팅 관련 제반 과정을 수행하는 프로세스로서, init 프로세스 또는 systemD 프로세스를 의미한다.The initial process is a process in which the file system 150 is first assigned a process ID and operates, and then performs various processes related to booting, such as initializing various hardware, and means an init process or a systemD process.

이에, 도 2에 도시된 바와 같이, 리스트생성부(110)는, init 프로세스 또는 systemD 프로세스로부터, 부팅 시 자동 실행되는 특성을 가지는 서비스 리스트를 1차 확인할 수 있고, 1차 확인한 서비스 리스트에서 서비스 Unit 필터링을 통해 기 정의된 중요 서비스명 만을 추출하는 2차 과정을 거쳐, 부팅 시 자동 실행되는 특성을 가지며 기 정의된 중요 서비스명과 매칭되는 서비스 리스트를 확인할 수 있다.Accordingly, as shown in FIG. 2, the list generation unit 110 may first check a service list having a characteristic that is automatically executed when booting from the init process or the systemD process, and the service unit from the first checked service list Through the second process of extracting only the predefined important service names through filtering, it is possible to check the list of services that have the characteristics that are automatically executed when booting and match the predefined important service names.

이때, 리스트생성부(110)는, init 프로세스 또는 systemD 프로세스로부터 서비스 리스트를 1차 확인할 때, 액티브 상태의 서비스 만을 추출하여 서비스 리스트로 확인하는 것이 바람직하다.At this time, when the list generator 110 first checks the service list from the init process or the systemD process, it is preferable to extract only the active service and check the service list.

그리고, 리스트생성부(110)는, 전술과 같이 1,2차 과정을 거쳐 확인한 서비스 리스트 내 각 서비스 별로, 서비스 속성으로부터 파일 패스(Path)정보를 추출할 수 있다. In addition, the list generation unit 110 may extract file path information from service attributes for each service in the service list checked through the first and second processes as described above.

예를 들면, 도 2에 도시된 바와 같이, 리스트생성부(110)는, 서비스 리스트 내 각 서비스 별로, init 프로세스 또는 systemD 프로세스로부터 서비스 속성 특히 서비스 ExecStart속성을 획득 및 확인하여, 각 서비스 별로 파일 패스정보를 추출할 수 있다.For example, as shown in FIG. 2, the list generation unit 110 obtains and checks the service attribute, especially the service ExecStart attribute, from the init process or the systemD process, for each service in the service list, and passes the file for each service. Information can be extracted.

또한, 리스트생성부(110)는, 전술과 같이 1,2차 과정을 거쳐 확인한 서비스 리스트 내 각 서비스 별로, 서비스가 이용하는 공유 라이브러리를 확인할 수 있다. In addition, the list generation unit 110 may check the shared library used by the service for each service in the service list checked through the first and second processes as described above.

예를 들면, 도 2에 도시된 바와 같이, 리스트생성부(110)는, 서비스 리스트 내 각 서비스 별로 추출한 파일 패스정보를 기반으로, ldd 명령을 통해 각 서비스가 이용하는 공유 라이브러리(또는 종속 모듈(.so))를 추출/확인할 수 있다.For example, as shown in FIG. 2, the list generation unit 110, based on the file path information extracted for each service in the service list, the shared library (or dependent module) used by each service through the ldd command. so)) can be extracted/checked.

이에, 리스트생성부(110)는, 앞서 추출 및 확인한 각 서비스의 파일 패스정보 및 공유 라이브러리를 기반으로, 후보 파일리스트를 생성할 수 있다.Accordingly, the list generation unit 110 may generate a candidate file list based on the file path information and the shared library of each service extracted and checked above.

다음 표1은 구체적으로 서비스 리스트를 추출하는 명령이다.Table 1 below is a detailed command for extracting a service list.

$ systemctl list-units -t service | grep ".service"
accounts-daemon.service loaded active running Accounts Service
acpid.service loaded active running ACPI event daemon
apparmor.service loaded active exited LSB: AppArmor initialization
apport.service loaded active exited LSB: automatic crash report generation
avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack
binfmt-support.service loaded active exited Enable support for additional executable binary formats
colord.service loaded active running Manage, Install and Generate Color Profiles
console-setup.service loaded active exited Set console font and keymap
cron.service loaded active running Regular background program processing daemon
cups-browsed.service loaded active running Make remote CUPS printers available locally
cups.service loaded active running CUPS Scheduler
dbus.service loaded active running D-Bus System Message Bus
[email protected] loaded active running Getty on tty1
grub-common.service loaded active exited LSB: Record successful boot for GRUB
irqbalance.service loaded active running LSB: daemon to balance interrupts for SMP systems
keyboard-setup.service loaded active exited Set console keymap
kmod-static-nodes.service loaded active exited Create list of required static device nodes for the current kernel
lightdm.service loaded active running Light Display Manager
ModemManager.service loaded active running Modem Manager
networking.service loaded active exited Raise network interfaces
NetworkManager.service loaded active running Network Manager
ninja.service loaded active exited LSB: "privilege escalation detection system"
ntp.service loaded active running LSB: Start NTP daemon
ondemand.service loaded active exited LSB: Set the CPU Frequency Scaling governor to "ondemand"
polkitd.service loaded active running Authenticate and Authorize Users to Run Privileged Tasks
prltoolsd.service loaded active running Parallels Tools Daemon
rc-local.service loaded active exited /etc/rc.local Compatibility
resolvconf.service loaded active exited Nameserver information manager
rsyslog.service loaded active running System Logging Service
rtkit-daemon.service loaded active running RealtimeKit Scheduling Policy Service
setvtrgb.service loaded active exited Set console scheme
snapd.service loaded active running Snappy daemon
speech-dispatcher.service loaded active exited LSB: Speech Dispatcher
ssh.service loaded active running OpenBSD Secure Shell server
systemd-journal-flush.service loaded active exited Flush Journal to Persistent Storage
systemd-journald.service loaded active running Journal Service
systemd-logind.service loaded active running Login Service
systemd-modules-load.service loaded active exited Load Kernel Modules
systemd-random-seed.service loaded active exited Load/Save Random Seed
systemd-remount-fs.service loaded active exited Remount Root and Kernel File Systems
systemd-sysctl.service loaded active exited Apply Kernel Variables
systemd-tmpfiles-setup-dev.service loaded active exited Create Static Device Nodes in /dev
systemd-tmpfiles-setup.service loaded active exited Create Volatile Files and Directories
systemd-udev-trigger.service loaded active exited udev Coldplug all Devices
systemd-udevd.service loaded active running udev Kernel Device Manager
systemd-update-utmp.service loaded active exited Update UTMP about System Boot/Shutdown
systemd-user-sessions.service loaded active exited Permit User Sessions
thermald.service loaded active running Thermal Daemon Service
udisks2.service loaded active running Disk Manager
ufw.service loaded active exited Uncomplicated firewall
unattended-upgrades.service loaded active exited Unattended Upgrades Shutdown
upower.service loaded active running Daemon for power management
[email protected] loaded active running User Manager for UID 1000
whoopsie.service loaded active running crash report submission daemon
$ systemctl list-units -t service | grep ".service"
accounts-daemon.service loaded active running Accounts Service
acpid.service loaded active running ACPI event daemon
apparmor.service loaded active exited LSB: AppArmor initialization
apport.service loaded active exited LSB: automatic crash report generation
avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack
binfmt-support.service loaded active exited Enable support for additional executable binary formats
colord.service loaded active running Manage, Install and Generate Color Profiles
console-setup.service loaded active exited Set console font and keymap
cron.service loaded active running Regular background program processing daemon
cups-browsed.service loaded active running Make remote CUPS printers available locally
cups.service loaded active running CUPS Scheduler
dbus.service loaded active running D-Bus System Message Bus
[email protected] loaded active running Getty on tty1
grub-common.service loaded active exited LSB: Record successful boot for GRUB
irqbalance.service loaded active running LSB: daemon to balance interrupts for SMP systems
keyboard-setup.service loaded active exited Set console keymap
kmod-static-nodes.service loaded active exited Create list of required static device nodes for the current kernel
lightdm.service loaded active running Light Display Manager
ModemManager.service loaded active running Modem Manager
networking.service loaded active exited Raise network interfaces
NetworkManager.service loaded active running Network Manager
ninja.service loaded active exited LSB: "privilege escalation detection system"
ntp.service loaded active running LSB: Start NTP daemon
ondemand.service loaded active exited LSB: Set the CPU Frequency Scaling governor to "ondemand"
polkitd.service loaded active running Authenticate and Authorize Users to Run Privileged Tasks
prltoolsd.service loaded active running Parallels Tools Daemon
rc-local.service loaded active exited /etc/rc.local Compatibility
resolvconf.service loaded active exited Nameserver information manager
rsyslog.service loaded active running System Logging Service
rtkit-daemon.service loaded active running RealtimeKit Scheduling Policy Service
setvtrgb.service loaded active exited Set console scheme
snapd.service loaded active running Snappy daemon
speech-dispatcher.service loaded active exited LSB: Speech Dispatcher
ssh.service loaded active running OpenBSD Secure Shell server
systemd-journal-flush.service loaded active exited Flush Journal to Persistent Storage
systemd-journald.service loaded active running Journal Service
systemd-logind.service loaded active running Login Service
systemd-modules-load.service loaded active exited Load Kernel Modules
systemd-random-seed.service loaded active exited Load/Save Random Seed
systemd-remount-fs.service loaded active exited Remount Root and Kernel File Systems
systemd-sysctl.service loaded active exited Apply Kernel Variables
systemd-tmpfiles-setup-dev.service loaded active exited Create Static Device Nodes in /dev
systemd-tmpfiles-setup.service loaded active exited Create Volatile Files and Directories
systemd-udev-trigger.service loaded active exited udev Coldplug all Devices
systemd-udevd.service loaded active running udev Kernel Device Manager
systemd-update-utmp.service loaded active exited Update UTMP about System Boot/Shutdown
systemd-user-sessions.service loaded active exited Permit User Sessions
thermald.service loaded active running Thermal Daemon Service
udisks2.service loaded active running Disk Manager
ufw.service loaded active exited Uncomplicated firewall
unattended-upgrades.service loaded active exited Unattended Upgrades Shutdown
upower.service loaded active running Daemon for power management
[email protected] loaded active running User Manager for UID 1000
whoopsie.service loaded active running crash report submission daemon

위와 같이 부팅(파일시스템(150) 작동) 시 자동 실행되는 특성을 가지며 기 정의된 중요 서비스명과 매칭되는 서비스 리스트를 추출/확인할 수 있고, 다음 표2와 같이 각 서비스 별로 파일 패스정보를 추출(확인)할 수 있다.As above, it has a characteristic that is automatically executed when booting (operation of the file system 150), and can extract/check a service list matching a predefined important service name, and extract (check) file path information for each service as shown in Table 2 below. )can do.

$systemctl show accounts-daemon.service -p ExecStart
ExecStart={ path= //usr/sbin/acpid
; argv[]=/usr/lib/accountsservice/accounts-daemon ; ignore_errors=no ; start_time=[Fri 2019-02-22 13:14:07 KST] ; stop_time=[n/a] ; pid=768 ; code=(null) ; status=0/0 }
$systemctl show accounts-daemon.service -p ExecStart
ExecStart={ path= //usr/sbin/acpid
; argv[]=/usr/lib/accountsservice/accounts-daemon; ignore_errors=no; start_time=[Fri 2019-02-22 13:14:07 KST]; stop_time=[n/a]; pid=768; code=(null); status=0/0}

위와 같이 서비스 리스트 내 각 서비스 별로 실행파일 경로(파일 패스정보)를 확인하면, 다음 표3과 같이 해당 실행파일이 로딩(이용)하는 모듈의 리스트 및 경로(공유 라이브러리(또는 종속 모듈(.so))를 추출할 수 있다.If you check the path of the executable file (file path information) for each service in the service list as above, the list and path of the modules that the executable file loads (uses) (shared library (or dependent module (.so)) as shown in Table 3 below. ) Can be extracted.

$ldd /usr/sbin/acpid
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f760916a000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7609534000)
$ldd /usr/sbin/acpid
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f760916a000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7609534000)

다음 표4의 목록은, 자동으로 실행되는 서비스의 실행파일 경로(파일 패스정보) 및 해당 서비스가 사용하는 모듈의 경로(공유 라이브러리(또는 종속 모듈(.so))를 추출하여, 해당 경로의 실행파일들로 후보 파일리스트를 생성한 예시이다.The list in Table 4 below extracts the path of the executable file (file path information) of the service that is automatically executed and the path of the module used by the service (shared library (or dependent module (.so)), and executes the path. This is an example of creating a candidate file list with files.

/usr/lib/accountsservice/accounts-daemon
/lib/x86_64-linux-gnu/libc.so.6
/lib64/ld-linux-x86-64.so.2
usr/lib/accountsservice/accounts-daemon
/usr/lib/x86_64-linux-gnu/libpolkit-gobject-1.so.0
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
/lib/x86_64-linux-gnu/libglib-2.0.so.0
/lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libsystemd.so.0
/lib/x86_64-linux-gnu/libpthread.so.0
/usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0
/lib/x86_64-linux-gnu/libz.so.1
/lib/x86_64-linux-gnu/libselinux.so.1
/lib/x86_64-linux-gnu/libresolv.so.2
/usr/lib/x86_64-linux-gnu/libffi.so.6
/lib/x86_64-linux-gnu/libpcre.so.3
/lib64/ld-linux-x86-64.so.2
/lib/x86_64-linux-gnu/librt.so.1
/lib/x86_64-linux-gnu/liblzma.so.5
/lib/x86_64-linux-gnu/libgcrypt.so.20
/lib/x86_64-linux-gnu/libdl.so.2
/lib/x86_64-linux-gnu/libgpg-error.so.0
/usr/lib/accountsservice/accounts-daemon
/lib/x86_64-linux-gnu/libc.so.6
/lib64/ld-linux-x86-64.so.2
usr/lib/accountsservice/accounts-daemon
/usr/lib/x86_64-linux-gnu/libpolkit-gobject-1.so.0
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
/lib/x86_64-linux-gnu/libglib-2.0.so.0
/lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libsystemd.so.0
/lib/x86_64-linux-gnu/libpthread.so.0
/usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0
/lib/x86_64-linux-gnu/libz.so.1
/lib/x86_64-linux-gnu/libselinux.so.1
/lib/x86_64-linux-gnu/libresolv.so.2
/usr/lib/x86_64-linux-gnu/libffi.so.6
/lib/x86_64-linux-gnu/libpcre.so.3
/lib64/ld-linux-x86-64.so.2
/lib/x86_64-linux-gnu/librt.so.1
/lib/x86_64-linux-gnu/liblzma.so.5
/lib/x86_64-linux-gnu/libgcrypt.so.20
/lib/x86_64-linux-gnu/libdl.so.2
/lib/x86_64-linux-gnu/libgpg-error.so.0

이처럼, 리스트생성부(110)는, 각 서비스의 파일 패스정보(실행파일 경로) 및 공유 라이브러리(해당 서비스가 사용하는 모듈의 경로)를 이용하여, 파일시스템(150) 작동 시 자동으로 실행되는 파일 다시 말해 중요 시스템파일을 특정/식별할 수 있는 정보들로 구성된 후보 파일리스트를 생성할 수 있다. As such, the list generation unit 110 uses the file path information (executable file path) of each service and the shared library (the path of the module used by the service) to automatically execute files when the file system 150 is operated. In other words, a candidate file list composed of information capable of specifying/identifying important system files can be generated.

이에, 본 발명의 일 실시예에 따르면, 중요파일 판단 시스템(100)은 리스트생성부(110)에서 생성한 후보 파일리스트에 속해있는 각 파일을 모두 중요 파일 즉 식별/판단해내고자 하는 대상 파일인 중요 시스템파일로 판단할 수도 있을 것이다.Accordingly, according to an embodiment of the present invention, the critical file determination system 100 identifies all files belonging to the candidate file list generated by the list generation unit 110 as important files, that is, target files for identification/determination. It could be judged as an important system file.

하지만, 더 나아가 본 발명에서는 파일 판단의 정확성(정확도)를 높이기 위해, 앞서 생성한 후보 파일리스트들에 속해있는 각 파일이 정말 중요 시스템파일인지 여부를 재 판단하기 위한 기능을 더 포함하고 있다.However, the present invention further includes a function for re-determining whether each file belonging to the previously generated candidate file list is really an important system file in order to increase the accuracy (accuracy) of file determination.

이러한 기능을 담당하는 중요파일판단부(120)은, 파일시스템(150)의 데이터 구조로부터 확인되는 파일 생성시점 및 파일 위치 중 적어도 하나를 근거로, 후보 파일리스트에 속해있는 파일 중 특정 파일 만을 중요 파일 즉 중요 시스템파일로 판단한다.The important file determination unit 120 in charge of this function is based on at least one of the file creation time and file location identified from the data structure of the file system 150, and only selects specific files among the files belonging to the candidate file list. It is judged as an important system file.

구체적으로 설명하면, 중요파일판단부(120)은, 설치파일식별부(122)와 판단부(126)로 구성될 수 있다.Specifically, the critical file determination unit 120 may include an installation file identification unit 122 and a determination unit 126.

설치파일식별부(122)는, 파일시스템(150)의 데이터 구조로부터 확인되는 파일 생성시점 및 파일 위치 중 적어도 하나를 근거로, 루트 파일시스템(root filesystem) 생성 시점에 생성된 파일을 식별할 수 있다.The installation file identification unit 122 may identify a file generated at the time of creation of a root filesystem based on at least one of a file creation time and a file location identified from the data structure of the file system 150. have.

일 실시예에 따르면, 설치파일식별부(122)는, 파일시스템(150)의 데이터 구조로부터 Ext filesystem의 I-노드 넘버(number), I-노드 생성시간(create time), 블록 넘버가 갖는 특징을 이용하면 파일 생성시점 및 파일 위치를 파악할 수 있고, 이를 근거로 루트 파일시스템(root filesystem) 생성 시점에 생성된 파일을 식별할 수 있다.According to an embodiment, the installation file identification unit 122 has the characteristics of the I-node number, I-node create time, and block number of the Ext filesystem from the data structure of the file system 150 By using, the file creation time and the file location can be identified, and based on this, the file created at the time of the root file system creation can be identified.

도 3에 도시된 바와 같이, 본 발명이 적용되는 OS(예: 리눅스 OS)에서 사용되고 있는 파일시스템의 기본적인 데이터 구조는, 부트 블록과 여러 개의 블록 그룹(0,1,...,n)으로 구성될 수 있다(a).As shown in FIG. 3, the basic data structure of a file system used in an OS to which the present invention is applied (eg, Linux OS) is composed of a boot block and several block groups (0,1,...,n). It can be configured (a).

각각의 블록 그룹은, 슈퍼 블록, 그룹 디스크립터, 블록 비트맵, I-노드 비트맵, 그리고 디렉토리 및 데이터 블록으로 구성된다(b).Each block group consists of a super block, a group descriptor, a block bitmap, an I-node bitmap, and a directory and data block (b).

이러한 블록 그룹의 구조는, 주요 데이터와 파일 데이터 의 집약도를 높여주기 때문에 파일을 저장할 때 단편화를 줄여주며, 디스크 I/O와 관련한 응답 속도를 줄여줄 수 있는 계기가 된다.The structure of such a block group increases the intensity of major data and file data, thereby reducing fragmentation when saving files, and reducing the response speed related to disk I/O.

본 발명에서는, 이러한 파일시스템의 데이터 구조에서 특히 블록 비트맵 및 I-노드 비트맵을 활용한다.In the present invention, in particular, a block bitmap and an I-node bitmap are used in the data structure of such a file system.

블록 비트맵은, 블록 그룹의 구조에서 그룹 디스크립터의 다음에 위치한다. 블록 비트맵은, 말 그대로 블록의 사용(할당) 상태를 비트로 표현하여 나타낸 것이다. 블록 그룹 내에 존재하는 각각의 블록은 블록 비트맵에서 하나하나의 비트에 해당한다. 그래서 특정 블록이 사용되고 있으면 블록 비트맵의 해당 블록의 인덱스가 할당(사용)된 상태임을 나타내게 된다.The block bitmap is located after the group descriptor in the structure of the block group. The block bitmap literally represents the use (allocation) state of a block in bits. Each block in the block group corresponds to one bit in the block bitmap. So, if a specific block is being used, it indicates that the index of the block in the block bitmap is allocated (used).

여기서, 블록 그룹의 데이터 구조에서는, 낮은 넘버의 블록부터 차례대로 사용(할당)하는 특징이 있다.Here, in the data structure of a block group, there is a characteristic of sequentially using (allocating) blocks with a lower number.

Ext filesystem에서 파일 데이터가 저장되는 곳은 I-노드 데이터 구조이다. 모든 파일들과 디렉토리들은 각각 1개의 I-노드를 할당하고 있으며, 모든 I-노드들은 고유한 주소(또는 인덱스)를 가지고 있다.In the Ext filesystem, the file data is stored in the I-node data structure. All files and directories are assigned one I-node, and all I-nodes have a unique address (or index).

따라서, 본 발명이 적용되는 OS(예: 리눅스 OS)에서 사용되고 있는 기본적인 파일시스템의 데이터 구조는, I-노드로 식별되는 위치에 블록 단위로 파일을 저장하는 데이터 구조라 할 수 있다.Accordingly, the data structure of a basic file system used in an OS to which the present invention is applied (eg, a Linux OS) may be referred to as a data structure that stores files in block units at a location identified as an I-node.

I-노드 비트맵은, 블록 비트맵과 마찬가지로, 해당 블록 그룹이 관리하는 모든 I-노드의 사용(할당) 상태를 피트로 표현하여 나타낸 것이다. 즉, 블록 그룹 내에 존재하는 각각의 I-노드는 I-노드 비트맵에서 하나하나의 비트에 해당한다. 그래서 특정 I-노드가 사용되고 있으면 I-노드 비트맵의 해당 I-노드의 인덱스가 할당(사용)된 상태임을 나타내게 된다.The I-node bitmap, like the block bitmap, represents the use (allocation) status of all I-nodes managed by the corresponding block group in feet. That is, each I-node existing in a block group corresponds to one bit in the I-node bitmap. So, if a specific I-node is being used, it indicates that the index of the I-node in the I-node bitmap is allocated (used).

여기서, 블록 그룹의 데이터 구조에서는, 낮은 넘버의 I-노드부터 차례대로 사용(할당)하는 특징이 있다.Here, in the data structure of a block group, there is a characteristic of using (allocating) the lower numbered I-nodes in order.

다시 설치파일식별부(122)를 설명하면, 설치파일식별부(122)는, 파일시스템(150)의 데이터 구조로부터, 블록 비트맵 및 I-노드 비트맵에서 파일 데이터가 가장 먼저 저장되는 가장 작은 블록 넘버 및 I-노드 넘버 중 적어도 하나의 생성시간을 확인한다. 이때의 생성시간은, 파일 생성시점을 의미할 것이다.Referring to the installation file identification unit 122 again, the installation file identification unit 122 is the smallest file data stored first in the block bitmap and the I-node bitmap from the data structure of the file system 150. Check the generation time of at least one of the block number and the I-node number. The creation time at this time will mean the file creation time.

그리고, 설치파일식별부(122)는, 블록 비트맵 및 I-노드 비트맵으로부터, 상기 확인한 생성시간과 같은 생성시간을 가지며 기 설정된 임계 블록 넘버 및 I-노드 넘버 중 적어도 하나 보다 작은 넘버를 가지는 파일을 확인한다. 이때의 넘버는 파일 위치를 의미할 것이다.In addition, the installation file identification unit 122, from the block bitmap and the I-node bitmap, has a generation time equal to the identified generation time, and has a number smaller than at least one of a preset threshold block number and an I-node number. Check the file. The number at this time will mean the file location.

여기서, 기 설정된 임계 블록 넘버 및 I-노드 넘버는, 파일시스템(150)의 실제 중요 시스템파일 모두에 대하여 블록 및 I-노드를 사용(할당)하는 경우, 최대로 사용하게 되는 블록 넘버 및 I-노드 넘버와 동일하거나 일정 크기 큰 넘버로 기 설정되는 것이 바람직하다.Here, the preset threshold block number and I-node number are the maximum used block number and I- when using (allocating) blocks and I-nodes for all of the actual important system files of the file system 150. It is preferable that the node number is the same as the node number or is preset to a number that is a certain size larger.

이에, 설치파일식별부(122)는, 블록 비트맵 및 I-노드 비트맵에서 가장 작은 블록 넘버 및 I-노드 넘버 중 적어도 하나의 생성시간, 그리고 임계 블록 넘버 및 I-노드 넘버 중 적어도 하나 보다 작은 넘버를 가지는 것으로 확인되는 파일을, 루트 파일시스템 생성 시점에 생성된 파일로 식별할 수 있다.Accordingly, the installation file identification unit 122, the smallest block number in the block bitmap and the I-node bitmap, the generation time of at least one of the I-node number, and at least one of the critical block number and the I-node number. A file identified as having a small number can be identified as a file created at the time of creation of the root file system.

판단부(124)는, 설치파일식별부(122)에서 파일을 식별하면, 앞서 생성한 후보 파일리스트에 속해있는 파일 중 설치파일식별부(122)에서 루트 파일시스템 생성 시점에 생성된 것으로 식별한 파일과 매칭되는 특정 파일을 중요 시스템파일로 판단할 수 있다.When the file is identified by the installation file identification unit 122, the determination unit 124 identifies the files belonging to the previously generated candidate file list as being generated by the installation file identification unit 122 at the time of creation of the root file system. A specific file matching the file can be determined as an important system file.

이상과 같이, 본 발명의 일 실시예에 따르면, 중요파일 판단 시스템(100)은 파일시스템 부팅 시 자동 실행되는 속성의 파일들로 구성된 후보 파일리스트에서, 루트 파일시스템 생성 시점에 생성된 파일로 식별된 파일 만을 중요 파일 즉 식별/판단해내고자 하는 대상 파일인 중요 시스템파일로 판단할 수 있다.As described above, according to an embodiment of the present invention, the critical file determination system 100 identifies a file created at the time of creation of the root file system from a candidate file list consisting of files with attributes that are automatically executed when the file system is booted. Only the file can be determined as an important file, that is, an important system file that is the target file to be identified/determined.

이렇듯, 본 발명에 따르면, 별도의 디지털서명(또는 인증서)을 활용하지 않고, 악성코드 진단 시 예외 처리하여 오탐을 피해야만 하는 중요 시스템파일을 정확하게 식별/판단해낼 수 있는 새로운 방식의 중요파일 판단 기술(방법)을 실현하고 있다.As described above, according to the present invention, a new method of critical file determination technology capable of accurately identifying/determining important system files that should avoid false positives by handling exceptions when diagnosing malicious codes without using a separate digital signature (or certificate). (Method) is realizing.

더 나아가, 본 발명에서는 중요 시스템파일로 판단되는 파일 누락을 최소화하기 위해, 앞서 생성한 후보 파일리스트들에 속해있는 파일 외 파일을 추가로 중요 시스템파일로 판단하기 위한 기능을 더 포함하고 있다.Furthermore, the present invention further includes a function of additionally determining a file other than a file belonging to the previously generated candidate file list as an important system file in order to minimize omission of a file determined as an important system file.

이러한 기능을 담당하는 중요파일판단부(120)는, 패키지 관리 프로그램에 의한 파일 생성 또는 파일 변경 로그를 감시한 결과를 근거로, 중요 파일 즉 중요 시스템파일을 추가로 판단할 수 있다.The important file determination unit 120 in charge of this function may additionally determine an important file, that is, an important system file, based on a result of monitoring a file creation or a file change log by a package management program.

즉, 중요파일판단부(120)는, 앞서 생성한 후보 파일리스트들에 속해있는 파일이 아니더라도, 패키지 관리 프로그램에 의해 생성 또는 변경된 파일을 중요 시스템파일로 추가 판단하는 것이다.That is, the important file determination unit 120 additionally determines a file created or changed by the package management program as an important system file, even if it is not a file belonging to the previously generated candidate file list.

구체적으로 설명하면, 중요파일판단부(120)는, 파일감시부(124)와, 판단부(126)로 구성될 수 있다. Specifically, the important file determination unit 120 may include a file monitoring unit 124 and a determination unit 126.

잠금처리부(130)는, 패키지 배포 서버 리스트를 근거로 각 서버에 대한 무결성을 검증한 후 무결성이 검증된 패키지 배포 서버 리스트를 잠금 처리하는 기능을 담당한다.The lock processing unit 130 performs a function of locking the package distribution server list whose integrity has been verified after verifying the integrity of each server based on the package distribution server list.

즉, 본 발명의 중요파일 판단 시스템(100)은, 기 보유하거나 시스템(100)이 탑재된 사용자 디바이스(200)에 보유된 패키지 배포 서버 리스트를 이용하여 각 서버에 대한 무결성 검증을 수행할 수 있으며, 이때 수행하는 무결성 검증 방식은 기존의 다양한 방식 중 채택 가능하므로 구체적 설명을 생략하겠다.That is, the critical file determination system 100 of the present invention may perform integrity verification for each server using a package distribution server list that is already owned or held in the user device 200 on which the system 100 is mounted. In this case, the integrity verification method performed at this time can be adopted among various existing methods, so a detailed description will be omitted.

이에, 잠금처리부(130)는, 무결성 검증 수행을 통해 무결성이 검증된 서버들로 이루어진 패키지 배포 서버 리스트를 잠금 처리한다.Accordingly, the lock processing unit 130 locks a package distribution server list consisting of servers whose integrity has been verified by performing integrity verification.

이와 같은 패키지 배포 서버 리스트의 무결성 검증 수행 및 잠금 처리는, 기 정의된 이벤트 발생 시마다 또는 주기적으로 진행될 수 있다.The integrity verification and lock processing of the package distribution server list may be performed whenever a predefined event occurs or periodically.

중요파일판단부(120) 특히 파일감시부(124)는, 패키지 관리 프로그램에 의한 파일 생성 또는 파일 변경 로그를 감시하며, 잠금 처리된 패키지 배포 서버 리스트로 인증되는 패키지 관리 프로그램에 의한 경우의 감시 결과를 근거로 화이트리스트를 생성한다.The important file determination unit 120, in particular, the file monitoring unit 124, monitors the file creation or file change log by the package management program, and the monitoring result in the case of the package management program authenticated by the locked package distribution server list Create a white list based on.

잠금 처리된 패키지 배포 서버 리스트로 인증되는 패키지 관리 프로그램은, 결국 무결성 검증된 서버로부터 배포된 패키지 관리 프로그램임을 의미한다.The package management program authenticated by the locked package distribution server list means that it is a package management program distributed from a server whose integrity has been verified.

즉, 파일감시부(124)는, 무결성 검증된 서버로부터 배포된 패키지 관리 프로그램에 의한 생성 또는 변경이 발생하는 파일로 구성된 화이트리스트를 생성하는 것이다.That is, the file monitoring unit 124 generates a white list composed of files generated or changed by a package management program distributed from a server whose integrity has been verified.

판단부(126)는, 파일감시부(124)에서 생성한 화이트리스트에 속해있는 파일을 중요 파일 즉 중요 시스템파일로 판단한다.The determination unit 126 determines a file belonging to the white list generated by the file monitoring unit 124 as an important file, that is, an important system file.

이상과 같이, 본 발명의 일 실시예에 따르면, 중요파일 판단 시스템(100)은 파일시스템 부팅 시 자동 실행되는 속성의 파일 중 루트 파일시스템 생성 시점에 생성된 파일을 식별하여 중요 시스템파일로 판단할 뿐 아니라, 더 나아가 무결성 검증된 패키지 관리 프로그램에 의해 생성 또는 변경된 파일 역시 중요 시스템파일로 판단할 수 있다.As described above, according to an embodiment of the present invention, the critical file determination system 100 identifies the file generated at the time of creation of the root file system among the files of attributes that are automatically executed when the file system is booted, and determines it as an important system file. In addition, further, files created or changed by the integrity-verified package management program can also be determined as important system files.

이렇듯, 본 발명에 따르면, 별도의 디지털서명(또는 인증서)을 활용하지 않고, 악성코드 진단 시 예외 처리하여 오탐을 피해야만 하는 중요 시스템파일을 정확하게 식별/판단해낼 수 있는 새로운 방식의 중요파일 판단 기술(방법)을 실현하고 있다.As described above, according to the present invention, a new method of critical file determination technology capable of accurately identifying/determining important system files that should avoid false positives by handling exceptions when diagnosing malicious codes without using a separate digital signature (or certificate). (Method) is realizing.

이에, 본 발명에 따르면, 별도의 디지털서명(또는 인증서)을 활용하지 않는 OS 예컨대 리눅스 OS에서도, 파일시스템을 정상적으로 작동시키기 위해 필수적인 실행파일과 같은 중요 시스템파일을 정확하게 식별/판단해낼 수 있기 때문에, 중요 시스템파일이 악성코드로 오탐될 가능성을 회피할 수 있도록 하는 효과를 도출한다.Accordingly, according to the present invention, even in an OS that does not utilize a separate digital signature (or certificate), such as a Linux OS, it is possible to accurately identify/determine important system files, such as executable files, which are essential for operating the file system normally, It derives the effect of avoiding the possibility of false detection of important system files as malicious codes.

이로 인해, 본 발명을 리눅스 OS 기반의 IoT Embedded 장비에 적용할 경우, 중요 시스템파일이 악성코드로 오탐될 가능성을 회피하는 효과를 충분히 기대할 수 있을 것이다.For this reason, when the present invention is applied to an IoT Embedded device based on a Linux OS, an effect of avoiding the possibility that an important system file is falsely detected as a malicious code can be sufficiently expected.

물론, 이러한 본 발명은, 디지털서명(또는 인증서)을 활용하지 않는 OS 예컨대 리눅스 OS 뿐 아니라, 디지털서명(또는 인증서)을 활용하고 있는 OS(예: 윈도우 OS)에서도 적용 가능할 것이다.Of course, the present invention will be applicable not only to an OS that does not use a digital signature (or certificate), such as a Linux OS, but also to an OS (eg, a Windows OS) that uses a digital signature (or certificate).

이하에서는, 도 4를 참조하여, 본 발명의 일 실시예에 따른 중요파일 판단 방법을 보다 구체적으로 설명하도록 한다. 여기서, 설명의 편의를 위해 전술한 도 1에 도시된 구성은 해당 참조번호를 언급하여 설명하겠다. Hereinafter, a method of determining an important file according to an embodiment of the present invention will be described in more detail with reference to FIG. 4. Here, for convenience of explanation, the configuration illustrated in FIG. 1 will be described with reference to the corresponding reference number.

본 발명에 따른 중요파일 판단 방법에서, 시스템(100)은 중요 파일(이하, 중요 시스템파일)의 실행 특성 즉 파일시스템(150) 작동 시 자동으로 실행되는 특성을 기반으로, 파일시스템(150) 작동 시 자동으로 실행되는 파일들로 구성된 후보 파일리스트를 생성할 수 있다(S100).In the critical file determination method according to the present invention, the system 100 operates the file system 150 based on the execution characteristics of the important files (hereinafter, important system files), that is, the characteristics that are automatically executed when the file system 150 is operated. A candidate file list composed of files that are automatically executed at the time may be generated (S100).

구체적으로 설명하면, 시스템(100)은 init 프로세스 또는 systemD 프로세스로부터, 부팅 시 자동 실행되는 특성을 가지는 서비스 리스트를 1차 확인할 수 있고, 1차 확인한 서비스 리스트에서 서비스 Unit 필터링을 통해 기 정의된 중요 서비스명 만을 추출하는 2차 과정을 거쳐, 부팅 시 자동 실행되는 특성을 가지며 기 정의된 중요 서비스명과 매칭되는 서비스 리스트를 확인할 수 있다.Specifically, the system 100 may first check a list of services having characteristics that are automatically executed when booting from the init process or the systemD process, and pre-defined important services through service unit filtering in the first checked service list. Through the second process of extracting only the name, it has a characteristic that is automatically executed when booting, and a service list matching the predefined important service name can be checked.

그리고 시스템(100)은 전술과 같이 1,2차 과정을 거쳐 확인한 서비스 리스트 내 각 서비스 별로, 서비스 속성으로부터 파일 패스(Path)정보를 추출할 수 있다. In addition, the system 100 may extract file path information from service properties for each service in the service list checked through the first and second processes as described above.

예를 들면, 도 2에 도시된 바와 같이, 시스템(100)은 서비스 리스트 내 각 서비스 별로, init 프로세스 또는 systemD 프로세스로부터 서비스 속성 특히 서비스 ExecStart속성을 획득 및 확인하여, 각 서비스 별로 파일 패스정보를 추출할 수 있다.For example, as shown in FIG. 2, the system 100 obtains and checks the service attribute, especially the service ExecStart attribute, from the init process or the systemD process, for each service in the service list, and extracts file path information for each service. can do.

또한, 시스템(100)은 전술과 같이 1,2차 과정을 거쳐 확인한 서비스 리스트 내 각 서비스 별로, 서비스가 이용하는 공유 라이브러리를 확인할 수 있다. In addition, the system 100 may check the shared library used by the service for each service in the service list checked through the first and second processes as described above.

예를 들면, 도 2에 도시된 바와 같이, 시스템(100)은 서비스 리스트 내 각 서비스 별로 처출한 파일 패스정보를 기반으로, ldd 명령을 통해 각 서비스가 이용하는 공유 라이브러리(또는 종속 모듈(.so))를 추출/확인할 수 있다.For example, as shown in FIG. 2, the system 100 uses a shared library (or a subordinate module (.so)) used by each service through the ldd command, based on the file path information executed for each service in the service list. ) Can be extracted/checked.

이에, 시스템(100)은 앞서 추출 및 확인한 각 서비스의 파일 패스정보 및 공유 라이브러리를 이용하여, 파일시스템(150) 작동 시 자동으로 실행되는 파일 다시 말해 중요 시스템파일을 특정/식별할 수 있는 정보들로 구성된 후보 파일리스트를 생성할 수 있다(S100). Accordingly, the system 100 uses the file path information and shared library of each service extracted and checked above, and is a file that is automatically executed when the file system 150 operates, that is, information that can identify/identify important system files. A candidate file list composed of may be generated (S100).

그리고 본 발명에 따른 중요파일 판단 방법에서, 시스템(100)은 파일시스템(150)의 데이터 구조로부터 확인되는 파일 생성시점 및 파일 위치 중 적어도 하나를 근거로, 루트 파일시스템(root filesystem) 생성 시점에 생성된 파일을 식별할 수 있다(S110).And in the critical file determination method according to the present invention, the system 100 is based on at least one of the file creation time and the file location identified from the data structure of the file system 150, at the time of the root filesystem creation. The generated file can be identified (S110).

일 실시예에 따르면, 시스템(100)은 파일시스템(150)의 데이터 구조로부터, 블록 비트맵 및 I-노드 비트맵에서 파일 데이터가 가장 먼저 저장되는 가장 작은 블록 넘버 및 I-노드 넘버 중 적어도 하나의 생성시간을 확인한다.According to an embodiment, from the data structure of the file system 150, the system 100 includes at least one of a smallest block number and an I-node number in which file data is first stored in a block bitmap and an I-node bitmap. Check the creation time of.

그리고, 시스템(100)은 블록 비트맵 및 I-노드 비트맵으로부터, 상기 확인한 생성시간과 같은 생성시간을 가지며 기 설정된 임계 블록 넘버 및 I-노드 넘버 중 적어도 하나 보다 작은 넘버를 가지는 파일을 확인한다.In addition, the system 100 checks a file having a generation time equal to the identified generation time and a number smaller than at least one of a preset threshold block number and an I-node number from the block bitmap and the I-node bitmap. .

이에, 시스템(100)은 블록 비트맵 및 I-노드 비트맵에서 가장 작은 블록 넘버 및 I-노드 넘버 중 적어도 하나의 생성시간, 그리고 임계 블록 넘버 및 I-노드 넘버 중 적어도 하나 보다 작은 넘버를 가지는 것으로 확인되는 파일을, 루트 파일시스템 생성 시점에 생성된 파일로 식별할 수 있다(S110).Accordingly, the system 100 has a generation time of at least one of the smallest block number and I-node number in the block bitmap and the I-node bitmap, and a number less than at least one of the critical block number and the I-node number. The file identified as being identified may be identified as a file created at the time of creation of the root file system (S110).

이에, 본 발명에 따른 중요파일 판단 방법에서, 시스템(100)은 앞서 S100단계에서 생성한 후보 파일리스트에 속해있는 파일 중 S110단계에서 루트 파일시스템 생성 시점에 생성된 것으로 식별한 파일과 매칭되는 특정 파일을 중요 시스템파일로 판단할 수 있다(S120).Thus, in the critical file determination method according to the present invention, the system 100 is a specific file that is identified as being created at the time of creation of the root file system in step S110 among files belonging to the candidate file list created in step S100. The file may be determined as an important system file (S120).

이렇게 되면, 시스템(100)이 탑재된 사용자 디바이스(200)에서 수행되는 악성코드 진단 시, 중요 시스템파일으로 판단된 특정 파일에 대해서는 예외 처리되도록 할 수 있다(S140)In this case, when diagnosing malicious code performed by the user device 200 on which the system 100 is mounted, an exception can be made to a specific file determined as an important system file (S140).

이상과 같이, 본 발명의 일 실시예에 따르면, 중요파일 판단 시스템(100)은 파일시스템 부팅 시 자동 실행되는 속성의 파일들로 구성된 후보 파일리스트에서, 루트 파일시스템 생성 시점에 생성된 파일로 식별된 파일 만을 중요 파일 즉 식별/판단해내고자 하는 대상 파일인 중요 시스템파일로 판단할 수 있다.As described above, according to an embodiment of the present invention, the critical file determination system 100 identifies a file created at the time of creation of the root file system from a candidate file list consisting of files with attributes that are automatically executed when the file system is booted. Only the file can be determined as an important file, that is, an important system file that is the target file to be identified/determined.

더 나아가, 본 발명에서는 중요 시스템파일로 판단되는 파일 누락을 최소화하기 위해, 앞서 생성한 후보 파일리스트들에 속해있는 파일 외 파일을 추가로 중요 시스템파일로 판단하기 위한 단계 S130을 더 포함할 수 있다.Furthermore, in the present invention, in order to minimize the omission of a file determined as an important system file, a step S130 for additionally determining a file other than a file belonging to the previously generated candidate file list as an important system file may be further included. .

구체적으로 설명하면, 본 발명에 따른 중요파일 판단 방법에서, 시스템(100)은 기 보유하거나 시스템(100)이 탑재된 사용자 디바이스(200)에 보유된 패키지 배포 서버 리스트를 이용하여 각 서버에 대한 무결성 검증을 수행할 수 있다.Specifically, in the critical file determination method according to the present invention, the system 100 uses a package distribution server list that is already owned or held in the user device 200 on which the system 100 is mounted, Verification can be performed.

이에, 시스템(100)은 무결성 검증 수행을 통해 무결성이 검증된 서버들로 이루어진 패키지 배포 서버 리스트를 잠금 처리한다(S131).Accordingly, the system 100 locks a package distribution server list consisting of servers whose integrity has been verified through integrity verification (S131).

그리고 시스템(100)은 패키지 관리 프로그램에 의한 파일 생성 또는 파일 변경 로그를 감시하며(S132), 잠금 처리된 패키지 배포 서버 리스트로 인증되는 패키지 관리 프로그램에 의한 경우의 감시 결과를 근거로 화이트리스트를 생성한다(S133 Yes, S134).In addition, the system 100 monitors the file creation or file change log by the package management program (S132), and generates a white list based on the monitoring result in the case of the package management program authenticated with the locked package distribution server list. Do (S133 Yes, S134).

잠금 처리된 패키지 배포 서버 리스트로 인증되는 패키지 관리 프로그램은, 결국 무결성 검증된 서버로부터 배포된 패키지 관리 프로그램임을 의미한다.The package management program authenticated by the locked package distribution server list means that it is a package management program distributed from a server whose integrity has been verified.

즉, 시스템(100)은 무결성 검증된 서버로부터 배포된 패키지 관리 프로그램에 의한 생성 또는 변경이 발생하는 파일로 구성된 화이트리스트를 생성하는 것이다.That is, the system 100 generates a white list composed of files generated or changed by a package management program distributed from a server whose integrity has been verified.

이에, 본 발명에 따른 중요파일 판단 방법에서, 시스템(100)은 S134단계에서 생성한 화이트리스트에 속해있는 파일을 중요 파일 즉 중요 시스템파일로 추가 판단한다(S135).Accordingly, in the critical file determination method according to the present invention, the system 100 additionally determines the file belonging to the white list generated in step S134 as an important file, that is, an important system file (S135).

이렇게 되면, 시스템(100)이 탑재된 사용자 디바이스(200)에서 수행되는 악성코드 진단 시, 중요 시스템파일으로 판단된 특정 파일에 대해서는 예외 처리되도록 할 수 있다(S140)In this case, when diagnosing malicious code performed by the user device 200 on which the system 100 is mounted, an exception can be made to a specific file determined as an important system file (S140).

이상과 같이, 본 발명의 일 실시예에 따르면, 중요파일 판단 시스템(100)은 파일시스템 부팅 시 자동 실행되는 속성의 파일 중 루트 파일시스템 생성 시점에 생성된 파일을 식별하여 중요 시스템파일로 판단할 뿐 아니라, 더 나아가 무결성 검증된 패키지 관리 프로그램에 의해 생성 또는 변경된 파일 역시 중요 시스템파일로 판단할 수 있다.As described above, according to an embodiment of the present invention, the critical file determination system 100 identifies the file generated at the time of creation of the root file system among the files of attributes that are automatically executed when the file system is booted, and determines it as an important system file. In addition, further, files created or changed by the integrity-verified package management program can also be determined as important system files.

이상에서 설명한 바와 같이, 본 발명의 중요파일 판단 방법에 따르면, 별도의 디지털서명(또는 인증서)을 활용하지 않고, 악성코드 진단 시 예외 처리하여 오탐을 피해야만 하는 중요 시스템파일을 정확하게 식별/판단해낼 수 있는 새로운 방식의 중요파일 판단 기술(방법)을 실현하고 있다. As described above, according to the critical file determination method of the present invention, an exception is handled when diagnosing a malicious code without using a separate digital signature (or certificate) to accurately identify/determine important system files that must avoid false positives. It is realizing a new method of critical file judgment technology (method).

이에, 본 발명에 따르면, 별도의 디지털서명(또는 인증서)을 활용하지 않는 OS 예컨대 리눅스 OS에서도, 파일시스템을 정상적으로 작동시키기 위해 필수적인 실행파일과 같은 중요 시스템파일을 정확하게 식별/판단해낼 수 있기 때문에, 중요 시스템파일이 악성코드로 오탐될 가능성을 회피할 수 있도록 하는 효과를 도출한다.Accordingly, according to the present invention, even in an OS that does not utilize a separate digital signature (or certificate), such as a Linux OS, it is possible to accurately identify/determine important system files, such as executable files, which are essential for operating the file system normally, It derives the effect of avoiding the possibility of false detection of important system files as malicious codes.

본 발명의 실시예에 따르는 중요파일 판단 방법은, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method of determining an important file according to an embodiment of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded in the medium may be specially designed and configured for the present invention, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The above-described hardware device may be configured to operate as one or more software modules to perform the operation of the present invention, and vice versa.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, in the present invention, specific matters such as specific components, etc., and limited embodiments and drawings have been described, but this is provided only to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , If a person of ordinary skill in the field to which the present invention belongs, various modifications and variations are possible from these descriptions.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention is limited to the described embodiments and should not be defined, and all things that are equivalent or equivalent to the claims as well as the claims to be described later fall within the scope of the spirit of the present invention. .

100 : 중요파일 판단 시스템
110 : 리스트생성부 120 : 중요파일판단부
122 : 설치파일식별부 124 : 파일감시부
126 : 판단부 130 : 잠금처리부
100: important file judgment system
110: list generation unit 120: important file judgment unit
122: installation file identification unit 124: file monitoring unit
126: judgment unit 130: lock processing unit

Claims (13)

판단 대상이 되는 중요 파일의 실행 특성을 기반으로 후보 파일리스트를 생성하는 리스트생성단계; 및
상기 후보 파일리스트에 속해있는 파일 중 특정 파일 만을 상기 중요 파일로 판단하는 중요파일판단단계를 포함하며;
상기 중요파일판단단계는,
파일시스템의 데이터 구조로부터 확인되는 파일 생성시점 및 파일 위치 중 적어도 하나를 근거로, 루트 파일시스템(root filesystem) 생성 시점에 생성된 파일을 식별하고,
상기 후보 파일리스트에 속해있는 파일 중 상기 식별한 파일과 매칭되는 특정 파일을 상기 중요 파일로 판단하며,
상기 중요파일판단단계는,
I-노드로 식별되는 위치에 블록 단위로 파일을 저장하는 데이터 구조로부터, 블록 비트맵 및 I-노드 비트맵에서 파일 데이터가 가장 먼저 저장되는 가장 작은 블록 넘버 및 I-노드 넘버 중 적어도 하나의 생성시간을 확인하고,
블록 비트맵 및 I-노드 비트맵으로부터, 상기 확인한 생성시간과 같은 생성시간을 가지며 기 설정된 임계 블록 넘버 및 I-노드 넘버 중 적어도 하나 보다 작은 넘버를 가지는 파일을 확인하여, 상기 루트 파일시스템 생성 시점에 생성된 파일로 식별하는 것을 특징으로 하는 중요파일 판단 방법.
A list generation step of generating a candidate file list based on an execution characteristic of an important file to be determined; And
Including an important file determination step of determining only a specific file among the files belonging to the candidate file list as the important file;
The critical file determination step,
Based on at least one of the file creation time and file location identified from the data structure of the file system, the file created at the time of the root filesystem creation is identified,
A specific file matching the identified file among the files belonging to the candidate file list is determined as the important file,
The critical file determination step,
Creation of at least one of the smallest block number and I-node number in which file data is first stored in the block bitmap and the I-node bitmap from the data structure storing the file in block units at the location identified as the I-node. Check the time,
From the block bitmap and the I-node bitmap, a file having a generation time equal to the identified generation time and a number smaller than at least one of a preset threshold block number and an I-node number is identified, and the root file system creation time point Important file determination method, characterized in that identifying as a file created in the.
제 1 항에 있어서,
상기 중요 파일로 판단된 특정 파일에 대해서는, 악성코드 진단 시 예외 처리하는 단계를 더 포함하는 것을 특징으로 하는 중요파일 판단 방법.
The method of claim 1,
And processing an exception when diagnosing a malicious code with respect to the specific file determined as the important file.
제 1 항에 있어서,
패키지 관리 프로그램에 의한 파일 생성 또는 파일 변경 로그를 감시한 결과를 근거로, 상기 중요 파일을 추가로 판단하는 추가판단단계를 더 포함하는 것을 특징으로 하는 중요파일 판단 방법.
The method of claim 1,
And an additional determination step of additionally determining the important file based on a result of monitoring a file creation or file change log by a package management program.
제 1 항에 있어서,
상기 리스트생성단계는,
파일시스템 부팅 시 가장 먼저 생성되는 초기 프로세스로부터, 상기 부팅 시 자동 실행되는 특성을 가지며 기 정의된 중요 서비스명과 매칭되는 서비스 리스트를 확인하고,
상기 서비스 리스트 내 각 서비스 별로 서비스 속성으로부터 파일 패스(Path)정보를 추출하고,
상기 서비스 리스트 내 각 서비스 별로 이용하는 공유 라이브러리를 확인하고,
상기 각 서비스의 파일 패스정보 및 공유 라이러브리를 기반으로, 상기 후보 파일리스트를 생성하는 것을 특징으로 하는 중요파일 판단 방법.
The method of claim 1,
The list generation step,
From the initial process created first when the file system is booted, a service list that has a characteristic that is automatically executed at the time of booting and matches a predefined important service name is checked,
Extracting file path information from service attributes for each service in the service list,
Check the shared library used for each service in the service list,
And generating the candidate file list based on the file path information and the shared library of each service.
삭제delete 삭제delete 제 3 항에 있어서,
패키지 배포 서버 리스트를 근거로 각 서버에 대한 무결성을 검증한 후 무결성이 검증된 패키지 배포 서버 리스트를 잠금 처리하는 단계를 더 포함하며;
상기 추가판단단계는,
패키지 관리 프로그램에 의한 파일 생성 또는 파일 변경 로그를 감시하여, 상기 잠금 처리된 패키지 배포 서버 리스트로 인증되는 패키지 관리 프로그램에 의한 경우의 상기 감시 결과를 근거로 화이트리스트를 생성하고,
상기 화이트리스트의 파일을 상기 중요 파일로 판단하는 것을 특징으로 하는 중요파일 판단 방법.
The method of claim 3,
Further comprising verifying the integrity of each server based on the package distribution server list and then locking the package distribution server list whose integrity has been verified;
The additional judgment step,
By monitoring a file creation or file change log by a package management program, a white list is generated based on the monitoring result in the case of a package management program authenticated with the locked package distribution server list,
And determining the whitelisted file as the important file.
판단 대상이 되는 중요 파일의 실행 특성을 기반으로 후보 파일리스트를 생성하는 리스트생성부;
상기 후보 파일리스트에 속해있는 파일 중 특정 파일 만을 상기 중요 파일로 판단하는 중요파일판단부를 포함하며;
상기 중요파일판단부는,
파일시스템의 데이터 구조로부터 확인되는 파일 생성시점 및 파일 위치 중 적어도 하나를 근거로, 루트 파일시스템 생성 시점에 생성된 파일을 식별하는 설치파일식별부,
상기 후보 파일리스트에 속해있는 파일 중 상기 식별한 파일과 매칭되는 특정 파일을 상기 중요 파일로 판단하는 판단부를 포함하며,
상기 설치파일식별부는,
I-노드로 식별되는 위치에 블록 단위로 파일을 저장하는 데이터 구조로부터, 블록 비트맵 및 I-노드 비트맵에서 파일 데이터가 가장 먼저 저장되는 가장 작은 블록 넘버 및 I-노드 넘버 중 적어도 하나의 생성시간을 확인하고,
블록 비트맵 및 I-노드 비트맵으로부터, 상기 확인한 생성시간과 같은 생성시간을 가지며 기 설정된 임계 블록 넘버 및 I-노드 넘버 중 적어도 하나 보다 작은 넘버를 가지는 파일을 확인하여, 상기 루트 파일시스템 생성 시점에 생성된 파일로 식별하는 것을 특징으로 하는 중요파일 판단 시스템.
A list generation unit that generates a candidate file list based on the execution characteristics of the important file to be determined;
A critical file determination unit for determining only a specific file among files belonging to the candidate file list as the important file;
The important file determination unit,
An installation file identification unit that identifies a file created at the time of creation of the root file system, based on at least one of the file creation time and file location identified from the data structure of the file system,
And a determination unit for determining a specific file matching the identified file among the files belonging to the candidate file list as the important file,
The installation file identification unit,
Creation of at least one of the smallest block number and I-node number in which file data is first stored in the block bitmap and the I-node bitmap from the data structure storing the file in block units at the location identified as the I-node. Check the time,
From the block bitmap and the I-node bitmap, a file having a generation time equal to the identified generation time and a number smaller than at least one of a preset threshold block number and an I-node number is identified, and the root file system creation time point An important file determination system, characterized in that identifying as a file created in the.
제 8 항에 있어서,
상기 중요파일판단부는,
패키지 관리 프로그램에 의한 파일 생성 또는 파일 변경 로그를 감시한 결과를 근거로, 상기 중요 파일을 추가로 판단하는 것을 특징으로 하는 중요파일 판단 시스템.
The method of claim 8,
The important file determination unit,
An important file determination system, further determining the important file based on a result of monitoring a file creation or a file change log by a package management program.
제 8 항에 있어서,
상기 리스트생성부는,
파일시스템 부팅 시 가장 먼저 생성되는 초기 프로세스로부터, 상기 부팅 시 자동 실행되는 특성을 가지며 기 정의된 중요 서비스명과 매칭되는 서비스 리스트를 확인하고,
상기 서비스 리스트 내 각 서비스 별로 서비스 속성으로부터 파일 패스정보를 추출하고,
상기 서비스 리스트 내 각 서비스 별로 이용하는 공유 라이브러리를 확인하고,
상기 각 서비스의 파일 패스정보 및 공유 라이러브리를 기반으로, 상기 후보 파일리스트를 생성하는 것을 특징으로 하는 중요파일 판단 시스템.
The method of claim 8,
The list generation unit,
From the initial process created first when the file system is booted, a service list that has a characteristic that is automatically executed at the time of booting and matches a predefined important service name is checked,
Extracting file path information from service attributes for each service in the service list,
Check the shared library used for each service in the service list,
An important file determination system, comprising generating the candidate file list based on the file path information and the shared library of each service.
삭제delete 제 9 항에 있어서,
패키지 배포 서버 리스트를 근거로 각 서버에 대한 무결성을 검증한 후 무결성이 검증된 패키지 배포 서버 리스트를 잠금 처리하는 잠금처리부를 더 포함하며;
상기 중요파일판단부는,
패키지 관리 프로그램에 의한 파일 생성 또는 파일 변경 로그를 감시하여, 상기 잠금 처리된 패키지 배포 서버 리스트로 인증되는 패키지 관리 프로그램에 의한 경우의 상기 감시 결과를 근거로 화이트리스트를 생성하는 파일감시부,
상기 화이트리스트에 속해있는 파일을 상기 중요 파일로 판단하는 판단부를 포함하는 것을 특징으로 하는 중요파일 판단 시스템.
The method of claim 9,
Further comprising a locking processing unit for locking the package distribution server list whose integrity has been verified after verifying the integrity of each server based on the package distribution server list;
The important file determination unit,
A file monitoring unit that monitors a file creation or file change log by a package management program, and generates a white list based on the monitoring result in the case of a package management program authenticated with the locked package distribution server list,
And a determination unit that determines a file belonging to the white list as the important file.
제 1 항 내지 제 4 항 및 제 7 항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium recording a program for performing the method of any one of claims 1 to 4 and 7.
KR1020190030760A 2019-03-18 2019-03-18 Detection system and detection method for important file KR102218799B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190030760A KR102218799B1 (en) 2019-03-18 2019-03-18 Detection system and detection method for important file

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190030760A KR102218799B1 (en) 2019-03-18 2019-03-18 Detection system and detection method for important file

Publications (2)

Publication Number Publication Date
KR20200111031A KR20200111031A (en) 2020-09-28
KR102218799B1 true KR102218799B1 (en) 2021-02-23

Family

ID=72801114

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190030760A KR102218799B1 (en) 2019-03-18 2019-03-18 Detection system and detection method for important file

Country Status (1)

Country Link
KR (1) KR102218799B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060253712A1 (en) * 2003-05-13 2006-11-09 Francois-Dominique Armingaud System for real-time healing of vital computer files

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101392822B1 (en) * 2012-10-08 2014-05-09 주식회사 안랩 Computer system and whitelist using method thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060253712A1 (en) * 2003-05-13 2006-11-09 Francois-Dominique Armingaud System for real-time healing of vital computer files

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Sandeep Romana et al, "Practical Application Whitelisting", Journal of Information Assurance & Security, Vol. 10(2015.)

Also Published As

Publication number Publication date
KR20200111031A (en) 2020-09-28

Similar Documents

Publication Publication Date Title
US5680547A (en) Method and apparatus for controlling network and workstation access prior to workstation boot
US11580216B2 (en) Credential safety management for software containers
US10871955B2 (en) System and method for providing firmware data updates
KR101122787B1 (en) Security-related programming interface
EP2077499B1 (en) Method, article of manufacture and system for assigning security ratings and enforcing minimum security requirements during virtual machine failover.
US7624283B2 (en) Protocol for trusted platform module recovery through context checkpointing
US7506380B2 (en) Systems and methods for boot recovery in a secure boot process on a computer with a hardware security module
JP5745061B2 (en) Authenticating the use of interactive components during the boot process
US20060161784A1 (en) Systems and methods for updating a secure boot process on a computer with a hardware security module
US20070230504A1 (en) Generating a chain of trust for a virtual endpoint
US7526677B2 (en) Fragility handling
US20210382739A1 (en) Partially Privileged Lightweight Virtualization Environments
RU2666645C1 (en) System and method for providing safe system configuration change
US20050005101A1 (en) Kernel cryptographic module signature verification system and method
US7784101B2 (en) Identifying dependencies of an application upon a given security context
US20130219499A1 (en) Apparatus and method for providing security for virtualization
US7779480B2 (en) Identifying dependencies of an application upon a given security context
JP2008305377A (en) System and method for intrusion protection of network storage
US20070006323A1 (en) Identifying dependencies of an application upon a given security context
KR102218799B1 (en) Detection system and detection method for important file
RU2708355C1 (en) Method of detecting malicious files that counteract analysis in isolated environment
WO1996013002A1 (en) Method and apparatus for controlling network and workstation access prior to workstation boot
RU2702053C1 (en) Method of reducing load on scanning subsystem by deduplicating file scanning
RU2638735C2 (en) System and method of optimizing anti-virus testing of inactive operating systems
CN111258805B (en) Hard disk state monitoring method and device for server and computer device

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant