KR20210039212A - Efficient ransomware detection method and system using bloom-filter - Google Patents

Efficient ransomware detection method and system using bloom-filter Download PDF

Info

Publication number
KR20210039212A
KR20210039212A KR1020190121777A KR20190121777A KR20210039212A KR 20210039212 A KR20210039212 A KR 20210039212A KR 1020190121777 A KR1020190121777 A KR 1020190121777A KR 20190121777 A KR20190121777 A KR 20190121777A KR 20210039212 A KR20210039212 A KR 20210039212A
Authority
KR
South Korea
Prior art keywords
ransomware
read request
block address
logical block
bloom
Prior art date
Application number
KR1020190121777A
Other languages
Korean (ko)
Other versions
KR102259158B1 (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 KR1020190121777A priority Critical patent/KR102259158B1/en
Priority to PCT/KR2019/018794 priority patent/WO2021066257A1/en
Publication of KR20210039212A publication Critical patent/KR20210039212A/en
Application granted granted Critical
Publication of KR102259158B1 publication Critical patent/KR102259158B1/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

Abstract

Disclosed are an efficient ransomware detection method using a Bloom filter and a system thereof. According to one embodiment, the ransomware detection method performed by the ransomware detection system includes the following steps of: storing a logic block address for a read request occurring from a NAND flash memory, in a bloom-filter; inspecting whether overwrite has occurred with respect to the Bloom filter storing the logic block address for the read request as a write request occurs from the NAND flash memory; and detecting whether ransomware is active by using a characteristic value used for ransomware detection as the overwrite is determined to have occurred in the Bloom filter. Therefore, the present invention is capable of eliminating the need for installing a separate program to protect against ransomware.

Description

블룸 필터를 이용한 효율적인 랜섬웨어 탐지 방법 및 시스템{EFFICIENT RANSOMWARE DETECTION METHOD AND SYSTEM USING BLOOM-FILTER}Efficient ransomware detection method and system using bloom filter {EFFICIENT RANSOMWARE DETECTION METHOD AND SYSTEM USING BLOOM-FILTER}

아래의 설명은 지속적으로 문제가 되고 있는 랜섬웨어를 효율적으로 탐지하기 위한 기술에 관한 것이다. The description below relates to a technology for efficiently detecting ransomware, which has been a problem continuously.

랜섬웨어란 사용자의 데스크톱에 존재하는 사진, 프로그램, 업무 자료 등의 가치 있는 파일들을 암호화하여 사용할 수 없게 만든 다음, 복호화 비용을 요구하는 악성 프로그램이다. 1989년에 처음으로 등장하고, 2005년부터 다시 등장하기 시작하였으며 최근에는 시간이 지날수록 랜섬웨어의 종류가 증가하며 공격 방식도 다양화되어 피해자와 피해금액이 계속해서 증가하는 추세이다. 개인이나 기업뿐만 아니라 공공기관이나 국가를 대상으로도 공격할 수 있으며, 사회의 큰 혼란을 야기할 수 있기 때문에 철저한 관리를 통한 랜섬웨어 예방과 신속한 탐지 및 복구 시스템이 필요하다.Ransomware is a malicious program that encrypts and renders valuable files such as photos, programs, and business data existing on the user's desktop unusable, and then demands a cost for decryption. It first appeared in 1989 and began to appear again in 2005. Recently, as time passes, the types of ransomware increase and attack methods are diversified, and the number of victims and damage continues to increase. Since it can attack not only individuals and companies, but also public institutions and countries, it can cause great social confusion, so it is necessary to prevent ransomware through thorough management and a rapid detection and recovery system.

이러한 문제를 해결하기 위하여 블록 계층에서 논리 블록 주소(LBA)에 대한 읽기, 쓰기 요청 정보를 수집하여, 특정 LBA를 읽은 후 동일한 LBA에 쓰는 덮어쓰기의 발생 빈도 등을 이용하여 랜섬웨어를 탐지하는 랜섬웨어 탐지 기술이 제안되었다. 이때, 덮어쓰기를 판단하기 위해 1초당 1개의 해시테이블을 사용하여 읽기 LBA를 모두 저장하고 쓰기 LBA 요청이 오면 n 개의 해시테이블을 모두 검사한다. 그리고 매초마다 덮어쓰기 발생 빈도, 쓰기 횟수의 평균 등의 6가지 특징값을 수집하고, 이진 의사 결정 트리를 기반으로 해당 초의 랜섬웨어 의심 여부를 판단한다. 의심 여부가 누적되어 특정 임계값을 넘을 경우 최종적으로 랜섬웨어가 동작중인 것이라고 판단한다. 그러나, 종래의 기술은 랜선웨어의 공격으로부터 안전하도록 보장되기는 하지만 메모리 사용량이 크고 수행시간이 길다는 단점이 있다.To solve this problem, a ransomware that collects read and write request information for the logical block address (LBA) at the block layer, and detects ransomware using the frequency of overwrites written to the same LBA after reading a specific LBA. Wear detection technology has been proposed. At this time, to determine overwrite, all read LBAs are stored using one hash table per second, and when a write LBA request is received, all n hash tables are checked. In addition, six characteristic values, such as the frequency of overwrite occurrence and the average of the number of writes, are collected every second, and based on the binary decision tree, it is determined whether or not ransomware is suspected in the second. If suspicion is accumulated and exceeds a certain threshold, it is finally determined that the ransomware is running. However, although the conventional technology is guaranteed to be safe from attacks by LAN software, it has a disadvantage in that the memory usage is large and the execution time is long.

블룸 필터를 이용하여 효율적으로 랜섬웨어를 탐지하는 방법 및 시스템을 제공할 수 있다. It is possible to provide a method and system for efficiently detecting ransomware using a bloom filter.

랜섬웨어 탐지 시스템에 의해 수행되는 랜섬웨어 탐지 방법은, 낸드 플래시 메모리에서 발생된 읽기 요청에 대한 논리 블록 주소를 블룸 필터(Bloom-filter)에 저장하는 단계; 상기 낸드 플래시 메모리에서 쓰기 요청이 발생함에 따라 상기 읽기 요청에 대한 논리 블록 주소가 저장된 블룸 필터를 대상으로 덮어쓰기(overwrite)가 발생하였는지 여부를 검사하는 단계; 및 상기 블룸 필터에 상기 덮어쓰기가 발생한 것으로 판단함에 따라 랜섬웨어 탐지에 사용되는 특징값을 이용하여 랜섬웨어의 활동 여부를 탐지하는 단계를 포함할 수 있다.The ransomware detection method performed by the ransomware detection system includes: storing a logical block address for a read request generated from a NAND flash memory in a bloom filter; Checking whether an overwrite has occurred in the bloom filter in which the logical block address for the read request is stored as a write request occurs in the NAND flash memory; And detecting whether ransomware is active by using a feature value used to detect ransomware as it is determined that the overwrite has occurred in the bloom filter.

상기 저장하는 단계는, 비트 배열을 가지고 있는 복수 개의 블룸 필터를 생성하는 단계를 포함하고, 상기 복수 개의 블룸 필터는, 상기 읽기 요청에 대한 논리 블록 주소와 관련된 원소를 추가하기 위하여 상기 복수 개의 블룸 필터 각각에서 동일한 k개의 해시 함수를 사용하여 k개의 해시값을 계산하고, 계산된 각 해시값에 대응하는 비트를 모두 1로 설정하고, 상기 쓰기 요청에 대한 논리 블록 주소와 관련된 원소를 검사하기 위하여 k개의 해시 함수를 사용하여 k개의 해시값을 계산하고, 계산된 각 해시값에 대응하는 비트가 모두 1인지 상기 복수 개의 블룸 필터의 각각에서 검사될 수 있다. The storing step includes generating a plurality of bloom filters having a bit arrangement, wherein the plurality of bloom filters include the plurality of bloom filters in order to add an element related to a logical block address to the read request. In each case, k hash values are calculated using the same k hash functions, all bits corresponding to each calculated hash value are set to 1, and k to check the elements related to the logical block address for the write request. The k hash values may be calculated using a hash function, and it may be checked in each of the plurality of bloom filters whether all bits corresponding to each calculated hash value are 1.

상기 랜섬웨어 탐지 방법은, 상기 블룸 필터에 상기 읽기 요청에 대한 논리 블록 주소를 저장하고, 상기 덮어쓰기(overwrite)가 발생하였는지 여부를 검사하는 수행 속도를 조절하기 위하여 상기 블룸 필터에 특정 처리를 수행하는 단계를 더 포함하고, 상기 수행하는 단계는, 복수 개의 블룸 필터 각각의 동일한 k개의 비트 위치에서 원소 검사를 수행하고, k * 블록 길이(block length) 크기의 정수형 2차원 배열에 논리 블록 주소를 k개의 해시 함수로 블록 길이만큼 계산한 해시값을 저장하는 단계를 포함할 수 있다. The ransomware detection method stores a logical block address for the read request in the bloom filter, and performs a specific process on the bloom filter in order to control an execution speed of checking whether the overwrite has occurred. The step of performing an element check is performed at the same k bit positions of each of the plurality of bloom filters, and a logical block address is added to an integer two-dimensional array having a size of k * block length. It may include storing the hash value calculated by the block length with k hash functions.

상기 수행하는 단계는, 블룸 필터에 원소 추가와 원소 검사를 수행할 때, k개의 해시 함수로 비암호학적 해시 함수를 이용하여 k개의 해시 함수를 획득하도록 하는 비암호학적 해싱(Non-Cryptographic Hashing)을 수행하는 단계를 포함할 수 있다. The performing step is Non-Cryptographic Hashing of obtaining k hash functions using a non-cryptographic hash function with k hash functions when adding an element to the Bloom filter and performing an element check. It may include the step of performing.

상기 저장하는 단계는, 상기 낸드 플래시 메모리에서 읽기 요청이 발생함에 따라 상기 읽기 요청이 발생한 시간 정보, 시작 주소, 크기 정보를 수집하고, 상기 수집된 시간 정보에 기초하여 상기 읽기 요청에 대한 논리 블록 주소(LBA)를 상기 블룸 필터에 저장하는 단계를 포함할 수 있다. The storing may include collecting time information, start address, and size information at which the read request occurs as a read request occurs in the NAND flash memory, and a logical block address for the read request based on the collected time information. It may include storing (LBA) in the bloom filter.

상기 저장하는 단계는, 기 설정된 시간 범위에 기초하여 상기 읽기 요청에 대한 논리 블록 주소를 상기 블룸 필터에 저장하고, 상기 읽기 요청이 상기 기 설정된 시간 범위를 초과할 경우, 상기 읽기 요청에 대한 논리 블록 주소를 상기 블록 필터 다음의 블록 필터에 저장하는 단계를 포함할 수 있다. The storing may include storing a logical block address for the read request in the bloom filter based on a preset time range, and when the read request exceeds the preset time range, a logical block for the read request It may include storing an address in a block filter following the block filter.

상기 덮어쓰기(overwrite)가 발생하였는지 여부를 검사하는 단계는, 상기 낸드 플래시 메모리에서 쓰기 요청이 발생함에 따라 상기 쓰기 요청이 발생한 시작 주소, 크기 정보를 수집하여 복수 개의 블룸 필터로부터 상기 읽기 요청에 대한 논리 블록 주소를 포함하는 블룸 필터를 검사하는 단계를 포함할 수 있다. The step of checking whether the overwrite has occurred may include collecting information on the start address and size of the write request, as a write request is generated in the NAND flash memory, and responding to the read request from a plurality of bloom filters. It may include examining a bloom filter including a logical block address.

상기 랜섬웨어의 활동 여부를 탐지하는 단계는, 상기 읽기 요청에 대한 논리 블록 주소를 포함하는 블룸 필터가 존재할 경우, 상기 읽기 요청에 대한 논리 블록 주소를 포함하는 블룸 필터에 덮어쓰기가 발생한 것으로 판단하는 단계를 포함할 수 있다. The detecting whether the ransomware is active may include determining that overwriting has occurred in the bloom filter including the logical block address for the read request when there is a bloom filter including a logical block address for the read request. It may include steps.

상기 특징값은, 미리 정의된 타임 슬라이스(times slice) 동안 발생한 덮어 쓰기(overwrite)의 횟수를 나타내는 OWIO, 상기 타임 슬라이스를 기반으로 하는 타임 윈도우(time window) 동안 발생한 쓰기 요청(write request)의 총 수 대비 덮어 쓰기(overwrite)가 발생한 블록의 비율을 나타내는 OWST, 타임 윈도우 동안 발생한 덮어 쓰기(overwrite)의 수를 나타내는 PWIO, 현재 타임 윈도우에서 연속적으로 덮어 쓰기가 발생한 블록 (continuously overwritten block)의 평균 길이(length)를 나타내는 AVGWIO, 이전 타임 윈도우에서의 평균 덮어 쓰기(overwrite)의 개수 대 현재 타임 슬라이스(time slice)에서의 덮어쓰기(overwrite)의 개수 간의 비율을 나타내는 OWSLOPE, 이전 타임 슬라이스에서의 평균 쓰기 횟수 대 현재 타임 슬라이스에서의 덮어 쓰기 횟수 의 비율을 나타내는 IO로부터 계산된 값을 포함하고, 상기 랜섬웨어의 활동 여부를 탐지하는 단계는, 상기 랜섬웨어의 탐지에 사용되는 특징값을 계산하기 위한 덮어쓰기 횟수로부터 계산된 특징값을 이진 의사 결정 트리에 기반하여 랜섬웨어의 활동 여부를 판단하는 단계를 포함할 수 있다. The characteristic value is OWIO indicating the number of overwrites occurring during a predefined time slice, and the total number of write requests occurring during a time window based on the time slice. OWST, which indicates the ratio of overwrites to the number of blocks, PWIO, which indicates the number of overwrites that occurred during the time window, and the average length of continuously overwritten blocks in the current time window. AVGWIO representing (length), OWSLOPE representing the ratio between the number of average overwrites in the previous time window versus the number of overwrites in the current time slice, and average writes in the previous time slice Including a value calculated from IO indicating a ratio of the number of times to the number of overwrites in the current time slice, and detecting whether the ransomware is active, the overwrite is used to calculate a feature value used for detection of the ransomware. It may include determining whether the ransomware is active based on the binary decision tree based on the feature value calculated from the number of writes.

랜섬웨어 탐지 시스템은, 낸드 플래시 메모리에서 발생된 읽기 요청에 대한 논리 블록 주소를 블룸 필터(Bloom-filter)에 저장하는 논리 블록 주소 저장부; 상기 낸드 플래시 메모리에서 쓰기 요청이 발생함에 따라 상기 읽기 요청에 대한 논리 블록 주소가 저장된 블룸 필터에 덮어쓰기(overwrite)가 발생하였는지 여부를 검사하는 덮어쓰기 검사부; 및 상기 블룸 필터에 상기 덮어쓰기가 발생한 것으로 판단함에 따라 랜섬웨어 탐지에 사용되는 특징값을 이용하여 랜섬웨어의 활동 여부를 탐지하는 랜섬웨어 탐지부를 포함할 수 있다. The ransomware detection system includes: a logical block address storage unit that stores a logical block address for a read request generated from a NAND flash memory in a bloom-filter; An overwrite checker for checking whether an overwrite has occurred in a bloom filter in which a logical block address for the read request is stored as a write request occurs in the NAND flash memory; And a ransomware detection unit configured to detect whether ransomware is active by using a feature value used to detect ransomware as it is determined that the overwrite has occurred in the bloom filter.

본 발명은 랜섬웨어 탐지 알고리즘이 SSD 펌웨어 내부에 탑재 가능한 환경이거나 SSD에 탑재하기 힘든 환경이라면 일반 응용 프로그램으로도 제작하여 동작시킬 수 있기 때문에 사용자는 랜섬웨어를 방어하기 위해 별도의 프로그램을 설치할 필요가 없다. In the present invention, if the ransomware detection algorithm is an environment that can be installed inside the SSD firmware or it is difficult to install on the SSD, the user needs to install a separate program to protect the ransomware because it can be made and operated as a general application program. none.

본 발명은 메모리를 적게 소모하면서 수행 시간이 매우 빠르기 때문에 SSD의 성능에 영향을 거의 주지 않아서 제조사와 사용자는 탐지 알고리즘을 탑재한 SSD에 기존의 SSD와 동일한 성능을 기대할 수 있다. Since the present invention consumes less memory and has a very fast execution time, it hardly affects the performance of the SSD, so that manufacturers and users can expect the same performance as the existing SSD in an SSD equipped with a detection algorithm.

본 발명은 메모리를 적게 소모하는 만큼, 기존과 동일한 크기의 메모리를 이용하면 n개보다 더 큰 p개의 블룸 필터를 사용하여 더 긴 시간을 관찰할 수 있는데, 이를 통해 기존에 탐지하기 어려웠던 랜섬웨어도 정상적으로 탐지할 수 있다.As the present invention consumes less memory, if a memory of the same size as before is used, a longer time can be observed using p bloom filters larger than n, through which ransomware, which was previously difficult to detect, can also be observed. It can be detected normally.

도 1은 일 실시예에 있어서, 환형으로 사용하는 복수 개의 블룸 필터를 나타낸 예이다.
도 2는 일 실시예에 따른 랜섬웨어 탐지 시스템의 구성을 설명하기 위한 블록도이다.
도 3은 일 실시예에 따른 랜섬웨어 탐지 시스템에서 랜섬웨어를 탐지하는 방법을 설명하기 위한 흐름도이다.
도 4는 랜섬웨어 탐지 시스템에서 최적화를 수행하는 방법을 설명하기 위한 흐름도이다.
1 is an example showing a plurality of bloom filters used in an annular shape according to an embodiment.
2 is a block diagram illustrating a configuration of a ransomware detection system according to an embodiment.
3 is a flowchart illustrating a method of detecting ransomware in a ransomware detection system according to an exemplary embodiment.
4 is a flowchart illustrating a method of performing optimization in a ransomware detection system.

이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

도 1은 일 실시예에 있어서, 환형으로 사용하는 복수 개의 블룸 필터를 나타낸 예이다. 1 is an example showing a plurality of bloom filters used in an annular shape according to an embodiment.

블룸 필터는 원소가 집합에 존재하는지 여부를 판단하기 위해 1970년 Burton Howard Bloom에 의해 고안된 확률적 자료 구조이다. 블룸 필터는 원소가 집합에 존재한다고 판단하였지만 실제로는 원소가 집합에 속하지 않는 false-positive가 발생할 수 있고, 그 반대인 false-negative는 절대로 발생하지 않는다는 특징이 있다. 블룸 필터의 파라미터로는 들어오는 원소의 개수 n, 충돌이 일어날 확률 p, 블룸 필터의 비트 수 m, 사용되는 해시 함수의 개수 k로 4개가 존재한다. 원소의 개수 n과 충돌 확률 p를 정하면 남은 파라미터 m과 k의 최적 값은 수학식 1을 이용하여 계산할 수 있다.Bloom filters are probabilistic data structures devised by Burton Howard Bloom in 1970 to determine whether an element exists in a set. Although the Bloom filter judged that an element exists in a set, in reality, a false-positive that does not belong to the set may occur, and the opposite, false-negative, never occurs. There are four parameters of the bloom filter: the number of incoming elements n, the probability of collision p, the number of bits of the bloom filter m, and the number of hash functions k. When the number of elements n and the collision probability p are determined, optimal values of the remaining parameters m and k can be calculated using Equation 1.

수학식 1: Equation 1:

Figure pat00001
Figure pat00001

블룸 필터는 m개의 비트 배열을 모두 0으로 초기화한 뒤 사용할 수 있다. 블룸 필터에 원소를 추가할 때에 추가하려는 원소의 값에 대해 k개의 해시 함수로 k개의 해시 값을 계산한 다음, 각각의 k개의 해시 값에 대응하는 비트를 모두 1로 설정하는 것으로 수행될 수 있다. 원소를 검사할 때에 k개의 원소의 값에 대해 k개의 해시 함수를 이용하여 k개의 해시 값을 계산하고, 계산된 각 k개의 해시 값에 대응하는 비트를 확인할 수 있다. 이때, k개의 해시 함수를 이용하여 계산한 k개의 해시값에 대응하는 비트가 모두 1인지 확인될 수 있다. 모든 비트가 1인 경우에만 원소가 집합에 속한다고 판단하고 하나라도 1이 아닐 경우 블룸 필터에 추가되지 않은 원소라고 판단할 수 있다. 비트를 이용하고 복수 개의 해시 함수를 사용하기 때문에 메모리를 절약하면서 충돌 가능성을 조절하여 최소화할 수 있다. The bloom filter can be used after initializing all m bit arrays to 0. When adding an element to the bloom filter, it can be performed by calculating k hash values with k hash functions for the value of the element to be added, and then setting all the bits corresponding to each of the k hash values to 1. . When examining an element, k hash values can be calculated using k hash functions for the values of k elements, and the bits corresponding to each of the calculated k hash values can be checked. In this case, it may be checked whether all bits corresponding to k hash values calculated using k hash functions are 1. It is determined that an element belongs to the set only when all the bits are 1, and when any of the bits are not 1, it can be determined that the element has not been added to the bloom filter. Since bits are used and multiple hash functions are used, the possibility of collision can be adjusted and minimized while saving memory.

랜섬웨어 탐지 시스템은 블룸 필터를 사용하기 위한 공간을 할당받을 수 있다. 이때, 1개의 블룸 필터는 1초 동안의 읽기 요청 주소를 저장할 수 있으며, m MB의 메모리가 요구될 수 있다. 기본적으로 n(n은 자연수)개의 블룸 필터를 사용하여 n초를 관찰하여 랜섬웨어를 탐지할 수 있다. 또한, 랜섬웨어의 탐지 정확도를 향상시키기 위하여 n개보다 더 많은 p개의 블룸 필터를 사용하여 p초를 관찰하여 랜섬웨어를 탐지할 수 있다. The ransomware detection system may be allocated space for using the bloom filter. At this time, one bloom filter may store a read request address for 1 second, and m MB of memory may be required. Basically, ransomware can be detected by observing n seconds using n (n is a natural number) bloom filter. In addition, in order to improve the detection accuracy of ransomware, ransomware can be detected by observing p seconds using p bloom filters more than n.

랜섬웨어 탐지 시스템은 낸드 플레시 메모리에서 동작할 수 있다. 이때, 낸드 플래시 메모리는 SSD(Solid State Drive)를 나타낼 수 있다. SSD에서 읽기 요청이 발생함에 따라 읽기 요청이 발생한 시간 정보, 시작 주소, 크기 정보를 수집하여 읽기 요청이 발생한 시간 정보에 기초하여 블룸 필터에 읽기 요청에 대한 논리 블록 주소를 저장할 수 있다. 랜섬웨어 탐지 시스템은 블룸 필터에 설정된 시간 범위에 기초하여 블룸 필터에 읽기 요청에 대한 논리 블록 주소를 저장할 수 있다. 랜섬웨어 탐지 시스템은 블록 필터에 논리 블록 주소를 저장하기 위한 시간 범위가 설정되어 있을 수 있다. 예를 들면, 현재 사용하는 블룸 필터(제N 블룸 필터)가 3 초 이상 4초 미만에 발생한 읽기 요청에 대한 주소를 저장하고 있고, 다음 읽기 요청이 4초 이상에서 발생한다면, 블룸 필터(제N 블룸 필터)와 관련하여 설정된 순서 정보에 기초하여 블룸 필터(제N 블룸 피터) 다음의 블룸 필터(제N+1)로 넘어가서 읽기 요청에 대한 논리 블록 주소를 저장할 수 있다.The ransomware detection system can operate on NAND flash memory. In this case, the NAND flash memory may represent a solid state drive (SSD). As a read request occurs in the SSD, time information, a start address, and size information of the read request occurrence may be collected, and the logical block address for the read request may be stored in the bloom filter based on the time information at which the read request occurred. The ransomware detection system may store a logical block address for a read request in the bloom filter based on a time range set in the bloom filter. In the ransomware detection system, a time range for storing a logical block address may be set in a block filter. For example, if the currently used bloom filter (Nth bloom filter) stores addresses for read requests that occurred in 3 seconds or more and less than 4 seconds, and the next read request occurs in 4 seconds or more, the bloom filter (Nth bloom filter) Based on order information set in relation to the bloom filter), a logical block address for a read request may be stored by moving to a bloom filter (N+1) following the bloom filter (Nth bloom Peter).

도 1과 같이 n개의 블룸 필터를 사용한다고 가정하면, n개의 블룸 필터를 환형으로 돌며 읽기 요청에 대한 논리 블록 주소를 저장하고, n초가 지난 블룸 필터의 비트는 모두 0으로 만든 뒤, 새로 들어온 읽기 요청에 대한 논리 블록 주소를 저장할 수 있다. 다시 말해서, 일정 시간이 지난 블룸 필터의 비트가 모두 0으로 리셋된 후, 블룸 필터에서 새로 요청된 읽기 요청에 대한 논리 블록 주소를 저장할 수 있다. Assuming that n bloom filters are used as shown in FIG. 1, a logical block address for a read request is stored by rotating n bloom filters in an annular shape, and all bits of the bloom filter after n seconds are made 0, and then a new read is entered. You can store the logical block address for the request. In other words, after all bits of the bloom filter after a certain period of time are reset to 0, a logical block address for a read request newly requested from the bloom filter may be stored.

랜섬웨어 탐지 시스템은 쓰기 요청이 발생함에 따라 쓰기 요청의 시작 주소, 크기 정보를 수집하여 n개의 블룸 필터에 대하여 읽기 요청에 대한 논리 블록 주소가 존재하는지 검사할 수 있다. 랜섬웨어 탐지 시스템은 어느 하나 이상의 블룸 필터에 읽기 요청에 대한 블록 주소가 존재한다면, 최근 n초 이내에 읽기 요청에 대한 논리 블록 주소에 대하여 쓰기를 수행하여 덮어쓰기가 발생한 것으로 판단할 수 있다. 랜섬웨어 탐지 시스템은 랜섬웨어 탐지에 사용되는 6가지의 특징값을 계산할 수 있도록 덮어쓰기 발생 횟수 등을 증가시킬 수 있다. As a write request occurs, the ransomware detection system may collect information on the start address and size of the write request and check whether a logical block address for a read request exists for n bloom filters. If a block address for a read request exists in one or more bloom filters, the ransomware detection system may determine that overwriting has occurred by performing a write on the logical block address for the read request within the last n seconds. The ransomware detection system can increase the number of overwrite occurrences so that six characteristic values used for ransomware detection can be calculated.

랜섬웨어 탐지 시스템은 블룸 필터에 대한 최적화를 수행할 수 있다. 블룸 필터에 주소를 저장할 때와 주소를 검사할 때 복수 개의 해시 함수가 사용될 수 있다. 이에, 수행속도를 최적화하기 위하여 n개의 블룸 필터는 모두 동일한 k개의 해시 함수를 사용하도록 하고, 이를 통하여 쓰기 요청 시 블룸 필터를 검사할 때 중복된 해시 계산을 하지 않도록 한다. 또한, 주소에 대하여 해시 연산을 할 때, SHA-256 이나 MD5 와 같은 암호학적 해시를 사용할 필요가 없기 때문에, 상대적으로 수행시간이 짧은 비-암호학적 해시 함수를 사용하였다. 마지막으로 메모리에 쓰는 속도보다 읽는 속도가 빠른 것을 이용하여, 블룸 필터에 주소를 저장할 때 k 개의 해시 값으로 얻은 위치의 비트가 0인지 확인하고 0일 때에만 비트를 1로 쓰도록 한다. The ransomware detection system can optimize the bloom filter. Multiple hash functions can be used when storing addresses in the bloom filter and when checking addresses. Therefore, in order to optimize the execution speed, all n bloom filters use the same k hash functions, and through this, duplicate hash calculations are not performed when checking the bloom filter when a write request is made. In addition, since there is no need to use cryptographic hashes such as SHA-256 or MD5 when performing a hash operation on an address, a non-cryptographic hash function with relatively short execution time was used. Finally, using a read speed faster than writing to memory, check if the bit at the location obtained as k hash values is 0 when storing the address in the bloom filter, and write the bit as 1 only when it is 0.

랜섬웨어 탐지 시스템은 덮어쓰기 횟수, 쓰기 횟수 등으로부터 계산된 복수 개의 특성별 특징값을 이진 의사 결정 트리의 입력 파라미터로 설정하여, 랜섬웨어의 활동 여부를 나타내는 결과값을 획득할 수 있다. 랜섬웨어 탐지 시스템은 복수 개의 특성 각각에 해당하는 특징값을 카운팅 테이블에 계삼함에 따라 각각의 특징값을 획득할 수 있다. 예를 들면, 랜섬웨어 탐지 시스템은 6개의 특징값을 획득할 수 있다. 이때, 예를 들면, 6개의 특징값은 카운팅 테이블에 기초하여 계산될 수 있다. 카운팅 테이블은 각각의 특징에 따라 특징값을 획득하기 위한 정보가 저장되어 있을 수 있다. 랜섬웨어 탐지 시스템은 6개의 특징값을 이진 의사 트리에 전달하여 해당하는 시간(예를 들면, 초)에서의 랜섬웨어의 판단 여부를 획득할 수 있다. 다시 말해서, 의진 의사 결정 트리의 출력이 랜섬웨어의 활동 여부를 나타내는 결과값에 해당할 수 있다. 랜섬웨어 탐지 시스템은 판단 여부가 0이면, 해당하는 시간에 랜섬웨어에 공격을 받았을 가능성이 낮고, 1이면 랜섬웨어에 공격을 받았을 가능성이 높은 것으로 판단할 수 있다. 다시 말해서, 예컨대, 랜섬웨어가 활동하는 상태(즉, 활성 상태)인 경우, 1의 값이 결과값으로 출력되고, 랜섬웨어가 활동하지 않는 상태인 경우, 0의 값이 트리의 결과값으로 출력될 수 있다. 랜섬웨어 탐지 시스템은 기 설정된 시간 동안 관찰한 결과 1로 출력된 합산 값이 임계값(예를 들면, 3)보다 크면 랜섬웨어가 활동하는 것으로 판정할 수 있다. The ransomware detection system may obtain a result value indicating whether the ransomware is active by setting a plurality of characteristic values calculated from the number of overwrites and the number of writes as an input parameter of the binary decision tree. The ransomware detection system may acquire each feature value by calculating feature values corresponding to each of a plurality of features in a counting table. For example, the ransomware detection system may acquire six feature values. In this case, for example, six feature values may be calculated based on the counting table. The counting table may store information for obtaining a feature value according to each feature. The ransomware detection system may obtain whether or not ransomware is determined at a corresponding time (eg, seconds) by transferring six feature values to a binary pseudo tree. In other words, the output of the Euijin decision tree may correspond to a result value indicating whether the ransomware is active. If the determination of whether the ransomware detection system is 0, the possibility of being attacked by ransomware at a corresponding time is low, and if it is 1, the possibility of being attacked by ransomware is high. In other words, for example, if the ransomware is active (i.e., active), a value of 1 is output as a result value, and if the ransomware is not active, a value of 0 is output as the result value of the tree. Can be. The ransomware detection system may determine that the ransomware is active if the sum value output as 1 as a result of observing for a preset time is greater than a threshold value (eg, 3).

도 2는 일 실시예에 따른 랜섬웨어 탐지 시스템의 구성을 설명하기 위한 블록도이고, 도 3은 일 실시예에 따른 랜섬웨어 탐지 시스템에서 랜섬웨어를 탐지하는 방법을 설명하기 위한 흐름도이다.2 is a block diagram illustrating a configuration of a ransomware detection system according to an embodiment, and FIG. 3 is a flowchart illustrating a method of detecting ransomware in a ransomware detection system according to an embodiment.

랜섬웨어 탐지 시스템(100)의 프로세서는 논리 블록 주소 저장부(210), 덮어쓰기 검사부(220), 랜섬웨어 탐지부(230) 및 블룸 필터 최적화부(240)를 포함할 수 있다. 이러한 프로세서의 구성요소들은 랜섬웨어 탐지 시스템(100)에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서에 의해 수행되는 서로 다른 기능들(different functions)의 표현들일 수 있다. 프로세서 및 프로세서의 구성요소들은 도 3의 랜섬웨어 탐지 방법이 포함하는 단계들(310 내지 330)을 수행하도록 랜섬웨어 탐지 시스템(100)을 제어할 수 있다. 이때, 프로세서 및 프로세서의 구성요소들은 메모리가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. The processor of the ransomware detection system 100 may include a logical block address storage unit 210, an overwrite inspection unit 220, a ransomware detection unit 230, and a bloom filter optimization unit 240. Components of such a processor may be expressions of different functions performed by the processor according to a control command provided by a program code stored in the ransomware detection system 100. The processor and components of the processor may control the ransomware detection system 100 to perform steps 310 to 330 included in the ransomware detection method of FIG. 3. In this case, the processor and the components of the processor may be implemented to execute an instruction according to the code of the operating system included in the memory and the code of at least one program.

프로세서는 랜섬웨어 탐지 방법을 위한 프로그램의 파일에 저장된 프로그램 코드를 메모리에 로딩할 수 있다. 예를 들면, 랜섬웨어 탐지 시스템(100)에서 프로그램이 실행되면, 프로세서는 운영체제의 제어에 따라 프로그램의 파일로부터 프로그램 코드를 메모리에 로딩하도록 랜섬웨어 탐지 시스템(100)을 제어할 수 있다. 이때, 프로세서 및 프로세서가 포함하는 프로세서는 논리 블록 주소 저장부(210), 덮어쓰기 검사부(220), 랜섬웨어 탐지부(230) 및 블룸 필터 최적화부(240) 각각은 메모리에 로딩된 프로그램 코드 중 대응하는 부분의 명령을 실행하여 이후 단계들(310 내지 330)을 실행하기 위한 프로세서의 서로 다른 기능적 표현들일 수 있다. 블룸 필터 최적화부(240)에 대한 동작은 도 4에서 설명하기로 한다. The processor may load the program code stored in the program file for the ransomware detection method into the memory. For example, when a program is executed in the ransomware detection system 100, the processor may control the ransomware detection system 100 to load a program code from a program file into a memory under the control of an operating system. At this time, the processor and the processor included in the processor are each of the logical block address storage unit 210, the overwrite inspection unit 220, the ransomware detection unit 230, and the bloom filter optimization unit 240 among program codes loaded into the memory. It may be different functional representations of the processor for executing the subsequent steps 310 to 330 by executing an instruction of the corresponding portion. The operation of the bloom filter optimization unit 240 will be described with reference to FIG. 4.

단계(310)에서 논리 블록 주소 저장부(210)는 낸드 플래시 메모리에서 발생된 읽기 요청에 대한 논리 블록 주소를 블룸 필터(Bloom-filter)에 저장할 수 있다. 논리 블록 주소 저장부(210)는 비트 배열을 가지고 있는 복수 개의 블룸 필터를 생성할 수 있다. 이때, 복수 개의 블룸 필터는, 읽기 요청에 대한 논리 블록 주소와 관련된 원소를 추가하기 위하여 복수 개의 블룸 필터 각각에서 동일한 k개의 해시 함수를 사용하여 k개의 해시값을 계산하고, 계산된 각 해시값에 대응하는 비트를 모두 1로 설정하고, 쓰기 요청에 대한 논리 블록 주소와 관련된 원소를 검사하기 위하여 k개의 해시 함수를 사용하여 k개의 해시값을 계산하고, 계산된 각 해시값에 대응하는 비트가 모두 1인지 상기 복수 개의 블룸 필터의 각각에서 검사될 수 있다. 논리 블록 주소 저장부(210)는 낸드 플래시 메모리에서 읽기 요청이 발생함에 따라 읽기 요청이 발생한 시간 정보, 시작 주소, 크기 정보를 수집하고, 수집된 시간 정보에 기초하여 읽기 요청에 대한 논리 블록 주소(LBA)를 블룸 필터에 저장할 수 있다. 논리 블록 주소 저장부(210)는 기 설정된 시간 범위에 기초하여 읽기 요청에 대한 논리 블록 주소를 블룸 필터에 저장되고, 읽기 요청이 기 설정된 시간 범위를 초과할 경우, 읽기 요청에 대한 논리 블록 주소를 블록 필터 다음의 블록 필터에 저장할 수 있다. In operation 310, the logical block address storage unit 210 may store a logical block address for a read request generated from the NAND flash memory in a bloom filter. The logical block address storage unit 210 may generate a plurality of bloom filters having a bit arrangement. At this time, the plurality of bloom filters calculate k hash values using the same k hash functions in each of the plurality of bloom filters in order to add an element related to the logical block address for the read request, and to each calculated hash value. All corresponding bits are set to 1, k hash values are calculated using k hash functions to check the elements related to the logical block address of the write request, and all the bits corresponding to each calculated hash value are It may be checked in each of the plurality of bloom filters whether it is 1 or not. As a read request occurs in the NAND flash memory, the logical block address storage unit 210 collects time information, start address, and size information at which the read request occurs, and based on the collected time information, the logical block address for the read request ( LBA) can be stored in the bloom filter. The logical block address storage unit 210 stores the logical block address for the read request in the bloom filter based on a preset time range, and when the read request exceeds the preset time range, the logical block address for the read request is stored. It can be stored in the next block filter.

단계(320)에서 덮어쓰기 검사부(220)는 낸드 플래시 메모리에서 쓰기 요청이 발생함에 따라 읽기 요청에 대한 논리 블록 주소가 저장된 블룸 필터를 대상으로 덮어쓰기(overwrite)가 발생하였는지 여부를 검사할 수 있다. 덮어쓰기 검사부(220)는 낸드 플래시 메모리에서 쓰기 요청이 발생함에 따라 쓰기 요청이 발생한 시작 주소, 크기 정보를 수집하여 복수 개의 블룸 필터로부터 읽기 요청 주소에 대한 논리 블록 주소를 포함하는 블룸 필터를 검사할 수 있다. 덮어쓰기 검사부(220)는 읽기 요청 주소에 대한 논리 블록 주소를 포함하는 블룸 필터가 존재할 경우, 읽기 요청 주소에 대한 논리 블록 주소를 포함하는 블룸 필터에 덮어쓰기가 발생한 것으로 판단할 수 있다. 이때, 쓰기 요청에 따라 쓰기 요청에 대한 논리 블록 주소에 대해 복수 개의 블룸 필터의 각각에서 동일한 k개의 해시 함수를 사용하여 복수 개의 블록 필터의 각각으로부터 k개의 비트 위치에 대한 원소 검사를 수행함에 따라 덮어쓰기(overwrite)가 검사될 수 있다. In step 320, the overwrite inspection unit 220 may check whether an overwrite has occurred in the bloom filter in which the logical block address for the read request is stored as a write request occurs in the NAND flash memory. . As a write request occurs in the NAND flash memory, the overwrite inspection unit 220 collects information on the start address and size of the write request, and inspects the bloom filter including the logical block address for the read request address from the plurality of bloom filters. I can. When the bloom filter including the logical block address for the read request address exists, the overwrite checker 220 may determine that overwriting has occurred in the bloom filter including the logical block address for the read request address. At this time, according to the write request, the logical block address for the write request is overwritten by performing element checks for k bit positions from each of the plurality of block filters using the same k hash functions in each of the plurality of bloom filters. Overwrite can be checked.

단계(330)에서 랜섬웨어 탐지부(230)는 블룸 필터에 덮어쓰기가 발생한 것으로 판단함에 따라 랜섬웨어 탐지에 사용되는 특징값을 이용하여 랜섬웨어의 활동 여부를 탐지할 수 있다. 랜섬웨어 탐지부(230)는 랜섬웨어의 탐지에 사용되는 특징값을 계산하기 위한 덮어쓰기 횟수로부터 계산된 특징값을 이진 의사 결정 트리에 기반하여 랜섬웨어의 활동 여부를 판단할 수 있다. 이때, 특징값은 사용자의 원래 파일을 삭제하고, 삭제된 위치에 새로운 데이터(예컨대, 임의의 랜덤 데이터 또는 해커에 의해 암호화된 원본 데이터)를 기록하여 사용자가 원본 데이터를 복구하지 못하도록 덮어 쓰기(overwrite)하는 랜섬웨어의 특성들을 나타내는 값으로써, 미리 정의된 타임 슬라이스(times slice) 동안 발생한 덮어 쓰기(overwrite)의 횟수를 나타내는 OWIO, 상기 타임 슬라이스를 기반으로 하는 타임 윈도우(time window) 동안 발생한 쓰기 요청(write request)의 총 수 대비 덮어 쓰기(overwrite)가 발생한 블록의 비율을 나타내는 OWST, 타임 윈도우 동안 발생한 덮어 쓰기(overwrite)의 수를 나타내는 PWIO, 현재 타임 윈도우에서 연속적으로 덮어 쓰기가 발생한 블록 (continuously overwritten block)의 평균 길이(length)를 나타내는 AVGWIO, 이전 타임 윈도우에서의 평균 덮어 쓰기(overwrite)의 개수 대 현재 타임 슬라이스(time slice)에서의 덮어쓰기(overwrite)의 개수 간의 비율을 나타내는 OWSLOPE, 이전 타임 슬라이스에서의 평균 쓰기 횟수 대 현재 타임 슬라이스에서의 덮어 쓰기 횟수 의 비율을 나타내는 IO로부터 계산된 값을 포함할 수 있다. 예를 들면, 랜섬웨어 탐지부(230)는 특정 시간의 랜섬웨어의 판단 여부를 획득할 수 있다. 랜섬웨어 탐지부(230)는 판단 여부가 0 이면 현재 시간(예를 들면, 판단된 시점)에 랜섬웨어에 공격을 받았을 가능성이 낮은 것으로, 1 이면 랜섬웨어에 공격을 받았을 가능성이 높은 것으로 판단할 수 있다. 랜섬웨어 탐지부(230)는 n 초 동안의 관찰 결과, 1로 출력된 합산 값이 임계값(현재 프로그램에는 3으로 설정)보다 크면 랜섬웨어가 활동하는 것으로 최종 판정할 수 있다.In step 330, as the ransomware detection unit 230 determines that the bloom filter has been overwritten, it may detect whether the ransomware is active using a feature value used to detect ransomware. The ransomware detection unit 230 may determine whether the ransomware is active based on the binary decision tree based on the feature value calculated from the number of overwrites for calculating the feature value used for detecting the ransomware. At this time, the feature value is overwritten to prevent the user from recovering the original data by deleting the user's original file and recording new data (e.g., random data or original data encrypted by a hacker) in the deleted location. ) As a value indicating the characteristics of ransomware, indicating the number of overwrites occurring during a predefined time slice, and a write request occurring during a time window based on the time slice OWST indicating the ratio of overwrite blocks to the total number of (write requests), PWIO indicating the number of overwrites that occurred during the time window, and blocks with continuous overwrites in the current time window (continuously AVGWIO indicating the average length of the overwritten block), OWSLOPE indicating the ratio between the average number of overwrites in the previous time window versus the number of overwrites in the current time slice, previous It may include a value calculated from IO indicating a ratio of the average number of writes in the time slice to the number of overwrites in the current time slice. For example, the ransomware detection unit 230 may acquire whether to determine ransomware at a specific time. If the determination is 0, the ransomware detection unit 230 determines that the possibility of being attacked by ransomware at the current time (for example, the determined time) is low, and if it is 1, the possibility of being attacked by ransomware is high. I can. The ransomware detection unit 230 may finally determine that the ransomware is active if the sum value output as 1 is greater than the threshold value (set as 3 in the current program) as a result of observation for n seconds.

도 4는 랜섬웨어 탐지 시스템에서 최적화를 수행하는 방법을 설명하기 위한 흐름도이다. 4 is a flowchart illustrating a method of performing optimization in a ransomware detection system.

단계(410)에서 블룸 필터 최적화부(240)는 블룸 필터에 대한 제1 최적화를 수행할 수 있다. 제1 최적화는 동일한 해시 연산을 방지하기 위한 메모(memorization) 최적화를 의미한다. 쓰기 요청이 발생하였을 때 10개의 블룸 필터에 대해 원소 검사를 하는 상황, 다시 말해서 덮어쓰기 검사를 수행하는 상황에서 동일한 해시 연산이 발생할 수 있다. 만약, 10개의 블룸 필터가 각각 서로 다른 k개의 해시 함수를 사용한다면, 쓰기 요청이 발생하였을 때 10개의 블룸 필터에 대해 요청된 LBA의 block length 만큼 k번의 해싱을 수행해야 한다. 해시 연산 수행 횟수를 수식으로 표현하면 수학식 2와 같다.In step 410, the bloom filter optimizer 240 may perform a first optimization on the bloom filter. The first optimization refers to memory optimization to prevent the same hash operation. When a write request occurs, the same hash operation may occur in a situation in which an element check is performed on 10 bloom filters, that is, in a situation in which an overwrite check is performed. If 10 bloom filters each use k different hash functions, when a write request occurs, k hashing must be performed for 10 bloom filters as much as the block length of the requested LBA. If the number of times the hash operation is performed is expressed as an equation, it is shown in Equation 2.

수학식 2: Equation 2:

Figure pat00002
Figure pat00002

각 블룸 필터에 추가되는 논리 블록 주소는 다른 블룸 필터에 추가된 논리 블록 주소와 연관이 없으므로 모든 블룸 필터가 동일한 k개의 해시 함수를 사용하여도 문제가 없다. 예를 들면, 복수 개의 블룸 필터가 모두 동일한 k개의 해시 함수를 사용하여, 덮어쓰기 검사 시 논리 블록 주소에 대해 복수 개의 블룸 필터 모두 동일한 k개의 비트 위치에 원소 검사를 수행하도록 할 수 있다. 그리고 (k×block length) 크기의 정수형 2차원 배열에 논리 블록 주소를 k개의 해시 함수로 블록 길이(block length) 만큼 계산한 해시 값을 저장할 수 있다. 이를 이용하여 하나의 블룸 필터를 검사하기 위해 계산된 특정 논리 블록 주소의 해시 값을 다른 블룸 필터를 검사하기 위해 중복 계산하지 않도록 한다. 실시예에서 제1 최적화를 적용한 이후의 해시 연산 수행 횟수는 수학식 3과 같으며, 최적화 전과 비교하여 쓰기 요청 시 발생하는 덮어쓰기 검사에 필요한 해시 연산 횟수를 1/10으로 감소시킬 수 있다.Since the logical block address added to each bloom filter is not related to the logical block address added to other bloom filters, there is no problem even if all the bloom filters use the same k hash functions. For example, a plurality of bloom filters may all use the same k hash functions, so that, during an overwrite check, all of the plurality of bloom filters may perform element checks at the same k bit positions for a logical block address. In addition, a hash value obtained by calculating a block length as much as a block length with k hash functions of a logical block address can be stored in an integer 2D array of size (k×block length). By using this, the hash value of a specific logical block address calculated to check one bloom filter is not duplicated in order to check another bloom filter. In the embodiment, the number of hash operations performed after applying the first optimization is equal to Equation 3, and compared to before optimization, the number of hash operations required for an overwrite check occurring when a write request is made may be reduced to 1/10.

수학식 3:Equation 3:

Figure pat00003
Figure pat00003

단계(420)에서 블룸 필터 최적화부(240)는 블룸 필터에 대한 제2 최적화를 수행할 수 있다. 제2 최적화는 비 암호학적 해싱(Non-Cryptographic Hashing)을 의미할 수 있다. 블룸 필터 최적화부(240)는 블룸 필터에 원소 추가와 원소 검사를 할 때 k개의 해시 함수로 암호학적 해시 함수보다 상대적으로 빠른 비 암호학적 해시 함수만을 이용하여 해시 값을 얻도록 하는 비암호학적 해싱을 수행할 수 있다.In step 420, the bloom filter optimizer 240 may perform a second optimization on the bloom filter. The second optimization may mean non-cryptographic hashing. The bloom filter optimizer 240 obtains a hash value using only a non-cryptographic hash function that is relatively faster than a cryptographic hash function with k hash functions when adding elements to the bloom filter and checking the elements. You can do it.

일 실시예에 따른 랜섬웨어 탐지 시스템은 SSD 펌웨어에 탑재되어 운영 체제(OS)와는 독립적으로 랜섬웨어를 탐지할 수 있다. 랜섬웨어 탐지 시스템은 블룸 필터를 이용하여 SSD 성능이 거의 영향을 주지 않으면서 SSD 펌웨어의 내부에 탑재가 가능하다. 이를 통해 제조사의 입장에서는 탐지 알고리즘의 탑재에 따른 성능 유지를 위한 단가 상승의 우려를 덜 수 있고, 사용자의 입장에서는 별도의 프로그램을 설치하지 않아도 탐지 알고리즘이 탑재된 동일한 성능의 SSD를 사용함으로써 랜섬웨어의 공격으로부터 보호받을 수 있다. 이에, 랜섬웨어의 위협으로부터 안전하게 SSD를 사용할 수 있도록 제공할 수 있다. The ransomware detection system according to an embodiment may be installed in SSD firmware to detect ransomware independently of an operating system (OS). The ransomware detection system can be installed inside the SSD firmware by using a bloom filter without affecting the performance of the SSD. As a result, the manufacturer's point of view can reduce the concern of the increase in the unit price for maintaining the performance due to the mounting of the detection algorithm, and the user's point of view is the ransomware by using an SSD of the same performance with the detection algorithm even without installing a separate program. Can be protected from attacks from Accordingly, it can be provided so that the SSD can be safely used from the threat of ransomware.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the devices and components described in the embodiments are, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA). , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions, such as one or more general purpose computers or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications executed on the operating system. Further, the processing device may access, store, manipulate, process, and generate data in response to the execution of software. For the convenience of understanding, although it is sometimes described that one processing device is used, one of ordinary skill in the art, the processing device is a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to behave as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or, to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. Can be embodyed. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment 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 on the medium may be specially designed and configured for the embodiment, 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 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.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited embodiments and drawings as described above, various modifications and variations can be made from the above description to those of ordinary skill in the art. For example, the described techniques are performed in a different order from the described method, and/or components such as systems, structures, devices, circuits, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and those equivalent to the claims also fall within the scope of the claims to be described later.

Claims (10)

랜섬웨어 탐지 시스템에 의해 수행되는 랜섬웨어 탐지 방법에 있어서,
낸드 플래시 메모리에서 발생된 읽기 요청에 대한 논리 블록 주소를 블룸 필터(Bloom-filter)에 저장하는 단계;
상기 낸드 플래시 메모리에서 쓰기 요청이 발생함에 따라 상기 읽기 요청에 대한 논리 블록 주소가 저장된 블룸 필터를 대상으로 덮어쓰기(overwrite)가 발생하였는지 여부를 검사하는 단계; 및
상기 블룸 필터에 상기 덮어쓰기가 발생한 것으로 판단함에 따라 랜섬웨어 탐지에 사용되는 특징값을 이용하여 랜섬웨어의 활동 여부를 탐지하는 단계
를 포함하는 랜섬웨어 탐지 방법.
In the ransomware detection method performed by the ransomware detection system,
Storing a logical block address for a read request generated in the NAND flash memory in a bloom-filter;
Checking whether an overwrite has occurred in the bloom filter in which the logical block address for the read request is stored as a write request occurs in the NAND flash memory; And
Detecting whether ransomware is active using a feature value used for ransomware detection as it is determined that the overwrite has occurred in the bloom filter
Ransomware detection method comprising a.
제1항에 있어서,
상기 저장하는 단계는,
비트 배열을 가지고 있는 복수 개의 블룸 필터를 생성하는 단계
를 포함하고,
상기 복수 개의 블룸 필터는,
상기 읽기 요청에 대한 논리 블록 주소와 관련된 원소를 추가하기 위하여 상기 복수 개의 블룸 필터 각각에서 동일한 k개의 해시 함수를 사용하여 k개의 해시값을 계산하고, 계산된 각 해시값에 대응하는 비트를 모두 1로 설정하고, 상기 쓰기 요청에 대한 논리 블록 주소와 관련된 원소를 검사하기 위하여 k개의 해시 함수를 사용하여 k개의 해시값을 계산하고, 계산된 각 해시값에 대응하는 비트가 모두 1인지 상기 복수 개의 블룸 필터의 각각에서 검사되는
것을 특징으로 하는 랜섬웨어 탐지 방법.
The method of claim 1,
The storing step,
Creating a plurality of bloom filters with bit arrays
Including,
The plurality of bloom filters,
In order to add an element related to the logical block address for the read request, k hash values are calculated using the same k hash functions in each of the plurality of bloom filters, and all bits corresponding to each calculated hash value are 1 And, in order to check the elements related to the logical block address for the write request, k hash values are calculated using k hash functions, and whether the bits corresponding to each calculated hash value are all 1 Checked in each of the bloom filters
Ransomware detection method, characterized in that.
제1항에 있어서,
상기 블룸 필터에 상기 읽기 요청에 대한 논리 블록 주소를 저장하고, 상기 덮어쓰기(overwrite)가 발생하였는지 여부를 검사하는 수행 속도를 조절하기 위하여 상기 블룸 필터에 특정 처리를 수행하는 단계
를 더 포함하고,
상기 수행하는 단계는,
복수 개의 블룸 필터 각각의 동일한 k개의 비트 위치에서 원소 검사를 수행하고, k * 블록 길이(block length) 크기의 정수형 2차원 배열에 논리 블록 주소를 k개의 해시 함수로 블록 길이만큼 계산한 해시값을 저장하는 단계
를 포함하는 랜섬웨어 탐지 방법.
The method of claim 1,
Storing a logical block address for the read request in the bloom filter, and performing a specific process on the bloom filter to control an execution speed of checking whether the overwrite has occurred
Including more,
The performing step,
An element check is performed at the same k bit positions of each of the plurality of bloom filters, and a hash value calculated by calculating the block length with k hash functions in an integer two-dimensional array of size k * block length is calculated. Steps to save
Ransomware detection method comprising a.
제3항에 있어서,
상기 수행하는 단계는,
블룸 필터에 원소 추가와 원소 검사를 수행할 때, k개의 해시 함수로 비암호학적 해시 함수를 이용하여 k개의 해시 함수를 획득하도록 하는 비암호학적 해싱(Non-Cryptographic Hashing)을 수행하는 단계
를 포함하는 랜섬웨어 탐지 방법.
The method of claim 3,
The performing step,
Performing non-cryptographic hashing to obtain k hash functions using a non-cryptographic hash function with k hash functions when adding elements to the Bloom filter and performing element checks.
Ransomware detection method comprising a.
제1항에 있어서,
상기 저장하는 단계는,
상기 낸드 플래시 메모리에서 읽기 요청이 발생함에 따라 상기 읽기 요청이 발생한 시간 정보, 시작 주소, 크기 정보를 수집하고, 상기 수집된 시간 정보에 기초하여 상기 읽기 요청에 대한 논리 블록 주소(LBA)를 상기 블룸 필터에 저장하는 단계
를 포함하는 랜섬웨어 탐지 방법.
The method of claim 1,
The storing step,
As a read request occurs in the NAND flash memory, time information, start address, and size information of the read request occurs are collected, and a logical block address (LBA) for the read request is formed based on the collected time information. Steps to save to filter
Ransomware detection method comprising a.
제5항에 있어서,
상기 저장하는 단계는,
기 설정된 시간 범위에 기초하여 상기 읽기 요청에 대한 논리 블록 주소를 상기 블룸 필터에 저장하고, 상기 읽기 요청이 상기 기 설정된 시간 범위를 초과할 경우, 상기 읽기 요청에 대한 논리 블록 주소를 상기 블록 필터 다음의 블록 필터에 저장하는 단계
를 포함하는 랜섬웨어 탐지 방법.
The method of claim 5,
The storing step,
Based on a preset time range, the logical block address for the read request is stored in the bloom filter, and when the read request exceeds the preset time range, the logical block address for the read request is next to the block filter. Steps to save in the block filter of
Ransomware detection method comprising a.
제1항에 있어서,
상기 덮어쓰기(overwrite)가 발생하였는지 여부를 검사하는 단계는,
상기 낸드 플래시 메모리에서 쓰기 요청이 발생함에 따라 상기 쓰기 요청이 발생한 시작 주소, 크기 정보를 수집하여 복수 개의 블룸 필터로부터 상기 읽기 요청에 대한 논리 블록 주소를 포함하는 블룸 필터를 검사하는 단계
를 포함하는 랜섬웨어 탐지 방법.
The method of claim 1,
The step of checking whether the overwrite has occurred,
As a write request occurs in the NAND flash memory, collecting information on the start address and size of the write request, and checking a bloom filter including a logical block address for the read request from a plurality of bloom filters
Ransomware detection method comprising a.
제1항에 있어서,
상기 랜섬웨어의 활동 여부를 탐지하는 단계는,
상기 읽기 요청에 대한 논리 블록 주소를 포함하는 블룸 필터가 존재할 경우, 상기 읽기 요청에 대한 논리 블록 주소를 포함하는 블룸 필터에 덮어쓰기가 발생한 것으로 판단하는 단계
를 포함하는 랜섬웨어 탐지 방법.
The method of claim 1,
The step of detecting whether the ransomware is active or not,
If there is a bloom filter including a logical block address for the read request, determining that overwrite has occurred in the bloom filter including the logical block address for the read request
Ransomware detection method comprising a.
제1항에 있어서,
상기 특징값은, 미리 정의된 타임 슬라이스(times slice) 동안 발생한 덮어 쓰기(overwrite)의 횟수를 나타내는 OWIO, 상기 타임 슬라이스를 기반으로 하는 타임 윈도우(time window) 동안 발생한 쓰기 요청(write request)의 총 수 대비 덮어 쓰기(overwrite)가 발생한 블록의 비율을 나타내는 OWST, 타임 윈도우 동안 발생한 덮어 쓰기(overwrite)의 수를 나타내는 PWIO, 현재 타임 윈도우에서 연속적으로 덮어 쓰기가 발생한 블록 (continuously overwritten block)의 평균 길이(length)를 나타내는 AVGWIO, 이전 타임 윈도우에서의 평균 덮어 쓰기(overwrite)의 개수 대 현재 타임 슬라이스(time slice)에서의 덮어쓰기(overwrite)의 개수 간의 비율 을 나타내는 OWSLOPE, 이전 타임 슬라이스에서의 평균 쓰기 횟수 대 현재 타임 슬라이스에서의 덮어 쓰기 횟수 의 비율을 나타내는 IO로부터 계산된 값을 포함하고,
상기 랜섬웨어의 활동 여부를 탐지하는 단계는,
상기 랜섬웨어의 탐지에 사용되는 특징값을 계산하기 위한 덮어쓰기 횟수로부터 계산된 특징값을 이진 의사 결정 트리에 기반하여 랜섬웨어의 활동 여부를 판단하는 단계
를 포함하는 랜섬웨어 탐지 방법.
The method of claim 1,
The characteristic value is OWIO indicating the number of overwrites occurring during a predefined time slice, and the total number of write requests occurring during a time window based on the time slice. OWST, which indicates the ratio of overwrites to the number of blocks, PWIO, which indicates the number of overwrites that occurred during the time window, and the average length of continuously overwritten blocks in the current time window. AVGWIO representing (length), OWSLOPE representing the ratio between the number of average overwrites in the previous time window versus the number of overwrites in the current time slice, and average writes in the previous time slice Contains a value calculated from IO representing the ratio of the number of times to the number of overwrites in the current time slice,
The step of detecting whether the ransomware is active or not,
Determining whether ransomware is active based on a binary decision tree based on a feature value calculated from the number of overwrites for calculating a feature value used for detecting the ransomware
Ransomware detection method comprising a.
랜섬웨어 탐지 시스템에 있어서,
낸드 플래시 메모리에서 발생된 읽기 요청에 대한 논리 블록 주소를 블룸 필터(Bloom-filter)에 저장하는 논리 블록 주소 저장부;
상기 낸드 플래시 메모리에서 쓰기 요청이 발생함에 따라 상기 읽기 요청에 대한 논리 블록 주소가 저장된 블룸 필터를 대상으로 덮어쓰기(overwrite)가 발생하였는지 여부를 검사하는 덮어쓰기 검사부; 및
상기 블룸 필터에 상기 덮어쓰기가 발생한 것으로 판단함에 따라 랜섬웨어 탐지에 사용되는 특징값을 이용하여 랜섬웨어의 활동 여부를 탐지하는 랜섬웨어 탐지부
를 포함하는 랜섬웨어 탐지 시스템.
In the ransomware detection system,
A logical block address storage unit for storing a logical block address for a read request generated from the NAND flash memory in a bloom-filter;
An overwrite checker for checking whether an overwrite has occurred in the bloom filter in which the logical block address for the read request is stored as a write request occurs in the NAND flash memory; And
Ransomware detection unit that detects whether ransomware is active by using a feature value used to detect ransomware as it determines that the overwrite has occurred in the bloom filter
Ransomware detection system comprising a.
KR1020190121777A 2019-10-01 2019-10-01 Efficient ransomware detection method and system using bloom-filter KR102259158B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190121777A KR102259158B1 (en) 2019-10-01 2019-10-01 Efficient ransomware detection method and system using bloom-filter
PCT/KR2019/018794 WO2021066257A1 (en) 2019-10-01 2019-12-31 Efficient ransomware detection method and system using bloom-filter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190121777A KR102259158B1 (en) 2019-10-01 2019-10-01 Efficient ransomware detection method and system using bloom-filter

Publications (2)

Publication Number Publication Date
KR20210039212A true KR20210039212A (en) 2021-04-09
KR102259158B1 KR102259158B1 (en) 2021-06-02

Family

ID=75336579

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190121777A KR102259158B1 (en) 2019-10-01 2019-10-01 Efficient ransomware detection method and system using bloom-filter

Country Status (2)

Country Link
KR (1) KR102259158B1 (en)
WO (1) WO2021066257A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535719A (en) * 2021-07-07 2021-10-22 锐掣(杭州)科技有限公司 Data filtering method, data filtering device, storage medium and product
CN117370624A (en) * 2023-12-04 2024-01-09 北京四方启点科技有限公司 Electronic bill processing method and system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101476039B1 (en) * 2013-06-19 2014-12-23 세명대학교 산학협력단 Method for encrypting database and method for real-time search thereof
US20150347585A1 (en) * 2014-05-27 2015-12-03 Quixey, Inc. Personalized Search Results
KR101850650B1 (en) * 2017-05-11 2018-05-30 한양대학교 산학협력단 Portable storage device perfoming a ransomeware detection and method for the same
KR101970993B1 (en) * 2017-11-29 2019-04-23 주식회사 더볼터 Method internal defensing of solid state drive against ransomeware without data loss and ransomeware detec system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101499666B1 (en) * 2013-08-08 2015-03-06 주식회사 시큐아이 Apparatus and method for detecting network scanning

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101476039B1 (en) * 2013-06-19 2014-12-23 세명대학교 산학협력단 Method for encrypting database and method for real-time search thereof
US20150347585A1 (en) * 2014-05-27 2015-12-03 Quixey, Inc. Personalized Search Results
KR101850650B1 (en) * 2017-05-11 2018-05-30 한양대학교 산학협력단 Portable storage device perfoming a ransomeware detection and method for the same
KR101970993B1 (en) * 2017-11-29 2019-04-23 주식회사 더볼터 Method internal defensing of solid state drive against ransomeware without data loss and ransomeware detec system

Also Published As

Publication number Publication date
WO2021066257A1 (en) 2021-04-08
KR102259158B1 (en) 2021-06-02

Similar Documents

Publication Publication Date Title
Min et al. Amoeba: An autonomous backup and recovery SSD for ransomware attack defense
US10503897B1 (en) Detecting and stopping ransomware
US10025931B1 (en) Method and system for malware detection
JP5881859B2 (en) Storage device
US10713361B2 (en) Anti-malware protection using volume filters
US10496323B2 (en) Data protection using change-based measurements in block-based backup
JP7144642B2 (en) Behavior-based VM resource capture for forensics
TWI610182B (en) Systems and methods for providing dynamic file system awareness on storage devices
KR101970993B1 (en) Method internal defensing of solid state drive against ransomeware without data loss and ransomeware detec system
US20180181338A1 (en) Information processing apparatus, information processing system and information processing method
US20210117541A1 (en) Using trap cache segments to detect malicious processes
US9460001B2 (en) Systems and methods for identifying access rate boundaries of workloads
KR102259158B1 (en) Efficient ransomware detection method and system using bloom-filter
US9202053B1 (en) MBR infection detection using emulation
KR102105885B1 (en) Detection method and system of ransomeware
US8655841B1 (en) Selection of one of several available incremental modification detection techniques for use in incremental backups
US20060092035A1 (en) Method and system for storage-based intrusion detection and recovery
US10049116B1 (en) Precalculation of signatures for use in client-side deduplication
US20230325504A1 (en) Block-based protection from ransomware
US8621632B1 (en) Systems and methods for locating malware
US10664595B2 (en) Managing reads and writes to data entities experiencing a security breach from a suspicious process
KR102543101B1 (en) Detection method of ransomeware using magic number
Paik et al. Buffer management for identifying crypto-ransomware attack in environment with no semantic information
Gutierrez et al. Reactive redundancy for data destruction protection (R2D2)
Ma et al. Travelling the hypervisor and ssd: A tag-based approach against crypto ransomware with fine-grained data recovery

Legal Events

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