IP Library Granted Patent US 10,929,539
Granted Patent B2
US 10,929,539 · App. 16/040,086 · Granted Feb 23, 2021

Automated software safeness categorization with installation lineage and hybrid information sources

Inventors: Jungwhan 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/57G06F11/3466G06F21/12G06F21/552G06F21/56G06F21/561G06F21/562G06F21/577H04L63/1416H04L63/1425G06F2201/865G06F2221/033H04L63/145H04L63/1433
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,929,539
App. No.
16/040,086
Granted
Feb 23, 2021
Kind
B2
Abstract

Systems and methods are disclosed for enhancing cybersecurity in a computer system by detecting safeness levels of executables. An installation lineage of an executable is identified in which entities forming the installation lineage include at least an installer of the monitored executable, and a network address from which the executable is retrieved. Each entity of the entities forming the installation lineage is individually analyzed using at least one safeness analysis. Results of the at least one safeness analysis of each entity are inherited by other entities in the lineage of the executable. A backtrace result for the executable is determined based on the inherited safeness evaluation of the executable. A total safeness of the executable, based on at least the backtrace result, is evaluated against a set of thresholds to detect a safeness level of the executable. The safeness level of the executable is output on a display screen.

Claims (49)

1. A computer-implemented method for enhancing cybersecurity in a computer environment by detecting a safeness level of an executable, comprising:

identifying an installation lineage of any type of executable, entities forming the installation lineage including at least an installer of the executable, and a network address from which the executable is retrieved;

analyzing, individually, each entity of the entities forming the installation lineage using at least one safeness analysis, results of the at least one safeness analysis of each entity being inherited by other entities in the lineage of the executable;

determining a backtrace result for the executable based on an inherited safeness evaluation of the executable, the backtrace result being determined by collecting and analyzing reputations of dependent binaries of the executable, and the executable inheriting the reputations of the dependent binaries;

evaluating a total safeness of the executable against a set of thresholds to detect a safeness level of the executable, the total safeness based on at least the backtrace result and a weighted backtrace score determined using a generated dependency importance factor; and

outputting, on a display screen, the safeness level of the executable.

2. The computer-implemented method as recited in claim 1 , further comprising analyzing the executable using the at least one safeness analysis based on gathered program information relating to the executable.

3. The computer-implemented method as recited in claim 2 , wherein evaluating the total safeness of the executable is based on the backtrace result and respective results of the at least one safeness analysis, the safeness level being selected from at least one of: safe, unsafe and unknown.

4. The computer-implemented method as recited in claim 1 , wherein the at least one safeness analysis comprises comparing a behavior of the executable against predefined lists of suspicious process behavior, file behavior and network behavior.

5. The computer-implemented method as recited in claim 1 , wherein the at least one safeness analysis comprises:

generating an executable signature by a hash function based on the executable; and

evaluating the executable signature by accessing a database of executable signatures.

6. The computer-implemented method as recited in claim 1 , wherein the at least one safeness analysis comprises verifying a developer signature of the executable, the developer signature being generated by a developer of the executable, verifying the developer signature includes accessing a database of developer signatures.

7. The computer-implemented method as recited in claim 1 , wherein the at least one safeness analysis comprises conducting one or more anti-virus scans of the executable, each anti-virus scan being conducted by a different anti-virus program.

8. The computer-implemented method as recited in claim 1 , wherein the at least one safeness analysis comprises searching known safe software repositories to determine if the executable is hosted thereon.

9. The computer-implemented method as recited in claim 1 , further comprising:

inputting, on a user interface, feedback regarding the safeness level of the executable and storing the feedback in association with the executable;

adjusting the safeness level of the executable based on the feedback; and

referring to the feedback associated with the executable during future evaluation of the total safeness of the executable.

10. A system for enhancing cybersecurity in a computer system by detecting a safeness level of an executable, comprising:

a storage device configured to store program code and program information relating to any type of executable;

a processor operatively coupled to the storage device and configured to detect a safeness level of the executable by executing program code, stored on the storage device, to:

identify an installation lineage of an executable, entities forming the installation lineage including at least an installer of the executable, and a network address from which the executable is retrieved;

analyze, individually, each entity of the entities forming the installation lineage using at least one safeness analysis, results of the at least one safeness analysis of each entity being inherited by other entities in the lineage of the executable;

determine a backtrace result for the executable based on an inherited safeness evaluation of the executable, the backtrace result being determined by collecting and analyzing reputations of dependent binaries of the executable, and the executable inheriting the reputations of the dependent binaries; and

evaluate a total safeness of the executable against a set of thresholds to detect a safeness level of the executable, the total safeness based on at least the backtrace result and a weighted backtrace score determined using a generated dependency importance factor; 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 the safeness level of the executable, and accept feedback overriding the safeness level of the executable.

11. The system as recited in claim 10 , wherein the processor further executes program code to:

analyze the executable using the at least one safeness analysis based on gathered program information relating to the executable.

12. The system as recited in claim 11 , wherein the processor evaluates the total safeness of the executable based on the backtrace result and respective results of the at least one safeness analysis, the processor selecting the safeness level from at least one of: safe, unsafe and unknown.

13. The system as recited in claim 10 , wherein the processor further executes program code to compare a behavior of the executable against predefined lists of suspicious process behavior, file behavior and network behavior.

14. The system as recited in claim 10 , wherein the processor further executes program code to:

generate an executable signature by a hash function based on the executable; and

evaluate the executable signature by accessing a database of executable signatures.

15. The system as recited in claim 10 , wherein the processor further executes program code to verify a developer signature of the executable, the developer signature being generated by a developer of the executable, the developer signature being verified by at least accessing a database of developer signatures.

16. The system as recited in claim 10 , wherein the processor further executes program code to conduct one or more anti-virus scans of the executable, each anti-virus scan being conducted by a different anti-virus program.

17. The system as recited in claim 10 , wherein the processor further executes program code to:

receive, on a user interface, feedback regarding the safeness level of the executable and store the feedback in association with the executable;

adjust the safeness level of the executable based on the feedback; and

refer to the feedback associated with the executable during future evaluation of the total safeness score of the executable.

18. 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 enhancing cybersecurity of the computer by detecting a safeness level of an executable, comprising:

identifying an installation lineage of any type of executable, entities forming the installation lineage including at least an installer of the executable, and a network address from which the executable is retrieved;

analyzing, individually, each entity of the entities forming the installation lineage using at least one safeness analysis, results of the at least one safeness analysis of each entity being inherited by other entities in the lineage of the executable;

determining a backtrace result for the executable based on an inherited safeness evaluation of the executable, the backtrace result being determined by collecting and analyzing reputations of dependent binaries of the executable, and the executable inheriting the reputations of the dependent binaries;

evaluating a total safeness of the executable against a set of thresholds to detect a safeness level of the executable, the total safeness based on at least the backtrace result and a weighted backtrace score determined using a generated dependency importance factor; and

outputting, on a display screen, the safeness level of the executable.

19. The computer program product as recited in claim 18 , further comprising:

analyzing the executable using the at least one safeness analysis based on gathered program information relating to the executable.

20. The computer program product as recited in claim 19 , wherein evaluating the total safeness of the executable is based on the backtrace result and respective results of the at least one safeness analysis, the safeness level being selected from at least one of: safe, unsafe and unknown.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2021
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 054954/0596 →
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/0729 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2018
From: KORTS-PARN, LAURI
To: NEC CORPORATION
Reel/Frame 046403/0758 →
Continuity (2)
Provisional Application 62544143 · Aug 11, 2017
Related Publication 20190050571A1 · Feb 14, 2019