IP Library Granted Patent US 9,998,484
Granted Patent B1
US 9,998,484 · App. 15/082,731 · Granted Jun 12, 2018

Classifying potentially malicious and benign software modules through similarity analysis

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 9,998,484
App. No.
15/082,731
Granted
Jun 12, 2018
Kind
B1
Abstract

A method comprises obtaining at least a first software module not classified as benign or potentially malicious, extracting a set of features associated with the first software module including static, behavior and context features, computing distance metrics between the extracted feature set and feature sets of a plurality of clusters including one or more clusters of software modules previously classified as benign and exhibiting a first threshold level of similarity relative to one another and one or more clusters of software modules previously classified as potentially malicious and exhibiting a second threshold level of similarity relative to one another, classifying the first software module as belonging to a given cluster based at least in part on the computed distance metrics, and modifying access by a given client device to the first software module responsive to the given cluster being a cluster of software modules previously classified as potentially malicious.

Claims (81)

1. A method comprising:

obtaining at least a first software module not classified as benign or potentially malicious;

extracting a set of features associated with the first software module, the set of features comprising one or more static features, one or more behavior features and one or more context features;

computing distance metrics between the extracted feature set of the first software module and feature sets of a plurality of clusters, the plurality of clusters comprising: one or more clusters of software modules previously classified as benign and exhibiting a first threshold level of similarity relative to one another; and one or more clusters of software modules previously classified as potentially malicious and exhibiting a second threshold level of similarity relative to one another;

classifying the first software module as belonging to a given one of the plurality of clusters based at least in part on the computed distance metrics; and

modifying access by a given client device to the first software module responsive to the given cluster being one of the one or more clusters of software modules previously classified as potentially malicious;

wherein the method is performed by at least one processing device comprising a processor coupled to a memory; and

wherein extracting the set of features associated with the first software module comprises:

extracting the one or more static features from the first software module; and

obtaining the one or more behavior features and the one or more context features of the first software module from at least one of a plurality of client devices on which the first software module is installed.

2. The method of claim 1 wherein the processing device comprises a network security system configured to communicate with a plurality of client devices, including the given client device, over at least one network.

3. The method of claim 1 wherein the first software module comprises one of: an executable module; and a dynamic link library module.

4. The method of claim 1 wherein the one or more static features comprise:

one or more descriptive features;

one or more numerical features; and

one or more binary features.

5. The method of claim 1 wherein the one or more behavior features comprise:

one or more file system access features;

one or more process access features; and

one or more network connection features.

6. The method of claim 1 wherein the one or more context features comprise:

one or more file system path features;

one or more path of destination events features;

one or more file metadata features; and

one or more auto-start functionality features.

7. The method of claim 1 wherein computing the distance metrics comprises one or more of:

utilizing a normalized edit distance for respective ones of the extracted features represented as string values;

utilizing a Jaccard distance for respective ones of the extracted features represented as sets;

utilizing a normalized L1 distance for respective ones of the extracted features represented as real or integer values; and

utilizing binary distance for respective ones of the extracted features represented as binary values.

8. The method of claim 1 wherein computing the distance metrics comprises assigning weights to distance between the extracted features, the weights being proportional to entropies of the extracted features in previously classified software modules in the plurality of clusters.

9. The method of claim 1 wherein computing the distance metrics comprises assigning a penalty value to distances between features missing from the extracted feature set of the first software module.

10. The method of claim 1 further comprising determining the plurality of clusters by computing pairwise distances for pairs of previously classified software modules utilizing a density-based spatial clustering of applications with noise (DBSCAN) clustering algorithm.

11. The method of claim 10 wherein computing the pairwise distances comprises:

indexing the previously classified software modules based on a subset of the extracted features, the subset of extracted features being numerical features;

building a range query based on the indexing;

utilizing the range query with a first threshold to retrieve a subset of the previously classified software modules in a neighborhood of a given one of the previously classified software modules;

computing pairwise distances between the given previously classified software module and respective ones of the retrieved previously classified software modules in the neighborhood; and

clustering the given previously classified software module with one or more of the retrieved previously classified software modules having pairwise distances less than a second threshold, the second threshold being smaller than the first threshold.

12. The method of claim 1 wherein classifying the first software module comprises comparing distance metrics between static features in the extracted feature set of the first software module and corresponding static features of previously classified software modules in the plurality of clusters.

13. The method of claim 12 further comprising classifying the first software module as benign based at least in part on determining that the distance metrics between the static features in the extracted feature set of the first software module and corresponding static features of a given cluster of software modules previously classified as benign is below a given threshold.

14. The method of claim 13 further comprising classifying the first software module as potentially malicious based at least in part on:

determining that the distance metrics between the static features in the extracted feature set of the first software module and corresponding static features of a given cluster of software modules previously classified as potentially malicious is below a first threshold; and

determining that the distance metrics between the static features, the behavior features and the context features in the extracted feature set of the first software module and corresponding features of the given cluster of software modules previously classified as potentially malicious is below a second threshold.

15. The method of claim 1 wherein modifying access by the given client device to the first software module comprises at least one of:

removing the first software module from a memory or storage of the given client device;

preventing the given client device from obtaining the first software module; and

causing the first software module to be opened in a sandboxed application environment on the given client device.

16. The method of claim 1 , wherein the one or more behavior features are associated with actions performed by the first software module installed on said at least one of the plurality of client devices and wherein the one or more context features are associated with installation of the first software module on said at least one of the plurality of client devices.

17. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device cause the at least one processing device:

to obtain at least a first software module not classified as benign or potentially malicious;

to extract a set of features associated with the first software module, the set of features comprising one or more static features, one or more behavior features and one or more context features;

to compute distance metrics between the extracted feature set of the first software module and feature sets of a plurality of clusters, the plurality of clusters comprising: one or more clusters of software modules previously classified as benign and exhibiting a first threshold level of similarity relative to one another; and one or more clusters of software modules previously classified as potentially malicious and exhibiting a second threshold level of similarity relative to one another;

to classify the first software module as belonging to a given one of the plurality of clusters based at least in part on the computed distance metrics; and

to modify access by a given client device to the first software module responsive to the given cluster being one of the one or more clusters of software modules previously classified as potentially malicious;

wherein extracting the set of features associated with the first software module comprises:

extracting the one or more static features from the first software module; and

obtaining the one or more behavior features and the one or more context features of the first software module from at least one of a plurality of client devices on which the first software module is installed.

18. The computer program product of claim 17 wherein the program code when executed by the processing device further causes the processing device to determine the plurality of clusters by computing pairwise distances for pairs of previously classified software modules utilizing a density-based spatial clustering of applications with noise (DBSCAN) clustering algorithm, and wherein computing the pairwise distances comprises:

indexing the previously classified software modules based on a subset of the extracted features, the subset of extracted features being numerical features;

building a range query based on the indexing;

utilizing the range query with a first threshold to retrieve a subset of the previously classified software modules in a neighborhood of a given one of the previously classified software modules;

computing pairwise distances between the given previously classified software module and respective ones of the retrieved previously classified software module in the neighborhood; and

clustering the given previously classified software module with one or more of the retrieved previously classified software modules having pairwise distances less than a second threshold.

19. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured:

to obtain at least a first software module not classified as benign or potentially malicious;

to extract a set of features associated with the first software module, the set of features comprising one or more static features, one or more behavior features and one or more context features;

to compute distance metrics between the extracted feature set of the first software module and feature sets of a plurality of clusters, the plurality of clusters comprising: one or more clusters of software modules previously classified as benign and exhibiting a first threshold level of similarity relative to one another; and one or more clusters of software modules previously classified as potentially malicious and exhibiting a second threshold level of similarity relative to one another;

to classify the first software module as belonging to a given one of the plurality of clusters based at least in part on the computed distance metrics; and

to modify access by a given client device to the first software module responsive to the given cluster being one of the one or more clusters of software modules previously classified as potentially malicious;

wherein extracting the set of features associated with the first software module comprises:

extracting the one or more static features from the first software module; and

obtaining the one or more behavior features and the one or more context features of the first software module from at least one of a plurality of client devices on which the first software module is installed.

20. The apparatus of claim 19 wherein the at least one processing device is further configured to determine the plurality of clusters by computing pairwise distances for pairs of previously classified software modules utilizing a density-based spatial clustering of applications with noise (DBSCAN) clustering algorithm, and wherein computing the pairwise distances comprises:

indexing the previously classified software modules based on a subset of the extracted features, the subset of extracted features being numerical features;

building a range query based on the indexing;

utilizing the range query with a first threshold to retrieve a subset of the previously classified software modules in a neighborhood of a given one of the previously classified software modules;

computing pairwise distances between the given previously classified software module and respective ones of the retrieved previously classified software modules in the neighborhood; and

clustering the given previously classified software module with one or more of the retrieved previously classified software modules having pairwise distances less than a second threshold.

Assignments (21)
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 56098/0534 Recorded Mar 5, 2026
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: RSA SECURITY LLC
Reel/Frame 075041/0175 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 56096/0525 Recorded Mar 5, 2026
From: JPMORGAN CHASE BANK, N.A.
To: RSA SECURITY LLC; RSA SECURITY USA LLC
Reel/Frame 075030/0744 →
NOTICE OF PARTIAL TERMINATION AND RELEASE OF FIRST LIEN SECURITY INTEREST IN TRADEMARK RIGHTS AND PATENT RIGHTS RECORDED AT REEL/FRAME: 056096/0525 Recorded Jun 3, 2025
From: JPMORGAN CHASE BANK, N.A.
To: RSA SECURITY LLC
Reel/Frame 071482/0733 →
NOTICE OF PARTIAL TERMINATION AND RELEASE OF SECOND LIEN SECURITY INTEREST IN TRADEMARK RIGHTS AND PATENT RIGHTS RECORDED AT REEL/FRAME: 056098/0534 Recorded Jun 3, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: RSA SECURITY LLC
Reel/Frame 071484/0819 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2025
From: RSA SECURITY LLC
To: NETWITNESS SECURITY LLC
Reel/Frame 071495/0168 →
TERMINATION AND RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS RECORDED AT REEL 053666, FRAME 0767 Recorded Apr 29, 2021
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: RSA SECURITY LLC
Reel/Frame 056095/0574 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 29, 2021
From: RSA SECURITY LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 056096/0525 →
TERMINATION AND RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT REEL 054155, FRAME 0815 Recorded Apr 29, 2021
From: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
To: RSA SECURITY LLC
Reel/Frame 056104/0841 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 29, 2021
From: RSA SECURITY LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 056098/0534 →
PARTIAL RELEASE OF SECURITY INTEREST Recorded Nov 24, 2020
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 054510/0975 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2020
From: EMC IP HOLDING COMPANY LLC
To: RSA SECURITY LLC
Reel/Frame 053717/0020 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded Sep 3, 2020
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS AGENT
To: DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 054160/0456 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Sep 3, 2020
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS AGENT
To: DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 054191/0287 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (049452/0223) Recorded Sep 3, 2020
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS AGENT
To: DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 054250/0372 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: RSA SECURITY LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 053666/0767 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: RSA SECURITY LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 054155/0815 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2016
From: BUYUKKAYHAN, AHMET; LI, ZHOU; OPREA, ALINA M.; ROSA, MARTIN
To: EMC CORPORATION
Reel/Frame 039392/0231 →