US20190303575A1 - Coordinating service ransomware detection with client-side ransomware detection - Google Patents
Coordinating service ransomware detection with client-side ransomware detection Download PDFInfo
- Publication number
- US20190303575A1 US20190303575A1 US15/941,840 US201815941840A US2019303575A1 US 20190303575 A1 US20190303575 A1 US 20190303575A1 US 201815941840 A US201815941840 A US 201815941840A US 2019303575 A1 US2019303575 A1 US 2019303575A1
- Authority
- US
- United States
- Prior art keywords
- ransomware
- client
- cloud storage
- detection
- notification
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/568—Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/561—Virus type analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Definitions
- the subject matter disclosed herein generally relates to a special-purpose machine that detects ransomware-impacted files at a client device and at a cloud storage system and improves the coordination of the detection of ransomware-impacted files between the client device and the cloud storage system, including computerized variants of such special-purpose machines and improvements to such variants, and to the technologies by which such special-purpose machines become improved compared to other special-purpose machines that detect ransomware.
- the present disclosure addresses systems and methods for coordinating detection of ransomware-impacted files between the client device and the cloud storage system, and updating the client device and the cloud storage system based on the coordinated detection.
- a ransomware attack on a computer modifies some files stored on the computer by encrypting the file's content and holding the encryption files for ransom.
- a user of the computer may not have another recourse to recover the encrypted files besides paying the ransom. If the ransom is not paid within a specified time, the files are permanently lost.
- FIG. 1 is a block diagram illustrating an example environment for detecting ransomware-impacted files in accordance with an example embodiment.
- FIG. 2 is a block diagram illustrating components within a storage system in accordance with an example embodiment.
- FIG. 3 is a block diagram illustrating components within a ransomware analysis engine in accordance with an example embodiment.
- FIG. 4 is a block diagram illustrating an interaction method between components of the client device and the storage system in accordance with an example embodiment.
- FIG. 6 is a flow diagram of a method for coordinating a ransomware detection at a storage system in accordance with an example embodiment.
- FIG. 7 is a flow diagram of a method for coordinating a ransomware detection at a storage system in accordance with another example embodiment.
- FIG. 8 is a flow diagram of a method for coordinating a ransomware detection at a client device in accordance with an example embodiment.
- FIG. 9 is a flow diagram of a method for detecting a ransomware activity in accordance with another example embodiment.
- FIG. 10 is a flow diagram of a method for determining a ransomware activity in a storage system in accordance with an example embodiment.
- FIG. 11 is a diagrammatic representation of a machine in an example form of a computing system within which a set of instructions may be executed for causing the machine to perform any one or more of the methodologies discussed herein, according to an example embodiment.
- Example methods e.g., algorithms
- systems e.g., special-purpose machines
- the files stored in the cloud storage server may be synced to a drive or folder at a corresponding client device registered with the cloud storage server.
- the server-based ransomware detection application performs a series of tests on individual files (and heuristics for several files) in the cloud storage account of the client device. Examples of tests include detecting whether a previously un-encrypted file is now encrypted, detecting whether a file has been renamed with a file extension or naming pattern associated with ransomware, detecting whether a content of the file matches with a type of content identified by the name extension of the file, using machine learning based on user feedback to determine whether the file is impacted with ransomware.
- the cloud storage server notifies the client-based ransomware detection application and shares the information about the ransomware with the client-based ransomware detection application.
- the client-based ransomware detection application may pause a file syncing operation between the client and the server until a remediation of the ransomware is received from the server-based ransomware detection application.
- the server-based ransomware detection application receives, from a client-based ransomware detection application, a notification of a file impacted by ransomware at the client device.
- the client device notifies the server-based ransomware detection application and shares the information about the ransomware with the server-based ransomware detection application.
- the server-based ransomware detection application may pause an operation of the server-based ransomware detection application until a remediation of the ransomware is received from the client-based ransomware detection application.
- one or more of the methodologies described herein facilitate solving the technical problem of lack of effective coordination and communication between a client-based ransomware detection application and a server-based ransomware detection application.
- one or more of the methodologies described herein may obviate a need for certain efforts or computing resources that otherwise would be involved in generating duplicate notifications (e.g., one notification from the client device and another notification from the storage server) and duplicate remediation options (e.g., options from the client device, options from the storage server).
- duplicate notifications e.g., one notification from the client device and another notification from the storage server
- duplicate remediation options e.g., options from the client device, options from the storage server.
- resources used by one or more machines, databases, or devices may be reduced. Examples of such computing resources include processor cycles, network traffic, memory usage, data storage capacity, power consumption, network bandwidth, and cooling capacity.
- FIG. 1 is a block diagram illustrating an example environment 100 for detecting ransomware-impacted files in accordance with an example embodiment.
- a storage system 106 stores copies of files from the client device 102 .
- the storage system 106 will be discussed in more detail in connection with FIG. 2 below.
- the storage system 106 is coupled, via a network 104 , to one or more client devices (e.g., client device 102 ).
- client devices e.g., client device 102
- One or more portions of the network 104 may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a cellular telephone network, a wireless network, a Wi-Fi network, a WiMax network, a satellite network, a cable network, a broadcast network, another type of network, or a combination of two or more such networks.
- VPN virtual private network
- LAN local area network
- WLAN wireless LAN
- WAN wide area network
- WWAN wireless WAN
- MAN metropolitan area network
- PSTN Public Switched
- transmission medium refers to any intangible (e.g., transitory) medium that is capable of communicating (e.g., transmitting) instructions for execution by a machine (e.g., by one or more processors of such a machine), and includes digital or analog communication signals or other intangible media to facilitate communication of such software.
- the client device 102 includes a client storage application 108 , a client ransomware detection application 110 , and a client-side ransomware coordinating module 112 .
- the client storage application 108 is configured to communicate files (e.g., send and receive files) or modifications in the files to be stored at the storage system 106 .
- the client storage application 108 syncs local files stored in a preset directory or folder at the client device 102 with a corresponding direction or folder at the storage system 106 . Therefore, changes made to a local file in the preset folder of the client device 102 are propagated to a corresponding remote file (a copy of the local file) in the storage system 106 .
- the client storage application 108 registers the client device 102 with the storage system 106 and communicates copies of the user-selected local files from the client device 102 to the storage system 106 .
- changes made to a remote file at the storage system 106 are propagated back to a corresponding local file in the client device 102 .
- the client ransomware detection application 110 detects whether a file locally stored at the client device 102 is impacted (or also referred to as infected) by ransomware (or malware).
- the client ransomware detection application 110 generates a notification to the client-side ransomware coordinating module 112 and to the client storage application 108 .
- the client storage application 108 pauses a syncing between the client storage application 108 and the storage system 106 in response to the notification.
- the client-side ransomware coordinating module 112 pauses ransomware notifications from the storage system 106 in response to the detection of a ransomware-impacted local file at the client device 102 .
- the client-side ransomware coordinating module 112 shares information of the ransomware detection to the storage system 106 . Once the client ransomware detection application 110 remedies the ransomware-impacted local file, the client-side ransomware coordinating module 112 shares the remedy (e.g., deleting the impacted file or request for a previous version from the storage system) and resumes ransomware notifications from the storage system 106 .
- the remedy e.g., deleting the impacted file or request for a previous version from the storage system
- the client-side ransomware coordinating module 112 receives a detection notification from the storage system 106 that indicates a ransomware-impacted file detected at the storage system 106 .
- the client storage application 108 pauses a syncing between the client storage application 108 and the storage system 106 in response to the detection notification from the storage system 106 .
- the storage system 106 shares information of the ransomware detection to the client ransomware detection application 110 via the client-side ransomware coordinating module 112 .
- the storage system 106 remedies the ransomware-impacted file at the storage system 106 , the storage system 106 shares the remedy (e.g., deleting the impacted file or restoring to a previous version from the storage system 106 ) with the client-side ransomware coordinating module 112 .
- the client ransomware detection application 110 resumes generating ransomware notifications by client ransomware detection application 110 .
- the client device 102 comprises, but is not limited to, a smartphone, tablet, laptop, multi-processor system, microprocessor-based or programmable consumer electronics, game console, set-top box, or any other device that a user utilizes to communicate over the network 104 .
- the client device 102 comprises a display module (not shown) to display information (e.g., in the form of specially configured user interfaces).
- the client device 102 may comprise one or more of a touch screen, camera, keyboard, microphone, and. Global Positioning System (GPS) device.
- GPS Global Positioning System
- any of the systems or machines (e.g., databases, devices, servers) shown in, or associated with, FIG. 1 may be, include, or otherwise be implemented in a special-purpose (e.g., specialized or otherwise non-generic) computer that has been modified (e.g., configured or programmed by software, such as one or more software modules of an application, operating system, firmware, middleware, or other program) to perform one or more of the functions described herein for that system or machine.
- a special-purpose computer system able to implement any one or more of the methodologies described herein is discussed below with respect to FIG. 11 ., and such a special-purpose computer may accordingly be a means for performing any one or more of the methodologies discussed herein.
- a special-purpose computer that has been modified by the structures discussed herein to perform the functions discussed herein is technically improved compared to other special-purpose computers that lack the structures discussed herein or are otherwise unable to perform the functions discussed herein. Accordingly, a special-purpose machine configured according to the systems and methods discussed herein provides an improvement to the technology of similar special-purpose machines.
- any two or more of the systems or machines illustrated in FIG. 1 may be combined into a single system or machine, and the functions described herein for any single system or machine may be subdivided among multiple systems or machines.
- any number and types of client device 102 may be embodied within the environment 100 .
- some components or functions of the environment 100 may be combined or located elsewhere in the environment 100 .
- some of the functions of the client storage application 108 may be embodied at the storage system 106 .
- FIG. 2 is a block diagram illustrating components within a storage system in accordance with an example embodiment.
- the storage system 106 performs operations to detect and identify ransomware-impacted files stored in a cloud storage system (or at a client device) and coordinate the notification and remediation in the cloud storage system and the client device between the server-based ransomware detection application and the client-based ransomware detection application.
- the storage system 106 comprises a server-side ransomware coordinating module 201 , a server storage application 202 , a data storage 206 , a ransomware analysis engine 210 , a notification engine 214 , and a communication module 216 , all of which are configured to communicate with each other (e.g., over a bus, shared memory, or a switch) in accordance with an example embodiment.
- the server storage application 202 is configured to interface and communicate with the client storage application 108 .
- the server storage application 202 receives a copy of a new or modified file from the client storage application 108 .
- the server storage application 202 may also receive a request from the client storage application 108 to add the new file in the data storage 206 or to replace an existing corresponding file with the modified file in the data storage 206 .
- the server storage application 202 receives and sends copies of files between the storage system 106 and the client device 102 .
- the server storage application 202 is configured with the client storage application 108 to store one or more versions of copies of files received from the client storage application 108 .
- the server storage application 202 registers the client storage application 108 and forms a folder or a directory (that corresponds to a user-selected folder or directory at the client device 102 ) at the storage system 106 . Therefore, any changes to a file in the folder at the client device 102 is replicated to the corresponding file in the corresponding folder at the storage system 106 .
- the server storage application 202 identifies historical changes to a file stored at the storage system 106 based on the different versions of a file received from the client storage application 108 .
- the server storage application 202 stores file changes (e.g., a new file or a modified file) 204 and optionally a malware detection time associated with the file in the data storage 206 .
- the data storage 206 is configured to store the files (e.g., new or modified files 204 ) received from the server storage application 202 .
- the files may be copies of files stored at the client device 102 .
- the data storage 206 is configured to store several versions of the files based on the date and time from the different versions of the files.
- the files may include attributes such as file name, file extension, and size. Those of ordinary skills in the art will recognize that the files can include other, different types of attributes.
- the data storage 206 is configured to store files and user information for individual users in user-specific data stores or databases (hereinafter collectively referred to as a “user data structure”). For instance, each user data structure may correspond to a folder and/or a directory of the client device 102 of a user. While the data storage 206 is shown to be a part of the storage system 106 , in some embodiments, the data storage 206 may be located elsewhere in the environment 100 and be communicatively coupled to the storage system 106 . Additionally, any number of data storages 206 may be used to store the user data structures.
- the data storage 206 provides file features 208 of the new or modified file (received from the server storage application 202 ) to the ransomware analysis engine 210 .
- the data storage 206 provides stored copies of the new or modified file 204 to the ransomware analysis engine 210 .
- the ransomware analysis engine 210 performs a series of tests on the new or modified file 204 (or the file features 208 of the new or modified file 204 ) to detect whether the new or modified file 204 is impacted with ransomware.
- the ransomware analysis engine 210 will be discussed in more detail in connection with FIG. 3 below. Once the ransomware analysis engine 210 determines that the new or modified file 204 is impacted with ransomware, the ransomware analysis engine 210 provides an identification of the suspicious file 212 (e.g., new or modified file 204 ) to the notification engine 214 .
- the notification engine 214 generates a notification 215 that requests a user of the client storage application 108 to confirm and validate whether the suspicious file 212 is impacted with ransomware.
- the notification 215 includes, for example, an identification of the suspicious file 212 , a time of the suspected infection, a version of the suspicious file 212 , an identification of who last modified the suspicious file 212 , an identification of the name of the suspected ransomware (or malware), and an identification of suspicious changes in the name or content of the suspicious file 212 .
- the notification engine 214 provides the notification 215 to the communication module 216 .
- the notification engine 214 also provides a ransomware detection notification to the server-side ransomware coordinating module 201 to indicate that the ransomware analysis engine 210 has detected a ransomware-impacted file (e.g., suspicious file 212 ) stored in a data structure (associated with the client device 102 ) of the data storage 206
- a ransomware-impacted file e.g., suspicious file 212
- the server-side ransomware coordinating module 201 shares the ransomware information (e.g., name, features, and properties of the ransomware and the ransomware-impacted file) about the ransomware-impacted file with the client-side ransomware coordinating module 112 .
- the server-side ransomware coordinating module 201 shares information about the detection event 203 (e.g., ransomware information) with the server storage application 202 .
- the server storage application 202 retrieves a remediated file 205 from the data storage 206 based on the detection event 203 .
- the server storage application 202 also stops communicating with the client storage application 108 and stops syncing files with the data storage 206 until the server-side ransomware coordinating module 201 indicates that the suspicious file 212 has been remediated.
- the client-side ransomware coordinating module 112 receives a ransomware detection notification from the server-side ransomware coordinating module 201 and pauses a syncing between the client storage application 108 and the server storage application 202 until the client-side ransomware coordinating module 112 receives a remediation notification from the server-side ransomware coordinating module 201 .
- the client ransomware detection application 110 detects a local ransomware-impacted file at the client device 102 and generates a local ransomware detection notification to the client-side ransomware coordinating module 112 .
- the client-side ransomware coordinating module 112 shares the ransomware information (e.g., name, features, and properties of the ransomware and the ransomware-impacted file) about the local ransomware-impacted file with the server-side ransomware coordinating module 201 .
- the server-side ransomware coordinating module 201 shares information about the local ransomware-impacted file (e.g., impacted file 209 ) to the ransomware analysis engine 210 (so that the ransomware analysis engine 210 can learn from the shared information).
- the client storage application 108 retrieves a remediated file 205 from the data storage 206 .
- the server storage application 202 also stops communicating with the client storage application 108 and stops syncing files with the data storage 206 until the client-side ransomware coordinating module 112 indicates that the local ransomware-impacted file has been remediated.
- the communication module 216 is configured to exchange communications with the client device 102 .
- the communication module 216 transmits the notification 215 to the client storage application 108 .
- the communication module 216 receives a ransomware confirmation 220 from the client storage application 108 in response to sending out the notification 215 .
- the ransomware confirmation 220 indicates a user (of the client device 102 ) confirmation of whether the suspicious file 212 is indeed impacted with ransomware.
- the communication module 216 forwards the user feedback (e.g., ransomware confirmation 220 ) to the ransomware analysis engine 210 .
- the communication module 216 includes a user interface module (not shown) that is configured to cause presentation of specially configured user interfaces on the client device 102 that include a visual indication of the ransomware-impacted file and other pertinent information (e.g., time of infection, last modified author, size change).
- the user interface module generates and transmits instructions to the client device 102 to render and display the user interfaces.
- any one or more of the components (e.g., modules, engines) described herein may be implemented using hardware alone (e.g., one or more processors of a machine) or a combination of hardware and software.
- any component described herein may physically include an arrangement of one or more of the processors or configure a processor (e.g., among one or more processors of a machine) to perform the operations described herein for that module.
- different components described herein may include and configure different arrangements of the processors at different points in time or a single arrangement of the processors at different points in time.
- Each component (e.g., module) described herein is an example of a means for performing the operations described herein for that component.
- any two or more of these components may be combined into a single component, and the functions described herein for a single component may be subdivided among multiple components.
- components described herein as being implemented within a single machine, database, or device may be distributed across multiple machines, databases, or devices.
- the storage system 106 may comprise other components not pertinent to example embodiments that are not shown or discussed. Further still, one or more of the components of the storage system 106 may be located at one or more of the client devices 102 .
- FIG. 3 is a block diagram illustrating components within a ransomware analysis engine in accordance with an example embodiment.
- the ransomware analysis engine 210 performs operations to detect and identify ransomware-impacted files stored in the data storage 206 and to improve the detection of ransomware using feedback validation from users of the data storage 206 .
- the ransomware analysis engine 210 comprises a feature extraction module 302 , an encryption analysis module 304 , a file naming analysis module 306 , a content analysis module 308 , a user feedback module 312 , a learning engine 314 , and an impacted file identification module 310 , all of which are configured to communicate with each other (e.g., over a bus, shared memory, or a switch) in accordance with an example embodiment.
- the features extraction module 302 extracts features from a file stored at the data storage 206 .
- the features extraction module 302 extracts features from a last modified file or a new file received from the client storage application 108 via the server storage application 202 .
- Examples of features include, but are not limited to, attributes of the files such as file encryption status, extension name, date of creation, date of modification, versioning number, author name, type of media, and compression status.
- the encryption analysis module 304 determines the encryption status of the new or modified file based on the extracted features of the file. For example, the encryption analysis module 304 determines that the encryption status of the modified file has change (e.g., from non-encrypted to encrypted: a modified file is now encrypted whereas a previous version of the corresponding file is encrypted). In another example, the encryption analysis module 304 determines that the new file is encrypted. The encryption analysis module 304 provides the encryption status of the new or modified file to the impacted file identification module 310 .
- the file naming analysis module 306 determines a name of the new or modified file and the name of the extension of the new or modified file based on the extracted features of the new or modified file. For example, the file naming analysis module 306 compares the name of the new or modified file with the name of known ransomware file names. In another example embodiment, the file naming analysis module 306 determines whether there is an increase in file renames in the folder of the data storage 206 corresponding to the folder in the client device 102 . In other example embodiments, the file naming analysis module 306 monitors for text strings associated with known ransomware. The file naming analysis module 306 provides the ransomware file name matching results of the new or modified file to the impacted file identification module 310 .
- the content analysis module 308 determines whether a file content does not match its file type (based on its extension name, header, or mime type). For example, the content analysis module 308 determines that the content in a .jpg file is not an image. The content analysis module 308 provides the result of its content analysis of the new or modified file to impacted file identification module 310 .
- the user feedback module 312 is configured to receive feedback (e.g., confirmation and validation of the presence of ransomware in a new or modified file) from the client storage application 108 of the client device 102 .
- the user feedback module 312 receives a ransomware confirmation from the client storage application 108 based on a user feedback at the client storage application 108 .
- the user feedback indicates whether the new or modified file is indeed impacted with ransomware.
- the user feedback module 312 provides the user feedback (e.g., ransomware confirmation 220 ) to the learning engine 314 .
- the learning engine 314 manages a learning model (e.g., supervised or unsupervised) for identifying ransomware files.
- the learning engine 314 accesses file information (associated with the client device 102 ) from the data storage 206 .
- the file information includes attributes, extensions, features (including user feedback) of old, new, and modified files associated with the client device 102 .
- the learning engine 314 can identify trends or patterns. For example, the learning engine 314 learns, based on file extensions, that the new file is actually not related to a ransomware, as confirmed by the user of the client device 102 , because the user has named the file to a name similar to a known ransomware.
- the learning engine 314 learns that a file that is encrypted and has a file extension name with a particular naming pattern (e.g., previously associated with existing ransomware) is likely a ransomware.
- the learning engine 314 can, in one embodiment, suggest to the impacted file identification module 310 that the new or modified file is likely or is not likely a ransomware. In a further embodiment, the learning engine 314 updates a list of files that have been confirmed or validated as safe (non-impacted by ransomware) from the client device 102 . All of the trends or patterns identified by the learning engine 314 may be stored in the data storage 206 and provided to the impacted file identification module 310 for further processing.
- the learning engine 314 determines the number of files (in the account of the client device 102 in the data storage 206 ) being updated, deleted, created, encrypted, and with suspicious extensions, and generates a determination or confidence level that one of the files (or the user account) is impacted by a malware or ransomware attack.
- the impacted file identification module 310 receives the results from the encryption analysis module 304 , the file naming analysis module 306 , the content analysis module 308 , and the learning engine 314 to assess and determine whether the new or modified file is likely impacted by a ransomware.
- the impacted file identification module 310 provides a range of confidence that the new or modified file is likely impacted by a ransomware.
- the impacted file identification module 310 determines that a modified file is likely impacted by a ransomware based on a determination that the modified file is now encrypted (and an immediate previous version of the modified file was unencrypted), that the extension name of the file matches portions of text strings associated with known ransomware, and based on previous user feedback (from the client device 102 or from other users or client devices with files sharing the same attributes or features).
- FIG. 4 is a block diagram illustrating an interaction method between components of the client device and the storage system in accordance with an example embodiment.
- Operations in the interaction method 400 may be performed between the client ransomware detection application 110 , the client-side ransomware coordinating module 112 , and the server-side ransomware coordinating module 201 described above with respect to FIGS. 1 and 2 .
- the interaction method 400 is described by way of example with reference to the storage system 106 and the client device 102 .
- at least some of the operations of the method 400 may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may be performed in a third-party device.
- the client ransomware detection application 110 detects a locally impacted file (e.g., suspicious file possibly impacted by ransomware).
- the client ransomware detection application 110 includes an antimalware detection application such as an antivirus application.
- the client ransomware detection application 110 provides the detection event information (e.g., information about the locally impacted file) and remediation flag (e.g., flag indicates that the client device 102 has successfully cleaned (or failed to clean) the impacted file, whether the synced file at the storage system 106 is also impacted) to the client-side ransomware coordinating module 112 .
- detection event information e.g., information about the locally impacted file
- remediation flag e.g., flag indicates that the client device 102 has successfully cleaned (or failed to clean) the impacted file, whether the synced file at the storage system 106 is also impacted
- the client-side ransomware coordinating module 112 provides the detection event information and the remediation flag to the server-side ransomware coordinating module 201 .
- the client-side ransomware coordinating module 112 requests that the client storage application 108 pauses or stops syncing with the server storage application 202 until remediation of the impacted file.
- the server-side ransomware coordinating module 201 snoozes its server-side ransomware detection and notification and pauses syncing with the client device 102 after receiving the detection event.
- the client ransomware detection application 110 remediates the impacted file.
- the client ransomware detection application 110 confirms the remediation and notifies the client-side ransomware coordinating module 112 of the remediation time (e.g., time when the impacted file has been remediated).
- the client-side ransomware coordinating module 112 notifies the server-side ransomware coordinating module 201 of the remediation.
- the server-side ransomware coordinating module 201 resumes the server-side ransomware detection and/or notification and resumes syncing with the client device 102 after receiving confirmation of the remediation and the remediation time.
- the client ransomware detection application 110 determines that it cannot locally remediate the impacted file and notifies the client-side ransomware coordinating module 112 of the non-remediable impacted file.
- the client-side ransomware coordinating module 112 determines a remediation time (e.g., time at which the file was likely not impacted by the ransomware) and provides the remediation time to the server-side ransomware coordinating module 201 .
- the server-side ransomware coordinating module 201 retrieves the non-impacted version of the file based on the remediation/detection time.
- the server-side ransomware coordinating module 201 provides a file restore link that provides access to the non-impacted version of the file to the client-side ransomware coordinating module 112 .
- the client-side ransomware coordinating module 112 provides the file restore link to the client ransomware detection application 110 .
- the client ransomware detection application 110 restores the impacted file to the non-impacted version of the file by using the file restore link to access the non-impacted version of the file from the data storage 206 .
- FIG. 5 is a block diagram illustrating interactions between components of the client device and the storage system in accordance with another example embodiment.
- Operations in the interaction method 500 may be performed between the client ransomware detection application 110 , the client-side ransomware coordinating module 112 , and the server-side ransomware coordinating module 201 described above with respect to FIGS. 1 and 2 . Accordingly, the interaction method 500 is described by way of example with reference to the storage system 106 and the client device 102 . However, it shall be appreciated that at least sonic of the operations of the method 500 may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may be performed in a third-party device.
- the server-side ransomware coordinating module 201 detects an impacted file (e.g., suspicious file possibly impacted by ransomware) using the ransomware analysis engine 210 .
- an impacted file e.g., suspicious file possibly impacted by ransomware
- the server-side ransomware coordinating module 201 provides the detection event information (e.g., information about the locally impacted file) and remediation flag (e.g., flag indicates that the storage system 106 has successfully cleaned (or failed to clean) the impacted file, whether the synced file at the client device 102 is also impacted) to the client-side ransomware coordinating module 112 .
- detection event information e.g., information about the locally impacted file
- remediation flag e.g., flag indicates that the storage system 106 has successfully cleaned (or failed to clean) the impacted file, whether the synced file at the client device 102 is also impacted
- the client-side ransomware coordinating module 112 provides the detection event information and the remediation flag to the client ransomware detection application 110 .
- the client-side ransomware coordinating module 112 requests that the client storage application 108 pauses or stops syncing with the server storage application 202 until remediation of the impacted file.
- the client ransomware detection application 110 pauses syncing with the storage system 106 after receiving the detection event.
- the server-side ransomware coordinating module 201 remediates the impacted file by retrieving a non-impacted file version based on the detection event (e.g., detection time).
- the server-side ransomware coordinating module 201 provides the client-side ransomware coordinating module 112 with a file restore link that provides access to the non-impacted file version.
- the client-side ransomware coordinating module 112 notifies the client ransomware detection application 110 and provides the file restore link.
- the client ransomware detection application 110 generates a server-side ransomware detection notification.
- the client ransomware detection application 110 restores the impacted file using the file restore link.
- the client ransomware detection application 110 resumes the local-side ransomware detection and notification and resumes syncing with the storage system 106 .
- FIG. 6 is a flow diagram of a method for coordinating a ransomware detection at a storage system in accordance with an example embodiment.
- Operations in the method 600 may be performed by the storage system 106 , using components (e.g., modules, engines) described above with respect to FIG. 2 . Accordingly, the method 600 is described by way of example with reference to the storage system 106 . However, it shall be appreciated that at least some of the operations of the method 600 may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, sonic of the operations may be performed at the client device 102 .
- the server-side ransomware coordinating module 201 receives a detection event from the client-side ransomware coordinating module 112 indicating that a ransomware activity is detected by the client device 102 .
- the server-side ransomware coordinating module 201 pauses a server-side ransomware detection notification to the client device 102 (e.g., pausing an operation of the notification engine 214 or the communication module 216 ).
- the server-side ransomware coordinating module 201 receives a remediation notification from the client-side ransomware coordinating module 112 indicating that a ransomware activity at the client device 102 has been remediated.
- the server-side ransomware coordinating module 201 updates the ransomware analysis engine 210 based on the detection event, the remediation notification, and information shared by the client-side ransomware coordinating module 112 .
- the server-side ransomware coordinating module 201 resumes server-side ransomware detection notifications to the client device 102 (e.g., resuming an operation of the notification engine 214 or the communication module 216 ).
- FIG. 7 is a flow diagram of a method for coordinating a ransomware detection at a storage system in accordance with another example embodiment.
- Operations in the method 700 may be performed by the storage system 106 , using components (e.g., modules, engines) described above with respect to FIG. 2 . Accordingly, the method 700 is described by way of example with reference to the storage system 106 . However, it shall be appreciated that at least some of the operations of the method 700 may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may be performed at the client device 102 .
- the server-side ransomware coordinating module 201 receives a detection event from the client-side ransomware coordinating module 112 indicating that a ransomware activity is detected by the client device 102 .
- the server-side ransomware coordinating module 201 pauses a server-side ransomware detection notification to the client device 102 (e.g., pausing an operation of the notification engine 214 or the communication module 216 ),
- the server-side ransomware coordinating module 201 pauses a syncing operation between the server storage application 202 and the client storage application 108 .
- the server-side ransomware coordinating module 201 receives a remediation notification from the client-side ransomware coordinating module 112 indicating a non-remediable impacted file at the client device 102 (e.g., non-remediable by the client device 102 ).
- the server-side ransomware coordinating module 201 updates the ransomware analysis engine 210 based on the detection event, the remediation notification, and information shared by the client-side ransomware coordinating module 112 .
- the server-side ransomware coordinating module 201 provides access to a non-impacted version of the file based on the detection event and the remediation notification, and information shared by the client-side ransomware coordinating module 112 .
- the server-side ransomware coordinating module 201 resumes server-side ransomware detection notifications to the client device 102 (e.g., resuming an operation of the notification engine 214 or the communication module 216 ).
- the server-side ransomware coordinating module 201 resumes a syncing operation between the server storage application 202 and the client storage application 108 .
- FIG. 8 is a flow diagram of a method for coordinating a ransomware detection at a storage system in accordance with an example embodiment.
- Operations in the method 800 may be performed by the client device 102 , using components (e.g., modules, engines) described above with respect to FIG. 2 . Accordingly, the method 800 is described by way of example with reference to the client device 102 . However, it shall be appreciated that at least some of the operations of the method 800 may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may he performed at the storage system 106 .
- the client-side ransomware coordinating module 112 receives a detection event from the server-side ransomware coordinating module 201 indicating that a ransomware activity is detected by the storage system 106 .
- the client-side ransomware coordinating module 112 pauses a client-side ransomware detection notification from the client ransomware detection application 110 .
- the client-side ransomware coordinating module 112 receives a remediation notification from the server-side ransomware coordinating module 201 indicating that a ransomware activity at the storage system 106 has been remediated.
- the client-side ransomware coordinating module 112 provides the remediation notification to the client ransomware detection application 110 .
- the client-side ransomware coordinating module 112 resumes detection notifications from the client ransomware detection application 110 .
- FIG. 9 is a flow diagram of a method for determining a ransomware activity in a storage system in accordance with an example embodiment.
- Operations in the method 900 may be performed by the storage system 106 , using components (e.g., modules, engines) described above with respect to FIG. 2 . Accordingly, the method 900 is described by way of example with reference to the ransomware analysis engine 210 . However, it shall be appreciated that at least some of the operations of the method 900 may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may be performed at the client device 102 .
- the encryption analysis module 304 identifies an encryption status of the new or modified file. For example, the encryption analysis module 304 determines whether the new or modified file is encrypted (and if so, whether the immediate previous version of the file stored at the data storage 206 is unencrypted).
- the file naming analysis module 306 identifies a file name of the new or modified file.
- the file naming analysis module 306 identifies a file extension name of the new or modified file.
- the content analysis module 308 identifies a content type of the new or modified file. For example, the content analysis module 308 determines what the content of the new or modified file does not match with the name extension of the new or modified file.
- the user feedback module 312 identifies previous user feedback (or other users feedback) related to the new or modified file.
- the impacted file identification module 310 determines a ransomware activity of the new or modified file based on the encryption status, the file name, the extension, the content type, and the user's previous feedback.
- FIG. 10 is a flow diagram of a method for determining a ransomware activity in a storage system in accordance with another example embodiment.
- Operations in the method 1000 may be performed by the storage system 106 , using components (e.g., modules, engines) described above with respect to FIG. 2 . Accordingly, the method 1000 is described by way of example with reference to the ransomware analysis engine 210 . However, it shall be appreciated that at least some of the operations of the method 1000 may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may be performed at the client device 102 .
- the user feedback module 312 receives previous feedback (from the user or other users) related to the new or modified file stored at the storage system 106 .
- the learning engine 314 trains a ransomware detection model for the new or modified file based on the user's feedback.
- the feature extraction module 302 determines features of the new or modified file. Examples of features include an encryption status, a file or extension naming pattern, a content analysis matching result, and user feedback related to files similar to the new or modified file.
- the impacted file identification module 310 detects a ransomware activity (e.g., ransomware) based on the features of the new or modified file as previously determined in operation 1006 and based on the ransomware detection model as previously determined in operation 1004 .
- a ransomware activity e.g., ransomware
- the notification engine 214 In operation 1010 , the notification engine 214 generates a notification that identifies the new or modified file (based on the file identification from operation 1008 ) as potential ransomware to the client device 102 .
- the communication module 216 sends the notification to the client device 102 .
- the ransomware analysis engine 210 receives a user confirmation of the ransomware activity of the modified file from the client device 102 via the communication module 216 .
- the ransomware analysis engine 210 provides the feedback (e.g., user confirmation) to the learning 314 (in operation 1004 ).
- FIG. 11 is a block diagram illustrating components of a machine 1100 , according to some example embodiments, able to read instructions 1124 from a machine-readable medium 1122 and perform any one or more of the methodologies discussed herein, in whole or in part.
- FIG. 11 shows the machine 1100 in the example form of a computer device (e.g., a computer) within which the instructions 1124 (e.g., software, a program, an application, an applet, an app, or other executable code) for causing the machine 1100 to perform any one or more of the methodologies discussed herein may be executed, in whole or in part.
- the instructions 1124 e.g., software, a program, an application, an applet, an app, or other executable code
- the instructions 1124 may cause the machine 1100 to execute the flows and flow diagrams of FIGS. 6-10 .
- the instructions 1124 can transform the general, non-programmed machine 1100 into a particular machine (e.g., specially configured machine) programmed to carry out the described and illustrated functions in the manner described.
- the machine 1100 operates as a standalone device or may be connected (e.g., networked) to other machines.
- the machine 1100 may be a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (e.g. STB), a personal digital assistant (PDA), a cellular telephone, a smartphone, a web appliance, a network router, a network switch, a network bridge, a power adapter, or any machine 1100 capable of executing the instructions 1124 , sequentially or otherwise, that specify actions to be taken by that machine 1100 .
- the term “machine” shall also be taken to include a collection of machines that individually or jointly execute the instructions 1124 to perform any one or more of the methodologies discussed herein.
- the machine 1100 includes a processor 1102 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio-frequency integrated circuit (RFIC), or any suitable combination thereof), a main memory 1104 , and a static memory 1106 , which are configured to communicate with each other via a bus 1108 .
- the processor 1102 may contain microcircuits that are configurable, temporarily or permanently, by some or all of the instructions 1124 such that the processor 1102 is configurable to perform any one or more of the methodologies described herein, in whole or in part.
- a set of one or more microcircuits of the processor 1102 may be configurable to execute one or more modules (e.g., software modules) described herein.
- the machine 1100 may further include a display device 1110 (e.g., a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, a cathode ray tube (CRT), or any other display capable of displaying graphics or video).
- a display device 1110 e.g., a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, a cathode ray tube (CRT), or any other display capable of displaying graphics or video).
- PDP plasma display panel
- LED light emitting diode
- LCD liquid crystal display
- CRT cathode ray tube
- the machine 1100 may also include an alphanumeric input device 1112 (e.g., a keyboard or keypad.), a UI navigation device 1114 (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, an eye tracking device, or other pointing instrument), a storage unit 1116 , a signal generation device 1118 (e.g., a sound card, an amplifier, a speaker, a headphone jack, or any suitable combination thereof), and a network interface device 1120 .
- an alphanumeric input device 1112 e.g., a keyboard or keypad.
- a UI navigation device 1114 e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, an eye tracking device, or other pointing instrument
- storage unit 1116 e.g., a storage unit 1116
- a signal generation device 1118 e.g., a sound card, an amplifier, a speaker,
- the storage unit 1116 includes the machine-readable medium 1122 on which are stored the instructions 1124 embodying any one or more of the methodologies or functions described herein.
- the instructions 1124 may also reside, completely or at least partially, within the main memory 1104 , within the processor 1102 (e.g., within the processor's cache memory), or both, before or during execution thereof by the machine 1100 . Accordingly, the main memory 1104 and the processor 1102 may be considered machine-readable media 1122 (e.g., tangible and non-transitory machine-readable media).
- the machine 1100 may be a portable computing device and have one or more additional input components (e.g., sensors or gauges).
- additional input components e.g., sensors or gauges.
- input components include an image input component (e.g., one or more cameras), an audio input component (e.g., a microphone), a direction input component (e.g., a compass), a location input component (e.g., a global positioning system (GPS) receiver), an orientation component (e.g., a gyroscope), a motion detection component (e.g., one or more accelerometers), an altitude detection component (e.g., an altimeter), and a gas detection component (e.g., a gas sensor).
- Inputs harvested by any one or more of these input components may be accessible and available for use by any of the modules described herein.
- the various memories i.e., 1104 , 1106 , and/or memory of the processor(s) 1102
- storage unit 1116 may store one or more sets of instructions and data structures (e.g., software) 1124 embodying or utilized by any one or more of the methodologies or functions described herein. These instructions, when executed by processor(s) 1102 cause various operations to implement the disclosed embodiments.
- machine-storage medium As used herein, the terms “machine-storage medium,” “device-storage medium,” “computer-storage medium” (referred to collectively as “machine-readable medium 1122 ”) mean the same thing and may be used interchangeably in this disclosure.
- the terms refer to a single or multiple storage devices and/or media (e.g., a centralized or distributed database, and/or associated caches and servers) that store executable instructions and/or data, as well as cloud-based storage systems or storage networks that include multiple storage apparatus or devices.
- the terms shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media, including memory internal or external to processors.
- machine-storage media, computer-storage media, and/or machine-readable media 1122 include non-volatile memory, including by way of example semiconductor memory devices, e.g., erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FPGA, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
- semiconductor memory devices e.g., erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FPGA, and flash memory devices
- EPROM erasable programmable read-only memory
- EEPROM electrically erasable programmable read-only memory
- FPGA field-programmable read-only memory
- flash memory devices e.g., erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM
- signal medium or “transmission medium” shall be taken to include any form of modulated data signal, carrier wave, and so forth.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a matter as to encode information in the signal.
- machine-readable medium means the same thing and may be used interchangeably in this disclosure.
- the terms are defined to include both machine-storage media and signal media.
- the terms include both storage devices/media and carrier waves/modulated data signals.
- the instructions 1124 may further be transmitted or received over a communications network 1126 using a transmission medium via the network interface device 1120 and utilizing any one of a number of well-known transfer protocols (e.g., HTTP).
- communications networks 1126 include a local area network (LAN), a wide area network (WAN), the Internet, mobile telephone networks, plain old telephone service (POTS) networks, and wireless data networks Wi-Fi, LTE, and WiMAX networks).
- POTS plain old telephone service
- Wi-Fi wireless local area network
- LTE Long Term Evolution
- WiMAX wireless data networks
- transmission medium or “signal medium” shall be taken to include any intangible medium that is capable of storing, encoding, or carrying instructions 1124 for execution by the machine 1100 , and includes digital or analog communications signals or other intangible medium to facilitate communication of such software.
- Modules may constitute either software modules (e.g., code embodied on a machine-readable medium 1122 or in a signal medium) or hardware modules.
- a “hardware module” is a tangible unit capable of performing certain operations and may be configured or arranged in a certain physical manner.
- one or more computer systems e.g., a standalone computer system, a client computer system, or a server computer system
- one or more hardware modules of a computer system e.g., a processor 1102 or a group of processors 1102
- software e.g., an application or application portion
- a hardware module may be implemented mechanically, electronically, or any suitable combination thereof.
- a hardware module may include dedicated circuitry or logic that is permanently configured to perform certain operations.
- a hardware module may be a special-purpose processor, such as a field-programmable gate array (FPGA) or an ASIC.
- a hardware module may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations.
- a hardware module may include software encompassed within a general-purpose processor or other programmable processor. It will be appreciated, that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
- hardware module should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein.
- “hardware-implemented module” refers to a hardware module. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where a hardware module comprises a general-purpose processor configured by software to become a special-purpose processor, the general-purpose processor may be configured as respectively different special-purpose processors (e.g comprising different hardware modules) at different times. Software may accordingly configure a processor, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.
- processors may be temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions described herein.
- processor-implemented module refers to a hardware module implemented using one or more processors.
- the methods described herein may be at least partially processor-implemented, a processor being an example of hardware.
- a processor being an example of hardware.
- the operations of a method may be performed by one or more processors or processor-implemented modules.
- the one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS).
- SaaS software as a service
- at least some of the operations may be performed by a group of computers (as examples of machines including processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an application program interface (API)).
- API application program interface
- the performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines.
- the one or more processors or processor-implemented modules may be located in a single geographic location within a home environment, an office environment, or a server farm). In other example embodiments, the one or more processors or processor-implemented modules may be distributed across a number of geographic locations.
- Example 1 is a system for detecting ransomware in a storage of a server.
- the system includes one or more hardware processors; and a memory storing instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations comprising: receiving, at a cloud storage server, a detection notification from a client device, the cloud storage server configured to store files received from the client device, the detection notification indicating a ransomware activity detected by the client device; receiving, at the cloud storage server, a remediation notification from the client device, the remediation notification indicating that the ransomware activity has been remediated by the client device; and updating an operation of the cloud storage server based on the detection notification and the remediation notification.
- example 2 the subject matter of example 1 can optionally include wherein the detection notification is from a client-based cloud storage application operating at the client device or a client-based ransomware detection application operating at the client device, the detection notification indicating the ransomware activity detected by the client-based ransomware detection application.
- example 3 the subject matter of example 1 can optionally include wherein the remediation notification is from the client-based cloud storage application operating at the client device or the client-based ransomware detection application operating at the client device, the remediation notification indicating that the ransomware activity has been remediated by the client-based ransomware detection application.
- example 4 the subject matter of example 1 can optionally include wherein updating the operation of the cloud storage server comprises: updating an operation of a server-based ransomware detection application at the cloud storage server based on the detection notification and the remediation notification.
- example 5 the subject matter of example 4 can optionally include wherein updating the operation of the server-based ransomware detection comprises: pausing a syncing operation between a client-based cloud storage application at the client device and the cloud storage server in response to receiving the detection notification at the cloud storage server; and resuming the syncing operation between the client-based cloud storage application and the cloud storage server in response to receiving the remediation notification at the cloud storage server.
- example 6 the subject matter of example 4 can optionally include wherein updating the operation of the server-based ransomware detection comprises: performing a syncing operation between a client-based cloud storage application at the client device and the cloud storage server in response to receiving the detection notification at the cloud storage server; and receiving one or more remediated files from a client-based ransomware detection application or the client-based cloud storage application in response to receiving the detection notification at the cloud storage server.
- example 7 the subject matter of example 1 can optionally include wherein the detection notification comprises an identification of one or more files compromised by the ransomware activity and a timestamp of a detection of the ransomware activity by a client-based ransomware detection application, wherein the remediation notification comprises an identification of one or more remediated files and a timestamp of a remediation of the ransomware activity by the client-based ransomware detection application.
- Example 8 is a computer-implemented method, the computer-implemented method comprising: generating, at a cloud storage server, a detection notification to a client device, the cloud storage server configured to store files received from the client device, the detection notification indicating a ransomware activity detected by the cloud storage server; communicating, from the cloud storage server, a remediation notification to the client device, the remediation notification indicating that the ransomware activity has been remediated by the cloud storage server; and updating an operation of the cloud storage server based on the detection notification and the remediation notification.
- example 9 the subject matter of example 8 can optionally include wherein the detection notification is from a server-side ransomware coordinating module operating at the cloud storage server, the detection notification indicating the ransomware activity detected by a ransomware analysis engine of the cloud storage server.
- example 10 the subject matter of example 9 can optionally include: pausing a syncing operation between a client-based cloud storage application at the client device and the cloud storage server in response to generating the detection notification at the cloud storage server; and resuming the syncing operation between the client-based cloud storage application and the cloud storage server in response to receiving the remediation notification at the cloud storage server.
- Example 11 is a system.
- the system comprises: one or more hardware processors; and a memory storing instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations comprising:
- example 12 the subject matter of example 11 can optionally include wherein the detection notification is from a client-based cloud storage application operating at the client device or a client-based ransomware detection application operating at the client device, the detection notification indicating the ransomware activity detected by the client-based ransomware detection application.
- example 13 the subject matter of example 12 can optionally include wherein the remediation notification is from the client-based cloud storage application operating at the client device or the client-based ransomware detection application operating at the client device, the remediation notification indicating that the ransomware activity has been remediated by the client-based ransomware detection application.
- example 14 the subject matter of example 11 can optionally include wherein updating the operation of the cloud storage server comprises:
- example 15 the subject matter of example 14 can optionally include wherein updating the operation of the server-based ransomware detection comprises:
- example 16 the subject matter of example 14 can optionally include wherein updating the operation of the server-based ransomware detection comprises:
- example 17 the subject matter of example 11 can optionally include wherein the detection notification comprises an identification of one or more files compromised by the ransomware activity and a timestamp of a detection of the ransomware activity by a client-based ransomware detection application, wherein the remediation notification comprises an identification of one or more remediated files and a timestamp of a remediation of the ransomware activity by the client-based ransomware detection application.
- Example 18 is a machine-storage medium storing instructions that, when executed by one or more processors of a machine, cause the one or more processors to perform operations comprising:
- example 19 the subject matter of example 18 can optionally include wherein the detection notification is from a client-based cloud storage application operating at the client device or a client-based ransomware detection application operating at the client device, the detection notification indicating the ransomware activity detected by the client-based ransomware detection application.
- example 20 the subject matter of example 19 can optionally include wherein the remediation notification is from the client-based cloud storage application operating at the client device or the client-based ransomware detection application operating at the client device, the remediation notification indicating that the ransomware activity has been remediated by the client-based ransomware detection application.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Virology (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
- Retry When Errors Occur (AREA)
- Stored Programmes (AREA)
Abstract
Description
- The subject matter disclosed herein generally relates to a special-purpose machine that detects ransomware-impacted files at a client device and at a cloud storage system and improves the coordination of the detection of ransomware-impacted files between the client device and the cloud storage system, including computerized variants of such special-purpose machines and improvements to such variants, and to the technologies by which such special-purpose machines become improved compared to other special-purpose machines that detect ransomware. Specifically, the present disclosure addresses systems and methods for coordinating detection of ransomware-impacted files between the client device and the cloud storage system, and updating the client device and the cloud storage system based on the coordinated detection.
- Conventionally, a ransomware attack on a computer modifies some files stored on the computer by encrypting the file's content and holding the encryption files for ransom. A user of the computer may not have another recourse to recover the encrypted files besides paying the ransom. If the ransom is not paid within a specified time, the files are permanently lost.
- Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings.
-
FIG. 1 is a block diagram illustrating an example environment for detecting ransomware-impacted files in accordance with an example embodiment. -
FIG. 2 is a block diagram illustrating components within a storage system in accordance with an example embodiment. -
FIG. 3 is a block diagram illustrating components within a ransomware analysis engine in accordance with an example embodiment. -
FIG. 4 is a block diagram illustrating an interaction method between components of the client device and the storage system in accordance with an example embodiment. -
FIG. 5 is a block diagram illustrating an interaction method between components of the client device and the storage system in accordance with another example embodiment. -
FIG. 6 is a flow diagram of a method for coordinating a ransomware detection at a storage system in accordance with an example embodiment. -
FIG. 7 is a flow diagram of a method for coordinating a ransomware detection at a storage system in accordance with another example embodiment. -
FIG. 8 is a flow diagram of a method for coordinating a ransomware detection at a client device in accordance with an example embodiment. -
FIG. 9 is a flow diagram of a method for detecting a ransomware activity in accordance with another example embodiment. -
FIG. 10 is a flow diagram of a method for determining a ransomware activity in a storage system in accordance with an example embodiment. -
FIG. 11 is a diagrammatic representation of a machine in an example form of a computing system within which a set of instructions may be executed for causing the machine to perform any one or more of the methodologies discussed herein, according to an example embodiment. - The description that follows describes systems, methods, techniques, instruction sequences, and computing machine program products that illustrate example embodiments of the present subject matter. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide an understanding of various embodiments of the present subject matter. It will be evident, however, to those skilled in the art, that embodiments of the present subject matter may be practiced without some or other of these specific details. Examples merely typify possible variations. Unless explicitly stated otherwise, structures (e.g., structural components, such as modules) are optional and may be combined or subdivided, and operations (e.g., in a procedure, algorithm, or other function) may vary in sequence or be combined or subdivided.
- Example methods (e.g., algorithms) and systems (e.g., special-purpose machines) detect and identify ransomware-impacted files stored in a cloud storage system or at a client device and coordinate the notification and remediation in the cloud storage system and the client device between the server-based ransomware detection application and the client-based ransomware detection application. The files stored in the cloud storage server may be synced to a drive or folder at a corresponding client device registered with the cloud storage server.
- In one example embodiment, the server-based ransomware detection application performs a series of tests on individual files (and heuristics for several files) in the cloud storage account of the client device. Examples of tests include detecting whether a previously un-encrypted file is now encrypted, detecting whether a file has been renamed with a file extension or naming pattern associated with ransomware, detecting whether a content of the file matches with a type of content identified by the name extension of the file, using machine learning based on user feedback to determine whether the file is impacted with ransomware. Once the server-based ransomware detection application has confirmed a file is impacted by ransomware, the cloud storage server notifies the client-based ransomware detection application and shares the information about the ransomware with the client-based ransomware detection application. The client-based ransomware detection application may pause a file syncing operation between the client and the server until a remediation of the ransomware is received from the server-based ransomware detection application.
- In another example embodiment, the server-based ransomware detection application receives, from a client-based ransomware detection application, a notification of a file impacted by ransomware at the client device. The client device notifies the server-based ransomware detection application and shares the information about the ransomware with the server-based ransomware detection application. The server-based ransomware detection application may pause an operation of the server-based ransomware detection application until a remediation of the ransomware is received from the client-based ransomware detection application.
- As a result, one or more of the methodologies described herein facilitate solving the technical problem of lack of effective coordination and communication between a client-based ransomware detection application and a server-based ransomware detection application. As such, one or more of the methodologies described herein may obviate a need for certain efforts or computing resources that otherwise would be involved in generating duplicate notifications (e.g., one notification from the client device and another notification from the storage server) and duplicate remediation options (e.g., options from the client device, options from the storage server). As a result, resources used by one or more machines, databases, or devices (e.g., within the environment) may be reduced. Examples of such computing resources include processor cycles, network traffic, memory usage, data storage capacity, power consumption, network bandwidth, and cooling capacity.
-
FIG. 1 is a block diagram illustrating anexample environment 100 for detecting ransomware-impacted files in accordance with an example embodiment. In example embodiments, astorage system 106 stores copies of files from theclient device 102. Thestorage system 106 will be discussed in more detail in connection withFIG. 2 below. - The
storage system 106 is coupled, via anetwork 104, to one or more client devices (e.g., client device 102). One or more portions of thenetwork 104 may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a cellular telephone network, a wireless network, a Wi-Fi network, a WiMax network, a satellite network, a cable network, a broadcast network, another type of network, or a combination of two or more such networks. Any one or more portions of thenetwork 104 may communicate information via a transmission or signal medium. As used herein, “transmission medium” refers to any intangible (e.g., transitory) medium that is capable of communicating (e.g., transmitting) instructions for execution by a machine (e.g., by one or more processors of such a machine), and includes digital or analog communication signals or other intangible media to facilitate communication of such software. - The
client device 102 includes aclient storage application 108, a clientransomware detection application 110, and a client-sideransomware coordinating module 112. Theclient storage application 108 is configured to communicate files (e.g., send and receive files) or modifications in the files to be stored at thestorage system 106. For example, theclient storage application 108 syncs local files stored in a preset directory or folder at theclient device 102 with a corresponding direction or folder at thestorage system 106. Therefore, changes made to a local file in the preset folder of theclient device 102 are propagated to a corresponding remote file (a copy of the local file) in thestorage system 106. In one example, theclient storage application 108 registers theclient device 102 with thestorage system 106 and communicates copies of the user-selected local files from theclient device 102 to thestorage system 106. In another example, changes made to a remote file at thestorage system 106 are propagated back to a corresponding local file in theclient device 102. - In one example embodiment, the client
ransomware detection application 110 detects whether a file locally stored at theclient device 102 is impacted (or also referred to as infected) by ransomware (or malware). The clientransomware detection application 110 generates a notification to the client-sideransomware coordinating module 112 and to theclient storage application 108. Theclient storage application 108 pauses a syncing between theclient storage application 108 and thestorage system 106 in response to the notification. The client-sideransomware coordinating module 112 pauses ransomware notifications from thestorage system 106 in response to the detection of a ransomware-impacted local file at theclient device 102. The client-sideransomware coordinating module 112 shares information of the ransomware detection to thestorage system 106. Once the clientransomware detection application 110 remedies the ransomware-impacted local file, the client-sideransomware coordinating module 112 shares the remedy (e.g., deleting the impacted file or request for a previous version from the storage system) and resumes ransomware notifications from thestorage system 106. - In another example embodiment, the client-side
ransomware coordinating module 112 receives a detection notification from thestorage system 106 that indicates a ransomware-impacted file detected at thestorage system 106. Theclient storage application 108 pauses a syncing between theclient storage application 108 and thestorage system 106 in response to the detection notification from thestorage system 106. Thestorage system 106 shares information of the ransomware detection to the clientransomware detection application 110 via the client-sideransomware coordinating module 112. Once thestorage system 106 remedies the ransomware-impacted file at thestorage system 106, thestorage system 106 shares the remedy (e.g., deleting the impacted file or restoring to a previous version from the storage system 106) with the client-sideransomware coordinating module 112. The clientransomware detection application 110 resumes generating ransomware notifications by clientransomware detection application 110. - The
client device 102 comprises, but is not limited to, a smartphone, tablet, laptop, multi-processor system, microprocessor-based or programmable consumer electronics, game console, set-top box, or any other device that a user utilizes to communicate over thenetwork 104. In example embodiments, theclient device 102 comprises a display module (not shown) to display information (e.g., in the form of specially configured user interfaces). In some embodiments, theclient device 102 may comprise one or more of a touch screen, camera, keyboard, microphone, and. Global Positioning System (GPS) device. - Any of the systems or machines (e.g., databases, devices, servers) shown in, or associated with,
FIG. 1 may be, include, or otherwise be implemented in a special-purpose (e.g., specialized or otherwise non-generic) computer that has been modified (e.g., configured or programmed by software, such as one or more software modules of an application, operating system, firmware, middleware, or other program) to perform one or more of the functions described herein for that system or machine. For example, a special-purpose computer system able to implement any one or more of the methodologies described herein is discussed below with respect toFIG. 11 ., and such a special-purpose computer may accordingly be a means for performing any one or more of the methodologies discussed herein. Within the technical field of such special-purpose computers, a special-purpose computer that has been modified by the structures discussed herein to perform the functions discussed herein is technically improved compared to other special-purpose computers that lack the structures discussed herein or are otherwise unable to perform the functions discussed herein. Accordingly, a special-purpose machine configured according to the systems and methods discussed herein provides an improvement to the technology of similar special-purpose machines. - Moreover, any two or more of the systems or machines illustrated in
FIG. 1 may be combined into a single system or machine, and the functions described herein for any single system or machine may be subdivided among multiple systems or machines. Additionally, any number and types ofclient device 102 may be embodied within theenvironment 100. Furthermore, some components or functions of theenvironment 100 may be combined or located elsewhere in theenvironment 100. For example, some of the functions of theclient storage application 108 may be embodied at thestorage system 106. -
FIG. 2 is a block diagram illustrating components within a storage system in accordance with an example embodiment. In example embodiments, thestorage system 106 performs operations to detect and identify ransomware-impacted files stored in a cloud storage system (or at a client device) and coordinate the notification and remediation in the cloud storage system and the client device between the server-based ransomware detection application and the client-based ransomware detection application. To enable these operations, thestorage system 106 comprises a server-sideransomware coordinating module 201, aserver storage application 202, adata storage 206, aransomware analysis engine 210, anotification engine 214, and acommunication module 216, all of which are configured to communicate with each other (e.g., over a bus, shared memory, or a switch) in accordance with an example embodiment. - The
server storage application 202 is configured to interface and communicate with theclient storage application 108. Theserver storage application 202 receives a copy of a new or modified file from theclient storage application 108. Theserver storage application 202 may also receive a request from theclient storage application 108 to add the new file in thedata storage 206 or to replace an existing corresponding file with the modified file in thedata storage 206. - In other example embodiments, the
server storage application 202 receives and sends copies of files between thestorage system 106 and theclient device 102. In one example, theserver storage application 202 is configured with theclient storage application 108 to store one or more versions of copies of files received from theclient storage application 108. For example, theserver storage application 202 registers theclient storage application 108 and forms a folder or a directory (that corresponds to a user-selected folder or directory at the client device 102) at thestorage system 106. Therefore, any changes to a file in the folder at theclient device 102 is replicated to the corresponding file in the corresponding folder at thestorage system 106. - In another example embodiment, the
server storage application 202 identifies historical changes to a file stored at thestorage system 106 based on the different versions of a file received from theclient storage application 108. Theserver storage application 202 stores file changes (e.g., a new file or a modified file) 204 and optionally a malware detection time associated with the file in thedata storage 206. - The
data storage 206 is configured to store the files (e.g., new or modified files 204) received from theserver storage application 202. The files may be copies of files stored at theclient device 102. In one example, thedata storage 206 is configured to store several versions of the files based on the date and time from the different versions of the files. The files may include attributes such as file name, file extension, and size. Those of ordinary skills in the art will recognize that the files can include other, different types of attributes. - In example embodiments, the
data storage 206 is configured to store files and user information for individual users in user-specific data stores or databases (hereinafter collectively referred to as a “user data structure”). For instance, each user data structure may correspond to a folder and/or a directory of theclient device 102 of a user. While thedata storage 206 is shown to be a part of thestorage system 106, in some embodiments, thedata storage 206 may be located elsewhere in theenvironment 100 and be communicatively coupled to thestorage system 106. Additionally, any number of data storages 206 may be used to store the user data structures. - In example embodiments, the
data storage 206 provides file features 208 of the new or modified file (received from the server storage application 202) to theransomware analysis engine 210. In another example embodiment, thedata storage 206 provides stored copies of the new or modifiedfile 204 to theransomware analysis engine 210. - The
ransomware analysis engine 210 performs a series of tests on the new or modified file 204 (or the file features 208 of the new or modified file 204) to detect whether the new or modifiedfile 204 is impacted with ransomware. Theransomware analysis engine 210 will be discussed in more detail in connection withFIG. 3 below. Once theransomware analysis engine 210 determines that the new or modifiedfile 204 is impacted with ransomware, theransomware analysis engine 210 provides an identification of the suspicious file 212 (e.g., new or modified file 204) to thenotification engine 214. - The
notification engine 214 generates anotification 215 that requests a user of theclient storage application 108 to confirm and validate whether the suspicious file 212 is impacted with ransomware. Thenotification 215 includes, for example, an identification of the suspicious file 212, a time of the suspected infection, a version of the suspicious file 212, an identification of who last modified the suspicious file 212, an identification of the name of the suspected ransomware (or malware), and an identification of suspicious changes in the name or content of the suspicious file 212. Thenotification engine 214 provides thenotification 215 to thecommunication module 216. - The
notification engine 214 also provides a ransomware detection notification to the server-sideransomware coordinating module 201 to indicate that theransomware analysis engine 210 has detected a ransomware-impacted file (e.g., suspicious file 212) stored in a data structure (associated with the client device 102) of thedata storage 206 - The server-side
ransomware coordinating module 201 shares the ransomware information (e.g., name, features, and properties of the ransomware and the ransomware-impacted file) about the ransomware-impacted file with the client-sideransomware coordinating module 112. The server-sideransomware coordinating module 201 shares information about the detection event 203 (e.g., ransomware information) with theserver storage application 202. Theserver storage application 202 retrieves aremediated file 205 from thedata storage 206 based on thedetection event 203. Theserver storage application 202 also stops communicating with theclient storage application 108 and stops syncing files with thedata storage 206 until the server-sideransomware coordinating module 201 indicates that the suspicious file 212 has been remediated. - The client-side
ransomware coordinating module 112 receives a ransomware detection notification from the server-sideransomware coordinating module 201 and pauses a syncing between theclient storage application 108 and theserver storage application 202 until the client-sideransomware coordinating module 112 receives a remediation notification from the server-sideransomware coordinating module 201. - In another example embodiment, the client
ransomware detection application 110 detects a local ransomware-impacted file at theclient device 102 and generates a local ransomware detection notification to the client-sideransomware coordinating module 112. The client-sideransomware coordinating module 112 shares the ransomware information (e.g., name, features, and properties of the ransomware and the ransomware-impacted file) about the local ransomware-impacted file with the server-sideransomware coordinating module 201. - The server-side
ransomware coordinating module 201 shares information about the local ransomware-impacted file (e.g., impacted file 209) to the ransomware analysis engine 210 (so that theransomware analysis engine 210 can learn from the shared information). Theclient storage application 108 retrieves aremediated file 205 from thedata storage 206. Theserver storage application 202 also stops communicating with theclient storage application 108 and stops syncing files with thedata storage 206 until the client-sideransomware coordinating module 112 indicates that the local ransomware-impacted file has been remediated. - The
communication module 216 is configured to exchange communications with theclient device 102. For example, thecommunication module 216 transmits thenotification 215 to theclient storage application 108. Thecommunication module 216 receives aransomware confirmation 220 from theclient storage application 108 in response to sending out thenotification 215. Theransomware confirmation 220 indicates a user (of the client device 102) confirmation of whether the suspicious file 212 is indeed impacted with ransomware. Thecommunication module 216 forwards the user feedback (e.g., ransomware confirmation 220) to theransomware analysis engine 210. - In other example embodiments, the
communication module 216 includes a user interface module (not shown) that is configured to cause presentation of specially configured user interfaces on theclient device 102 that include a visual indication of the ransomware-impacted file and other pertinent information (e.g., time of infection, last modified author, size change). The user interface module generates and transmits instructions to theclient device 102 to render and display the user interfaces. - Any one or more of the components (e.g., modules, engines) described herein may be implemented using hardware alone (e.g., one or more processors of a machine) or a combination of hardware and software. For example, any component described herein may physically include an arrangement of one or more of the processors or configure a processor (e.g., among one or more processors of a machine) to perform the operations described herein for that module. Accordingly, different components described herein may include and configure different arrangements of the processors at different points in time or a single arrangement of the processors at different points in time. Each component (e.g., module) described herein is an example of a means for performing the operations described herein for that component. Moreover, any two or more of these components may be combined into a single component, and the functions described herein for a single component may be subdivided among multiple components. Furthermore, according to various example embodiments, components described herein as being implemented within a single machine, database, or device may be distributed across multiple machines, databases, or devices. The
storage system 106 may comprise other components not pertinent to example embodiments that are not shown or discussed. Further still, one or more of the components of thestorage system 106 may be located at one or more of theclient devices 102. -
FIG. 3 is a block diagram illustrating components within a ransomware analysis engine in accordance with an example embodiment. Theransomware analysis engine 210 performs operations to detect and identify ransomware-impacted files stored in thedata storage 206 and to improve the detection of ransomware using feedback validation from users of thedata storage 206. To enable these operations, theransomware analysis engine 210 comprises afeature extraction module 302, anencryption analysis module 304, a file naminganalysis module 306, acontent analysis module 308, auser feedback module 312, a learning engine 314, and an impacted file identification module 310, all of which are configured to communicate with each other (e.g., over a bus, shared memory, or a switch) in accordance with an example embodiment. - The
features extraction module 302 extracts features from a file stored at thedata storage 206. In one example, thefeatures extraction module 302 extracts features from a last modified file or a new file received from theclient storage application 108 via theserver storage application 202. Examples of features (also referred to as attributes or properties in the present document) include, but are not limited to, attributes of the files such as file encryption status, extension name, date of creation, date of modification, versioning number, author name, type of media, and compression status. - The
encryption analysis module 304 determines the encryption status of the new or modified file based on the extracted features of the file. For example, theencryption analysis module 304 determines that the encryption status of the modified file has change (e.g., from non-encrypted to encrypted: a modified file is now encrypted whereas a previous version of the corresponding file is encrypted). In another example, theencryption analysis module 304 determines that the new file is encrypted. Theencryption analysis module 304 provides the encryption status of the new or modified file to the impacted file identification module 310. - The file naming
analysis module 306 determines a name of the new or modified file and the name of the extension of the new or modified file based on the extracted features of the new or modified file. For example, the file naminganalysis module 306 compares the name of the new or modified file with the name of known ransomware file names. In another example embodiment, the file naminganalysis module 306 determines whether there is an increase in file renames in the folder of thedata storage 206 corresponding to the folder in theclient device 102. In other example embodiments, the file naminganalysis module 306 monitors for text strings associated with known ransomware. The file naminganalysis module 306 provides the ransomware file name matching results of the new or modified file to the impacted file identification module 310. - The
content analysis module 308 determines whether a file content does not match its file type (based on its extension name, header, or mime type). For example, thecontent analysis module 308 determines that the content in a .jpg file is not an image. Thecontent analysis module 308 provides the result of its content analysis of the new or modified file to impacted file identification module 310. - The
user feedback module 312 is configured to receive feedback (e.g., confirmation and validation of the presence of ransomware in a new or modified file) from theclient storage application 108 of theclient device 102. For example, theuser feedback module 312 receives a ransomware confirmation from theclient storage application 108 based on a user feedback at theclient storage application 108. The user feedback indicates whether the new or modified file is indeed impacted with ransomware. Theuser feedback module 312 provides the user feedback (e.g., ransomware confirmation 220) to the learning engine 314. - The learning engine 314 (e.g., a machine learning algorithm) manages a learning model (e.g., supervised or unsupervised) for identifying ransomware files. The learning engine 314 accesses file information (associated with the client device 102) from the
data storage 206. The file information includes attributes, extensions, features (including user feedback) of old, new, and modified files associated with theclient device 102. Using the file information, the learning engine 314 can identify trends or patterns. For example, the learning engine 314 learns, based on file extensions, that the new file is actually not related to a ransomware, as confirmed by the user of theclient device 102, because the user has named the file to a name similar to a known ransomware. In another example, the learning engine 314 learns that a file that is encrypted and has a file extension name with a particular naming pattern (e.g., previously associated with existing ransomware) is likely a ransomware. - Based on the learning model, the learning engine 314 can, in one embodiment, suggest to the impacted file identification module 310 that the new or modified file is likely or is not likely a ransomware. In a further embodiment, the learning engine 314 updates a list of files that have been confirmed or validated as safe (non-impacted by ransomware) from the
client device 102. All of the trends or patterns identified by the learning engine 314 may be stored in thedata storage 206 and provided to the impacted file identification module 310 for further processing. - In other example embodiments, the learning engine 314 determines the number of files (in the account of the
client device 102 in the data storage 206) being updated, deleted, created, encrypted, and with suspicious extensions, and generates a determination or confidence level that one of the files (or the user account) is impacted by a malware or ransomware attack. - The impacted file identification module 310 receives the results from the
encryption analysis module 304, the file naminganalysis module 306, thecontent analysis module 308, and the learning engine 314 to assess and determine whether the new or modified file is likely impacted by a ransomware. In example embodiments, the impacted file identification module 310 provides a range of confidence that the new or modified file is likely impacted by a ransomware. For example, the impacted file identification module 310 determines that a modified file is likely impacted by a ransomware based on a determination that the modified file is now encrypted (and an immediate previous version of the modified file was unencrypted), that the extension name of the file matches portions of text strings associated with known ransomware, and based on previous user feedback (from theclient device 102 or from other users or client devices with files sharing the same attributes or features). -
FIG. 4 is a block diagram illustrating an interaction method between components of the client device and the storage system in accordance with an example embodiment. Operations in theinteraction method 400 may be performed between the clientransomware detection application 110, the client-sideransomware coordinating module 112, and the server-sideransomware coordinating module 201 described above with respect toFIGS. 1 and 2 . Accordingly, theinteraction method 400 is described by way of example with reference to thestorage system 106 and theclient device 102. However, it shall be appreciated that at least some of the operations of themethod 400 may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may be performed in a third-party device. - In
operation 402, the clientransomware detection application 110 detects a locally impacted file (e.g., suspicious file possibly impacted by ransomware). The clientransomware detection application 110 includes an antimalware detection application such as an antivirus application. - In
operation 404, the clientransomware detection application 110 provides the detection event information (e.g., information about the locally impacted file) and remediation flag (e.g., flag indicates that theclient device 102 has successfully cleaned (or failed to clean) the impacted file, whether the synced file at thestorage system 106 is also impacted) to the client-sideransomware coordinating module 112. - In
operation 406, the client-sideransomware coordinating module 112 provides the detection event information and the remediation flag to the server-sideransomware coordinating module 201. In another embodiment, the client-sideransomware coordinating module 112 requests that theclient storage application 108 pauses or stops syncing with theserver storage application 202 until remediation of the impacted file. - In operation 408, the server-side
ransomware coordinating module 201 snoozes its server-side ransomware detection and notification and pauses syncing with theclient device 102 after receiving the detection event. - At
operation 410, the clientransomware detection application 110 remediates the impacted file. Atoperation 412, the clientransomware detection application 110 confirms the remediation and notifies the client-sideransomware coordinating module 112 of the remediation time (e.g., time when the impacted file has been remediated). Atoperation 414, the client-sideransomware coordinating module 112 notifies the server-sideransomware coordinating module 201 of the remediation. In response, at operation 416, the server-sideransomware coordinating module 201 resumes the server-side ransomware detection and/or notification and resumes syncing with theclient device 102 after receiving confirmation of the remediation and the remediation time. - In another example embodiment, at
operation 418, the clientransomware detection application 110 determines that it cannot locally remediate the impacted file and notifies the client-sideransomware coordinating module 112 of the non-remediable impacted file. Atoperation 422, the client-sideransomware coordinating module 112 determines a remediation time (e.g., time at which the file was likely not impacted by the ransomware) and provides the remediation time to the server-sideransomware coordinating module 201. Atoperation 424, the server-sideransomware coordinating module 201 retrieves the non-impacted version of the file based on the remediation/detection time. Atoperation 426, the server-sideransomware coordinating module 201 provides a file restore link that provides access to the non-impacted version of the file to the client-sideransomware coordinating module 112. Atoperation 428, the client-sideransomware coordinating module 112 provides the file restore link to the clientransomware detection application 110. Atoperation 430, the clientransomware detection application 110 restores the impacted file to the non-impacted version of the file by using the file restore link to access the non-impacted version of the file from thedata storage 206. -
FIG. 5 is a block diagram illustrating interactions between components of the client device and the storage system in accordance with another example embodiment. Operations in theinteraction method 500 may be performed between the clientransomware detection application 110, the client-sideransomware coordinating module 112, and the server-sideransomware coordinating module 201 described above with respect toFIGS. 1 and 2 . Accordingly, theinteraction method 500 is described by way of example with reference to thestorage system 106 and theclient device 102. However, it shall be appreciated that at least sonic of the operations of themethod 500 may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may be performed in a third-party device. - In
operation 502, the server-sideransomware coordinating module 201 detects an impacted file (e.g., suspicious file possibly impacted by ransomware) using theransomware analysis engine 210. - In
operation 504, the server-sideransomware coordinating module 201 provides the detection event information (e.g., information about the locally impacted file) and remediation flag (e.g., flag indicates that thestorage system 106 has successfully cleaned (or failed to clean) the impacted file, whether the synced file at theclient device 102 is also impacted) to the client-sideransomware coordinating module 112. - in
operation 506, the client-sideransomware coordinating module 112 provides the detection event information and the remediation flag to the clientransomware detection application 110. In another embodiment, the client-sideransomware coordinating module 112 requests that theclient storage application 108 pauses or stops syncing with theserver storage application 202 until remediation of the impacted file. - In
operation 508, the clientransomware detection application 110 pauses syncing with thestorage system 106 after receiving the detection event. - At
operation 510, the server-sideransomware coordinating module 201 remediates the impacted file by retrieving a non-impacted file version based on the detection event (e.g., detection time). Atoperation 512, the server-sideransomware coordinating module 201 provides the client-sideransomware coordinating module 112 with a file restore link that provides access to the non-impacted file version. Atoperation 514, the client-sideransomware coordinating module 112 notifies the clientransomware detection application 110 and provides the file restore link. Atoperation 516, the clientransomware detection application 110 generates a server-side ransomware detection notification. Atoperation 518, the clientransomware detection application 110 restores the impacted file using the file restore link. Atoperation 520, the clientransomware detection application 110 resumes the local-side ransomware detection and notification and resumes syncing with thestorage system 106. -
FIG. 6 is a flow diagram of a method for coordinating a ransomware detection at a storage system in accordance with an example embodiment. Operations in themethod 600 may be performed by thestorage system 106, using components (e.g., modules, engines) described above with respect toFIG. 2 . Accordingly, themethod 600 is described by way of example with reference to thestorage system 106. However, it shall be appreciated that at least some of the operations of themethod 600 may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, sonic of the operations may be performed at theclient device 102. - At
operation 602, the server-sideransomware coordinating module 201 receives a detection event from the client-sideransomware coordinating module 112 indicating that a ransomware activity is detected by theclient device 102. - At
operation 604, the server-sideransomware coordinating module 201 pauses a server-side ransomware detection notification to the client device 102 (e.g., pausing an operation of thenotification engine 214 or the communication module 216). - At
operation 606, the server-sideransomware coordinating module 201 receives a remediation notification from the client-sideransomware coordinating module 112 indicating that a ransomware activity at theclient device 102 has been remediated. - At
operation 608, the server-sideransomware coordinating module 201 updates theransomware analysis engine 210 based on the detection event, the remediation notification, and information shared by the client-sideransomware coordinating module 112. - At
operation 610, the server-sideransomware coordinating module 201 resumes server-side ransomware detection notifications to the client device 102 (e.g., resuming an operation of thenotification engine 214 or the communication module 216). -
FIG. 7 is a flow diagram of a method for coordinating a ransomware detection at a storage system in accordance with another example embodiment. Operations in themethod 700 may be performed by thestorage system 106, using components (e.g., modules, engines) described above with respect toFIG. 2 . Accordingly, themethod 700 is described by way of example with reference to thestorage system 106. However, it shall be appreciated that at least some of the operations of themethod 700 may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may be performed at theclient device 102. - At
operation 702, the server-sideransomware coordinating module 201 receives a detection event from the client-sideransomware coordinating module 112 indicating that a ransomware activity is detected by theclient device 102. - At
operation 704, the server-sideransomware coordinating module 201 pauses a server-side ransomware detection notification to the client device 102 (e.g., pausing an operation of thenotification engine 214 or the communication module 216), - At
operation 706, the server-sideransomware coordinating module 201 pauses a syncing operation between theserver storage application 202 and theclient storage application 108. - At
operation 708, the server-sideransomware coordinating module 201 receives a remediation notification from the client-sideransomware coordinating module 112 indicating a non-remediable impacted file at the client device 102 (e.g., non-remediable by the client device 102). - At
operation 710, the server-sideransomware coordinating module 201 updates theransomware analysis engine 210 based on the detection event, the remediation notification, and information shared by the client-sideransomware coordinating module 112. - At
operation 712, the server-sideransomware coordinating module 201 provides access to a non-impacted version of the file based on the detection event and the remediation notification, and information shared by the client-sideransomware coordinating module 112. - At
operation 714, the server-sideransomware coordinating module 201 resumes server-side ransomware detection notifications to the client device 102 (e.g., resuming an operation of thenotification engine 214 or the communication module 216). - At
operation 716, the server-sideransomware coordinating module 201 resumes a syncing operation between theserver storage application 202 and theclient storage application 108. -
FIG. 8 is a flow diagram of a method for coordinating a ransomware detection at a storage system in accordance with an example embodiment. Operations in themethod 800 may be performed by theclient device 102, using components (e.g., modules, engines) described above with respect toFIG. 2 . Accordingly, themethod 800 is described by way of example with reference to theclient device 102. However, it shall be appreciated that at least some of the operations of themethod 800 may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may he performed at thestorage system 106. - At
operation 802, the client-sideransomware coordinating module 112 receives a detection event from the server-sideransomware coordinating module 201 indicating that a ransomware activity is detected by thestorage system 106. - At
operation 804, the client-sideransomware coordinating module 112 pauses a client-side ransomware detection notification from the clientransomware detection application 110. - At
operation 806, the client-sideransomware coordinating module 112 receives a remediation notification from the server-sideransomware coordinating module 201 indicating that a ransomware activity at thestorage system 106 has been remediated. - At
operation 808, the client-sideransomware coordinating module 112 provides the remediation notification to the clientransomware detection application 110. - At
operation 810, the client-sideransomware coordinating module 112 resumes detection notifications from the clientransomware detection application 110. -
FIG. 9 is a flow diagram of a method for determining a ransomware activity in a storage system in accordance with an example embodiment. Operations in themethod 900 may be performed by thestorage system 106, using components (e.g., modules, engines) described above with respect toFIG. 2 . Accordingly, themethod 900 is described by way of example with reference to theransomware analysis engine 210. However, it shall be appreciated that at least some of the operations of themethod 900 may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may be performed at theclient device 102. - In
operation 902, theencryption analysis module 304 identifies an encryption status of the new or modified file. For example, theencryption analysis module 304 determines whether the new or modified file is encrypted (and if so, whether the immediate previous version of the file stored at thedata storage 206 is unencrypted). - In
operation 904, the file naminganalysis module 306 identifies a file name of the new or modified file. - in
operation 906, the file naminganalysis module 306 identifies a file extension name of the new or modified file. - In
operation 908, thecontent analysis module 308 identifies a content type of the new or modified file. For example, thecontent analysis module 308 determines what the content of the new or modified file does not match with the name extension of the new or modified file. - In
operation 910, theuser feedback module 312 identifies previous user feedback (or other users feedback) related to the new or modified file. - In
operation 912, the impacted file identification module 310 determines a ransomware activity of the new or modified file based on the encryption status, the file name, the extension, the content type, and the user's previous feedback. -
FIG. 10 is a flow diagram of a method for determining a ransomware activity in a storage system in accordance with another example embodiment. Operations in themethod 1000 may be performed by thestorage system 106, using components (e.g., modules, engines) described above with respect toFIG. 2 . Accordingly, themethod 1000 is described by way of example with reference to theransomware analysis engine 210. However, it shall be appreciated that at least some of the operations of themethod 1000 may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may be performed at theclient device 102. - In
operation 1002, theuser feedback module 312 receives previous feedback (from the user or other users) related to the new or modified file stored at thestorage system 106. - In
operation 1004, the learning engine 314 trains a ransomware detection model for the new or modified file based on the user's feedback. - In
operation 1006, thefeature extraction module 302 determines features of the new or modified file. Examples of features include an encryption status, a file or extension naming pattern, a content analysis matching result, and user feedback related to files similar to the new or modified file. - In
operation 1008, the impacted file identification module 310 detects a ransomware activity (e.g., ransomware) based on the features of the new or modified file as previously determined inoperation 1006 and based on the ransomware detection model as previously determined inoperation 1004. - In
operation 1010, thenotification engine 214 generates a notification that identifies the new or modified file (based on the file identification from operation 1008) as potential ransomware to theclient device 102. Thecommunication module 216 sends the notification to theclient device 102. - In
operation 1012, theransomware analysis engine 210 receives a user confirmation of the ransomware activity of the modified file from theclient device 102 via thecommunication module 216. Theransomware analysis engine 210 provides the feedback (e.g., user confirmation) to the learning 314 (in operation 1004). -
FIG. 11 is a block diagram illustrating components of amachine 1100, according to some example embodiments, able to readinstructions 1124 from a machine-readable medium 1122 and perform any one or more of the methodologies discussed herein, in whole or in part. Specifically,FIG. 11 shows themachine 1100 in the example form of a computer device (e.g., a computer) within which the instructions 1124 (e.g., software, a program, an application, an applet, an app, or other executable code) for causing themachine 1100 to perform any one or more of the methodologies discussed herein may be executed, in whole or in part. - For example, the
instructions 1124 may cause themachine 1100 to execute the flows and flow diagrams ofFIGS. 6-10 . Theinstructions 1124 can transform the general,non-programmed machine 1100 into a particular machine (e.g., specially configured machine) programmed to carry out the described and illustrated functions in the manner described. - In alternative embodiments, the
machine 1100 operates as a standalone device or may be connected (e.g., networked) to other machines. Themachine 1100 may be a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (e.g. STB), a personal digital assistant (PDA), a cellular telephone, a smartphone, a web appliance, a network router, a network switch, a network bridge, a power adapter, or anymachine 1100 capable of executing theinstructions 1124, sequentially or otherwise, that specify actions to be taken by thatmachine 1100. Further, while only asingle machine 1100 is illustrated, the term “machine” shall also be taken to include a collection of machines that individually or jointly execute theinstructions 1124 to perform any one or more of the methodologies discussed herein. - The
machine 1100 includes a processor 1102 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio-frequency integrated circuit (RFIC), or any suitable combination thereof), amain memory 1104, and astatic memory 1106, which are configured to communicate with each other via abus 1108. Theprocessor 1102 may contain microcircuits that are configurable, temporarily or permanently, by some or all of theinstructions 1124 such that theprocessor 1102 is configurable to perform any one or more of the methodologies described herein, in whole or in part. For example, a set of one or more microcircuits of theprocessor 1102 may be configurable to execute one or more modules (e.g., software modules) described herein. - The
machine 1100 may further include a display device 1110 (e.g., a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, a cathode ray tube (CRT), or any other display capable of displaying graphics or video). Themachine 1100 may also include an alphanumeric input device 1112 (e.g., a keyboard or keypad.), a UI navigation device 1114 (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, an eye tracking device, or other pointing instrument), astorage unit 1116, a signal generation device 1118 (e.g., a sound card, an amplifier, a speaker, a headphone jack, or any suitable combination thereof), and anetwork interface device 1120. - The
storage unit 1116 includes the machine-readable medium 1122 on which are stored theinstructions 1124 embodying any one or more of the methodologies or functions described herein. Theinstructions 1124 may also reside, completely or at least partially, within themain memory 1104, within the processor 1102 (e.g., within the processor's cache memory), or both, before or during execution thereof by themachine 1100. Accordingly, themain memory 1104 and theprocessor 1102 may be considered machine-readable media 1122 (e.g., tangible and non-transitory machine-readable media). - In some example embodiments, the
machine 1100 may be a portable computing device and have one or more additional input components (e.g., sensors or gauges). Examples of such input components include an image input component (e.g., one or more cameras), an audio input component (e.g., a microphone), a direction input component (e.g., a compass), a location input component (e.g., a global positioning system (GPS) receiver), an orientation component (e.g., a gyroscope), a motion detection component (e.g., one or more accelerometers), an altitude detection component (e.g., an altimeter), and a gas detection component (e.g., a gas sensor). Inputs harvested by any one or more of these input components may be accessible and available for use by any of the modules described herein. - The various memories (i.e., 1104, 1106, and/or memory of the processor(s) 1102) and/or
storage unit 1116 may store one or more sets of instructions and data structures (e.g., software) 1124 embodying or utilized by any one or more of the methodologies or functions described herein. These instructions, when executed by processor(s) 1102 cause various operations to implement the disclosed embodiments. - As used herein, the terms “machine-storage medium,” “device-storage medium,” “computer-storage medium” (referred to collectively as “machine-
readable medium 1122”) mean the same thing and may be used interchangeably in this disclosure. The terms refer to a single or multiple storage devices and/or media (e.g., a centralized or distributed database, and/or associated caches and servers) that store executable instructions and/or data, as well as cloud-based storage systems or storage networks that include multiple storage apparatus or devices. The terms shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media, including memory internal or external to processors. Specific examples of machine-storage media, computer-storage media, and/or machine-readable media 1122 include non-volatile memory, including by way of example semiconductor memory devices, e.g., erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FPGA, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms machine-storage media, computer-storage media, and machine-readable media 1122 specifically exclude carrier waves, modulated data signals, and other such media, at least some of which are covered wider the term “signal medium” discussed below. - The term “signal medium” or “transmission medium” shall be taken to include any form of modulated data signal, carrier wave, and so forth. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a matter as to encode information in the signal.
- The terms “machine-readable medium,” “computer-readable medium” and “device-readable medium” mean the same thing and may be used interchangeably in this disclosure. The terms are defined to include both machine-storage media and signal media. Thus, the terms include both storage devices/media and carrier waves/modulated data signals.
- The
instructions 1124 may further be transmitted or received over acommunications network 1126 using a transmission medium via thenetwork interface device 1120 and utilizing any one of a number of well-known transfer protocols (e.g., HTTP). Examples ofcommunications networks 1126 include a local area network (LAN), a wide area network (WAN), the Internet, mobile telephone networks, plain old telephone service (POTS) networks, and wireless data networks Wi-Fi, LTE, and WiMAX networks). The term “transmission medium” or “signal medium” shall be taken to include any intangible medium that is capable of storing, encoding, or carryinginstructions 1124 for execution by themachine 1100, and includes digital or analog communications signals or other intangible medium to facilitate communication of such software. - Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.
- Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms. Modules may constitute either software modules (e.g., code embodied on a machine-
readable medium 1122 or in a signal medium) or hardware modules. A “hardware module” is a tangible unit capable of performing certain operations and may be configured or arranged in a certain physical manner. In various example embodiments, one or more computer systems (e.g., a standalone computer system, a client computer system, or a server computer system) or one or more hardware modules of a computer system (e.g., aprocessor 1102 or a group of processors 1102) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein. - In some embodiments, a hardware module may be implemented mechanically, electronically, or any suitable combination thereof. For example, a hardware module may include dedicated circuitry or logic that is permanently configured to perform certain operations. For example, a hardware module may be a special-purpose processor, such as a field-programmable gate array (FPGA) or an ASIC. A hardware module may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, a hardware module may include software encompassed within a general-purpose processor or other programmable processor. It will be appreciated, that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
- Accordingly, the phrase “hardware module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. As used herein, “hardware-implemented module” refers to a hardware module. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where a hardware module comprises a general-purpose processor configured by software to become a special-purpose processor, the general-purpose processor may be configured as respectively different special-purpose processors (e.g comprising different hardware modules) at different times. Software may accordingly configure a processor, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.
- The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions described herein. As used herein, “processor-implemented module” refers to a hardware module implemented using one or more processors.
- Similarly, the methods described herein may be at least partially processor-implemented, a processor being an example of hardware. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented modules. Moreover, the one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an application program interface (API)).
- The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the one or more processors or processor-implemented modules may be located in a single geographic location within a home environment, an office environment, or a server farm). In other example embodiments, the one or more processors or processor-implemented modules may be distributed across a number of geographic locations.
- Some portions of this specification may be presented in terms of algorithms or symbolic representations of operations on data stored as bits or binary digital signals within a machine memory (e.g., a computer memory). These algorithms or symbolic representations are examples of techniques used by those of ordinary skill in the data processing arts to convey the substance of their work to others skilled in the art. As used herein, an “algorithm” is a self-consistent sequence of operations or similar processing leading to a desired result. In this context, algorithms and operations involve physical manipulation of physical quantities. Typically, but not necessarily, such quantities may take the form of electrical, magnetic, or optical signals capable of being stored, accessed, transferred, combined, compared, or otherwise manipulated by a machine. It is convenient at times, principally for reasons of common usage, to refer to such signals using words such as “data,” “content,” “bits,” “values,” “elements,” “symbols,” “characters,” “terms,” “numbers,” “numerals,” or the like. These words, however, are merely convenient labels and are to be associated with appropriate physical quantities.
- Unless specifically stated otherwise, discussions herein using words such as “processing,” “computing,” “calculating,” “determining,” “presenting,” “displaying,” or the like may refer to actions or processes of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or any suitable combination thereof), registers, or other machine components that receive, store, transmit, or display information. Furthermore, unless specifically stated otherwise, the terms “a” or “an” are herein used, as is common in patent documents, to include one or more than one instance. Finally, as used herein, the conjunction “or” refers to a non-exclusive “or,” unless specifically stated otherwise.
- Example 1 is a system for detecting ransomware in a storage of a server. The system includes one or more hardware processors; and a memory storing instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations comprising: receiving, at a cloud storage server, a detection notification from a client device, the cloud storage server configured to store files received from the client device, the detection notification indicating a ransomware activity detected by the client device; receiving, at the cloud storage server, a remediation notification from the client device, the remediation notification indicating that the ransomware activity has been remediated by the client device; and updating an operation of the cloud storage server based on the detection notification and the remediation notification.
- In example 2, the subject matter of example 1 can optionally include wherein the detection notification is from a client-based cloud storage application operating at the client device or a client-based ransomware detection application operating at the client device, the detection notification indicating the ransomware activity detected by the client-based ransomware detection application.
- In example 3, the subject matter of example 1 can optionally include wherein the remediation notification is from the client-based cloud storage application operating at the client device or the client-based ransomware detection application operating at the client device, the remediation notification indicating that the ransomware activity has been remediated by the client-based ransomware detection application.
- In example 4, the subject matter of example 1 can optionally include wherein updating the operation of the cloud storage server comprises: updating an operation of a server-based ransomware detection application at the cloud storage server based on the detection notification and the remediation notification.
- In example 5, the subject matter of example 4 can optionally include wherein updating the operation of the server-based ransomware detection comprises: pausing a syncing operation between a client-based cloud storage application at the client device and the cloud storage server in response to receiving the detection notification at the cloud storage server; and resuming the syncing operation between the client-based cloud storage application and the cloud storage server in response to receiving the remediation notification at the cloud storage server.
- In example 6, the subject matter of example 4 can optionally include wherein updating the operation of the server-based ransomware detection comprises: performing a syncing operation between a client-based cloud storage application at the client device and the cloud storage server in response to receiving the detection notification at the cloud storage server; and receiving one or more remediated files from a client-based ransomware detection application or the client-based cloud storage application in response to receiving the detection notification at the cloud storage server.
- In example 7, the subject matter of example 1 can optionally include wherein the detection notification comprises an identification of one or more files compromised by the ransomware activity and a timestamp of a detection of the ransomware activity by a client-based ransomware detection application, wherein the remediation notification comprises an identification of one or more remediated files and a timestamp of a remediation of the ransomware activity by the client-based ransomware detection application.
- Example 8 is a computer-implemented method, the computer-implemented method comprising: generating, at a cloud storage server, a detection notification to a client device, the cloud storage server configured to store files received from the client device, the detection notification indicating a ransomware activity detected by the cloud storage server; communicating, from the cloud storage server, a remediation notification to the client device, the remediation notification indicating that the ransomware activity has been remediated by the cloud storage server; and updating an operation of the cloud storage server based on the detection notification and the remediation notification.
- In example 9, the subject matter of example 8 can optionally include wherein the detection notification is from a server-side ransomware coordinating module operating at the cloud storage server, the detection notification indicating the ransomware activity detected by a ransomware analysis engine of the cloud storage server.
- In example 10, the subject matter of example 9 can optionally include: pausing a syncing operation between a client-based cloud storage application at the client device and the cloud storage server in response to generating the detection notification at the cloud storage server; and resuming the syncing operation between the client-based cloud storage application and the cloud storage server in response to receiving the remediation notification at the cloud storage server.
- Example 11 is a system. The system comprises: one or more hardware processors; and a memory storing instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations comprising:
- receiving, at a cloud storage server, a detection notification from a client device, the cloud storage server configured to store files received from the client device, the detection notification indicating a ransomware activity detected by the client device;
- receiving, at the cloud storage server, a remediation notification from the client device, the remediation notification indicating that the ransomware activity has been remediated by the client device; and
- updating an operation of the cloud storage server based on the detection notification and the remediation notification.
- In example 12, the subject matter of example 11 can optionally include wherein the detection notification is from a client-based cloud storage application operating at the client device or a client-based ransomware detection application operating at the client device, the detection notification indicating the ransomware activity detected by the client-based ransomware detection application.
- In example 13, the subject matter of example 12 can optionally include wherein the remediation notification is from the client-based cloud storage application operating at the client device or the client-based ransomware detection application operating at the client device, the remediation notification indicating that the ransomware activity has been remediated by the client-based ransomware detection application.
- In example 14, the subject matter of example 11 can optionally include wherein updating the operation of the cloud storage server comprises:
- updating an operation of a server-based ransomware detection application at the cloud storage server based on the detection notification and the remediation notification.
- In example 15, the subject matter of example 14 can optionally include wherein updating the operation of the server-based ransomware detection comprises:
- pausing a syncing operation between a client-based cloud storage application at the client device and the cloud storage server in response to receiving the detection notification at the cloud storage server; and
- resuming the syncing operation between the client-based cloud storage application and the cloud storage server in response to receiving the remediation notification at the cloud storage server.
- In example 16, the subject matter of example 14 can optionally include wherein updating the operation of the server-based ransomware detection comprises:
- performing a syncing operation between a client-based cloud storage application at the client device and the cloud storage server in response to receiving the detection notification at the cloud storage server; and
- receiving one or more remediated files from a client-based ransomware detection application or the client-based cloud storage application in response to receiving the detection notification at the cloud storage server.
- In example 17, the subject matter of example 11 can optionally include wherein the detection notification comprises an identification of one or more files compromised by the ransomware activity and a timestamp of a detection of the ransomware activity by a client-based ransomware detection application, wherein the remediation notification comprises an identification of one or more remediated files and a timestamp of a remediation of the ransomware activity by the client-based ransomware detection application.
- Example 18 is a machine-storage medium storing instructions that, when executed by one or more processors of a machine, cause the one or more processors to perform operations comprising:
- receiving, at a cloud storage server, a detection notification from a client device, the cloud storage server configured to store files received from the client device, the detection notification indicating a ransomware activity detected by the client device;
- receiving, at the cloud storage server, a remediation notification from the client device, the remediation notification indicating that the ransomware activity has been remediated by the client device; and
- updating an operation of the cloud storage server based on the detection notification and the remediation notification.
- In example 19, the subject matter of example 18 can optionally include wherein the detection notification is from a client-based cloud storage application operating at the client device or a client-based ransomware detection application operating at the client device, the detection notification indicating the ransomware activity detected by the client-based ransomware detection application.
- In example 20, the subject matter of example 19 can optionally include wherein the remediation notification is from the client-based cloud storage application operating at the client device or the client-based ransomware detection application operating at the client device, the remediation notification indicating that the ransomware activity has been remediated by the client-based ransomware detection application.
- Although an overview of the present subject matter has been described with reference to specific example embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of embodiments of the present invention. For example, various embodiments or features thereof may be mixed and matched or made optional by a person of ordinary skill in the art. Such embodiments of the present subject matter may be referred to herein, individually or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or present concept if more than one is, in fact, disclosed.
- The embodiments illustrated herein are believed to be described in sufficient detail to enable those skilled in the art to practice the teachings disclosed. Other embodiments may be used and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. The Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
- Moreover, plural instances may be provided for resources, operations, or structures described herein as a single instance. Additionally, boundaries between various resources, operations, modules, engines, and data stores are somewhat arbitrary, and particular operations are illustrated in a context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within a scope of various embodiments of the present invention. In general, structures and functionality presented as separate resources in the example configurations may be implemented as a combined structure or resource. Similarly, structures and functionality presented as a single resource may be implemented as separate resources. These and other variations, modifications, additions, and improvements fall within a scope of embodiments of the present invention as represented by the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Claims (20)
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/941,840 US11200320B2 (en) | 2018-03-30 | 2018-03-30 | Coordinating service ransomware detection with client-side ransomware detection |
| CN201980024487.8A CN112041839B (en) | 2018-03-30 | 2019-03-23 | Method and system for coordinating service ransomware detection with client ransomware detection |
| PCT/US2019/023771 WO2019190935A1 (en) | 2018-03-30 | 2019-03-23 | Coordinating service ransomware detection with client-side ransomware detection |
| EP19716048.4A EP3756122B1 (en) | 2018-03-30 | 2019-03-23 | Coordinating service ransomware detection with client-side ransomware detection |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/941,840 US11200320B2 (en) | 2018-03-30 | 2018-03-30 | Coordinating service ransomware detection with client-side ransomware detection |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20190303575A1 true US20190303575A1 (en) | 2019-10-03 |
| US11200320B2 US11200320B2 (en) | 2021-12-14 |
Family
ID=66049724
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US15/941,840 Active 2039-01-16 US11200320B2 (en) | 2018-03-30 | 2018-03-30 | Coordinating service ransomware detection with client-side ransomware detection |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US11200320B2 (en) |
| EP (1) | EP3756122B1 (en) |
| CN (1) | CN112041839B (en) |
| WO (1) | WO2019190935A1 (en) |
Cited By (38)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10769278B2 (en) | 2018-03-30 | 2020-09-08 | Microsoft Technology Licensing, Llc | Service identification of ransomware impact at account level |
| US10917416B2 (en) | 2018-03-30 | 2021-02-09 | Microsoft Technology Licensing, Llc | Service identification of ransomware impacted files |
| US10963564B2 (en) | 2018-03-30 | 2021-03-30 | Microsoft Technology Licensing, Llc | Selection of restore point based on detection of malware attack |
| US20210216631A1 (en) * | 2019-11-22 | 2021-07-15 | Pure Storage, Inc. | Filesystem Property Based Determination of a Possible Ransomware Attack Against a Storage System |
| US20210216408A1 (en) * | 2019-11-22 | 2021-07-15 | Pure Storage, Inc. | Recovery Point Determination for Data Restoration in a Storage System |
| US20210303687A1 (en) * | 2019-11-22 | 2021-09-30 | Pure Storage, Inc. | Snapshot Delta Metric Based Determination of a Possible Ransomware Attack Against Data Maintained by a Storage System |
| US20210383010A1 (en) * | 2019-11-22 | 2021-12-09 | Pure Storage, Inc. | Measurement Interval Anomaly Detection-based Generation of Snapshots |
| US20220092180A1 (en) * | 2019-11-22 | 2022-03-24 | Pure Storage, Inc. | Host-Driven Threat Detection-Based Protection of Storage Elements within a Storage System |
| US11308207B2 (en) | 2018-03-30 | 2022-04-19 | Microsoft Technology Licensing, Llc | User verification of malware impacted files |
| US11341236B2 (en) | 2019-11-22 | 2022-05-24 | Pure Storage, Inc. | Traffic-based detection of a security threat to a storage system |
| US11500788B2 (en) | 2019-11-22 | 2022-11-15 | Pure Storage, Inc. | Logical address based authorization of operations with respect to a storage system |
| US11520907B1 (en) | 2019-11-22 | 2022-12-06 | Pure Storage, Inc. | Storage system snapshot retention based on encrypted data |
| US11550901B2 (en) | 2019-01-31 | 2023-01-10 | Rubrik, Inc. | Real-time detection of misuse of system credentials |
| US11599629B2 (en) | 2019-01-31 | 2023-03-07 | Rubrik, Inc. | Real-time detection of system threats |
| US11615185B2 (en) | 2019-11-22 | 2023-03-28 | Pure Storage, Inc. | Multi-layer security threat detection for a storage system |
| US11625481B2 (en) | 2019-11-22 | 2023-04-11 | Pure Storage, Inc. | Selective throttling of operations potentially related to a security threat to a storage system |
| US11651075B2 (en) | 2019-11-22 | 2023-05-16 | Pure Storage, Inc. | Extensible attack monitoring by a storage system |
| US11675898B2 (en) | 2019-11-22 | 2023-06-13 | Pure Storage, Inc. | Recovery dataset management for security threat monitoring |
| US11687418B2 (en) | 2019-11-22 | 2023-06-27 | Pure Storage, Inc. | Automatic generation of recovery plans specific to individual storage elements |
| US11709932B2 (en) * | 2019-01-31 | 2023-07-25 | Rubrik, Inc. | Realtime detection of ransomware |
| US11720692B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Hardware token based management of recovery datasets for a storage system |
| US11720714B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Inter-I/O relationship based detection of a security threat to a storage system |
| US11734097B1 (en) | 2018-01-18 | 2023-08-22 | Pure Storage, Inc. | Machine learning-based hardware component monitoring |
| US11755751B2 (en) | 2019-11-22 | 2023-09-12 | Pure Storage, Inc. | Modify access restrictions in response to a possible attack against data stored by a storage system |
| US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
| US12032694B2 (en) | 2022-09-14 | 2024-07-09 | Sotero, Inc. | Autonomous machine learning methods for detecting and thwarting ransomware attacks |
| US12050683B2 (en) | 2019-11-22 | 2024-07-30 | Pure Storage, Inc. | Selective control of a data synchronization setting of a storage system based on a possible ransomware attack against the storage system |
| US12050689B2 (en) | 2019-11-22 | 2024-07-30 | Pure Storage, Inc. | Host anomaly-based generation of snapshots |
| US12061714B2 (en) | 2020-03-04 | 2024-08-13 | Sotero, Inc. | System and methods for data encryption and application-agnostic querying of encrypted data |
| US12067118B2 (en) | 2019-11-22 | 2024-08-20 | Pure Storage, Inc. | Detection of writing to a non-header portion of a file as an indicator of a possible ransomware attack against a storage system |
| US12079333B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Independent security threat detection and remediation by storage systems in a synchronous replication arrangement |
| US12079502B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Storage element attribute-based determination of a data protection policy for use within a storage system |
| US12099619B2 (en) * | 2018-08-27 | 2024-09-24 | Box, Inc. | Ransomware remediation in collaboration environments |
| US12204657B2 (en) | 2019-11-22 | 2025-01-21 | Pure Storage, Inc. | Similar block detection-based detection of a ransomware attack |
| US12223075B2 (en) | 2021-07-09 | 2025-02-11 | Sotero, Inc. | Autonomous machine learning methods for detecting and thwarting malicious database access |
| US12248566B2 (en) | 2019-11-22 | 2025-03-11 | Pure Storage, Inc. | Snapshot deletion pattern-based determination of ransomware attack against data maintained by a storage system |
| US20250272388A1 (en) * | 2024-02-28 | 2025-08-28 | Open Text Sa Ulc | Ransomware protection for archived data |
| US12411962B2 (en) | 2019-11-22 | 2025-09-09 | Pure Storage, Inc. | Managed run-time environment-based detection of a ransomware attack |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11681801B2 (en) * | 2019-01-14 | 2023-06-20 | Dell Products L.P. | Malicious code purification in graphics files |
Citations (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9317686B1 (en) * | 2013-07-16 | 2016-04-19 | Trend Micro Inc. | File backup to combat ransomware |
| US20170020353A1 (en) * | 2014-04-09 | 2017-01-26 | Samsung Electronics Co., Ltd. | Vacuum cleaner and gravity compensation apparatus therefor |
| US20170206353A1 (en) * | 2016-01-19 | 2017-07-20 | Hope Bay Technologies, Inc. | Method and system for preventing malicious alteration of data in computer system |
| US20180007069A1 (en) * | 2016-07-01 | 2018-01-04 | Mcafee, Inc. | Ransomware Protection For Cloud File Storage |
| US20180018458A1 (en) * | 2016-07-14 | 2018-01-18 | Mcafee, Inc. | Mitigation of ransomware |
| US20180027009A1 (en) * | 2016-07-20 | 2018-01-25 | Cisco Technology, Inc. | Automated container security |
| US20180248896A1 (en) * | 2017-02-24 | 2018-08-30 | Zitovault Software, Inc. | System and method to prevent, detect, thwart, and recover automatically from ransomware cyber attacks, using behavioral analysis and machine learning |
| US20190065745A1 (en) * | 2017-08-31 | 2019-02-28 | International Business Machines Corporation | Integrity, theft protection and cyber deception using a deception-based filesystem |
| US20190109870A1 (en) * | 2017-09-14 | 2019-04-11 | Commvault Systems, Inc. | Ransomware detection and intelligent restore |
| US20190138727A1 (en) * | 2017-11-07 | 2019-05-09 | Spinbackup Inc. | Ransomware Protection for Cloud Storage Systems |
| US20190201597A1 (en) * | 2017-12-28 | 2019-07-04 | Ethicon Llc | Dual in-series large and small droplet filters |
| US20190347419A1 (en) * | 2017-05-03 | 2019-11-14 | Tencent Technology (Shenzhen) Company Limited | Virus program cleanup method, storage medium and electronic terminal |
Family Cites Families (60)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8667583B2 (en) | 2008-09-22 | 2014-03-04 | Microsoft Corporation | Collecting and analyzing malware data |
| US8484737B1 (en) | 2008-11-10 | 2013-07-09 | Symantec Corporation | Techniques for processing backup data for identifying and handling content |
| US8813222B1 (en) | 2009-01-21 | 2014-08-19 | Bitdefender IPR Management Ltd. | Collaborative malware scanning |
| US20110078497A1 (en) | 2009-09-30 | 2011-03-31 | Lyne James I G | Automated recovery from a security event |
| US9779267B2 (en) | 2009-10-07 | 2017-10-03 | F-Secure Oyj | Computer security method and apparatus |
| US9405902B1 (en) | 2011-03-15 | 2016-08-02 | Trend Micro Incorporated | Anti-malware service in multi-tenant cloud computing environments |
| US8589363B2 (en) | 2011-07-19 | 2013-11-19 | Exagrid Systems, Inc. | Systems and methods for managing delta version chains |
| US8918878B2 (en) | 2011-09-13 | 2014-12-23 | F-Secure Corporation | Restoration of file damage caused by malware |
| US8973135B2 (en) | 2011-09-29 | 2015-03-03 | Microsoft Technology Licensing, Llc | Selectively scanning objects for infection by malware |
| RU2485577C1 (en) | 2012-05-11 | 2013-06-20 | Закрытое акционерное общество "Лаборатория Касперского" | Method of increasing reliability of detecting malicious software |
| US9411955B2 (en) | 2012-08-09 | 2016-08-09 | Qualcomm Incorporated | Server-side malware detection and classification |
| US9792436B1 (en) | 2013-04-29 | 2017-10-17 | Symantec Corporation | Techniques for remediating an infected file |
| GB2519941B (en) | 2013-09-13 | 2021-08-25 | Elasticsearch Bv | Method and apparatus for detecting irregularities on device |
| US20150172304A1 (en) | 2013-12-16 | 2015-06-18 | Malwarebytes Corporation | Secure backup with anti-malware scan |
| US9158633B2 (en) | 2013-12-24 | 2015-10-13 | International Business Machines Corporation | File corruption recovery in concurrent data protection |
| US10007795B1 (en) | 2014-02-13 | 2018-06-26 | Trend Micro Incorporated | Detection and recovery of documents that have been compromised by malware |
| US9514309B1 (en) | 2014-04-30 | 2016-12-06 | Symantec Corporation | Systems and methods for protecting files from malicious encryption attempts |
| US10114564B2 (en) | 2014-11-04 | 2018-10-30 | Rubrik, Inc. | Management of virtual machine snapshots |
| US9680845B2 (en) | 2015-03-31 | 2017-06-13 | Juniper Neworks, Inc. | Detecting a malicious file infection via sandboxing |
| US10187410B2 (en) | 2015-06-30 | 2019-01-22 | Microsoft Technology Licensing, Llc | Automatically preventing and remediating network abuse |
| JP6742398B2 (en) * | 2015-07-31 | 2020-08-19 | ブルヴェクター, インコーポレーテッドBluvector, Inc. | System and method for retraining field classifiers for malware identification and model heterogeneity |
| WO2017053745A1 (en) | 2015-09-23 | 2017-03-30 | University Of Florida Research Foundation, Incorporated | Malware detection via data transformation monitoring |
| US10140454B1 (en) | 2015-09-29 | 2018-11-27 | Symantec Corporation | Systems and methods for restarting computing devices into security-application-configured safe modes |
| US9838405B1 (en) | 2015-11-20 | 2017-12-05 | Symantec Corporation | Systems and methods for determining types of malware infections on computing devices |
| US9935973B2 (en) | 2015-12-16 | 2018-04-03 | Carbonite, Inc. | Systems and methods for automatic detection of malicious activity via common files |
| US10083299B2 (en) | 2015-12-16 | 2018-09-25 | Carbonite, Inc. | Systems and methods for automatic snapshotting of backups based on malicious modification detection |
| US10789361B2 (en) | 2016-01-24 | 2020-09-29 | Minerva Labs Ltd. | Ransomware attack remediation |
| US10742665B2 (en) * | 2016-02-01 | 2020-08-11 | NortonLifeLock Inc. | Systems and methods for modifying file backups in response to detecting potential ransomware |
| US10339304B2 (en) | 2016-03-15 | 2019-07-02 | Symantec Corporation | Systems and methods for generating tripwire files |
| US10009360B1 (en) | 2016-03-25 | 2018-06-26 | EMC IP Holding Company LLC | Malware detection and data protection integration |
| US9888032B2 (en) | 2016-05-03 | 2018-02-06 | Check Point Software Technologies Ltd. | Method and system for mitigating the effects of ransomware |
| US10303877B2 (en) | 2016-06-21 | 2019-05-28 | Acronis International Gmbh | Methods of preserving and protecting user data from modification or loss due to malware |
| US10417098B2 (en) | 2016-06-28 | 2019-09-17 | International Business Machines Corporation | File level access to block level incremental backups of a virtual disk |
| US10264002B2 (en) | 2016-07-14 | 2019-04-16 | Mitsui Bussan Secure Directions, Inc. | Program, information processing device, and information processing method |
| US10346258B2 (en) | 2016-07-25 | 2019-07-09 | Cisco Technology, Inc. | Intelligent backup system |
| US10715533B2 (en) * | 2016-07-26 | 2020-07-14 | Microsoft Technology Licensing, Llc. | Remediation for ransomware attacks on cloud drive folders |
| US10469525B2 (en) | 2016-08-10 | 2019-11-05 | Netskope, Inc. | Systems and methods of detecting and responding to malware on a file system |
| US10055582B1 (en) | 2016-09-19 | 2018-08-21 | EMC IP Holding Company LLC | Automated detection and remediation of ransomware attacks involving a storage device of a computer network |
| US10409986B1 (en) | 2016-09-26 | 2019-09-10 | EMC IP Holding Company LLC | Ransomware detection in a continuous data protection environment |
| CA3040115C (en) | 2016-10-10 | 2022-05-24 | Stephen Rosa | Method and system for countering ransomware |
| US9756061B1 (en) | 2016-11-18 | 2017-09-05 | Extrahop Networks, Inc. | Detecting attacks using passive network monitoring |
| US11244051B2 (en) | 2016-12-11 | 2022-02-08 | Fortinet, Inc. | System and methods for detection of cryptoware |
| US10318743B2 (en) | 2016-12-28 | 2019-06-11 | Mcafee, Llc | Method for ransomware impact assessment and remediation assisted by data compression |
| US11580221B2 (en) * | 2016-12-29 | 2023-02-14 | Dropbox, Inc. | Malware detection and content item recovery |
| CN106570396A (en) | 2016-12-29 | 2017-04-19 | 哈尔滨安天科技股份有限公司 | System and method for preventing data from being encrypted by ransomware |
| US10169586B2 (en) * | 2016-12-31 | 2019-01-01 | Fortinet, Inc. | Ransomware detection and damage mitigation |
| US10289844B2 (en) | 2017-01-19 | 2019-05-14 | International Business Machines Corporation | Protecting backup files from malware |
| US10516688B2 (en) | 2017-01-23 | 2019-12-24 | Microsoft Technology Licensing, Llc | Ransomware resilient cloud services |
| US9734337B1 (en) | 2017-01-24 | 2017-08-15 | Malwarebytes Inc. | Behavior-based ransomware detection |
| US10607009B2 (en) | 2017-04-05 | 2020-03-31 | Block Ransomware, Llc | System and method for blocking ransomware infections |
| US10713361B2 (en) | 2017-06-12 | 2020-07-14 | Acronis International Gmbh | Anti-malware protection using volume filters |
| US20180375826A1 (en) | 2017-06-23 | 2018-12-27 | Sheng-Hsiung Chang | Active network backup device |
| US10733290B2 (en) | 2017-10-26 | 2020-08-04 | Western Digital Technologies, Inc. | Device-based anti-malware |
| US20190158512A1 (en) | 2017-11-20 | 2019-05-23 | Fortinet, Inc. | Lightweight anti-ransomware system |
| US11086987B2 (en) | 2017-12-29 | 2021-08-10 | Crowdstrike, Inc. | Malware detection in event loops |
| US10839072B2 (en) | 2018-01-22 | 2020-11-17 | International Business Machines Corporation | Ransomware resetter |
| US10917416B2 (en) | 2018-03-30 | 2021-02-09 | Microsoft Technology Licensing, Llc | Service identification of ransomware impacted files |
| US10963564B2 (en) | 2018-03-30 | 2021-03-30 | Microsoft Technology Licensing, Llc | Selection of restore point based on detection of malware attack |
| US11308207B2 (en) | 2018-03-30 | 2022-04-19 | Microsoft Technology Licensing, Llc | User verification of malware impacted files |
| US10769278B2 (en) | 2018-03-30 | 2020-09-08 | Microsoft Technology Licensing, Llc | Service identification of ransomware impact at account level |
-
2018
- 2018-03-30 US US15/941,840 patent/US11200320B2/en active Active
-
2019
- 2019-03-23 WO PCT/US2019/023771 patent/WO2019190935A1/en not_active Ceased
- 2019-03-23 EP EP19716048.4A patent/EP3756122B1/en active Active
- 2019-03-23 CN CN201980024487.8A patent/CN112041839B/en active Active
Patent Citations (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9317686B1 (en) * | 2013-07-16 | 2016-04-19 | Trend Micro Inc. | File backup to combat ransomware |
| US20170020353A1 (en) * | 2014-04-09 | 2017-01-26 | Samsung Electronics Co., Ltd. | Vacuum cleaner and gravity compensation apparatus therefor |
| US20170206353A1 (en) * | 2016-01-19 | 2017-07-20 | Hope Bay Technologies, Inc. | Method and system for preventing malicious alteration of data in computer system |
| US20180007069A1 (en) * | 2016-07-01 | 2018-01-04 | Mcafee, Inc. | Ransomware Protection For Cloud File Storage |
| US20180018458A1 (en) * | 2016-07-14 | 2018-01-18 | Mcafee, Inc. | Mitigation of ransomware |
| US20180027009A1 (en) * | 2016-07-20 | 2018-01-25 | Cisco Technology, Inc. | Automated container security |
| US20180248896A1 (en) * | 2017-02-24 | 2018-08-30 | Zitovault Software, Inc. | System and method to prevent, detect, thwart, and recover automatically from ransomware cyber attacks, using behavioral analysis and machine learning |
| US20190347419A1 (en) * | 2017-05-03 | 2019-11-14 | Tencent Technology (Shenzhen) Company Limited | Virus program cleanup method, storage medium and electronic terminal |
| US20190065745A1 (en) * | 2017-08-31 | 2019-02-28 | International Business Machines Corporation | Integrity, theft protection and cyber deception using a deception-based filesystem |
| US20190109870A1 (en) * | 2017-09-14 | 2019-04-11 | Commvault Systems, Inc. | Ransomware detection and intelligent restore |
| US20190138727A1 (en) * | 2017-11-07 | 2019-05-09 | Spinbackup Inc. | Ransomware Protection for Cloud Storage Systems |
| US20190201597A1 (en) * | 2017-12-28 | 2019-07-04 | Ethicon Llc | Dual in-series large and small droplet filters |
Cited By (48)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11734097B1 (en) | 2018-01-18 | 2023-08-22 | Pure Storage, Inc. | Machine learning-based hardware component monitoring |
| US10917416B2 (en) | 2018-03-30 | 2021-02-09 | Microsoft Technology Licensing, Llc | Service identification of ransomware impacted files |
| US10963564B2 (en) | 2018-03-30 | 2021-03-30 | Microsoft Technology Licensing, Llc | Selection of restore point based on detection of malware attack |
| US10769278B2 (en) | 2018-03-30 | 2020-09-08 | Microsoft Technology Licensing, Llc | Service identification of ransomware impact at account level |
| US11308207B2 (en) | 2018-03-30 | 2022-04-19 | Microsoft Technology Licensing, Llc | User verification of malware impacted files |
| US12099619B2 (en) * | 2018-08-27 | 2024-09-24 | Box, Inc. | Ransomware remediation in collaboration environments |
| US11550901B2 (en) | 2019-01-31 | 2023-01-10 | Rubrik, Inc. | Real-time detection of misuse of system credentials |
| US12174946B2 (en) | 2019-01-31 | 2024-12-24 | Rubrik, Inc. | Real-time detection of system threats |
| US11846980B2 (en) | 2019-01-31 | 2023-12-19 | Rubrik, Inc. | Real-time detection of system threats |
| US11709932B2 (en) * | 2019-01-31 | 2023-07-25 | Rubrik, Inc. | Realtime detection of ransomware |
| US11599629B2 (en) | 2019-01-31 | 2023-03-07 | Rubrik, Inc. | Real-time detection of system threats |
| US11720692B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Hardware token based management of recovery datasets for a storage system |
| US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
| US11500788B2 (en) | 2019-11-22 | 2022-11-15 | Pure Storage, Inc. | Logical address based authorization of operations with respect to a storage system |
| US20220245241A1 (en) * | 2019-11-22 | 2022-08-04 | Pure Storage, Inc. | Compressibility Metric-based Detection of a Ransomware Threat to a Storage System |
| US11615185B2 (en) | 2019-11-22 | 2023-03-28 | Pure Storage, Inc. | Multi-layer security threat detection for a storage system |
| US11625481B2 (en) | 2019-11-22 | 2023-04-11 | Pure Storage, Inc. | Selective throttling of operations potentially related to a security threat to a storage system |
| US11645162B2 (en) * | 2019-11-22 | 2023-05-09 | Pure Storage, Inc. | Recovery point determination for data restoration in a storage system |
| US11651075B2 (en) | 2019-11-22 | 2023-05-16 | Pure Storage, Inc. | Extensible attack monitoring by a storage system |
| US11657155B2 (en) * | 2019-11-22 | 2023-05-23 | Pure Storage, Inc | Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system |
| US11657146B2 (en) * | 2019-11-22 | 2023-05-23 | Pure Storage, Inc. | Compressibility metric-based detection of a ransomware threat to a storage system |
| US11675898B2 (en) | 2019-11-22 | 2023-06-13 | Pure Storage, Inc. | Recovery dataset management for security threat monitoring |
| US11687418B2 (en) | 2019-11-22 | 2023-06-27 | Pure Storage, Inc. | Automatic generation of recovery plans specific to individual storage elements |
| US11341236B2 (en) | 2019-11-22 | 2022-05-24 | Pure Storage, Inc. | Traffic-based detection of a security threat to a storage system |
| US20220092180A1 (en) * | 2019-11-22 | 2022-03-24 | Pure Storage, Inc. | Host-Driven Threat Detection-Based Protection of Storage Elements within a Storage System |
| US11720691B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Encryption indicator-based retention of recovery datasets for a storage system |
| US11720714B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Inter-I/O relationship based detection of a security threat to a storage system |
| US20210383010A1 (en) * | 2019-11-22 | 2021-12-09 | Pure Storage, Inc. | Measurement Interval Anomaly Detection-based Generation of Snapshots |
| US11755751B2 (en) | 2019-11-22 | 2023-09-12 | Pure Storage, Inc. | Modify access restrictions in response to a possible attack against data stored by a storage system |
| US20210303687A1 (en) * | 2019-11-22 | 2021-09-30 | Pure Storage, Inc. | Snapshot Delta Metric Based Determination of a Possible Ransomware Attack Against Data Maintained by a Storage System |
| US11520907B1 (en) | 2019-11-22 | 2022-12-06 | Pure Storage, Inc. | Storage system snapshot retention based on encrypted data |
| US12411962B2 (en) | 2019-11-22 | 2025-09-09 | Pure Storage, Inc. | Managed run-time environment-based detection of a ransomware attack |
| US12050683B2 (en) | 2019-11-22 | 2024-07-30 | Pure Storage, Inc. | Selective control of a data synchronization setting of a storage system based on a possible ransomware attack against the storage system |
| US12050689B2 (en) | 2019-11-22 | 2024-07-30 | Pure Storage, Inc. | Host anomaly-based generation of snapshots |
| US12248566B2 (en) | 2019-11-22 | 2025-03-11 | Pure Storage, Inc. | Snapshot deletion pattern-based determination of ransomware attack against data maintained by a storage system |
| US12067118B2 (en) | 2019-11-22 | 2024-08-20 | Pure Storage, Inc. | Detection of writing to a non-header portion of a file as an indicator of a possible ransomware attack against a storage system |
| US12079333B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Independent security threat detection and remediation by storage systems in a synchronous replication arrangement |
| US12079356B2 (en) * | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Measurement interval anomaly detection-based generation of snapshots |
| US12079502B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Storage element attribute-based determination of a data protection policy for use within a storage system |
| US20210216408A1 (en) * | 2019-11-22 | 2021-07-15 | Pure Storage, Inc. | Recovery Point Determination for Data Restoration in a Storage System |
| US12153670B2 (en) * | 2019-11-22 | 2024-11-26 | Pure Storage, Inc. | Host-driven threat detection-based protection of storage elements within a storage system |
| US20210216631A1 (en) * | 2019-11-22 | 2021-07-15 | Pure Storage, Inc. | Filesystem Property Based Determination of a Possible Ransomware Attack Against a Storage System |
| US12204657B2 (en) | 2019-11-22 | 2025-01-21 | Pure Storage, Inc. | Similar block detection-based detection of a ransomware attack |
| US12061714B2 (en) | 2020-03-04 | 2024-08-13 | Sotero, Inc. | System and methods for data encryption and application-agnostic querying of encrypted data |
| US12223075B2 (en) | 2021-07-09 | 2025-02-11 | Sotero, Inc. | Autonomous machine learning methods for detecting and thwarting malicious database access |
| US12346440B2 (en) | 2022-09-14 | 2025-07-01 | Sotero, Inc. | Autonomous machine learning methods for detecting and thwarting ransomware attacks |
| US12032694B2 (en) | 2022-09-14 | 2024-07-09 | Sotero, Inc. | Autonomous machine learning methods for detecting and thwarting ransomware attacks |
| US20250272388A1 (en) * | 2024-02-28 | 2025-08-28 | Open Text Sa Ulc | Ransomware protection for archived data |
Also Published As
| Publication number | Publication date |
|---|---|
| CN112041839A (en) | 2020-12-04 |
| US11200320B2 (en) | 2021-12-14 |
| WO2019190935A1 (en) | 2019-10-03 |
| EP3756122A1 (en) | 2020-12-30 |
| EP3756122B1 (en) | 2022-09-28 |
| CN112041839B (en) | 2024-12-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3756122B1 (en) | Coordinating service ransomware detection with client-side ransomware detection | |
| US10769278B2 (en) | Service identification of ransomware impact at account level | |
| US11308207B2 (en) | User verification of malware impacted files | |
| US10963564B2 (en) | Selection of restore point based on detection of malware attack | |
| US10917416B2 (en) | Service identification of ransomware impacted files | |
| US11947779B2 (en) | User-interface driven creation and distribution of computer applications | |
| US20230237066A1 (en) | Data drift handling | |
| US10739979B2 (en) | Histogram slider for quick navigation of a time-based list | |
| US9961134B2 (en) | Methods and systems for auto-starting and auto-stopping databases | |
| US12033105B2 (en) | Intelligent edge state optimization within enterprise with zero data exhaust | |
| US20230078984A1 (en) | Progressive error handling |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHELARESCU, FILIP;SHAH, RONAK M;BARRETO, JOSE A;AND OTHERS;SIGNING DATES FROM 20180408 TO 20180625;REEL/FRAME:046249/0780 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |