IP Library Granted Patent US 10,853,487
Granted Patent B2
US 10,853,487 · App. 16/039,993 · Granted Dec 1, 2020

Path-based program lineage inference analysis

Inventors: Junghwan Rhee (Princeton, NJ); Zhenyu Wu (Plainsboro, NJ); Lauri Korts-Parn (Princeton, NJ); Kangkook Jee (Princeton, NJ); Zhichun Li (Princeton, NJ); Omid Setayeshfar (Athens, GA)
G06F21/552G06F16/219G06F16/26G06F16/9024G06F21/52G06F21/566H04L63/1425G06F2221/033
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,853,487
App. No.
16/039,993
Granted
Dec 1, 2020
Kind
B2
Abstract

Systems and methods are disclosed for securing an enterprise environment by detecting suspicious software. A global program lineage graph is constructed. Construction of the global program lineage graph includes creating a node for each version of a program having been installed on a set of user machines. Additionally, at least two nodes are linked with a directional edge. For each version of the program, a prevalence number of the set of user machines on which each version of the program had been installed is determined; and the prevalence number is recorded to the metadata associated with the respective node. Anomalous behavior is identified based on structures formed by the at least two nodes and associated directional edge in the global program lineage graph. An alarm is displayed on a graphical user interface for each suspicious software based on the identified anomalous behavior.

Claims (39)

1. A computer-implemented method for securing an enterprise environment by detecting suspicious software, comprising:

constructing a global program lineage graph comprising:

creating a node for each version of a program installed on a set of user machines, the node including metadata including an event time associated with the respective version of the program, each node being identified by a unique identifier, wherein the same version of the program installed on different user machines has the same node on the global lineage graph, the version of the program determined by an identifier unique to the version and program combination,

linking at least two nodes with a directional edge, the directional edge representing a progression from a first version of the program to a next version of the program based on the event time of each version of the program, and

determining, for each version of the program, a prevalence number of the set of user machines on which each version of the program had been installed and recording the prevalence number to the metadata associated with the respective node;

identifying anomalous behavior, indicative of a suspicious software, based on structures formed by the at least two nodes and associated directional edge in the global program lineage graph; and

displaying an alarm on a graphical user interface for the suspicious software indicated by the identified anomalous behavior.

2. The computer-implemented method as recited in claim 1 , wherein identifying anomalous behavior further comprises verifying the unique identifier of each node, the unique identifier being a program signature.

3. The computer-implemented method as recited in claim 1 , further comprising generating each unique identifier by applying a hash function to the respective version of the program.

4. The computer-implemented method as recited in claim 1 , wherein determining the prevalence number includes incrementing a global prevalence node counter for each appearance of the version of the program on the set of user machines.

5. The computer-implemented method as recited in claim 1 , wherein determining the prevalence number includes incrementing a global prevalence edge counter for each appearance of respective directional edges on the set of user machines.

6. The computer-implemented method as recited in claim 1 , wherein determining the prevalence number includes incrementing a machine prevalence node counter for each user machine of the set of user machines on which the respective version of the program appears.

7. The computer-implemented method as recited in claim 1 , wherein determining the prevalence number includes incrementing a machine prevalence edge counter for each user machine of the set of user machines on which respective directional edges appear.

8. A supervisory machine for securing an enterprise environment by detecting suspicious software, the supervisory machine being in electrical communication with one or more user machines, the supervisory machine comprising:

a storage device configured to store program lineage data received from the one or more user machines, and a global program lineage graph;

a processor operatively coupled to the storage device and configured to detecting suspicious software by executing program code, stored on the storage device, to:

construct the global program lineage graph, the global program lineage graph including: a node for each version of a program installed on a set of user machines, the node including metadata including an event time associated with the respective version of the program, wherein the same version of the program installed on different user machines has the same node on the global lineage graph, the version of the program determined by an identifier unique to the version and program combination, each node being identified by a unique identifier, and a directional edge linking at least two nodes, the directional edge representing a progression from a first version of the program to a next version of the program based on the event time of each version of the program,

determine, for each version of the program, a prevalence number of the set of user machines on which each version of the program had been installed and record the prevalence number to the metadata associated with the respective node, and

identify anomalous behavior, indicative of a suspicious software, based on structures formed by the at least two nodes and associated directional edge in the global program lineage graph; and

a display screen having a graphical user interface implemented by the processor and displayed on the display screen, the graphical user interface configured to present an alarm for the suspicious software indicated by the identified anomalous behavior.

9. The supervisory machine as recited in claim 8 , wherein the processor verifies the unique identifier of each node, the unique identifier being a program signature.

10. The supervisory machine as recited in claim 8 , wherein the processor generates the unique identifier by applying a hash function to the respective version of the program.

11. The supervisory machine as recited in claim 8 , wherein the processor determines the prevalence number by incrementing a global prevalence node counter for each appearance of the version of the program on the set of user machines.

12. The supervisory machine as recited in claim 8 , wherein the processor determines the prevalence number by incrementing a global prevalence edge counter for each appearance of respective directional edges on the set of user machines.

13. The supervisory machine as recited in claim 8 , wherein the processor determines the prevalence number by incrementing a machine prevalence node counter for each user machine of the set of user machines on which the respective version of the program appears.

14. The supervisory machine as recited in claim 8 , wherein the processor determines the prevalence number by incrementing a machine prevalence edge counter for each user machine of the set of user machines on which respective directional edges appear.

15. A computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform a method for securing an enterprise environment by detecting suspicious software, comprising:

constructing a global program lineage graph comprising:

creating a node for each version of a program installed on a set of user machines, the node including metadata including an event time associated with the respective version of the program, each node being identified by a unique identifier, wherein the same version of the program installed on different user machines has the same node on the global lineage graph, the version of the program determined by an identifier unique to the version and program combination,

linking at least two nodes with a directional edge, the directional edge representing a progression from a first version of the program to a next version of the program based on the event time of each version of the program, and

determining, for each version of the program, a prevalence number of the set of user machines on which each version of the program had been installed and recording the prevalence number to the metadata associated with the respective node;

identifying anomalous behavior, indicative of a suspicious software, based on structures formed by the at least two nodes and associated directional edge in the global program lineage graph; and

displaying an alarm on a graphical user interface for the suspicious software indicated by the identified anomalous behavior;

for the suspicious software indicated by the identified anomalous behavior.

16. The computer program product as recited in claim 15 , wherein identifying anomalous behavior further comprises verifying the unique identifier of each node, the unique identifier being a program signature.

17. The computer program product as recited in claim 15 , wherein determining the prevalence number includes incrementing a global prevalence node counter for each appearance of the version of the program on the set of user machines.

18. The computer program product as recited in claim 15 , wherein determining the prevalence number includes incrementing a global prevalence edge counter for each appearance of respective directional edges on the set of user machines, the global prevalence edge counter being stored in metadata associated with the respective directional edge.

19. The computer program product as recited in claim 15 , wherein determining the prevalence number includes incrementing a machine prevalence node counter for each user machine of the set of user machines on which the respective version of the program appears.

20. The computer program product as recited in claim 15 , wherein determining the prevalence number includes incrementing a machine prevalence edge counter for each user machine of the set of user machines on which respective directional edges appear.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2026
From: NEC CORPORATION
To: PIECE FUTURE PTE LTD
Reel/Frame 073897/0985 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2020
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 054102/0459 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2018
From: RHEE, JUNGHWAN; WU, ZHENYU; JEE, KANGKOOK; LI, ZHICHUN; SETAYESHFAR, OMID
To: NEC LABORATORIES AMERICA INC.
Reel/Frame 046403/0331 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2018
From: KORTS-PARN, LAURI
To: NEC CORPORATION
Reel/Frame 046403/0879 →
Continuity (2)
Provisional Application 62544138 · Aug 11, 2017
Related Publication 20190050562A1 · Feb 14, 2019
Cited By (1)
US 12,619,907