IP Library Granted Patent US 10,496,836
Granted Patent B2
US 10,496,836 · App. 15/492,338 · Granted Dec 3, 2019

Preventing ransomware from encrypting data elements

Inventor: Gil Barak (Raanana, IL)
Assignee: Palo Alto Networks, Inc.
G06F21/62H04L63/1408H04L63/1491
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,496,836
App. No.
15/492,338
Granted
Dec 3, 2019
Kind
B2
Abstract

A computerized method for preventing ransomware from encrypting data elements stored in a memory of a computer-based system, the method comprising identifying at least one identifier for a data element, wherein the at least one identifier indicates at least a position of the data element within the memory. An optimal number of virtual traps is determined for the data element corresponding to the at least one identifier. An optimal position for each of the virtual traps is determined corresponding to the at least one identifier. The virtual traps are send to the determined optimal position within the memory.

Claims (55)

1. A method comprising:

identifying an identifier for a data element, wherein the identifier indicates a position of the data element within a memory;

determining a number of virtual traps for the data element based, at least in part, on the identifier;

determining a position in the memory for each of the virtual traps based, at least in part, on the identifier, wherein at least a first position of the positions corresponds to a position which is likely to be affected by malware prior to the position of the data element within the memory and the first position causes at least one of the virtual traps to be alphabetically positioned prior to the data element in a file system in either ascending or descending alphabetical order; and

sending the virtual traps to the determined positions within the memory.

2. The method of claim 1 , wherein the data element is at least one of a folder, a sub-folder, a file, a process.

3. The method of claim 1 , wherein each of the virtual traps is at least one of: a virtual file, a virtual folder, a virtual sub-folder, a virtual process, a virtual memory object, a virtual registry key, a virtual removable device, a virtual physical device, a virtual network device, a virtual network share.

4. The method of claim 1 , further comprising:

determining that a malicious process is being performed on at least one virtual trap.

5. The method of claim 4 , further comprising at least one of:

generating a notification corresponding to the determination; and

initializing, based on the notification, at least one process to prevent the malicious process.

6. The method of claim 1 , further comprising:

monitoring a plurality of data elements stored within the memory in order to identify whether changes have occurred; and

determining an updated number of virtual traps based, at least on part, on identification of changes.

7. The method of claim 6 , further comprising:

determining an updated position for at least a first virtual trap of the virtual traps upon identification of changes.

8. The method of claim 4 , wherein determining that a malicious process is being performed on at least one virtual trap comprises determining that a process attempted to encrypt the at least one virtual trap.

9. The method of claim 1 , wherein the number of virtual traps for the data element is based, at least in part, on at least one of a type of the data element and a number of files corresponding to the data element.

10. A system comprising:

a processing unit;

a memory coupled to the processing unit, the memory contains therein instructions that when executed by the processing unit configures the system to:

identify an identifier for a data element, wherein the identifier indicates a position of the data element within memory of an end point device;

determine a number of virtual traps for the data element based, at least in part, on the identifier;

determine a position in the memory of the end point device for each of the virtual traps based, at least in part, on the identifier, wherein at least a first position of the positions corresponds to a position which is likely to be affected by malware prior to the position of the data element within the memory of the end point device and the first position causes at least one of the virtual traps to be alphabetically positioned prior to the data element in a file system in either ascending or descending alphabetical order; and

send the virtual traps to the determined positions within the memory of the end point device.

11. The system of claim 10 , wherein the data element is at least one of: a folder, a sub-folder, a file, a process.

12. The system of claim 10 , wherein a virtual trap is at least one of: a virtual file, a virtual folder, a virtual sub-folder, a virtual process, a virtual memory object, a virtual registry key, a virtual removable device, a virtual physical device, a virtual network device, a virtual network share.

13. The system of claim 10 , further comprising instructions that when executed by the processing unit configures the system to determine that a malicious process is being performed on at least one virtual trap.

14. The system of claim 13 , further comprising instructions that when executed by the processing unit configures the system to at least one of:

generate a notification corresponding to the determination; and

initialize, based on the notification, at least one process adapted to prevent the malicious process.

15. The system of claim 10 , further comprising instructions that when executed by the processing unit configures the system to:

monitor a plurality of data elements stored within the memory of the end point device in order to identify whether changes have occurred; and

determine an updated number of virtual traps based, at least on part, on identification of changes.

16. The system of claim 15 , further comprising instructions that when executed by the processing unit configures the system to determine an updated position for at least a first virtual trap of the virtual traps upon identification of changes.

17. The system of claim 13 , wherein the instructions that when executed by the processing unit configures the system to determine that a malicious process is being performed on at least one virtual trap comprise instructions that when executed by the processing unit configures the system to determine that a process attempted to encrypt the at least one virtual trap.

18. The system of claim 10 , wherein the number of virtual traps for the data element is based, at least in part, on at least one of a type of the data element and a number of files corresponding to the data element.

19. A computer program product including a non-transitory computer readable medium comprising computer executable program code, said computer executable program code to:

identify an identifier for a data element, wherein the identifier indicates a position of the data element within a memory;

determine a number of virtual traps for the data element based, at least in part, on the identifier;

determine a position in the memory for each of the virtual traps based, at least in part, on the identifier, wherein at least a first position of the positions corresponds to a position which is likely to be affected by malware prior to the position of the data element within the memory and the first position causes at least one of the virtual traps to be alphabetically positioned prior to the data element in a file system in either ascending or descending alphabetical order; and,

send the virtual traps to the determined positions within the memory.

20. The computer program product of claim 19 , wherein the data element is at least one of: a folder, a sub-folder, a file, a process.

21. The computer program product of claim 19 , wherein a virtual trap is at least one of: a virtual file, a virtual folder, a virtual sub-folder, a virtual process, a virtual memory object, a virtual registry key, a virtual removable device, a virtual physical device, a virtual network device, a virtual network share.

22. The computer program product of claim 19 , further comprising program code to determine that a malicious process is being performed on at least one virtual trap.

23. The computer program product of claim 22 , further comprising program code to:

generate a notification corresponding to the determination; and

initialize, based on the notification, at least one process adapted to prevent the malicious process.

24. The computer program product of claim 19 , further comprising program code to:

monitor a plurality of data elements stored within the memory in order to identify whether changes have occurred; and

determine an updated number of virtual traps based, at least on part, on identification of changes.

25. The computer program product of claim 24 , further comprising program code to determine an updated position for at least a first virtual trap of the virtual traps upon identification of changes.

26. The computer program product of claim 22 , wherein the program code to determine that a malicious process is being performed on at least one virtual trap comprises program code to determine that a process attempted to encrypt the at least one virtual trap.

27. The computer program product of claim 19 , wherein the number of virtual traps for the data element is based, at least in part, on at least one of a type of the data element and a number of files corresponding to the data element.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2019
From: CYBER SECDO LTD.
To: PALO ALTO NETWORKS INC.
Reel/Frame 049324/0941 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2017
From: BARAK, GIL
To: CYBER SECDO LTD.
Reel/Frame 042080/0069 →
Continuity (2)
Provisional Application 62325466 · Apr 21, 2016
Related Publication 20170308711A1 · Oct 26, 2017