Path-based program lineage inference analysis

US10853487B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10853487-B2
Application numberUS-201816039993-A
CountryUS
Kind codeB2
Filing dateJul 19, 2018
Priority dateAug 11, 2017
Publication dateDec 1, 2020
Grant dateDec 1, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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

Assignees

Inventors

Classifications

  • during program execution, e.g. stack integrity {; Preventing unwanted data erasure; Buffer overflow} · CPC title

  • Managing data history or versioning (querying versioned data G06F16/2474; querying temporal data G06F16/2477) · CPC title

  • Traffic logging, e.g. anomaly detection · CPC title

  • Test or assess software · CPC title

  • Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10853487B2 cover?
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 t…
Who is the assignee on this patent?
Nec Lab America Inc, Nec Corp
What technology area does this patent fall under?
Primary CPC classification G06F21/552. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 01 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).