KR102426504B1 - System and method for detecting malicious code - Google Patents
System and method for detecting malicious code Download PDFInfo
- Publication number
- KR102426504B1 KR102426504B1 KR1020200152827A KR20200152827A KR102426504B1 KR 102426504 B1 KR102426504 B1 KR 102426504B1 KR 1020200152827 A KR1020200152827 A KR 1020200152827A KR 20200152827 A KR20200152827 A KR 20200152827A KR 102426504 B1 KR102426504 B1 KR 102426504B1
- Authority
- KR
- South Korea
- Prior art keywords
- diagnosis
- malicious code
- information block
- behavior information
- behavior
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 진단대상 파일의 악성코드 감염 여부를 진단하는 악성코드 진단시스템에 관한 것으로, 악성코드 진단시스템은 진단대상 파일의 각 프로세스에서 실행되는 행위에 관한 행위정보를 특정 크기의 블록 단위로 차례로 추출하여, 추출된 블록 단위의 행위정보 블록을 차례로 진단서버로 전송하는 하나 이상의 사용자 단말과, 사용자 단말로부터 수신한 행위정보 블록을 이전에 수신한 행위정보 블록과 조합하여, 조합된 행위정보 블록에 대해 악성코드 감염 여부 진단을 하는 진단서버를 포함하여 이루어진다.The present invention relates to a malicious code diagnosis system for diagnosing whether a file to be diagnosed is infected with malicious code, and the system for diagnosing a malicious code sequentially extracts behavior information on an action executed in each process of a file to be diagnosed in blocks of a specific size. Thus, one or more user terminals that sequentially transmit the extracted block-by-block behavior information block to the diagnosis server, and the behavior information block received from the user terminal are combined with the previously received behavior information block for the combined behavior information block It consists of a diagnostic server that diagnoses whether or not a malicious code is infected.
Description
본 발명은 컴퓨터 파일의 악성코드 감염 여부를 진단하는 악성코드 진단시스템 및 진단방법에 관한 것이다.The present invention relates to a malicious code diagnosis system and a diagnostic method for diagnosing whether a computer file is infected with malicious code.
웹페이지 검색시나 불법복제 프로그램의 사용, 해커에 의한 직접 설치나 전자우편의 첨부파일 또는 메신저파일 등을 통해 개인용 컴퓨터(personal computer)나 범용 컴퓨터(general purpose computer) 또는 휴대통신 단말기 등(이하, 본 명세서에서는 이들을 통칭하여 「사용자 단말」이라 한다)에 침입하여 네트워크 트래픽의 발생, 시스템의 성능 저하, 파일 삭제, 개인정보 유출 등 이른바 악성코드에 의한 피해가 급증하고 있고, 이에 수반하여 파일의 악성코드 감염 여부를 진단하는 악성코드 진단기술도 다양한 형태로 발전하고 있다.A personal computer, general purpose computer, or mobile communication terminal, etc. (hereinafter referred to as this In the specification, they are collectively referred to as “user terminals”) and the damage caused by so-called malicious codes such as network traffic generation, system performance degradation, file deletion, and personal information leakage is rapidly increasing, and accompanying this, malicious code of files Malicious code diagnosis technology for diagnosing infection is also developing in various forms.
이와 같은 악성코드 진단기술의 하나로 악성코드를 별도의 가상 머신(virtual machine) 또는 하드웨어에 실행시켜서 정해진 시간 동안 행위정보를 추출하여 어떤 파일이 실제로 악성코드에 감염되었는가 여부(이하에서는 간단하게 「악성코드 감염 여부」로 기재하는 경우도 있다)를 진단(이하에서는 간단하게 「악성코드 감염 여부 진단」으로 기재하는 경우도 있다)하는 방법이 공지되어 있다(예를 들어 특허문헌 1).As one of such malicious code diagnosis technologies, the malicious code is executed on a separate virtual machine or hardware to extract behavior information for a set period of time to determine which files are actually infected with the malicious code (hereafter simply “Malware Code”). There is a known method of diagnosing (sometimes referred to as "infection or not") (hereinafter, simply referred to as "diagnosis of whether or not a malicious code is infected") (for example, Patent Document 1).
그러나 이들 종래의 방법에 의하면 악성코드 감염 여부의 진단을 위해 별도의 가상 머신(virtual machine)이나 하드웨어가 필요하고, 또, 파일의 악성코드 감염 여부 진단을 위한 행위정보 추출을 위해서는 이 가상 머신(virtual machine) 또는 하드웨어에서 실행시킬 악성코드 감염 여부 진단이 필요한 파일 전체를 진단서버에 전송하여야 하며, 진단서버는 수신한 파일 전체를 가상 머신(virtual machine) 또는 하드웨어 상에서 실행하여 수신한 파일 전체에 대해 악성코드 감염 여부를 진단하고 그 결과를 사용자 단말 측으로 피드백하여야 하므로, 악성코드 감염 여부의 진단에 상당한 시간이 소요되며, 따라서 실시간 진단이 사실상 어렵다는 등의 문제도 있다.However, according to these conventional methods, a separate virtual machine or hardware is required for diagnosing whether a file is infected with a malicious code, and in order to extract behavior information for diagnosing whether a file is infected with a malicious code, machine) or hardware, the entire file that needs to be diagnosed with malicious code to be executed must be transmitted to the diagnosis server, and the diagnosis server executes the entire received file on a virtual machine or hardware, Since it is necessary to diagnose whether or not the code is infected and the result is fed back to the user terminal, it takes a considerable amount of time to diagnose whether or not the malicious code is infected.
본 발명은 종래기술의 상기 문제를 감안하여 이루어진 것으로, 단말 측은 악성코드 감염 여부 진단이 필요한 진단대상 파일(이하, 간단하게 「진단대상 파일」로 기재하는 경우도 있다)의 프로세스별 행위정보를 특정 블록 단위로 추출하여 유지하고, 추출한 행위정보 블록 내에 악성행위 진단요건을 만족하는 행위가 포함되어 있으면 그 행위정보 블록을 진단서버로 전송하며, 진단서버는 단말 측으로부터 수신한 행위정보 블록을 이전에 수신한 행위정보 블록과 조합하여 악성코드 감염 여부 진단을 하도록 함으로써 가능한 한 실시간 진단에 가까운 정도로 진단시간을 단축할 수 있는 악성코드 진단시스템 및 진단방법을 제공하는 것을 목적으로 한다.The present invention has been made in view of the above problems of the prior art, and the terminal specifies behavior information for each process of a diagnosis target file (hereinafter, simply referred to as "diagnosis target file") requiring a diagnosis of whether or not a malicious code is infected. It is extracted and maintained in block units, and if the extracted behavior information block contains an action satisfying the malicious behavior diagnosis requirements, the behavior information block is transmitted to the diagnosis server, and the diagnosis server transmits the behavior information block received from the terminal before. The purpose of the present invention is to provide a malicious code diagnosis system and diagnosis method that can reduce the diagnosis time to as close as possible to real-time diagnosis by allowing the diagnosis of malicious code infection in combination with the received behavior information block.
상기 과제를 해결하기 위한 악성코드 탐지시스템은 진단대상 파일의 악성코드 감염 여부를 진단하는 악성코드 진단시스템으로, 상기 진단대상 파일의 각 프로세스에서 실행되는 행위에 관한 행위정보를 특정 크기의 블록 단위로 추출하여 행위정보 블록을 순차 생성하고, 상기 생성된 행위정보 블록 내의 행위 중 적어도 하나 이상의 행위에 미리 설정된 악성행위 진단요건에 해당하는 행위가 포함되어 있는 행위정보 블록을 차례로 진단서버로 전송하는 하나 이상의 사용자 단말과, 상기 사용자 단말로부터 수신한 상기 행위정보 블록을 이전에 수신한 행위정보 블록과 조합하여, 조합된 행위정보 블록에 대해 악성코드 감염 여부 진단을 하는 진단서버를 포함한다.The malicious code detection system for solving the above problem is a malicious code diagnosis system for diagnosing whether a file to be diagnosed is infected with malicious code. One or more steps for sequentially generating behavior information blocks by extracting them, and sequentially transmitting behavior information blocks including behaviors corresponding to the malicious behavior diagnosis requirements set in advance in at least one behavior among the behaviors in the generated behavior information blocks to the diagnosis server and a user terminal and a diagnosis server that combines the behavior information block received from the user terminal with the previously received behavior information block, and diagnoses whether the combined behavior information block is infected with malicious code.
또, 상기 과제를 해결하기 위한 악성코드 탐지방법은 사용자 단말과 진단서버로 이루어지는 진단시스템에 의해 상기 사용자 단말에서 실행되는 진단대상 파일의 악성코드 감염 여부를 진단하는 악성코드 진단방법으로, 상기 사용자 단말은, 상기 진단대상 파일의 시스템 API를 모니터링 하고, 상기 시스템 API가 모니터링 되면 모니터링 된 시스템 API를 일정 단위로 블록화하여 행위정보 블록을 순차 생성하며, 상기 행위정보 블록이 생성될 때마다 생성된 행위정보 블록 내의 행위 중 적어도 하나 이상의 행위에 미리 설정된 악성행위 진단요건에 해당하는 행위가 포함되어 있는가 여부를 판단하고, 상기 미리 설정된 악성행위 진단요건에 해당하는 행위가 포함되어 있는 행위정보 블록을 상기 진단서버로 전송하여 악성코드 감염 여부 진단을 요청하고, 상기 진단서버는, 상기 사용자 단말로부터 행위정보 블록이 수신되면 수신한 행위정보 블록을 그전에 수신한 행위정보 블록과 조합하여 조합된 행위정보 블록을 생성하고, 상기 조합된 행위정보 블록에 대해 상기 악성코드 감염 여부 진단을 실행한다.In addition, the malicious code detection method for solving the above problem is a malicious code diagnosis method for diagnosing whether a diagnosis target file executed in the user terminal is infected with a malicious code by a diagnostic system comprising a user terminal and a diagnostic server, wherein the user terminal monitors the system API of the diagnosis target file, and when the system API is monitored, blocks the monitored system API in a predetermined unit to sequentially generate behavior information blocks, and whenever the behavior information blocks are generated, the generated behavior information It is determined whether at least one of the actions in the block includes an action corresponding to a preset malicious behavior diagnosis requirement, and a behavior information block including an action corresponding to the preset malicious behavior diagnosis requirement is sent to the diagnosis server to request a diagnosis of malicious code infection, and the diagnosis server generates a combined behavior information block by combining the received behavior information block with the previously received behavior information block when the behavior information block is received from the user terminal, , to diagnose whether the malicious code is infected with the combined behavior information block.
본 발명에 의하면 사용자 단말에서 실행되는 진단대상 파일의 프로세스를 일정 단위의 행위정보 블록 단위로 블록화하고, 행위정보 블록이 생성될 때마다 그 이전에 생성된 행위정보 블록과 조합하여 악성코드 감염 여부 진단을 실행하도록 하고 있으므로 실시간 진단에 가까운 정도로 진단시간을 단축할 수 있다.According to the present invention, the process of the diagnosis target file executed in the user terminal is blocked in units of behavior information blocks of a certain unit, and whenever a behavior information block is generated, it is combined with the previously generated behavior information block to diagnose whether a malicious code is infected. Since it is designed to execute the diagnosis, it is possible to shorten the diagnosis time to the extent that it is close to real-time diagnosis.
도 1은 본 발명의 바람직한 실시형태의 악성코드 진단시스템의 개략적인 구성을 나타내는 시스템 블록도,
도 2는 사용자 단말의 구성을 나타내는 블록도,
도 3은 탐지서버의 구성을 나타내는 블록도,
도 4는 본 발명의 바람직한 실시형태의 악성코드 진단방법의 흐름을 나타내는 플로차트이다.1 is a system block diagram showing a schematic configuration of a malicious code diagnosis system according to a preferred embodiment of the present invention;
2 is a block diagram showing the configuration of a user terminal;
3 is a block diagram showing the configuration of a detection server;
4 is a flowchart showing the flow of a malicious code diagnosis method according to a preferred embodiment of the present invention.
이하, 본 발명의 바람직한 실시형태의 악성코드 진단시스템 및 진단방법에 대해 첨부 도면을 참조하면서 상세하게 설명한다.Hereinafter, a malicious code diagnosis system and a diagnosis method according to a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings.
먼저, 본 발명의 바람직한 실시형태의 악성코드 진단시스템의 구성에 대해서 도 1 내지 3을 참조하면서 설명한다. 도 1은 본 발명의 바람직한 실시형태의 악성코드 진단시스템의 개략적인 구성을 나타내는 시스템 블록도, 도 2는 사용자 단말의 구성을 나타내는 블록도, 도 3은 탐지서버의 구성을 나타내는 블록도이다.First, the configuration of a malicious code diagnosis system according to a preferred embodiment of the present invention will be described with reference to FIGS. 1 to 3 . Fig. 1 is a system block diagram showing the schematic configuration of a malicious code diagnosis system according to a preferred embodiment of the present invention, Fig. 2 is a block diagram showing the configuration of a user terminal, and Fig. 3 is a block diagram showing the configuration of a detection server.
도 1에 나타내는 것과 같이, 본 발명의 바람직한 실시형태의 악성코드 진단시스템은 하나 이상의 사용자 단말(10)이 통신망(50)을 경유하여 진단서버(30)와 서로 통신 가능하게 접속되어 있다.As shown in FIG. 1 , in the malicious code diagnosis system according to the preferred embodiment of the present invention, one or
사용자 단말(10)은 데스크 탑이나 노트북과 같은 개인용 컴퓨터, 사무용이나 과학용 또는 제어용 등의 용도로 사용되는 범용 컴퓨터(general purpose computer), 또는, 예를 들어 스마트폰과 같은 휴대통신용 단말기 등일 수 있고, 본 발명에서 악성코드 감염 여부 진단의 대상이 되는 하나 이상의 진단대상 파일을 기억장치에 저장하고 있다. 그러나 진단대상 파일은 사용자 단말(10)의 기억장치에 저장된 파일에만 한정되는 것은 아니며, 예를 들어 전자메일 등과 같이 외부로부터 사용자 단말(10)로 입력되는 파일 등도 포함하여 당해 사용자 단말(10)에서 실행되는 모든 파일이 진단대상 파일이 될 수 있다. 또, 본 명세서에서 파일은 프로그램 파일과 데이터 파일을 모두 포함하는 의미로 사용한다.The
도 2에 나타내는 것과 같이, 사용자 단말(10)은 악성코드 감염 여부 진단의 대상이 되는 진단대상 파일이 실행되는 곳이며, 예를 들어 어떤 프로그램의 오픈, 네트워크 통신, 실행 등과 같은 각각의 프로세스에서 실행되는 행위에 관한 행위정보를 특정 크기의 블록 단위로 차례로 추출하여 관리하고, 추출된 행위정보 블록 내의 행위 중 어느 하나 이상의 행위에 특정한 조건을 만족하는 행위가 포함되어 있으면 그 행위정보 블록을 후술하는 진단서버(30)로 전송한다.As shown in FIG. 2 , the
이를 위해 사용자 단말(10)은 실시간 프로세스 행위 추적부(11)를 포함한다. 실시간 프로세스 행위 추적부(11)는 사용자 단말(10)에서 실행되는 프로세스에 대한 각종 행위정보(예를 들어, 도 2의 프로세스 n에 대한 시스템 API(application programming interface : system call 및 system library API 등))를 모니터링 하고, 모니터링 된 행위정보를 일정 단위로 블록화하여 사용자 단말(10)의 메모리(미 도시) 등에 큐(queue) 형태로 유지 관리한다.To this end, the
여기서, 행위정보는 사용자 단말(10)에서 어떤 프로그램을 실행하기(동작하기) 위해 OS(operating system)에서 제공되는 시스템 API(system application programming interface : system call 및 system library API 등)의 호출 순서 및 횟수 또는 프로그램의 실행(동작)에 연계되어 이루어지는 새로운 프로그램의 실행 또는 그 산출물(예를 들어 악성코드 감염, 데이터 생성 등) 등을 의미한다.Here, the behavior information is the order and number of calls of a system API (system application programming interface: system call and system library API, etc.) provided by an operating system (OS) to execute (operate) a certain program in the
또, 실시간 프로세스 행위 추적부(11)는 블록화된 행위정보 중에 악성코드 감염 여부 진단을 위해 추출된 행위정보 블록을 진단서버(30)에 전송하기 위한 조건(이하에서는 「악성행위 진단요건」이라고 하는 경우도 있다)에 해당하는 행위가 포함되어 있으면 그 행위정보 블록을 통신망(50)을 통해서 진단서버(30)에 전송한다.In addition, the real-time process
이를 위해 실시간 프로세스 행위 추적부(11)는 하나의 블록이 모니터링 될 때마다 블록화된 행위정보 중에 악성행위 진단요건에 해당하는 행위가 포함되어 있는가 여부를 판단하고, 블록화된 행위정보 중에 악성행위 진단요건에 해당하는 행위가 포함되어 있으면 그 블록을 진단서버(30)로 전송한다.To this end, the real-time process
도 2에서는 프로세스 n의 행위정보를 그 순서에 따라서 블록화한 예를 나타내고 있고, 프로세스 n의 행위정보 중 행위(시스템 API) A-B-C를 블록 1, …, 행위 U-V-W를 블록 m-1, 행위 X-Y-Z를 블록 m으로 각각 블록화하고 있다. 또, 도 2에 도시된 예에서는 적색으로 표시된 행위, 즉 블록 1에서는 행위 A, B, C 중 적색으로 표시된 C, 블록 m-1에서는 행위 W가, 블록 m에서는 행위 Z가 각각 악성행위 진단요건에 해당하는 행위인 것으로 하고 있다.2 shows an example in which the behavior information of process n is block according to the order, and among the behavior information of process n, behaviors (system API) A-B-C are shown in blocks 1, ... , actions U-V-W are block m-1 and actions X-Y-Z are block m, respectively. In addition, in the example shown in FIG. 2 , the actions indicated in red, that is, in block 1, among actions A, B, and C, C marked in red, action W in block m-1, and action Z in block m, respectively, are diagnostic requirements for malicious behavior. It is considered to be an act corresponding to
상기 악성행위 진단요건에 해당하는 행위는 경험칙 등에 의해 적절하게 설정할 수 있으며, 윈도(Window) OS에서 악성행위 진단요건은 예를 들어 다음 표 1과 같은 행위들일 수 있다.The behavior corresponding to the malicious behavior diagnosis requirement may be appropriately set by empirical rules, and the malicious behavior diagnosis requirement in the Windows OS may be, for example, the behaviors shown in Table 1 below.
Process
Process
NtOpenProcess
NtTerminateProcess
…NtCreateProcess
NtOpenProcess
NtTerminateProcess
…
NtTerminateThread
NtSuspendThread
…NtCreateThread
NtTerminateThread
NtSuspendThread
…
NtReadVirtualMemory
NtWriteVirtualMemory
…NtAllocateVirtualMemory
NtReadVirtualMemory
NtWriteVirtualMemory
…
NtDeleteFile
NtWriteFile
NtDeleteFile
…NtCreateFile
NtDeleteFile
NtWriteFile
NtDeleteFile
…
NtDeleteKey
NtSetValueKey
…NtCreateKey
NtDeleteKey
NtSetValueKey
…
WSAConnect
WSASend
WSARecv
…WSASocket
WSAConnect
WSASend
WSARecv
…
DeleteService
StartService
…CreateService
DeleteService
StartService
…
…LoadLibrary
…
사용자 단말(10)의 동작을 요약 정리하면, 실시간 프로세스 행위 추적부(11)는 진단대상 파일의 프로세스 중 예를 들어 프로세스 n의 실행에 따라서 순차 실행되는 일련의 행위(예를 들어 A-B-C … U-V-W-X-Y-Z)를 각각의 행위가 진행되는 순서에 따라서 일정한 단위(도 2에서는 블록 1, …, 블록 m-1, 블록 m)로 블록화하여 큐 형태로 유지 관리하는 동시에, 블록화된 행위정보의 개별 블록에 악성행위 진단요건에 해당하는 행위가 포함되어 있는가 여부를 판단한다. 도 2의 예의 블록 1에서는 C 행위, …, 블록 m-1에서는 W 행위, 블록 m에서는 Z 행위가 포함되어 있으므로, 실시간 프로세스 행위 추적부(11)는 블록 1의 블록화가 끝나면 블록 1을 진단서버(30)로 전송하고, …, 블록 m-1의 블록화가 끝나면 블록 m-1을 진단서버(30)로 전송하며, 마찬가지로 블록 m의 블록화가 끝나면 블록 m을 진단서버(30)로 전송한다. 이때, 사용자 단말(10)은 진단서버(30)로 전송된 행위정보 블록은 폐기해도 좋고, 자체 기억장치에 저장하여 유지해도 좋다.Summarizing the operation of the
또, 실시간 프로세스 행위 추적부(11)는 행위정보 블록 전송 시에 전송되는 행위정보(이들 정보는 동적 정보이다)에 대한 메모리 정보, 파일 정보, 인자 정보와 같은 정적 정보도 함께 전송해도 좋으며, 이와 같이 함으로써 진단서버(30)에 의한 악성코드 감염 여부 진단을 더 용이하게 할 수 있다.In addition, the real-time process
진단서버(30)는 사용자 단말(10)로부터 전송되어 온 블록 단위의 행위정보를 유지 관리하는 동시에, 이전에 전송되어 온 행위정보와 조합하여 악성코드 감염 여부 진단을 실행한다.The
이를 위해 진단서버(30)는 행위정보 블록 조합부(31)와 행위정보 가공부(33) 및 진단부(35)를 포함한다.To this end, the
행위정보 블록 조합부(31)는 사용자 단말(10)의 실시간 프로세스 행위 추적부(11)로부터 수신한 행위정보 블록을 미 도시의 메모리 등의 기억장치에 기록하여 유지 관리하는 동시에, 이전에 수신한 행위정보 블록과 조합하여 조합된 행위정보를 행위정보 가공부(33)로 보낸다.The behavior information
수신한 행위정보 블록의 유지 관리는 예를 들어 단말 별로, 또, 각 단말의 프로세스별로, 또한, 메모리 정보, 파일 정보, 인자 정보와 같은 정적정보 등도 참조하여 이루어진다. 따라서 행위정보 블록의 조합 시에 이들 정보를 이용하도록 함으로써 조합하려고 하는 행위정보 블록이 어느 단말의 어떤 프로세스에 대한 행위정보인가를 용이하게 식별할 수 있다.Maintenance of the received behavior information block is performed, for example, for each terminal, for each process of each terminal, and also with reference to static information such as memory information, file information, and factor information. Therefore, by using these information when combining the behavior information blocks, it is possible to easily identify the behavior information block to be combined is the behavior information for which process of which terminal.
행위정보 가공부(33)는 행위정보 블록 조합부(31)로부터 수신한 조합된 행위정보 블록을 악성코드 감염 여부 진단이 용이하도록 가공하여 가공된 행위정보 블록을 진단부(35)로 보낸다.The behavior
행위정보의 가공, 즉, 데이터 전처리는 기존의 데이터를 머신 러닝 알고리즘(Machine Learning Algorithm)에 알맞은 데이터로 바꾸는 과정이며, 이와 같은 데이터 전처리 과정을 통해서 모델 학습의 성능을 더 높일 수 있다.The processing of behavioral information, that is, data preprocessing, is a process of replacing existing data with data suitable for a machine learning algorithm, and the performance of model learning can be further improved through this data preprocessing process.
데이터 전처리 과정의 상세에 대해서는 「효율적인 기계학습을 위한 데이터 전처리」, 김동현 외, 한국컴퓨터정보학회 동계학술대회 논문집 제27권 제1호, 2019. 1. 및 「머신러닝(3)-데이터 전처리」, https://davinci-ai.tistory.com/15를 참고하면 좋으며, 본 명세서에서는 상세한 설명은 생략한다.For details of the data preprocessing process, see 「Data Preprocessing for Efficient Machine Learning」, Donghyun Kim et al., Proceedings of the Winter Conference of the Korean Society of Computer Information and Information Science, Vol. 27 No. 1, 2019. 1. and 「Machine Learning (3)-Data Preprocessing」 , https://davinci-ai.tistory.com/15 may be referred to, and detailed descriptions are omitted herein.
진단부(35)는 행위정보 가공부(33)로부터 수신한 조합된 행위정보 블록을 이용하여 악성코드 감염 여부를 진단하고, 진단결과를 사용자 단말(10)로 전송한다. 진단부(35)에 의한 진단방법은 공지의 방법을 이용할 수 있으며, 본 명세서에서는 악성코드 감염 여부를 진단하는 진단방법의 상세한 설명은 생략한다.The
통신망(50)은 사용자 단말(10)과 진단서버(30)를 서로 통신 가능하게 접속하는 통신망이면 유선통신망 또는 무선통신망 중 어느 것이라도 좋다.The
본 발명에 의한 악성코드 감염 여부의 진단과정에서, 사용자 단말(10)의 실시간 프로세스 행위 추적부(11)는 개개의 행위정보 블록이 생성될 때마다, 그 행위정보 블록이 생성되는 순서대로 진단서버(30)의 행위정보 블록 조합부(31)로 전송한다.In the process of diagnosing whether or not a malicious code has been infected according to the present invention, the real-time process
또, 진단서버(30)의 행위정보 블록 조합부(31)에 의한 행위정보 블록의 조합은 사용자 단말(10)로부터 행위정보 블록이 수신될 때마다 이루어지고, 또한, 행위정보 가공부(33)에 의한 가공(데이터 전처리)은 행위정보 가공부(33)가 행위정보 블록 조합부(31)로부터 조합된 행위정보 블록을 수신할 때마다 이루어진다. 또, 진단부(35)에 의한 악성코드 감염 여부 진단도 진단부(35)가 행위정보 가공부(33)로부터 가공된 행위정보 블록을 수신할 때마다 이루어지고, 진단 결과의 사용자 단말(10)로의 전송도 진단부(35)에 의한 진단이 이루어질 때마다 실행된다.In addition, the combination of the behavior information block by the behavior information
따라서 본 발명에 의하면 실시간에 가까울 정도로 신속한 악성코드 진단이 이루어질 수 있다.Therefore, according to the present invention, it is possible to quickly diagnose malicious code close to real time.
이어서, 본 발명의 바람직한 실시형태의 악성코드 진단시스템에 의한 악성코드 감염 여부 진단방법에 대해서 설명한다. 도 4는 본 발명의 바람직한 실시형태의 악성코드 진단방법의 흐름을 나타내는 플로차트이다.Next, a method for diagnosing whether a malicious code is infected by a malicious code diagnosis system according to a preferred embodiment of the present invention will be described. 4 is a flowchart showing the flow of a malicious code diagnosis method according to a preferred embodiment of the present invention.
먼저, 단계 S11에서 사용자 단말(10)의 실시간 프로세스 행위 추적부(11)는 진단대상 파일의 프로세스의 시스템 API를 모니터링 하며, 그 결과 시스템 API가 모니터링 되면 단계 S12에서 시스템 API를 일정 단위로 블록화하여 행위정보 블록을 생성한다. 이어서 단계 S13으로 진행하여 블록화된 행위정보 블록을 큐 형태로 사용자 단말(10)에 저장한다.First, in step S11, the real-time process
이어서 단계 S14에서, 실시간 프로세스 행위 추적부(11)는 행위정보 블록에 악성행위 진단을 위해 그 행위정보 블록을 진단서버(30)로 전송하여 악성코드 진단을 요청하기 위한 요건(이하 간단하게 「악성행위 진단요건」이라고 하는 경우도 있다), 예를 들어 표 1의 각 요건 중 어디에 해당하는 행위가 포함되어 있는가 여부를 판단하고, 판단 결과 블록화된 행위정보 블록의 행위 중에 악성행위 진단요건에 해당하는 행위가 포함되어 있으면(단계 S14=YES) 실시간 프로세스 행위 추적부(11)는 그 행위정보 블록을 진단서버(30)의 행위정보 블록 조합부(31)로 전송하여 악성코드 감염 여부 진단을 요청한다.Subsequently, in step S14, the real-time process
만일, 단계 S14에서의 판단 결과 행위정보 블록에 악성행위 진단요건을 만족하는 시스템 API가 포함되어 있지 않으면(단계 S14=NO) 그 행위정보 블록에 포함된 시스템 API의 동작을 허용하고(단계 S15) 단계 S11로 복귀하여 이후의 동작을 실행한다.If, as a result of the determination in step S14, the system API satisfying the malicious behavior diagnosis requirement is not included in the behavior information block (step S14 = NO), the operation of the system API included in the behavior information block is allowed (step S15) The flow returns to step S11 to execute the following operations.
진단서버(30)의 행위정보 블록 조합부(31)는 단계 S21에서 사용자 단말(10)의 실시간 프로세스 행위 추적부(11)로부터 악성코드 감염 여부 진단요청을 접수하고, 접수한 행위정보 블록을 기억장치에 저장한다. 또, 행위정보 블록 조합부(31)는 단계 S21의 진단요청 전에 동일한 단말로부터 동일한 프로세스에 대해서 수신한 행위정보 블록이 있으면, 단계 S22에서 이전에 수신한 행위정보 블록과 단계 S21에서 접수된 행위정보 블록을 서로 조합하여 조합된 행위정보 블록을 생성한다.The behavior information
예를 들어 단계 S21에서 행위정보 블록 조합부(31)는 사용자 단말(10)의 실시간 프로세스 행위 추적부(11)로부터 도 2의 프로세스 n에 대한 행위정보 블록 m을 수신함으로써 악성코드 감염 여부 진단요청을 접수하였고, 그 이전에 동일한 단말인 사용자 단말(10)로부터 수신한 프로세스 n에 대한 행위정보 블록 1 및 행위정보 블록 m-1이 있는 경우, 단계 S21에서 행위정보 블록 조합부(31)는 사용자 단말(10)로부터 접수한 행위정보 블록 m을 이전에 수신한 행위정보 블록 1 및 행위정보 블록 m-1과 조합하여 「행위정보 블록 1(A-B-C) + 행위정보 블록 m-1(U-V-W) + 행위정보 블록 m(X-Y-Z)」와 같은 조합된 행위정보 블록을 생성하여 행위정보 가공부(33)에 인계한다.For example, in step S21, the behavior information
이어서, 단계 S23에서 행위정보 가공부(33)는 상기 조합된 행위정보 블록을 악성코드 감염 여부 진단에 적합하게 가공하여 진단부(35)에 인계한다. 조합된 행위정보 블록을 악성코드 감염 여부 진단에 적합하게 가공하는 방법은 앞에서 설명한 것과 같다.Next, in step S23 , the behavior
이어서, 단계 S24에서 진단부(35)는 행위정보 가공부(33)로부터 인계된 조합된 행위정보 블록이 악성코드에 감염되었는가 여부를 진단하고, 진단결과를 사용자 단말(10)로 송신한다(단계 S25).Subsequently, in step S24 , the
이어서, 단계 S31에서 진단서버(30)의 진단부(35)로부터 송신된 진단결과를 수신하고, 단계 S32에서 사용자 단말(10)은 진단부(35)로부터 수신한 진단결과가 「악성코드 감염」인 경우에는(단계 S32=YES) 단계 S33으로 진행하여 감염된 시스템 API를 차단하고, 진단부(35)로부터 수신한 진단결과가 악성코드 감염이 아닌(단계 S34=NO) 것으로 판정되면 단계 S34로 진행하여 악성코드에 감염되지 않은 시스템 API의 실행을 허용한다.Next, in step S31, the diagnosis result transmitted from the
본 발명의 악성코드 진단시스템은 이상의 루틴을 진단대상 파일 전체에 대한 진단이 완료될 때까지 반복해도 좋고, 일단 하나의 행위정보 블록에서라도 악성코드 감염이 확인딘 경우에는 그 파일 전체를 차단하고 종료하는 것으로 해도 좋다.The malicious code diagnosis system of the present invention may repeat the above routine until the diagnosis of the entire file to be diagnosed is completed. it can be done as
이상, 본 발명의 바람직한 실시형태에 대해서 설명하였으나, 본 발명은 상기 실시형태에 한정되는 것은 아니며, 청구범위에 기재된 발명의 범위 내에서 다양한 변경 또는 변형이 가능하다.As mentioned above, although preferred embodiment of this invention was described, this invention is not limited to the said embodiment, and various changes or deformation|transformation are possible within the scope of the invention described in the claims.
10 사용자 단말
11 실시간 프로세스 행위 추적부
30 진단서버
31 행위정보 블록 조합부
33 행위정보 가공부
35 진단부
50 통신망10 user terminal
11 Real-time process behavior tracking unit
30 Diagnostic Server
31 Behavior information block combination unit
33 Behavior Information Processing Department
35 diagnostics
50 network
Claims (6)
상기 진단대상 파일의 각 프로세스에서 실행되는 행위에 관한 행위정보를 특정 크기의 블록 단위로 추출하여 행위정보 블록을 순차 생성하고, 상기 생성된 행위정보 블록 내의 행위 중 적어도 하나 이상의 행위에 미리 설정된 악성행위 진단요건에 해당하는 행위가 포함되어 있는 행위정보 블록을 차례로 진단서버로 전송하는 하나 이상의 사용자 단말과,
상기 사용자 단말로부터 수신한 상기 행위정보 블록을 이전에 수신한 행위정보 블록과 조합하여, 조합된 행위정보 블록에 대해 악성코드 감염 여부 진단을 하는 진단서버를 포함하는 악성코드 진단시스템.It is a malicious code diagnosis system that diagnoses whether the target file is infected with malicious code,
Behavior information on the behavior executed in each process of the diagnosis target file is extracted in blocks of a specific size to sequentially generate behavior information blocks, and a malicious behavior preset to at least one behavior among the behaviors in the generated behavior information block One or more user terminals that sequentially transmit behavior information blocks including behaviors corresponding to the diagnostic requirements to the diagnostic server;
and a diagnosis server that combines the behavior information block received from the user terminal with the previously received behavior information block and diagnoses whether the combined behavior information block is infected with malicious code.
상기 진단서버는 상기 악성코드 감염 여부 진단에 앞서 상기 조합된 행위정보 블록을 악성코드 감염 여부 진단이 용이하도록 가공하는 악성코드 진단시스템.The method according to claim 1,
The diagnosis server is a malicious code diagnosis system that processes the combined behavior information block to facilitate the diagnosis of whether or not the malicious code is infected prior to diagnosing whether the malicious code is infected.
상기 사용자 단말은,
상기 진단대상 파일의 시스템 API를 모니터링 하고,
상기 시스템 API가 모니터링 되면 모니터링 된 시스템 API를 일정 단위로 블록화하여 행위정보 블록을 순차 생성하며,
상기 행위정보 블록이 생성될 때마다 생성된 행위정보 블록 내의 행위 중 적어도 하나 이상의 행위에 미리 설정된 악성행위 진단요건에 해당하는 행위가 포함되어 있는가 여부를 판단하고, 상기 미리 설정된 악성행위 진단요건에 해당하는 행위가 포함되어 있는 행위정보 블록을 상기 진단서버로 전송하여 악성코드 감염 여부 진단을 요청하고,
상기 진단서버는,
상기 사용자 단말로부터 행위정보 블록이 수신되면 수신한 행위정보 블록을 그전에 수신한 행위정보 블록과 조합하여 조합된 행위정보 블록을 생성하고,
상기 조합된 행위정보 블록에 대해 상기 악성코드 감염 여부 진단을 실행하는 악성코드 진단방법.A malicious code diagnosis method for diagnosing whether a file to be diagnosed is infected with a malicious code, which is executed in the user terminal, by a diagnostic system comprising a user terminal and a diagnostic server,
The user terminal is
monitoring the system API of the diagnosis target file,
When the system API is monitored, the monitored system API is blocked in a certain unit to sequentially generate behavior information blocks,
Whenever the behavior information block is generated, it is determined whether at least one of the behaviors in the generated behavior information block includes an behavior corresponding to a preset malicious behavior diagnosis requirement, and corresponds to the preset malicious behavior diagnosis requirement. Sending the action information block containing the action to the diagnosis server to request a diagnosis of malicious code infection,
The diagnostic server,
When the action information block is received from the user terminal, the received action information block is combined with the previously received action information block to generate a combined action information block,
A malicious code diagnosis method for performing a diagnosis of whether the malicious code is infected with the combined behavior information block.
상기 진단서버는 상기 악성코드 감염 여부 진단에 앞서 상기 조합된 행위정보 블록을 악성코드 감염 여부 진단이 용이하도록 가공하는 악성코드 진단방법.5. The method according to claim 4,
The diagnosis server processes the combined behavior information block prior to diagnosing whether the malicious code is infected so that it is easy to diagnose whether the malicious code is infected.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200152827A KR102426504B1 (en) | 2020-11-16 | 2020-11-16 | System and method for detecting malicious code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200152827A KR102426504B1 (en) | 2020-11-16 | 2020-11-16 | System and method for detecting malicious code |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220066609A KR20220066609A (en) | 2022-05-24 |
KR102426504B1 true KR102426504B1 (en) | 2022-07-29 |
Family
ID=81806524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200152827A KR102426504B1 (en) | 2020-11-16 | 2020-11-16 | System and method for detecting malicious code |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102426504B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101623073B1 (en) * | 2015-01-19 | 2016-05-20 | 한국인터넷진흥원 | System and method for detecting malignant code based on application program interface |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101138748B1 (en) * | 2010-01-22 | 2012-04-24 | 주식회사 안철수연구소 | Apparatus, system and method for preventing malicious codes |
KR101880686B1 (en) | 2018-02-28 | 2018-07-20 | 에스지에이솔루션즈 주식회사 | A malware code detecting system based on AI(Artificial Intelligence) deep learning |
-
2020
- 2020-11-16 KR KR1020200152827A patent/KR102426504B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101623073B1 (en) * | 2015-01-19 | 2016-05-20 | 한국인터넷진흥원 | System and method for detecting malignant code based on application program interface |
Also Published As
Publication number | Publication date |
---|---|
KR20220066609A (en) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI678616B (en) | File detection method, device and system | |
CN110209652B (en) | Data table migration method, device, computer equipment and storage medium | |
CN107678869B (en) | Client abnormity positioning method and device, computer equipment and storage medium | |
US10534929B2 (en) | System and method for automatically securing sensitive data in public cloud using a serverless architecture | |
CN109039937B (en) | Dynamic current limiting method, dynamic current limiting device, computer equipment and storage medium | |
CN110428127B (en) | Automatic analysis method, user equipment, storage medium and device | |
CN111475324B (en) | Log information analysis method, device, computer equipment and storage medium | |
CN112751729A (en) | Log monitoring method, device, medium and electronic equipment | |
CN111970236A (en) | Cross-network data transmission method and device | |
CN103514075A (en) | Method and device for monitoring API function calling in mobile terminal | |
US20210264023A1 (en) | Command inspection method and apparatus, computer device, and storage medium | |
CN110688286A (en) | Application program operation information transmission method and device, storage medium and electronic equipment | |
US10506392B1 (en) | Stream-processing of telecommunication diameter event records | |
CN110795166B (en) | Data processing method and device | |
CN112311902A (en) | File sending method and device based on micro-service | |
CN108647284B (en) | Method and device for recording user behavior, medium and computing equipment | |
KR102426504B1 (en) | System and method for detecting malicious code | |
CN105162931B (en) | The sorting technique and device of a kind of communicating number | |
CN113821254A (en) | Interface data processing method, device, storage medium and equipment | |
CN113836237A (en) | Method and device for auditing data operation of database | |
CN105530658A (en) | Remote diagnosis method of wireless communication module, device and system | |
US11030184B2 (en) | Systems and methods for database active monitoring | |
US20180293382A1 (en) | Infected File Detection and Quarantine System | |
CN115422601A (en) | RPA robot process automation implementation method and system | |
CN112434050B (en) | Data synchronization method and device of power grid business processing system and business processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |