WO2019107609A1 - 랜섬웨어에 대한 데이터 손실이 없는 ssd 내부 방어 방법 및 랜섬웨어 탐지 시스템 - Google Patents

랜섬웨어에 대한 데이터 손실이 없는 ssd 내부 방어 방법 및 랜섬웨어 탐지 시스템 Download PDF

Info

Publication number
WO2019107609A1
WO2019107609A1 PCT/KR2017/013905 KR2017013905W WO2019107609A1 WO 2019107609 A1 WO2019107609 A1 WO 2019107609A1 KR 2017013905 W KR2017013905 W KR 2017013905W WO 2019107609 A1 WO2019107609 A1 WO 2019107609A1
Authority
WO
WIPO (PCT)
Prior art keywords
ransomware
request
software
overwrites
active
Prior art date
Application number
PCT/KR2017/013905
Other languages
English (en)
French (fr)
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 주식회사 더볼터
Publication of WO2019107609A1 publication Critical patent/WO2019107609A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting

Definitions

  • Embodiments of the present invention are directed to techniques for defending Ransomware by detecting activity of Ransomeware within a solid state drive (SSD) based on NAND flash memory.
  • SSD solid state drive
  • Ransomware a malicious software type that holds user data as a hostage for monetary gain, is increasingly vulnerable, and ransomeware is a complex command and control (C & C) application using anonymous communication systems such as Tor ) Is attempting to destroy standard malware defenses by collecting monetary gains using virtual money, such as bit coins, which are difficult to use and track the network.
  • Ransomware provides "potentially profitable businesses" to cybercriminals by giving potential attackers a potentially high monetary gain and making it difficult to defend against Ransomware. For example, Nayana web hosting company in Korea was attacked by encrypted Ransomware called Erebus in 2017, and according to KISA, more than 3,400 websites were affected by Ransomware.
  • Ransomware is divided into locker and encrypted Ransomware.
  • Locker Ransomware prevents users from accessing the infected system.
  • Encrypted random software such as WannaCry, CryptoWall, TeslaCrypt (aka AlphaCrypt)
  • Locky encrypts the data by encrypting the data to prevent users from accessing the data. It is malicious software.
  • the majority of the newly discovered Ransomware will be encrypted and the Ransomware will reach 80% of Ransomware in 2015.
  • a technique for defending the encrypted random software is required.
  • Application-level monitoring also monitors all IO and file system modifications, consuming a large amount of resources and degrading system performance.
  • Ransomware has been developed for Microsoft Windows operating systems, so defense technologies suitable for other operating systems such as Linux and MacOS have not been well studied.
  • Korean Patent Registration No. 10-1685014 relates to a preemptive detection blocking method and apparatus for a Ransomware behavior of a computer system.
  • a trap file is created on a route that can be accessed for the first time on the operating system, And detecting and blocking an Ransomware action that attempts to change encryption or the like.
  • Non-Patent Document 1 [1] G. Canfora, F. Mercaldo, and C. Visaggio, "An hmm and structural entropy-based detector for android malware: An empirical study," Computers & Security, vol. 61, pp. 1-18, 2016.
  • Non-Patent Document 3 [3] A. Kharaz, S. Arshad, C. Mulliner, W. Robertson, and E. Kirda, "Unveil: A Large-scale, Automated Approach to Detecting Ransomware," in Proceedings of the 8th ACM International Conference on Embedded Software, vol. USENIX Security '16. USENIX, 2016, pp. 757-772.
  • Non-Patent Document 4 J. R. Quinlan, "Induction of decision trees,” Mach. Learn., Vol. 1, no. 1, pp. 81-106, 1986.
  • the present invention relates to a technique for detecting the activity of the Ransomware within a solid state drive (SSD) based on a NAND flash memory.
  • SSD solid state drive
  • it detects the abnormal characteristics of the SSD due to the activity of the Randomware within the NAND Flash memory, not the application level, and protects it against the attack of Ransomware.
  • Recovery techniques based on the delayed deletion characteristic of the SSD.
  • a method for detecting a random access memory (RAM) in a NAND flash memory comprising: monitoring an IO request periodically at every predefined monitoring time for detecting a random access memory; Determining whether an overwrite has occurred in a target memory block having the same logical block address (LBA) as a block requested to be read based on whether or not the overwrite has occurred; Counting the number of overwrites for each of a plurality of predefined features to specify an operation characteristic of the random software, and determining whether the activity of the random software is based on the counted overwrite count And a step of detecting.
  • LBA logical block address
  • the plurality of properties includes OWIO indicating the number of overwrites occurring during a predefined timeslice, a write request generated during a time window based on the time slice, OWST indicating the ratio of the number of overwrites to the total number of write requests, PWIO indicating the number of overwrites occurring during the time window, continuously overwritten 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 and the number of overwrites in the current time slice, IO representing the ratio of the average number of writes in the time slice to the number of overwrites in the current time slice .
  • the NAND flash memory may represent a solid state drive (SSD).
  • SSD solid state drive
  • the step of detecting whether or not the activity of the RAN firmware is performed may include detecting a plurality of I / O requests collected during an active period of different kinds of random software, It is possible to detect whether or not overwriting occurring in the block corresponding to the IO request monitored based on the generated binary decision tree is due to the activity of the random software. have.
  • the step of detecting whether or not the activity of the random software is performed may include calculating a feature value corresponding to each of the plurality of features based on a counting table, Setting a star characteristic value as an input parameter of the binary decision tree to obtain a result value indicating whether the Raman software is active and determining whether the Raman software is active based on the obtained result value . ≪ / RTI >
  • the determining step comprises: summing a plurality of result values obtained during a predetermined time window and, if the summed result value is greater than a predetermined threshold, determining that the randomware is active .
  • the step of detecting whether or not the activity of the RAN firmware is performed may include detecting time information, logical block address (LBA) information, IO mode (IO Mode) information, ) Information can be detected by using the counting table stored in association with the information.
  • LBA logical block address
  • IO Mode IO Mode
  • the counting table may be updated based on the number of monitored IO requests counted during a time slice and the logical block address (LBA).
  • LBA logical block address
  • the counting table may selectively store a write IO request corresponding to the same logical block address (LBA) as the read IO request during the monitored IO request for a predefined time window .
  • LBA logical block address
  • a monitoring system for monitoring an I / O request (I / O request) periodically at every predetermined monitoring time for detecting a random access memory (I / O request) in a NAND flash memory,
  • a verification unit for verifying whether overwriting has occurred in a target memory block having the same logical block address (LBA) as a block requested to be read based on the distribution,
  • a counting unit for counting the number of times of overwriting for each of a plurality of predefined features in order to specify an operation characteristic of the random software based on confirmation of whether or not the overwriting has occurred, And a detection unit for detecting whether or not the random software is in an activity state.
  • the present invention is implemented in the form of firmware in the SSD and detects the activity of the Randomware based on the abnormal characteristics of the SSD so that the Randomware can be detected without executing the Randomware application such as the vaccine Not only can the OS (or middleware) be able to detect the activity of Ransomware even if it does not run the Ransomware monitoring application.
  • the SSD since the SSD is implemented as firmware in the SSD, it can detect the activity of the Randomware regardless of the type of the OS, that is, the unknown OS, the file system and the application program.
  • Ransomware can detect whether the Ransomware is active or not by detecting the activity of Ransomware.
  • FIG. 1 is a block diagram illustrating an internal configuration of a Ransomware detection system according to an exemplary embodiment of the present invention. Referring to FIG. 1
  • FIG. 2 is a flow chart illustrating a method of detecting Ransomware in an embodiment of the present invention.
  • FIG. 3 is an OWIO-related graph of six characteristics that specify a randomware in an embodiment of the present invention.
  • FIG. 4 is a graph of five characteristics related to the Raman software, excluding OWIO, among six characteristics in the embodiment of the present invention.
  • Figure 5 is a flow diagram illustrating a detailed operation for detecting activity of Ransomware based on six learned features in one embodiment of the present invention.
  • FIG. 6 is a diagram showing a counting table in an embodiment of the present invention.
  • FIG. 7 is a diagram illustrating an updated counting table using a basic function in an embodiment of the present invention.
  • FIG. 8 is a diagram provided to illustrate an operation of calculating a score for summing up tree results and finally determining whether or not the Random Game is active, according to an embodiment of the present invention.
  • the present invention relates to a technique for detecting an activity of a ransomeware by being implemented as firmware in an SSD to operate in a NAND flash-based SSD, and more particularly to a technology for detecting an Ransomware in an application layer or an OS layer
  • the Ransomware detection method may operate as part of the SSD firmware and may detect Ransomware only with limited resources (e.g., CPU power and memory).
  • the Ransomware detection method and system recognizes the activity of Ransomware by checking only the distribution of the IO request header instead of the entire payload, so that the unique operation characteristic of the lightweight, Can be used to detect Ransomware.
  • the unique operating characteristic of Ransomware can be used for Ransomware detection.
  • the 'six features' specifying the encrypted random software delete the original file of the user and add new data (for example, random random data or original data encrypted by the hacker) to the deleted location OWIO indicating the number of overwrites occurring during a predefined timeslice, a time slice indicating the number of overwrites occurring during a predefined timeslice, OWST indicating the ratio of the number of overwrite times to the total number of write requests generated during a time window based on the number of overwrites occurring during the time window, , The average length of a block (continuously overwritten block) in which the current time window is continuously overwritten AVGWIO, 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, the average number of writes in the previous time slice versus the current time And IO indicating the ratio of the number of overwrites in the slice.
  • new data for example, random random data or original data encrypted by the hacker
  • an 'IO request' does not contain a large amount of information such as a file name, a file size, a magic number, a process ID, a process name, etc., but a write request and a read request, Only < / RTI > That is, it can detect the activity of Ransomware by checking only the IO request.
  • 'overwrite' may indicate that a memory block is read and then a memory block having the same logical block address (LBA) is updated to remove / delete data of the corresponding block.
  • LBA logical block address
  • the 'time slice' is a predetermined time window divided into a plurality of sections. For example, when the time window is 10 seconds, the time slice may be divided into 1 second have. That is, a time window of 10 seconds can be divided into 10 time slices of 1 second.
  • FIG. 1 is a block diagram illustrating an internal configuration of a Ransomware detection system according to an exemplary embodiment of the present invention.
  • FIG. 2 is a flowchart illustrating a Ransomware detection method according to an exemplary embodiment of the present invention.
  • the Ransomware detection system 100 includes a monitoring unit 110, an identifying unit 120, a counting unit 130 ) And a detection unit 140.
  • the Ransomware detection system 100 is a processor of the computing system and is configured to execute program code for the monitoring unit 110, the verification unit 120, the counting unit 130, and the detection unit 140 .
  • the monitoring unit 110 may periodically monitor an IO request (IO request) for each predetermined monitoring time for detecting the RAN cellware.
  • the monitoring unit 110 may monitor and collect an IO request for a time window (e.g., 10 seconds). That is, it may have both a read request and a write request occurring for 10 seconds.
  • a time window e.g. 10 seconds
  • step 220 the checking unit 120 overwrites a target memory block having the same logical block address (LBA) as the requested block based on the distribution of the header of the monitored IO request overwrite) has occurred.
  • LBA logical block address
  • the counting unit 130 may count the number of times of overwriting for each of the six characteristics that specify the operating characteristics of the Raman software, based on whether or not the overwriting has occurred.
  • the six features that specify the operating characteristics (i.e., activity) of the RANEMWARE may include OWIO, OWST, PWIO, AVGWIO, OWSLOPE, and IO.
  • OWIO represents the number of overwrites that occurred during a predefined timeslice
  • OWST overlaps the total number of write requests that occurred during the time window based on the time slice
  • It can indicate the percentage of blocks that have been overwritten.
  • PWIO represents the number of overwrites occurring during the time window
  • AVGWIO represents the average length of the blocks continuously overwritten in the current time window
  • OWSLOPE represents the average length of the overwritten blocks during the current time window
  • It can indicate the ratio between the number of average overwrites versus the number of overwrites in the current time slice.
  • IO can represent the ratio of the average number of writes in the previous time slice to the number of overwrites in the current time slice.
  • the detection unit 140 may detect whether the Ransomware is active based on the counted number of overwrites.
  • a plurality of IO requests collected during the active period of each of the RAN modules may be learned for each of the six types of RAN . For example, learning can be performed for each of six characteristics using a machine learning algorithm, a binary decision tree algorithm, and the like.
  • the detection unit 140 may detect whether the activity of the Ransomware exists in the current time window using the IO request monitored during the time window based on the tree generated through the learning.
  • the operation of detecting the activity of the RAN firmware will be described in detail with reference to FIG.
  • the Ransomware detection system 100 recognizes the activity of the Ransomware by checking only the distribution of the IO request header instead of the entire payload, the Ransomware detection system recognizes six characteristics of overwriting the lightweight and encrypted Ransomware Based on this, Ransomware can be detected. Hereinafter, six characteristics will be described in detail with reference to FIG. 3 and FIG.
  • FIG. 3 is an OWIO-related graph of six characteristics that specify a randomware in an embodiment of the present invention.
  • 310 is a graph showing OWIO for each of the six features among the features
  • 320 is a graph showing OWIO of the RAN firmware and the general application.
  • Graph 310 can indicate how long WannaCry and Mole Randomware are active during a 1 second time slice when the overwrite frequency is different. 310, it can be seen that the more frequently overwriting occurs (that is, the greater the frequency of overwriting), the longer the activity time of WannaCry and Mole Ransomware is.
  • Graph 320 is an accumulation of the number of overwrite requests for four Ransomware (WannaCry, Mole, Jaff, Cryptooshield) and four common applications (ie, data warehouse, P2P download, cloud storage synchronization and compression) Graphs can be displayed.
  • Ransomware WideCry, Mole, Jaff, Cryptooshield
  • common applications ie, data warehouse, P2P download, cloud storage synchronization and compression
  • Graphs can be displayed.
  • the growth rate of Ransomware is relatively higher over time than that of general application.
  • WannaCry Mole has a higher growth rate than Jaff and Cryptooshield, but Jaff and Cryptooshield have a relatively low growth rate. Therefore, if Ransomware is detected based on six characteristics that specify Ransomware, Jaff and Cryptooshield It can be detected separately from general applications.
  • OWIO is a feature indicating the attribute of reading, encrypting and overwriting the same block of a document file for a short period of time.
  • the frequency of overwriting by a typical application is not as high as the frequency of overwriting the firmware (for example, less than 100K) except for the data wiping application.
  • OWIO characteristics can be caused by data wiping, cloud storage, P2P download in general applications, and the number of accumulated data wiping programs can be as high as the number of RANUMWARE. Accordingly, as shown in FIG. 4, in addition to OWIO, five characteristics due to the overwrite activity of the Raman software can be additionally specified.
  • FIG. 4 is a graph of five characteristics related to the Raman software, excluding OWIO, among six characteristics in the embodiment of the present invention.
  • graphs 410 and 420 are OWST
  • graphs 430 and 440 are PWIO
  • graphs 450 and 460 are AVGWIO
  • graph 470 is IO
  • graph 480 is OWSLOPE.
  • one of the common applications that is difficult to distinguish from Ransomware is data wiping.
  • an important feature is how many times the write request is overwritten in the time window in which the overwrite for only one block is calculated once.
  • a typical data wiping application requires multiple overwrites to a single block, which can result in lower OWST values than Ransomware values.
  • OWST captures a high overwrite speed at the write IO that occurs during the operation of the firmware. Referring to 410, the active period of Ransomware and the OWST Can be identified.
  • AVGWIO can be used to detect / capture run-length characteristics of Ransomware attack objects. Since Rangumware attacks documents and images, it does not overwrite multiple consecutive blocks unlike data wiping, defragmentation, and DB update. Considering this characteristic, referring to the graph 460, it can be seen that the length of consecutive blocks overwritten with a general application (for example, data wiping, MySQL) is relatively short in the case of Ransomware. In graph 450, we can see the correlation between the duration of activity (or duration of activity) and AVGWIO.
  • OWSLOPE can be used to detect the activity (ie, activity) of the Ransomware due to a sudden increase in the overwrite volume. Referring to graphs 470 and 480, the correlation between the active period of Ransomware and IO or OWSLOPE can be confirmed.
  • the detection of a particular Rangemeware may be missed among various types of Rangemeware, but the learning is performed by six characteristics using a machine learning or a binary decision tree algorithm
  • detecting the activity of Ransomware in relation to the monitored IO request based on the learned model it is possible to instantly detect various types of Ransomware and detect Ransomware that has not been known before.
  • a binary decision tree algorithm non-patent literature [4] JR Quinlan , "Induction of decision trees," Mach. Learn., Vol. 1, no. 1, pp. 81-106, 1986.
  • the ID3 algorithm can be used and the feature values of the six characteristics of the monitored IO request using the binary decision tree, which is a learning model constructed through the ID3 algorithm, And can be detected based on the feature value.
  • Figure 5 is a flow diagram illustrating a detailed operation for detecting activity of Ransomware based on six learned features in one embodiment of the present invention.
  • steps 510 to 530 in FIG. 5 embodies step 240 in FIG. 2, and may be performed by the detection unit 140.
  • the monitoring unit 110 may monitor all IO requests for RAN search.
  • Each IO request includes time information, logical block address (LBA) information, IO mode (IO mode), and overwrite length overwritten length information). That is, the IO request may include time information, logical block address (LBA) information, IO mode (IO Mode), and overwrite length information.
  • the time information indicates the time when the IO request is generated
  • the logical block address (LBA) information may indicate the start address at which data written in the memory block is read or data is written to the memory block.
  • the IO mode information indicates whether the request is an IO request type, for example, a read request or a write request
  • the length information may indicate the number of memory blocks corresponding to the IO request.
  • the detection unit 140 can detect the activity of the Ransomware using the monitored IO request, the counting table, and the binary decision tree.
  • the detection unit 140 may calculate feature values corresponding to the six characteristics that specify the random software, based on the counting table (counting).
  • the counting table will be described later with reference to FIG.
  • the detector 140 may set the calculated characteristic values of the six characteristics as input parameters of the binary decision tree to obtain a result indicating whether or not the Raman software is active. That is, the output of the binary decision tree may correspond to the result indicating whether the random software is active or not. For example, a value of 1 may be output as a result when the firmware is active (i.e., active), and a value of 0 may be output as the result of the tree if the firmware is inactive have.
  • the detection unit 140 may perform scoring based on the result value to finally determine whether the Raman software is active.
  • the detector 140 may sum up a plurality of results obtained for a predetermined time window (e.g., 10 seconds) and compare whether the summed result is larger than a predetermined threshold . If the summed result value is greater than the threshold value, the detection unit 140 can determine that the Raman software is active. In other words, the activity of Ransomware can be detected. If the summed result is not greater than the threshold value, the detection unit 140 can determine that the random software is not active. That is, it can be determined that overwriting due to data wiping or the like occurred in a general application other than Ransomware.
  • a predetermined time window e.g. 10 seconds
  • the counting table is used for the detection of the random software, and the time information, the logical block address (LBA) information, the IO mode information, and the length information can be stored in association with the monitored IO requests in the counting table .
  • the IO mode information and the length information can be represented by an integrated form of RL (read length) and WL (write length).
  • FIG. 6 is a diagram showing a counting table in an embodiment of the present invention.
  • the counting table 610 may include time information, logical block address (LBA) information, RL (read length) corresponding to the monitored IO request, and WL (write length) information.
  • LBA logical block address
  • RL read length
  • WL write length
  • the time window may indicate the monitoring period during which the monitoring is performed through the I / O request, and the periodicity of the Raman software may be detected during the monitoring period. For example, if the time window is set to 10 seconds, it can detect whether the SSD is infected with Ransomware based on the IO requests monitored periodically for 10 seconds.
  • the time window may consist of N time slices, and the time window may be divided by a time slice (e.g., one second) at all checkpoints.
  • a counting table may be stored which stores the overwrite execution length of the IO request (IOReq) for the evaluation of the six features. The number of IO requests that occur during a time slice may be counted and the counting table may be updated based on the counted value and logical block address (LBA) information.
  • IOReq overwrite execution length of the IO request
  • time tome information indicates a time slice number (i.e., identification information) newly generated or updated
  • LBA indicates a start address in which overwriting is continuously performed for the same memory block
  • RL can represent the total length of read requests (read IO) that occur consecutively in the LBA.
  • WL can indicate the total length of write IO that occurs after the read IO occurs. That is, the total length of blocks in which blocks are consecutively written in the same block as the block in which the read IO has occurred can be indicated.
  • a hash table 620 may be used in conjunction with the counting table 610 to calculate six characteristic value values for the IO request generated during the time window.
  • a hash table 620 may be generated by applying a logical block address (LBA) as a key of a hash function.
  • LBA logical block address
  • the feature value of IO among the six features can be calculated as the sum of all read IO requests (RIO) and write IO requests (WIO) that occurred during the current time slice.
  • the feature value of OWIO can be calculated as the sum of WL (write length) corresponding to the current slice.
  • the feature value of PWIO can be calculated as the sum of all WLs stored in the counting table 610 from t-11 to t-1 when the current time is t.
  • the feature value of AVGWIO can be calculated as the average (i.e., average WL) of the sum of WLs from t-10 to t of the WL stored in the counting table 610.
  • the feature value of OWSLOPE can be calculated by dividing OWIO by PWIO.
  • Table 1 below corresponds to an algorithm for detecting Ransomware.
  • the IO request used in Table 1 and FIG. 7 includes IO mode information, LBA information, and length information, and the length information may be assumed to be 1.
  • FIG. At T 0, the counting table 710 and the hash table 720 may initially be empty.
  • the detection unit 140 searches the hash table 720 and outputs the received / monitored IO request IOReq (1, R ) Can be found. If the key 1 found in the hash table 720 is not found in the entry of the counting table 710, the detecting unit 140 uses the NewEntry function to check the counting table 710 710, and registers the new entry in association with the key value 1 of the hash table 720.
  • the NewEntry function can then be updated as follows.
  • the detection unit 140 checks if the key value 2 is in the hash table 720 You can search for an entry. At this time, there is no entry having a key value of 2 in the hash table 720, but an entry having a key 1 adjacent to LBA 2 may exist. In this case, the detection unit 140 does not generate a new item in the counting table 710, but updates the neighbor entry using the update function (UpdateEntryR function) in association with the second IO request (IOReq (2, R) can do.
  • UpdateEntryR function UpdateEntryR function
  • the second IO request (IOReq (2, R)) is a consecutive request of the first IO request (IOReq (1, R))
  • the UpdateEntryR function may then increment the corresponding RL value in the counting table 710 by one.
  • a fourth IO request (IOReq (1, R)) may be received.
  • IOReq (1, R)) may be deleted because it already exists in the LBA entry.
  • the overwrite calculation only the write IO request with the same LBA information as the read IO request in the time window can be stored in the counting table 710. [ That is, only write IO requests having the same LBA address information as the read IO request among all the write IO requests generated during the time window can be selectively stored in the counting table 710.
  • the IO request (IOReq (3, W)) may then be already stored in the counting table 710.
  • the IO request (IOReq (3, W)) indicates that there is a read IO from LBA 1 to 3, but the LBA of the IO request (IOReq (3, W) That is, LBA 1 and 2 are not overwritten, but LBA 3 may have been overwritten.
  • the SpliteEntry function can divide an entry into two. At this time, one can have a tuple (Time 0, LBA 1, RL 2, WL 0), and the other can have a tuple (Time 1, LBA 3, RL 1, WL 1).
  • the feature value of AVGWIO is 4/2 and the sum of WLs in both entries can be calculated as 4. Since the feature value of PWIO is the sum of all WLs of the previous checkpoint 3, it is calculated as 2, and the PWIO of the previous checkpoint is divided into the current OWIO to be OWSLOPE, so that the feature value of OWSLOPE can be calculated as 1/1.
  • the old entry in the counting table 710 can be deleted by moving the time window, as shown in line 6 of Table 1.
  • the detection unit 140 can adjust the score by subtracting the deleted entry.
  • the feature value may be calculated for each of six characteristics using the counting table 710, and the calculated feature value may be set as an input parameter of a binary decision tree (DecisionTreeID3) generated based on the ID3 algorithm. Then, as output values of the binary decision tree, the results of the six characteristics can be obtained.
  • the detection unit 140 may finally determine whether the Raman software is active by summing the result values.
  • the binary decision tree can output a value of 0 or 1, with feature values of six characteristics being input. 1 indicates that there is a high likelihood of Ransomware attacking at the current checkpoint and 0 indicates that the probability of Ransomware attacking at the current checkpoint is not high.
  • the outputs of the tree are summed for 10 seconds so that a score 810 from 0 to 10 can be calculated as shown in FIG. If the calculated score is greater than a predefined threshold value (for example, 3), the detection unit 140 determines that the Raman software is active (i.e., active) State). If it is not greater than the threshold value, it can be determined that the random firmware is not active, i.e., does not exist in the SSD.
  • a predefined threshold value for example, 3
  • the methods according to embodiments of the present invention may be implemented in the form of a program instruction that can be executed through various computer systems and recorded in a computer-readable medium.
  • the apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components.
  • the apparatus and components described in the embodiments may be implemented within a computer system, such as, 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.
  • the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
  • the processing device may also access, store, manipulate, process, and generate data in response to execution of the software.
  • OS operating system
  • the processing device may also access, store, manipulate, process, and generate data in response to execution of the software.
  • the processing apparatus may be described as being used singly, but those of ordinary skill in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG.
  • the processing unit may comprise a plurality of processors or one processor and one controller.
  • Other processing configurations are also possible, such as a parallel processor.
  • the software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded.
  • the software may be distributed over a networked computer system and stored or executed in a distributed manner.
  • the software and data may be stored on one or more computer readable recording media.
  • the method according to an embodiment may be implemented in the form of a program command 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, and the like, alone or in combination.
  • the program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software.
  • Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like.
  • Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.

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

랜섬웨어에 대한 데이터 손실이 없는 SSD 내부 방어 방법 및 랜섬웨어 탐지 시스템이 개시된다. NAND 플래시 메모리에서 동작하는 랜섬웨어 탐지 방법에 있어서, 랜섬웨어 탐지를 위해 미리 정의된 모니터링 시간마다 주기적으로 IO 요청(IO request)을 모니터링하는 단계, 모니터링된 IO 요청의 헤더(IO request header)의 분포에 기초하여, 읽기(read) 요청된 블록과 동일한 논리 블록 주소(LBA)를 가진 메모리 블록을 대상으로 덮어 쓰기(overwrite)가 발생했는지 여부를 확인하는 단계, 상기 덮어 쓰기의 발생 여부 확인에 기초하여 상기 랜섬웨어의 동작 특성을 특정하기 위해 미리 정의된 복수개의 특성(feature) 별로 덮어 쓰기(overwrite) 횟수를 카운팅하는 단계, 및 카운팅된 상기 덮어 쓰기 횟수에 기초하여 랜섬웨어의 활동(activity) 여부를 탐지하는 단계를 포함할 수 있다.

Description

랜섬웨어에 대한 데이터 손실이 없는 SSD 내부 방어 방법 및 랜섬웨어 탐지 시스템
본 발명의 실시예들은 NAND 플래시 메모리 기반 SSD(Solid State Drive) 내부에서 랜섬웨어(ransomeware)의 활동을 탐지(detect)하여 랜섬웨어를 방어하는 기술에 관한 것이다.
금전적 이익을 위해 사용자의 데이터를 인질로 보유하는 악성 소프트웨어 유형인 랜섬웨어로 인한 피해가 증가하고 있으며, 랜섬웨어(ransomeware)는 토르(Tor)와 같은 익명 통신 시스템을 사용하는 복잡한 명령 및 제어(C&C) 네트워크를 사용하고 추적하기 어려운 비트 코인과 같은 가상화폐를 사용하여 금전적 이득을 수집함으로써 표준 멀웨어(malware) 방어를 파괴하려고 시도하고 있다. 랜섬웨어는 공격자에게 잠재적으로 높은 금전적 이득을 주고 랜섬웨어에 대한 방어를 어렵게 함으로써 사이버 범죄자들에게 "수익성 높은 사업"을 제공하고 있어, 랜섬웨어로 인한 피해 사례가 상당하다. 예를 들어 한국의 Nayana 웹 호스팅 회사는 2017년 Erebus라는 암호화된 랜섬웨어에 의해 공격 받았으며, 한국 인터넷 진흥원(KISA)에 따르면 3,400개 이상의 웹사이트가 랜섬웨어의 영향을 받았다. Nayana는 해커에게 111만 달러를 3회에 나누어서 제공하여 키를 받고 해킹된 데이터를 복구하였으나, 데이터를 완전히 복구 할 수 없었다. 미국에서는 2016년 Hollywood Presbyterian Medical Center가 암호화된 랜섬웨어에 감염되어 의료 기록에 액세스 할 수 없게 되었고, 이로 인하여 수술이 불가능하게 된 날로부터 10일 후에 40 비트 코인(당시 약 17,000달러)을 공격자에게 지불한 사례가 있다. 2015년에 100건 이상의 랜섬웨어가 보고되었으며, 2016년 말에 평균 갈취액은 679달러로 전년보다 두 배가 증가하였다. 모든 경제 부문이 랜섬웨어의 타겟이며, 2015년에 기관 감염이 38%를 차지하였고 제조 부문 감염이 17 %를 차지하였다. 이처럼, 랜섬웨어로 인한 피해가 증가함에 따라 안티 랜섬웨어의 필요성이 증가하고 있다.
일반적으로 랜섬웨어는 락커(locker) 랜섬웨어와 암호화 랜섬웨어로 분류된다. 락커 랜섬웨어는 사용자가 감염된 시스템에 액세스하는 것을 방지하는 것이고, WannaCry, CryptoWall, TeslaCrypt(a.k.a. AlphaCrypt), Locky 등의 암호화 랜섬웨어는 사용자의 데이터 액세스를 방지하기 위해 데이터를 암호화하여 사용자의 데이터를 잠그는 악성 소프트웨어이다. 2016년에 새로 발견된 랜섬웨어의 대부분은 암호화 랜섬웨어로서, 암호화 랜섬웨어는 2015년랜섬웨어의 80%에 달한다. 이와 같이, 암호화 랜섬웨어의 비율이 증가하므로, 암호화 랜섬웨어를 방어하기 위한 기술이 요구된다.
아래의 비특허 문헌 [1] G. Canfora , F. Mercaldo , and C. A. Visaggio , "An hmm and structural entropy based detector for android malware: An empirical study," Computers & Security, vol. 61, pp. 1-18, 2016.에서는 엔트로피와 히든 마코브 모델(hidden markov model)을 이용하여 랜섬웨어의 행동 분석에 초점을 맞추어 대량의 암호화 시스템을 사용하는 기술을 제시하고 있으나, 어플리케이션 계층에서 소프트웨어 툴을 실행하며, 파일 이름, 파일 크기, 매직 번호, 파일 내용 변경과 같은 파일의 메타 데이터 변경을 모니터링하는 수준에 불과하다. 아래의 비특허 문헌 [2] N. Scaife, H. Carter, P. Traynor, and K. Butler, "Cryptolock (and drop it): Stopping ransomware attacks on user data," in Proceedings of Distributed Computing Systems (ICDCS). 2016 IEEE International Conference on, 2016, pp. 303-312.과 [3] A. Kharaz, S. Arshad, C. Mulliner, W. Robertson, and E. Kirda, “Unveil: A large-scale, automated approach to detecting ransomware," in Proceedings of the 8th ACM International Conference on Embedded Software, ser. USENIX Security '16. USENIX, 2016, pp. 757-772.에 제시된 파일 모니터링 방법은 랜섬웨어의 의심스러운 행동을 조기에 탐지하나, 응용 프로그램 레벨에서의 모니터링으로서 여러가지 제한을 가지고 있다. 즉, 응용 프로그램 레벨에서 동작하는 랜섬웨어 탐지 기술의 경우, 사용자가 백신 소프트웨어를 설치하지 않는 한 랜섬웨어의 활동을 막을 수 없으며, 랜섬웨어의 공격을 탐지하기 전에 랜섬웨어에 의해 이미 암호화된 파일은 복구될 수 없어 데이터 손실이 불가피하다.
또한, 응용 프로그램 레벨의 모니터링은 모든 IO 및 파일 시스템 수정을 모니터링해야 하므로 많은 리소스(resource)를 소비하게 되어 시스템 성능을 저하시킨다. 뿐만 아니라, 대부분의 랜섬웨어는 마이크로소프트 윈도우(Microsoft Windows) 운영 체제를 대상으로 개발되었기 때문에 리눅스(Linux) 및 맥OS(MacOS)와 같은 다른 운영 체제에 적합한 방어 기술은 아직 잘 연구되지 않았다.
따라서 각 플랫폼(파일 시스템, 운영 체제, 하드웨어 구성 등)의 고유 기능을 고려하여 여러 버전의 방어 시스템이 요구된다. 다시 말해, 사용자가 백신 소프트웨어를 설치하지 않았더라도, 운영 체제의 종류에 관계없이 랜섬웨어를 탐지하여 랜섬웨어의 공격에 방어할 수 있는 기술이 요구된다.
한국등록특허 제10-1685014호는 컴퓨터 시스템의 랜섬웨어 행위에 대한 선제적인 탐지 차단 방법 및 그 장치에 관한 것으로, 운영체제 상에서 최초로 접근할 수 밖에 없는 경로 상에 함정 파일을 생성하여 두고, 함정 파일에 접근하여 암호화 등의 변경 시도를 행하는 랜섬웨어 행위를 탐지하여 차단하는 기술을 개시하고 있다.
* 선행기술문헌
(비특허문헌 1)[1] G. Canfora, F. Mercaldo, and C. A. Visaggio, "An hmm and structural entropy based detector for android malware: An empirical study," Computers & Security, vol. 61, pp. 1-18, 2016.
(비특허문헌 2)[2] N. Scaife, H. Carter, P. Traynor, and K. Butler, “Cryptolock (and drop it): Stopping ransomware attacks on user data,” in Proceedings of Distributed Computing Systems (ICDCS). 2016 IEEE International Conference on, 2016, pp. 303-312.
(비특허문헌 3)[3] A. Kharaz, S. Arshad, C. Mulliner, W. Robertson, and E. Kirda, “Unveil: A large-scale, automated approach to detecting ransomware,” in Proceedings of the 8th ACM International Conference on Embedded Software, ser. USENIX Security ’16. USENIX, 2016, pp. 757-772.
(비특허문헌 4)[4] J. R. Quinlan, "Induction of decision trees," Mach. Learn., vol. 1, no. 1, pp. 81-106, 1986.
본 발명은 NAND 플래시 메모리 기반의 SSD(solid State Drive) 내부에서 랜섬웨어의 활동(activity)을 탐지하는 기술에 관한 것이다. 즉, 응용 프로그램 레벨이 아닌 NAND 플래시 메모리 내부에서 랜섬웨어의 활동으로 인한 SSD의 비정상적인 특성을 바로 탐지하여 랜섬웨어의 공격에 방어하고, SSD의 지연 삭제 특성을 기반으로 랜섬웨어로 인해 삭제된 파일을 복구하는 기술에 관한 것이다.
NAND 플래시 메모리에서 동작하는 랜섬웨어 탐지 방법에 있어서, 랜섬웨어 탐지를 위해 미리 정의된 모니터링 시간마다 주기적으로 IO 요청(IO request)을 모니터링하는 단계, 모니터링된 IO 요청의 헤더(IO request header)의 분포에 기초하여, 읽기(read) 요청된 블록과 동일한 논리 블록 주소(LBA)를 가진 메모리 블록을 대상으로 덮어 쓰기(overwrite)가 발생했는지 여부를 확인하는 단계, 상기 덮어 쓰기의 발생 여부 확인에 기초하여 상기 랜섬웨어의 동작 특성을 특정하기 위해 미리 정의된 복수개의 특성(feature) 별로 덮어 쓰기(overwrite) 횟수를 카운팅하는 단계, 및 카운팅된 상기 덮어 쓰기 횟수에 기초하여 랜섬웨어의 활동(activity) 여부를 탐지하는 단계를 포함할 수 있다.
일측면에 따르면, 상기 복수개의 특성은, 미리 정의된 타임 슬라이스(times slice) 동안 발생한 덮어 쓰기(overwrite)의 횟수를 나타내는 OWIO, 상기 타임 슬라이스를 기반으로 하는 타임 윈도우(time window) 동안 발생한 쓰기 요청(write request)의 총 수 대비 덮어 쓰기(overwrite)가 발생한 블록의 비율을 나타내는 OWST, 타임 윈도우 동안 발생한 덮어 쓰기(overwrite)의 수를 나타내는 PWIO, 현재 타임 윈도우에서 연속적으로 덮어 쓰기가 발생한 블록(continuously overwritten block)의 평균 길이(length)를 나타내는 AVGWIO, 이전 타임 윈도우에서의 평균 덮어 쓰기(overwrite)의 개수 대 현재 타임 슬라이스(time slice)에서의 덮어 쓰기(overwrite)의 개수 간의 비율을 나타내는 OWSLOPE, 이전 타임 슬라이스에서의 평균 쓰기 횟수 대 현재 타임 슬라이스에서의 덮어 쓰기 횟수의 비율을 나타내는 IO를 포함할 수 있다.
다른 측면에 따르면, 상기 NAND 플래시 메모리는 SSD(Solid State Drive)를 나타낼 수 있다.
또 다른 측면에 따르면, 상기 랜섬웨어의 활동(activity) 여부를 탐지하는 단계는, 서로 다른 다양한 종류의 랜섬웨어의 활동 기간(active period) 동안 수집된 복수개의 IO 요청을 상기 복수개의 특성(feature) 별로 학습됨에 따라 생성된 이진 의사 결정 트리(binary decision tree)를 기반으로 모니터링된 상기 IO 요청에 해당하는 블록에 발생한 덮어 쓰기(overwrite)가 랜섬웨어의 활동(activity)에 의한 것인지 여부를 탐지할 수 있다.
또 다른 측면에 따르면, 상기 랜섬웨어의 활동(activity) 여부를 탐지하는 단계는, 상기 복수개의 특성(feature) 각각에 해당하는 특징값을 카운팅 테이블에 기초하여 계산하는 단계, 계산된 상기 복수개의 특성 별 특징값을 상기 이진 의사 결정 트리의 입력 파라미터로 설정하여 상기 랜섬웨어의 활동 여부를 나타내는 결과값을 획득하는 단계, 및 획득된 결과값을 기반으로 상기 랜섬웨어가 활성 상태인지 여부를 결정하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 결정하는 단계는, 미리 지정된 타임 윈도우 동안 획득된 복수의 결과값을 합산하고, 합산된 결과값이 미리 지정된 임계값(threshold)보다 크면, 랜섬웨어가 활성 상태인 것으로 결정할 수 있다.
또 다른 측면에 따르면, 상기 랜섬웨어의 활동(activity) 여부를 탐지하는 단계는, 상기 모니터링된 IO 요청 별로 시간 정보, 논리 블록 주소(LBA) 정보, IO 모드(IO Mode) 정보, 및 길이(length) 정보가 연관하여 저장된 카운팅 테이블을 이용하여 상기 랜섬웨어의 활동 여부를 탐지할 수 있다.
또 다른 측면에 따르면, 상기 카운팅 테이블은, 타임 슬라이스 동안 카운트된 상기 모니터링된 IO 요청의 횟수 및 상기 논리 블록 주소(LBA)에 기초하여 업데이트될 수 있다.
또 다른 측면에 따르면, 상기 카운팅 테이블은, 미리 정의된 타임 윈도우 동안 상기 모니터링된 IO 요청 중 읽기(read) IO 요청과 동일한 논리 블록 주소(LBA)에 해당하는 쓰기(write) IO 요청을 선택적으로 저장할 수 있다.
NAND 플래시 메모리에서 동작하는 랜섬웨어 탐지 시스템에 있어서, 랜섬웨어 탐지를 위해 미리 정의된 모니터링 시간마다 주기적으로 IO 요청(IO request)을 모니터링하는 모니터링부, 모니터링된 IO 요청의 헤더(IO request header)의 분포에 기초하여, 읽기(read) 요청된 블록과 동일한 논리 블록 주소(LBA)를 가진 메모리 블록을 대상으로 덮어 쓰기(overwrite)가 발생했는지 여부를 확인하는 확인부,
상기 덮어 쓰기의 발생 여부 확인에 기초하여 상기 랜섬웨어의 동작 특성을 특정하기 위해 미리 정의된 복수개의 특성(feature) 별로 덮어 쓰기(overwrite) 횟수를 카운팅하는 카운팅부, 및 카운팅된 상기 덮어 쓰기 횟수에 기초하여 랜섬웨어가 활성(activity) 상태인지 여부를 탐지하는 탐지부를 포함할 수 있다.
본 발명은, SSD 내부에 펌웨어(firmware) 형태로 구현되어, SSD의 비정상적인 특성을 기반으로 랜섬웨어의 활동(activity)을 탐지함에 따라, 백신 등의 랜섬웨어 응용 프로그램을 실행하지 않아도 랜섬웨어를 탐지할 수 있을 뿐만 아니라, OS(또는 미들웨어)가 랜섬웨어 모니터링 응용 프로그램을 실행하지 않더라도 랜섬웨어의 활동을 탐지할 수 있다.
또한, SSD 내부에 펌웨어 형태로 구현되어 동작함에 따라, OS의 종류에 관계없이, 즉, 알려지지 않은 OS, 파일 시스템 및 응용 프로그램에서도 랜섬웨어의 활동을 탐지할 수 있다.
또한, 랜섬웨어의 활동(activity)을 특정하는 6가지의 특성(feature)을 기반으로 랜섬웨어의 활동 여부를 탐지함으로써, 현재까지 알려진 랜섬웨어 이외에 알려지지 않은 랜섬웨어의 활동 여부를 탐지할 수 있다.
도 1은 본 발명의 일실시예에 있어서, 랜섬웨어 탐지 시스템의 내부 구성을 설명하기 위한 블록도이다.
도 2는 본 발명의 일실시예에 있어서, 랜섬웨어 탐지 방법을 도시한 흐름도이다.
도 3은 본 발명의 일실시예에 있어서, 랜섬웨어를 특정하는 6가지 특성 중 OWIO관련 그래프이다.
도 4는 본 발명의 일실시예에 있어서, 랜섬웨어를 특정하는 6가지 특성 중 OWIO를 제외한 5가지 특성관련 그래프이다.
도 5는 본 발명의 일실시예에 있어서, 학습된 6가지 특성(feature)을 기반으로 랜섬웨어의 활동(activity)을 탐지하는 세부 동작을 도시한 흐름도이다.
도 6은 본 발명의 일실시예에 있어서, 카운팅 테이블을 도시한 도면이다.
도 7은 본 발명의 일실시예에 있어서, 기본 함수(basic function)를 이용하여 업데이트된 카운팅 테이블을 도시한 도면이다.
도 8은 본 발명의 일실시예에 있어서, 트리 결과값을 합산하여 최종적으로 랜섬웨어의 활동 여부를 결정하기 위한 스코어(score)를 계산하는 동작을 설명하기 위해 제공되는 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 실시예들은 NAND 플래시 기반의 SSD 내부에서 동작하도록 SSD에 펌웨어 형태로 구현되어 랜섬웨어(ransomeware)의 활동(activity)을 탐지하는 기술에 관한 것으로서, 특히, 어플리케이션 계층이나 OS 계층에서 랜섬웨어를 탐지하는 것이 아니라 IO 요청(IO request) 및 암호화 랜섬웨어를 특정하는 6가지 특성(feature)를 기반으로 SSD 내부에서 랜섬웨어의 활동을 탐지하고, 삭제된 파일을 복구하는 기술에 관한 것이다. 즉, 본 실시예들에서, 랜섬웨어 탐지 방법은 SSD 펌웨어의 일부로 동작할 수 있으며, 제한된 리소스(예컨대, CPU 전원 및 메모리)만으로 랜섬웨어를 탐지할 수 있다.
본 실시예들에서, 랜섬웨어 탐지 방법 및 시스템은 전체 페이로드(payload) 대신 IO 요청 헤더의 분포만을 확인하여 랜섬웨어의 활동(activity)을 인식하므로, 경량이고, 변하지 않는 랜섬웨어의 독특한 동작 특성을 이용하여 랜섬웨어를 탐지할 수 있다. 이에 따라, 랜섬웨어의 독특한 동작 특성인 덮어 쓰기(overwrite)를 특정하는 6가지 특성(feature)들이 랜섬웨어 탐지를 위해 이용될 수 있다.
본 실시예들에서, 암호화 랜섬웨어를 특정하는 '6가지 특성(feature)'은 사용자의 원래 파일을 삭제하고, 삭제된 위치에 새로운 데이터(예컨대, 임의의 랜덤 데이터 또는 해커에 의해 암호화된 원본 데이터)를 기록하여 사용자가 원본 데이터를 복구하지 못하도록 덮어 쓰기(overwrite)하는 랜섬웨어의 특성들을 나타내는 것으로서, 미리 정의된 타임 슬라이스(times slice) 동안 발생한 덮어 쓰기(overwrite)의 횟수를 나타내는 OWIO, 타임 슬라이스를 기반으로 하는 타임 윈도우(time window) 동안 발생한 쓰기 요청(write request)의 총 수 대비 덮어 쓰기(overwrite)가 발생한 블록의 비율을 나타내는 OWST, 타임 윈도우 동안 발생한 덮어 쓰기(overwrite)의 수를 나타내는 PWIO, 현재 타임 윈도우에서 연속적으로 덮어 쓰기가 발생한 블록(continuously overwritten block)의 평균 길이(length)를 나타내는 AVGWIO, 이전 타임 윈도우에서의 평균 덮어 쓰기(overwrite)의 개수 대 현재 타임 슬라이스(time slice)에서의 덮어 쓰기(overwrite)의 개수 간의 비율을 나타내는 OWSLOPE, 이전 타임 슬라이스에서의 평균 쓰기 횟수 대 현재 타임 슬라이스에서의 덮어 쓰기 횟수의 비율을 나타내는 IO를 포함할 수 있다.
본 실시예들에서, 'IO 요청(IO request)'은 파일 이름, 파일 크기, 매직번호, 프로세스 ID, 프로세스 이름 등 많은 양의 정보를 포함하는 것이 아니라 쓰기 및 읽기 요청(write request, read request) 만을 포함할 수 있다. 즉, IO 요청만을 확인하여 랜섬웨어의 활동(activity) 여부를 탐지할 수 있다.
본 실시예들에서, '덮어 쓰기(overwrite) '는 메모리 블록을 읽은 후 동일한 논리 블록 주소(LBA)를 가진 메모리 블록을 업데이트하여 해당 블록의 데이터를 제거/삭제하는 것을 나타낼 수 있다.
본 실시예들에서, '타임 슬라이스(time slice)'는 미리 지정된 타임 윈도우(window)를 복수개의 구간으로 구분한 것으로서, 예컨대, 타임 윈도우가 10초인 경우, 타임 슬라이스는 1초 등으로 구분될 수 있다. 즉, 10초의 타임 윈도우가 1초의 타임 슬라이스 10개로 분할될 수 있다.
도 1은 본 발명의 일실시예에 있어서, 랜섬웨어 탐지 시스템의 내부 구성을 설명하기 위한 블록도이고, 도 2는 본 발명의 일실시예에 있어서, 랜섬웨어 탐지 방법을 도시한 흐름도이다.
본 실시예에 따른 랜섬웨어 탐지 시스템(100)은 SSD의 내부에 펌웨어 형태로 구현되어 컴퓨터 프로그램의 명령을 처리하도록 구성된 컴퓨팅 시스템으로서, 모니터링부(110), 확인부(120), 카운팅부(130) 및 탐지부(140)를 포함할 수 있다. 예를 들어, 랜섬웨어 탐지 시스템(100)는 컴퓨팅 시스템의 프로세서로서, 모니터링부(110), 확인부(120), 카운팅부(130) 및 탐지부(140)를 위한 프로그램 코드를 실행하도록 구성될 수 있다.
210 단계에서, 모니터링부(110)는 랜섬웨어 탐지를 위해 미리 정의된 모니터링 시간마다 주기적으로 IO 요청(IO request)를 모니터링할 수 있다.
예를 들어, 모니터링부(110)는 타임 윈도우(예컨대, 10초) 동안 IO 요청을 모니터링하여 수집할 수 있다. 즉 10초동안 발생한 읽기(read) 요청 및 쓰기(write) 요청을 모두 가지고 있을 수 있다.
220 단계에서, 확인부(120)는 모니터링된 IO 요청의 헤더의 분포에 기초하여 읽기(read) 요청된 블록과 동일한 논리 블록 주소(Logical Block Address, LBA)를 가진 메모리 블록을 대상으로 덮어 쓰기(overwrite)가 발생했는지 여부를 확인할 수 있다.
230 단계에서, 카운팅부(130)는 덮어 쓰기의 발생 여부 확인에 기초하여 랜섬웨어의 동작 특성을 특정하는 6개의 특성 별로 덮어 쓰기 횟수를 카운팅할 수 있다. 여기서, 랜섬웨어의 동작 특성(즉, 활동)을 특정하는 6개의 특성(feature)은 OWIO, OWST, PWIO, AVGWIO, OWSLOPE 및 IO를 포함할 수 있다.
OWIO는 미리 정의된 타임 슬라이스(times slice) 동안 발생한 덮어 쓰기(overwrite)의 횟수를 나타내고, OWST는 타임 슬라이스를 기반으로 하는 타임 윈도우(time window) 동안 발생한 쓰기 요청(write request)의 총 수 대비 덮어 쓰기(overwrite)가 발생한 블록의 비율을 나타낼 수 있다. PWIO는 타임 윈도우 동안 발생한 덮어 쓰기(overwrite)의 수를 나타내고, AVGWIO는 현재 타임 윈도우에서 연속적으로 덮어 쓰기가 발생한 블록(continuously overwritten block)의 평균 길이(length)를 나타내고, OWSLOPE는 이전 타임 윈도우에서의 평균 덮어 쓰기(overwrite)의 개수 대 현재 타임 슬라이스(time slice)에서의 덮어 쓰기(overwrite)의 개수 간의 비율을 나타낼 수 있다. 그리고 IO는, 이전 타임 슬라이스에서의 평균 쓰기 횟수 대 현재 타임 슬라이스에서의 덮어 쓰기 횟수의 비율을 나타낼 수 있다.
240 단계에서, 탐지부(140)는 카운팅된 덮어 쓰기 횟수에 기초하여 랜섬웨어의 활동(activity) 여부를 탐지할 수 있다.
이때, 랜섬웨어의 활동 여부를 탐지하기 위해, 다양한 종류의 복수의 랜섬웨어들과 관련하여 각 랜섬웨어들의 활동 기간(active period) 동안 수집된 복수개의 IO 요청이 상기 6가지 특성 별로 학습될 수 있다. 예컨대, 머신 러닝 알고리즘, 이진 의사 결정 트리(binary decision tree) 알고리즘 등을 이용하여 6가지 특성 별로 학습이 수행될 수 있다. 그리고, 탐지부(140)는 학습을 통해 생성된 트리를 기반으로 타임 윈도우 동안 모니터링된 IO 요청을 이용하여 현재 타임 윈도우에서 랜섬웨어의 활동이 존재하는지 여부를 탐지할 수 있다. 여기서, 랜섬 웨어의 활동을 탐지하는 동작은 도 5를 참조하여 아래에서 자세히 설명하기로 한다.
랜섬웨어 탐지 시스템(100)은 전체 페이로드(payload) 대신 IO 요청 헤더의 분포만을 확인하여 랜섬웨어의 활동(activity)을 인식하므로, 경량이면서, 암호화된 랜섬웨어의 덮어 쓰기에 따른 6가지 특성을 기반으로 랜섬웨어를 탐지할 수 있다. 이하에서는 도 3 및 도 4를 참고하여 6가지 특성에 대해 상세히 설명하기로 한다.
도 3은 본 발명의 일실시예에 있어서, 랜섬웨어를 특정하는 6가지 특성 중 OWIO관련 그래프이다.
도 3을 참고하면, 310은 6가지 특성(feature) 중 랜섬웨어 별 OWIO를 도시한 그래프이고, 320은 랜섬웨어와 일반 어플리케이션의 OWIO를 도시한 그래프이다.
그래프 310은, 덮어쓰기(overwrite) 빈도가 다를 때 WannaCry와 Mole 랜섬웨어가 1초의 타임 슬라이스동안 얼마나 오래 활동하는지를 나타낼 수 있다. 310을 참고하면, 덮어 쓰기(overwrite)가 자주 발생할수록(즉, 덮어 쓰기의 빈도수가 증가할수록) WannaCry와 Mole 랜섬웨어의 활동 시간이 길어짐을 확인할 수 있다.
그래프 320은 4개의 랜섬웨어(WannaCry, Mole, Jaff, Cryptooshield)와 4개의 일반적인 어플리케이션(즉, 비랜섬웨어 어플리케이션으로서, 데이터 삭제, P2P 다운로드, 클라우드 스토리지 동기화 및 압축)에 대한 덮어 쓰기 요청 수의 누적 그래프를 나타낼 수 있다. 320을 참고하면, 랜섬웨어의 경우, 일반적인 어플리케이션 보다 시간이 지날수록 상대적으로 높은 성장률(growth) 가짐을 확인할 수 있다. 320에서, WannaCry, Mole은 Jaff, Cryptooshield보다 성장률(growth)이 높지만, Jaff, Cryptooshield은 상대적으로 낮은 성장률을 보이므로 랜섬웨어를 특정하는 6가지 특성을 기반으로 랜섬웨어를 탐지하면, Jaff, Cryptooshield를 일반 어플리케이션과 구분하여 탐지 가능할 수 있다.
OWIO는 짧은 시간 동안 문서 파일의 동일한 블록을 읽고(read), 암호화하며 덮어 쓰는 속성을 나타내는 특성(feature)으로서, 그래프 310을 참고하면, OWIO의 특징값을 변화시키는 1초 동안의 타임 윈도우에서 WannaCry와 Mole 랜섬웨어가 얼마자 오래 활동/행동하는지 확인할 수 있다. 즉, 덮어 쓰기(overwrite)가 자주 발생할수록 랜섬웨어의 활동 시간이 길어짐을 확인할 수 있다. 320을 참고하면, 일반 어플리케이션이 덮어쓰기(overwrite) 빈도는 데이터 와이핑 어플리케이션을 제외하고는 랜섬웨어의 덮어쓰기 빈도만큼 높지 않음(예컨대, 100K 미만)을 알 수 있다. 그래프 320에 도시한 바와 같이, OWIO 특성은 일반 어플리케이션에서의 데이터 와이핑, 클라우드 저장, P2P 다운로드 등으로 인해 발생 가능하며, 누적된 데이터 와이핑 프로그램의 수는 랜섬웨어의 수만큼 높을 수 있다. 이에 따라, 도 4와 같이 OWIO 이외에 랜섬웨어의 덮어 쓰기(overwrite) 활동으로 인한 5가지 특성이 추가적으로 특정될 수 있다.
도 4는 본 발명의 일실시예에 있어서, 랜섬웨어를 특정하는 6가지 특성 중 OWIO를 제외한 5가지 특성관련 그래프이다.
도 4에서 그래프 410 및 420은 OWST, 그래프 430 및 440은 PWIO, 그래프 450 및 460은 AVGWIO, 그래프 470은 IO, 그래프 480은 OWSLOPE를 도시한 그래프이다.
도 3의 그래프 320에서와 같이, 랜섬웨어와 구별하기 어려운 일반 어플리케이션 중 하나가 데이터 와이핑(data wiping)이다. 이때, 중요한 특징은 하나의 블록에 대한 중복 덮어 쓰기가 한번만 계산되는 타임 윈도우 내에서, 쓰기 요청(write request) 중 덮어 쓰기가 몇 번 발생하는가 하는 것이다. 데이터를 안전하게 지우기 위해 일반적인 데이터 와이핑 어플리케이션은 단일 블록에 여러 번 덮어 쓰기를 필요로 하므로 랜섬웨어의 값에 비해 OWST 값이 낮게 발생할 수 있다.
예를 들어, 동일한 메모리 블록에 대해 하나의 읽기(read) IO 당 7번의 덮어 쓰기(overwrite)가 필요할 수 있다. 420을 참고하면, OWST가 랜섬웨어 운영 중에 발생하는 쓰기(write) IO에서 높은 덮어 쓰기(overwrite) 속도를 포착함을 확인할 수 있으며, 410을 참고하면, 랜섬웨어의 활동 기간(active period)과 OWST 사이의 강한 상관 관계를 확인할 수 있다.
그래프 430 및 440을 참고하면, CPU 사용량이 많은 작업이나 IO 처리량이 많은 작업이 IO 처리량이 많은 작업이 랜섬웨어가 활동 중일 때 실행될 수 있다. 그러면, 랜섬웨어의 속도가 느려지므로, 랜섬웨어의 IO 요청은 오랜기간동안 분산될 수 있다. 예를 들어, 랜섬웨어 Jaff는 OWIO 및 OWST 특성만으로는 탐지되기 어려울 수 있다. PWIO는 타임 윈도우 동안 발생한 덮어 쓰기(overwrite)의 수를 나타내는 것으로서, 그래프 430을 참고하면, OWIO의 단기 슬라이스(1s) 대신 장기간의 윈도우(10s) 동안 누적된 덮어 쓰기(overwrite) 수를 이용 시 Jaff 등의 랜섬웨어 탐지가 가능할 수 있다. 이때, 그래프 440을 참고하면, 누적된 수와 PWIO의 상관관계를 알 수 있다.
그래프 450 및 460을 참고하면, AVGWIO는 랜섬웨어 공격 대상의 런-길이(run-length) 특성을 탐지/캡쳐하기 위해 이용될 수 있다. 랜섬웨어는 문서 및 이미지를 대상으로 공격하므로, 데이터 와이핑(data wiping), 조각 모음, DB 업데이트와 달리 복수개의 연속하는 블록들에 덮어 쓰기(overwrite) 작업을 수행하지 않는다. 이러한 특성을 고려하여 그래프 460을 참고하면, 랜섬웨어의 경우, 일반적인 어플리케이션(예컨대, 데이터 와이핑, MySQL)보다 덮어 쓰기가 수행된 연속하는 블록의 길이가 상대적으로 짧음을 확인할 수 있다. 그래프 450에서, 활동 기간(또는 활동 기간, active period)와 AVGWIO 간의 상관 관계를 확인할 수 있다.
6가지 특성 중 OWIO, OWST, PWIO, AVWIO는 랜섬웨어의 활동으로 인해 덮어 쓰기 작업 시 발생하는 주요 특성(feature)에 해당하고, OWSLOPE와 IO는 보조 특성(secondary feature)에 해당할 수 있다. OWSLOPE는 덮어 쓰기(overwrite) 볼륨의 급격한 증가로 인한 랜섬웨어의 활동(즉, 동작)을 탐지하기 위해 이용될 수 있다. 그래프 470 및 480을 참고하면, 랜섬웨어의 활동 기간(active period)과 IO 또는 OWSLOPE 간의 상관관계를 확인할 수 있다.
6가지 특성 중 어느 하나의 특성만 사용하는 경우, 다양한 종류의 랜섬웨어들 중 특정 랜섬웨어의 탐지가 누락될 수 있으나, 머신 러닝 또는 이진 의사 결정 트리 알고리즘을 이용하여 6가지 특성 별로 학습을 진행하고, 학습된 모델을 기반으로 모니터링된 IO 요청과 관련하여 랜섬웨어의 활동 여부를 탐지함으로써, 즉각적으로 다양한 종류의 랜섬웨어의 탐지가 가능하고, 이전에 알려지지 않은 랜섬웨어의 탐지가 가능할 수 있다. 예를 들어, 이진 의사 결정 트리 알고리즘으로 위의 비특허 문헌 [4] J. R. Quinlan , "Induction of decision trees," Mach. Learn., vol. 1, no. 1, pp. 81-106, 1986.에 제시된 ID3 알고리즘이 이용될 수 있으며, ID3 알고리즘을 통해 구축된 학습 모델인 이진 의사 결정 트리(binary decision tree)를 이용하여 모니터링된 IO 요청에 대한 6가지 특성 별 특징값이 계산될 수 있으며, 특징값을 기반으로 랜섬웨어의 활도 여부가 탐지될 수 있다.
도 5는 본 발명의 일실시예에 있어서, 학습된 6가지 특성(feature)을 기반으로 랜섬웨어의 활동(activity)을 탐지하는 세부 동작을 도시한 흐름도이다.
도 5의 각 단계들(510 내지 530)은 도 2의 240 단계를 구체화한 것으로서, 탐지부(140)에 의해 수행될 수 있다.
모니터링부(110)는 랜섬웨어 검색을 위해 모든 IO 요청을 모니터링할 수 있으며, 각 IO 요청은 시간(time) 정보, 논리 블록 주소(LBA) 정보, IO 모드(IO Mode), 덮어 쓰기된 길이(overwritten length) 정보의 네 가지 항목으로 구분될 수 있다. 즉, IO 요청은 시간(time) 정보, 논리 블록 주소(LBA) 정보, IO 모드(IO Mode), 길이(overwritten length) 정보를 포함할 수 있다.
여기서, 시간 정보는 IO 요청이 발생한 시점을 나타내고, 논리 블록 주소(LBA) 정보는 메모리 블록에 기록된 데이터가 읽히거나, 메모리 블록에 데이터가 쓰여지는 시작 주소를 나타낼 수 있다. IO 모드 정보는 IO 요청 유형, 예컨대, 읽기(read) 요청인지, 쓰기(write) 요청인지 여부를 나타내고, 길이 정보(length)는 IO 요청에 해당하는 메모리 블록의 수를 나타낼 수 있다.
탐지부(140)는 모니터링된 IO 요청과 카운팅 테이블, 이진 의사 결정 트리를 이용하여 랜섬웨어의 활동(activity)을 탐지할 수 있다.
510 단계에서, 탐지부(140)는 랜섬웨어를 특정하는 6개의 특성 각각에 해당하는 특징값을 카운팅 테이블(counting)에 기초하여 계산할 수 있다. 여기서, 카운팅 테이블은 도 6을 참조하여 후술하기로 한다.
520 단계에서, 탐지부(140)는 계산된 6가지 특성 별 특징값을 이진 의사 결정 트리의 입력 파라미터로 설정하여, 랜섬웨어의 활동 여부를 나타내는 결과값을 얻을 수 있다. 즉, 이진 의사 결정 트리의 출력이 랜섬웨어의 활동 여부를 나타내는 결과값에 해당할 수 있다. 예컨대, 랜섬웨어가 활동하는 상태(즉, 활성 상태)인 경우, 1의 값이 결과값으로 출력되고, 랜섬웨어가 활동하지 않는 상태인 경우, 0의 값이 상기 트리의 결과값으로 출력될 수 있다.
530 단계에서, 탐지부(140)는 결과값을 기반으로 스코어링(scoring)을 수행하여 랜섬웨어가 활성 상태인지 여부를 최종 결정할 수 있다.
예를 들어, 탐지부(140)는 미리 지정된 타임 윈도우(예컨대, 10초)동안 획득된 복수의 결과값들을 합산하고, 합산된 결과값이 미리 지정된 임계값(threshold) 보다 큰지 여부를 비교할 수 있다. 상기 합산된 결과값이 임계값보다 크면, 탐지부(140)는 랜섬웨어가 활성 상태인 것으로 결정할 수 있다. 즉, 랜섬웨어의 활동을 탐지할 수 있다. 그리고, 합산된 결과값이 임계값 보다 크지 않으면, 탐지부(140)는 랜섬웨어가 활성 상태가 아닌 것으로 결정할 수 있다. 즉, 랜섬웨어가 아닌 일반 어플리케이션의 데이터 와이핑 등으로 인한 덮어쓰기가 발생한 것으로 결정할 수 있다.
이처럼, 랜섬웨어의 탐지를 위해 카운팅 테이블이 이용되며, 카운팅 테이블에는 모니터링된 IO 요청 별로 시간 정보, 논리 블록 주소(LBA) 정보, IO 모드 정보, 및 길이(length) 정보가 연관하여 저장될 수 있다. IO 모드 정보와 길이 정보는 통합된 형태인 RL(read length) 및 WL(write length)로 표현될 수 있다.
도 6은 본 발명의 일실시예에 있어서, 카운팅 테이블을 도시한 도면이다.
도 6을 참고하면, 카운팅 테이블(610)은 시간 정보, 논리 블록 주소(LBA) 정보, 모니터링된 IO 요청에 해당하는 RL(read length) 및 WL(write length) 정보를 포함할 수 있다. 도 6에서, IO 요청은 IOReq로 표현될 수 있으며, length 가 1인 경우를 가정할 수 있다.
타임 윈도우는 IO 요청을 통해 모니터링이 수행되는 모니터링 기간을 나타낼 수 있으며, 모니터링 기간 동안 주기적으로 랜섬웨어의 활동 여부가 탐지될 수 있다. 예를 들어, 타임 윈도우가 10초로 설정된 경우, 주기적으로 10초동안 모니터링된 IO 요청을 기반으로 SSD가 랜섬웨어에 감염되었는지 여부를 탐지할 수 있다. 타임 윈도우는 N개의 타임 슬라이스로 구성될 수 있으며, 모든 체크 포인트에서 타임 슬라이스(예컨대, 1초)만큼 타임 윈도우가 분할될 수 있다. 6가지 특성(feature)의 가치 평가를 위해 IO 요청(IOReq)의 덮어 쓰기 실행 길이를 저장하는 카운팅 테이블이 저장될 수 있다. 타임 슬라이스동안 발생한 IO 요청의 개수가 카운트될 수 있으며, 카운트된 값과 논리 블록 주소(LBA) 정보에 기초하여 카운팅 테이블이 업데이트될 수 있다.
예컨대, 카운팅 테이블(610)을 참고하면 시간(tome) 정보는 새로 생성되거나 업데이트되는 타임 슬라이스 번호(즉, 식별 정보)를 나타내고, LBA는 동일 메모리 블록에 대해 연속하여 덮어 쓰기가 발생한 시작 주소를 나타내고, RL은 LBA에서 연속적으로 발생하는 읽기 요청(read IO)의 총 길이를 나타낼 수 있다. 그리고, WL은 읽기 IO가 발생한 후에 발생하는 쓰기 IO의 총 길이를 나타낼 수 있다. 즉, 읽기 IO가 발생한 블록과 동일한 블록에 연속하여 쓰기가 발생한 블록의 총 길이를 나타낼 수 있다.
타임 윈도우 동안 발생한 IO 요청과 관련하여 6가지 특성 별 특징값 계산을 위해 카운팅 테이블(610)과 함께 해시 테이블(620)이 이용될 수 있다. 해시 테이블(hash table, 620)은 논리 블록 주소(LBA)를 해시 함수(hash function)의 키(key)로 적용함에 따라 생성될 수 있다.
예를 들어, 6가지 특성(feature) 중 IO의 특징값은 현재 시간 슬라이스 동안 발생한 모든 읽기 IO 요청(RIO)과 쓰기 IO 요청(WIO)의 합으로 계산될 수 있다. 그리고, OWIO의 특징값은 현재 슬라이스에 해당하는 WL(write length)의 합계로서 계산될 수 있다. PWIO의 특징값은 현재 시간이 t인 경우, t-11에서 t-1까지의 카운팅 테이블(610)에 저장된 모든 WL의 합계로서 계산될 수 있다. AVGWIO의 특징값은 카운팅 테이블(610)에 저장된 WL 중 t-10에서 t까지의 WL들의 합의 평균(즉, 평균 WL)으로서 계산될 수 있다. OWSLOPE의 특징값은 OWIO를 PWIO로 나눔으로써 계산될 수 있다.
아래의 표 1은 랜섬웨어 탐지를 위한 알고리즘에 해당할 수 있다.
Figure PCTKR2017013905-appb-T000001
위의 표 1 및 도 7을 참고하면, 표 1 및 도7에서 사용된 IO 요청은 IO 모드 정보, LBA 정보, 및 길이(length) 정보를 포함하며, 길이 정보는 1로 가정할 수 있다. T=0에서, 카운팅 테이블(710)과 해시 테이블(720)은 초기에 비어있을 수 있다. 이때, 첫번째 IO 요청(IOReq(1,R))이 수신되면, 탐지부(140)는 해시 테이블(720)을 검색하여 카운팅 테이블(720)에서 수신된/모니터링된 IO 요청(IOReq(1,R))에 해당하는 엔트리(entry)를 찾을 수 있다. 이때, 해시 테이블(720)에서 해당 IO 요청과 관련하여 검색된 키 1이 카운팅 테이블(710)의 엔트리에 없으면, 표 1의 line 24와 같이, 탐지부(140)는 NewEntry 함수를 사용하여 카운팅 테이블(710)에 새 엔트리(entry)를 만들고, 이를 해시 테이블(720)의 키값 1로 연관하여 등록할 수 있다. 이후 NewEntry 함수는 아래와 같이 업데이트될 수 있다.
먼저, 시간(time) 정보는 처음에 0(=현재 타임 슬라이스)으로 설정되고, LBA는 1(=IOReq의 LBA)로 설정되고, RL은 1, WL은 0으로 설정될 수 있다. 즉, 첫 번째 IO 요청은 읽기 IO 요청이므로, 첫 번째 IO 요청이 모니터링된 현재 타임 슬라이스(t=0)에서 RL=1, WL=0으로 카운팅 테이블(710)의 엔트리(RL, WL, t)의 값이 설정될 수 있다.
모니터링 중인 현재 타임 슬라이스(t=0) 동안 두 번째 IO 요청(IOReq (2, R))이 수신되면(즉, 모니터링되면), 탐지부(140)는 해시 테이블(720)에서 키 값 2가 있는 엔트리를 검색할 수 있다. 이때, 해시 테이블(720)에 키 값이 2인 엔트리가 존재하지 않으나, LBA 2에 인접한 키 1이 있는 엔트리가 존재할 수 있다. 이 경우, 탐지부(140)는 카운팅 테이블(710)에 새로운 항목을 생성하지는 않지만, 두 번째 IO요청(IOReq (2, R))과 관련하여 업데이트 함수(UpdateEntryR 함수)를 이용하여 인접 엔트리를 업데이트할 수 있다. 즉, 표 1의 line 22를 참고하면, 두 번째 IO요청(IOReq (2, R))은 첫 번째 IO요청(IOReq (1, R))의 연속적인 요청이므로, 인접 엔트리의 업데이트가 수행될 수 있다. 그러면, UpdateEntryR 함수는 카운팅 테이블(710)에서 해당 RL 값을 1씩 증가시킬 수 있다. 세 번째 IO 요청(IOReq (3, R))이 수신된 경우, 표 1의 line 22와 같이 동일한 방식으로 카운팅 테이블(710)이 업데이트될 수 있다. 표 1의 line 6을 참고하면, 체크 포인트 1(t=1)에서 타임 윈도우는 타임 슬라이스에 따라 슬라이드되어 6개의 특성(feature)의 특징값을 계산할 수 있다. 예를 들어, 타임 슬라이스동안 발생한 IO 요청(IOReq)이 3개이기 때문에 IO의 특징값은 3으로 계산되고, 덮어 쓰기(overwrite)가 없기 때문에 OWIO의 특징값은 0으로 계산될 수 있다.
타임 슬라이스 t=1에서, 네 번째 IO 요청(IOReq (1, R))이 수신될 수 있다. 이때, IOReq (1, R))는 LBA의 엔트리에 이미 존재하므로 삭제될 수 있다. 즉, 네 번째 IOReq (1, R))은 첫 번째 IO 요청과 동일하여 카운팅 테이블(710)에서 이전 타임 슬라이스(t=0)의 LBA 엔트리에 네 번째 IOReq (1, R))에 해당하는 LBA 정보가 이미 저장되어 있으므로, 탐지부(140)는 네 번째 IOReq (1, R))의 LBA 정보는 카운팅 테이블(710)에 저장하지 않고 삭제할 수 있다. 이처럼, 덮어 쓰기(overwrite) 계산을 위해, 카운팅 테이블(710)에는 타임 윈도우 내에서 읽기 IO 요청과 동일한 LBA 정보를 가진 쓰기 IO 요청만 저장될 수 있다. 즉, 타임 윈도우 동안 발생한 모든 쓰기 IO 요청 중 읽기 IO 요청과 동일한 LBA 주소 정보를 가진 쓰기 IO 요청만 선택적으로 카운팅 테이블(710)에 저장될 수 있다.
이어, IO 요청(IOReq (3, W))은 카운팅 테이블(710)에 이미 저장되어 있을 수 있다. 상기 IO 요청(IOReq (3, W))은 LBA 1에서 3까지의 읽기 IO가 있음을 나타내지만, IO 요청(IOReq (3, W))의 LBA는 3에 해당할 수 있다. 즉, LBA 1 및 2는 덮어 쓰기(overwrite)되지 않았지만 LBA 3은 덮어 쓰기(overwrite)되어졌을 수 있다. 표 1의 line 11을 참고하면, SpliteEntry 함수는 엔트리(entry)를 두 개로 구분할 수 있다. 이때, 하나는(Time 0, LBA 1, RL 2, WL 0) 튜플(tuple)을 가지며, 다른 하나는 (Time 1, LBA 3, RL 1, WL 1) 튜플을 가질 수 있다.
체크 포인트 2(즉, t=2)에서 OWIO의 특징값은 1로 계산될 수 있다. 즉, 덮어 쓰기가 한 번 발생했음을 의미할 수 있다. 그리고, WIO의 특징값은 2, OWST= OWIO/WIO이므로 OWST의 특징값은 0.5로 계산될 수 있다. 엔트리(entry)의 개수는 2이고, WL의 총합은 1이므로, 표 1의 line 3과 같이 AVGWIO의 특징값은 1/로 계산될 수 있다. 다음 타임 슬라이스에 대한 IO 요청(IOReqs)은 이전 타임 슬라이스와 동일하게 적용될 수 있다.
마지막 타임 슬라이스(t=3s-4s)에서 모니터링된 IO 요청을 처리하는 과정에서 MergeEntry 함수가 이용될 수 있다. 표 1의 line 11을 참고하면, IOReq (2, W)는 UpdateEntryW 함수에 의해 LBA 1인 항목을 업데이트할 수 있으며, LBA1과 LBA2가 모두 덮어 쓰기(overwrite)되고, WL은 2로 설정될 수 있다. 또한, 인접한 LBA가 있는 엔트리가 존재하므로, 표 1의 line 16과 같이, MergeEntry 함수는 두 개의 엔트리(711)을 하나로 병합할 수 있다. 결과적으로, 체크 포인트 4(t=3)에서 IO의 특징값은 4이고 WIO의 특징값은 4로 계산될 수 있다. 반면에, 덮어 쓰기가 두 번 발생하므로 OWIO의 특징값은 2이고 OWST의 특징값은 2/4로 계산될 수 있다. 카운팅 테이블(710)에 두 개의 엔트리가 있으므로 AVGWIO의 특징값은 4/2이고, 두 엔트리에서 WL의 합계는 4로서 계산될 수 있다. PWIO의 특징값은 이전 체크 포인트 3의 모든 WL의 합계이므로 2로서 계산되고, 이전 체크 포인트의 PWIO가 현재 OWIO로 나뉘어져 OWSLOPE가 되므로, OWSLOPE의 특징값은 는 1/1로 계산될 수 있다.
타임 슬라이스가 만료되면, 표 1의 line 6과 같이, 카운팅 테이블(710)에서 오래된 엔트리는 타임 윈도우를 이동하여 삭제될 수 있다. 표 1의 line 7과 같이, 탐지부(140)는 삭제된 엔트리를 빼서 스코어(score)를 조정할 수 있다. 예를 들어, 카운팅 테이블(710)을 이용하여 6개의 특성 별로 특징값이 계산되고, 계산된 특징값은 ID3 알고리즘을 기반으로 생성된 이진 의사 결정 트리(DecisionTreeID3)의 입력 파라미터로 설정될 수 있다. 그러면, 이진 의사 결정 트리의 출력값으로서, 6개의 특성 별 결과값이 획득될 수 있다. 탐지부(140)는 결과값을 합하여 랜섬웨어의 활동 여부를 최종적으로 결정할 수 있다.
예를 들어, 상기 이진 의사 결정 트리는 6개의 특성 별 특징값들을 입력으로 하여, 0 또는 1의 결과값을 출력할 수 있다. 1은 현재 체크 포인트에서 랜섬웨어의 공격을 받을 가능성이 높음을 나타내고, 0은 현재 체크 포인트에서 랜섬웨어의 공격을 받을 가능성이 높지 않음을 나타낼 수 있다. 10초 타임 윈도우를 사용하는 경우, 10초 동안 상기 트리의 출력이 모두 합쳐져서 도 8과 같이, 0부터 10까지의 점수(810)가 계산될 수 있다. 이처럼, 타임 윈도우 별로 트리의 출력이 합산된 스코어 점수가 계산되고, 계산된 점수가 미리 정의된 임계값(예컨대, 3)보다 크면, 탐지부(140)는 랜섬웨어가 활동(active, 즉, 활성 상태)하는 것으로 결정할 수 있다. 그리고, 임계값보다 크지 않으면, 랜섬웨어가 활동하지 않는 것, 즉, SSD에 존재하지 않는 것으로 결정할 수 있다.
본 발명의 실시예에 따른 방법들은 다양한 컴퓨터 시스템을 통하여 수행될 수 있는 프로그램 명령(instruction) 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing 엔트리) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (10)

  1. NAND 플래시 메모리에서 동작하는 랜섬웨어 탐지 방법에 있어서,
    랜섬웨어 탐지를 위해 미리 정의된 모니터링 시간마다 주기적으로 IO 요청(IO request)을 모니터링하는 단계;
    모니터링된 IO 요청의 헤더(IO request header)의 분포에 기초하여, 읽기(read) 요청된 블록과 동일한 논리 블록 주소(LBA)를 가진 메모리 블록을 대상으로 덮어 쓰기(overwrite)가 발생했는지 여부를 확인하는 단계;
    상기 덮어 쓰기의 발생 여부 확인에 기초하여 상기 랜섬웨어의 동작 특성을 특정하기 위해 미리 정의된 복수개의 특성(feature) 별로 덮어 쓰기(overwrite) 횟수를 카운팅하는 단계; 및
    카운팅된 상기 덮어 쓰기 횟수에 기초하여 랜섬웨어의 활동(activity) 여부를 탐지하는 단계
    를 포함하는 랜섬웨어 탐지 방법.
  2. 제1항에 있어서,
    상기 복수개의 특성은, 미리 정의된 타임 슬라이스(times slice) 동안 발생한 덮어 쓰기(overwrite)의 횟수를 나타내는 OWIO, 상기 타임 슬라이스를 기반으로 하는 타임 윈도우(time window) 동안 발생한 쓰기 요청(write request)의 총 수 대비 덮어 쓰기(overwrite)가 발생한 블록의 비율을 나타내는 OWST, 타임 윈도우 동안 발생한 덮어 쓰기(overwrite)의 수를 나타내는 PWIO, 현재 타임 윈도우에서 연속적으로 덮어 쓰기가 발생한 블록(continuously overwritten block)의 평균 길이(length)를 나타내는 AVGWIO, 이전 타임 윈도우에서의 평균 덮어 쓰기(overwrite)의 개수 대 현재 타임 슬라이스(time slice)에서의 덮어 쓰기(overwrite)의 개수 간의 비율을 나타내는 OWSLOPE, 이전 타임 슬라이스에서의 평균 쓰기 횟수 대 현재 타임 슬라이스에서의 덮어 쓰기 횟수의 비율을 나타내는 IO를 포함하는 것
    을 특징으로 하는 랜섬웨어 탐지 방법.
  3. 제1항에 있어서,
    상기 NAND 플래시 메모리는 SSD(Solid State Drive)를 나타내는 것
    을 특징으로 하는 랜섬웨어 탐지 방법.
  4. 제1항에 있어서,
    상기 랜섬웨어의 활동(activity) 여부를 탐지하는 단계는,
    서로 다른 다양한 종류의 랜섬웨어의 활동 기간(active period) 동안 수집된 복수개의 IO 요청을 상기 복수개의 특성(feature) 별로 학습됨에 따라 생성된 이진 의사 결정 트리(binary decision tree)를 기반으로 모니터링된 상기 IO 요청에 해당하는 블록에 발생한 덮어 쓰기(overwrite)가 랜섬웨어의 활동(activity)에 의한 것인지 여부를 탐지하는 것
    을 특징으로 하는 랜섬웨어 탐지 방법.
  5. 제4항에 있어서,
    상기 랜섬웨어의 활동(activity) 여부를 탐지하는 단계는,
    상기 복수개의 특성(feature) 각각에 해당하는 특징값을 카운팅 테이블에 기초하여 계산하는 단계;
    계산된 상기 복수개의 특성 별 특징값을 상기 이진 의사 결정 트리의 입력 파라미터로 설정하여 상기 랜섬웨어의 활동 여부를 나타내는 결과값을 획득하는 단계; 및
    획득된 결과값을 기반으로 상기 랜섬웨어가 활성 상태인지 여부를 결정하는 단계
    를 포함하는 랜섬웨어 탐지 방법.
  6. 제5항에 있어서,
    상기 결정하는 단계는,
    미리 지정된 타임 윈도우 동안 획득된 복수의 결과값을 합산하고, 합산된 결과값이 미리 지정된 임계값(threshold)보다 크면, 랜섬웨어가 활성 상태인 것으로 결정하는 것
    을 특징으로 하는 랜섬웨어 탐지 방법.
  7. 제1항에 있어서,
    상기 랜섬웨어의 활동(activity) 여부를 탐지하는 단계는,
    상기 모니터링된 IO 요청 별로 시간 정보, 논리 블록 주소(LBA) 정보, IO 모드(IO Mode) 정보, 및 길이(length) 정보가 연관하여 저장된 카운팅 테이블을 이용하여 상기 랜섬웨어의 활동 여부를 탐지하는 것
    을 특징으로 하는 랜섬웨어 탐지 방법.
  8. 제7항에 있어서,
    상기 카운팅 테이블은, 타임 슬라이스 동안 카운트된 상기 모니터링된 IO 요청의 횟수 및 상기 논리 블록 주소(LBA)에 기초하여 업데이트되는 것을 특징으로 하는 랜섬웨어 탐지 방법.
  9. 제7항에 있어서,
    상기 카운팅 테이블은, 미리 정의된 타임 윈도우 동안 상기 모니터링된 IO 요청 중 읽기(read) IO 요청과 동일한 논리 블록 주소(LBA)에 해당하는 쓰기(write) IO 요청을 선택적으로 저장하는 것을 특징으로 하는 랜섬웨어 탐지 방법.
  10. NAND 플래시 메모리에서 동작하는 랜섬웨어 탐지 시스템에 있어서,
    랜섬웨어 탐지를 위해 미리 정의된 모니터링 시간마다 주기적으로 IO 요청(IO request)을 모니터링하는 모니터링부;
    모니터링된 IO 요청의 헤더(IO request header)의 분포에 기초하여, 읽기(read) 요청된 블록과 동일한 논리 블록 주소(LBA)를 가진 메모리 블록을 대상으로 덮어 쓰기(overwrite)가 발생했는지 여부를 확인하는 확인부;
    상기 덮어 쓰기의 발생 여부 확인에 기초하여 상기 랜섬웨어의 동작 특성을 특정하기 위해 미리 정의된 복수개의 특성(feature) 별로 덮어 쓰기(overwrite) 횟수를 카운팅하는 카운팅부; 및
    카운팅된 상기 덮어 쓰기 횟수에 기초하여 랜섬웨어가 활성(activity) 상태인지 여부를 탐지하는 탐지부
    를 포함하는 랜섬웨어 탐지 시스템.
PCT/KR2017/013905 2017-11-29 2017-11-30 랜섬웨어에 대한 데이터 손실이 없는 ssd 내부 방어 방법 및 랜섬웨어 탐지 시스템 WO2019107609A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0161711 2017-11-29
KR1020170161711A KR101970993B1 (ko) 2017-11-29 2017-11-29 랜섬웨어에 대한 데이터 손실이 없는 ssd 내부 방어 방법 및 랜섬웨어 탐지 시스템

Publications (1)

Publication Number Publication Date
WO2019107609A1 true WO2019107609A1 (ko) 2019-06-06

Family

ID=66285242

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/013905 WO2019107609A1 (ko) 2017-11-29 2017-11-30 랜섬웨어에 대한 데이터 손실이 없는 ssd 내부 방어 방법 및 랜섬웨어 탐지 시스템

Country Status (2)

Country Link
KR (1) KR101970993B1 (ko)
WO (1) WO2019107609A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102105885B1 (ko) * 2018-11-30 2020-05-04 주식회사 심플한 랜섬웨어 탐지 방법 및 랜섬웨어 탐지 시스템
KR102259158B1 (ko) * 2019-10-01 2021-06-02 인하대학교 산학협력단 블룸 필터를 이용한 효율적인 랜섬웨어 탐지 방법 및 시스템
KR102289407B1 (ko) * 2019-10-16 2021-08-12 국민대학교산학협력단 회피형 랜섬웨어 탐지를 위한 피처 가공 장치 및 방법
KR102474874B1 (ko) 2019-12-31 2022-12-06 충남대학교 산학협력단 랜섬웨어 공격을 식별하는 버퍼 관리 시스템 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090024374A (ko) * 2007-09-04 2009-03-09 삼성전자주식회사 면역 데이터베이스 기반의 악성코드 진단 방법 및 시스템
US20150058987A1 (en) * 2013-08-22 2015-02-26 F-Secure Corporation Detecting File Encrypting Malware
KR101685014B1 (ko) * 2016-02-19 2016-12-12 주식회사 블랙포트시큐리티 컴퓨터 시스템의 랜섬웨어 행위에 대한 선제적인 탐지 차단 방법 및 그 장치
KR20170088160A (ko) * 2016-01-22 2017-08-01 주식회사 안랩 파일보호시스템 및 파일 보호 방법
KR20170096699A (ko) * 2016-02-17 2017-08-25 박영춘 화이트리스트 및 블랙리스트에 기반한 랜섬웨어 차단 시스템 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090024374A (ko) * 2007-09-04 2009-03-09 삼성전자주식회사 면역 데이터베이스 기반의 악성코드 진단 방법 및 시스템
US20150058987A1 (en) * 2013-08-22 2015-02-26 F-Secure Corporation Detecting File Encrypting Malware
KR20170088160A (ko) * 2016-01-22 2017-08-01 주식회사 안랩 파일보호시스템 및 파일 보호 방법
KR20170096699A (ko) * 2016-02-17 2017-08-25 박영춘 화이트리스트 및 블랙리스트에 기반한 랜섬웨어 차단 시스템 및 방법
KR101685014B1 (ko) * 2016-02-19 2016-12-12 주식회사 블랙포트시큐리티 컴퓨터 시스템의 랜섬웨어 행위에 대한 선제적인 탐지 차단 방법 및 그 장치

Also Published As

Publication number Publication date
KR101970993B1 (ko) 2019-04-23

Similar Documents

Publication Publication Date Title
Baek et al. SSD-insider: Internal defense of solid-state drive against ransomware with perfect data recovery
US9882920B2 (en) Cross-user correlation for detecting server-side multi-target intrusion
EP3502943B1 (en) Method and system for generating cognitive security intelligence for detecting and preventing malwares
US9838405B1 (en) Systems and methods for determining types of malware infections on computing devices
US8181247B1 (en) System and method for protecting a computer system from the activity of malicious objects
US20180139218A1 (en) Reversion of system objects affected by a malware
WO2019107609A1 (ko) 랜섬웨어에 대한 데이터 손실이 없는 ssd 내부 방어 방법 및 랜섬웨어 탐지 시스템
WO2008048665A2 (en) Method, system, and computer program product for malware detection analysis, and response
US11170077B2 (en) Validating the integrity of application data using secure hardware enclaves
US10735468B1 (en) Systems and methods for evaluating security services
US11477232B2 (en) Method and system for antivirus scanning of backup data at a centralized storage
WO2020111504A1 (ko) 랜섬웨어 탐지 방법 및 랜섬웨어 탐지 시스템
US9792436B1 (en) Techniques for remediating an infected file
US10339307B2 (en) Intrusion detection system in a device comprising a first operating system and a second operating system
US9811659B1 (en) Systems and methods for time-shifted detection of security threats
KR102259158B1 (ko) 블룸 필터를 이용한 효율적인 랜섬웨어 탐지 방법 및 시스템
RU2738334C1 (ru) Способ и система принятия решения о необходимости автоматизированного реагирования на инцидент
US9141795B2 (en) Techniques for detecting malicious activity
US9659176B1 (en) Systems and methods for generating repair scripts that facilitate remediation of malware side-effects
KR102543101B1 (ko) 매직넘버를 이용한 랜섬웨어 탐지 방법
EP2584484B1 (en) System and method for protecting a computer system from the activity of malicious objects
US9940458B2 (en) Flag based threat detection
KR102572770B1 (ko) 랜섬웨어의 패턴인식과 매직넘버를 이용한 랜섬웨어 감지 시스템
KR101988747B1 (ko) 하이브리드 분석을 통한 머신러닝 기반의 랜섬웨어 탐지 방법 및 장치
Paik et al. Buffer management for identifying crypto-ransomware attack in environment with no semantic information

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17933544

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17933544

Country of ref document: EP

Kind code of ref document: A1