IP Library Granted Patent US 9,338,012
Granted Patent B1
US 9,338,012 · App. 14/046,418 · Granted May 10, 2016

Systems and methods for identifying code signing certificate misuse

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,338,012
App. No.
14/046,418
Granted
May 10, 2016
Kind
B1
Abstract

A computer-implemented method for identifying code signing certificate misuse may include (1) identifying a software file that has been signed using a code signing certificate, (2) identifying a software publisher that is identified by the code signing certificate used to sign the software file, (3) obtaining a reputation score for the software file that indicates a trustworthiness of the software file independently of the code signing certificate, and (4) providing, to the software publisher, information that is based on the reputation score and that indicates that the code signing certificate has been compromised. Various other methods, systems, and computer-readable media are also disclosed.

Claims (84)

1. A computer-implemented method for identifying code signing certificate misuse, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a software file that has been signed using a code signing certificate;

identifying a software publisher that is identified by the code signing certificate used to sign the software file;

obtaining a reputation score for the software file by querying a centralized database comprising a plurality of file reputations, wherein:

the reputation score indicates a trustworthiness of the software file independently of the code signing certificate;

the reputation score is based on information that is collected in the course of conducting malware scans of client devices and sent to the centralized database;

providing, to the software publisher, information that is based on the reputation score and that indicates that the code signing certificate has been compromised.

2. The computer-implemented method of claim 1 , wherein the reputation score is based on at least one of:

a prevalence of the software file;

at least one detected association of the software file with malware.

3. The computer-implemented method of claim 1 , further comprising:

identifying a plurality of software files that were signed using the code signing certificate;

obtaining, for each software file in the plurality of software files, a reputation score that indicates a likelihood that the software publisher did not authorize the software file to be signed using the code signing certificate;

providing, to the software publisher, a list of software files in the plurality of software files, prioritized by reputation score.

4. The computer-implemented method of claim 1 , further comprising receiving, from the software publisher, an indication that the software publisher did not authorize the software file to be signed by the code signing certificate.

5. The computer-implemented method of claim 4 , further comprising performing a security action in response to receiving the indication that the software publisher did not authorize the software file to be signed by the code signing certificate.

6. The computer-implemented method of claim 1 , further comprising:

receiving, from the software publisher, for each software file in a plurality of software files authorized to be signed using the code signing certificate, identification of the software file;

compiling a certificate database associating the code signing certificate with identification of each software file in the plurality of software files authorized to be signed using the code signing certificate.

7. The computer-implemented method of claim 6 , further comprising:

obtaining a second software file signed using a second code signing certificate;

extracting from the second software file the second code signing certificate used to sign the software file;

adding to the certificate database an entry associating the extracted second code signing certificate with identification of the second software file.

8. The computer-implemented method of claim 6 , wherein identification of each software file in the plurality of software files comprises identification of at least one of:

the software file;

a digital signature from the software file.

9. The computer-implemented method of claim 6 , further comprising verifying that an additional software file was signed by an authorized certificate by:

receiving the additional software file signed using an additional code signing certificate;

verifying the integrity of the additional software file by:

obtaining a public key of a key pair used to encrypt a software file digest included in a digital signature of the additional software file;

decrypting the software file digest included in the digital signature of the additional software file;

creating a second software file digest using a hash algorithm specified in the digital signature of the additional software file;

verifying that the software file digest and the second software file digest are identical;

querying, using identification of the additional software file, the certificate database;

receiving, in response to querying the certificate database, indication of whether the software publisher authorized the additional software file to be signed using the additional code signing certificate.

10. A system for identifying code signing certificate misuse, the system comprising:

an identification module that identifies a software file that has been signed using a code signing certificate;

a publisher identification module that identifies a software publisher that is identified by the code signing certificate used to sign the software file;

a reputation module that obtains a reputation score for the software file by querying a centralized database comprising a plurality of file reputations, wherein:

the reputation score indicates a trustworthiness of the software file independently of the code signing certificate;

the reputation score is based on information that is collected in the course of conducting malware scans of client devices and sent to the centralized database;

a reporting module that provides, to the software publisher, information that is based on the reputation score and that indicates that the code signing certificate has been compromised;

at least one processor configured to execute the identification module, the publisher identification module, the reputation module, and the reporting module.

11. The system of claim 10 , wherein the reputation score is based on at least one of:

a prevalence of the software file;

at least one detected association of the software file with malware.

12. The system of claim 10 , wherein:

the identification module identifies a plurality of software files that were signed using the code signing certificate;

the reputation module obtains, for each software file in the plurality of software files, a reputation score that indicates a likelihood that the software publisher did not authorize the software file to be signed using the code signing certificate;

the reporting module provides, to the software publisher, a list of software files in the plurality of software files, prioritized by reputation score.

13. The system of claim 10 , further comprising a receiving module that receives, from the software publisher, an indication that the software publisher did not authorize the software file to be signed by the code signing certificate.

14. The system of claim 13 , further comprising a security module that performs a security action in response to receiving the indication that the software publisher did not authorize the software file to be signed by the code signing certificate.

15. The system of claim 10 :

wherein the identification module receives, from the software publisher, for each software file in a plurality of software files authorized to be signed using the code signing certificate, identification of the software file;

further comprising a database module that compiles a certificate database associating the code signing certificate with identification of each software file in the plurality of software files authorized to be signed using the code signing certificate.

16. The system of claim 15 , wherein:

the identification module obtains a second software file signed using a second code signing certificate;

the identification module extracts from the second software file the second code signing certificate used to sign the software file;

the database module adds to the certificate database an entry associating the extracted second code signing certificate with identification of the second software file.

17. The system of claim 15 , wherein identification of each software file in the plurality of software files comprises identification of at least one of:

the software file;

a digital signature from the software file.

18. The system of claim 15 :

further comprising a verification module that verifies that an additional software file was signed by an authorized certificate by:

receiving the additional software file signed using an additional code signing certificate;

verifying the integrity of the additional software file by:

obtaining a public key of a key pair used to encrypt a software file digest included in a digital signature of the additional software file;

decrypting the software file digest included in the digital signature of the additional software file;

creating a second software file digest using a hash algorithm specified in the digital signature of the additional software file;

verifying that the software file digest and the second software file digest are identical;

wherein the database module:

queries, using identification of the software file, the certificate database;

receives, in response to querying the certificate database, indication of whether the software publisher authorized the file to be signed using the code signing certificate.

19. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify a software file that has been signed using a code signing certificate;

identify a software publisher that is identified by the code signing certificate used to sign the software file;

obtain a reputation score for the software file by querying a centralized database comprising a plurality of file reputations, wherein:

the reputation score indicates a trustworthiness of the software file independently of the code signing certificate;

the reputation score is based on information that is collected in the course of conducting malware scans of client devices and sent to the centralized database;

provide, to the software publisher, information that is based on the reputation score and that indicates that the code signing certificate has been compromised.

20. The non-transitory computer-readable medium of claim 19 , wherein the one or more computer-readable instructions cause the computing device to:

identify a plurality of software files that were signed using the code signing certificate;

obtain, for each software file in the plurality of software files, a reputation score that indicates a likelihood that the software publisher did not authorize the software file to be signed using the code signing certificate;

provide, to the software publisher, a list of software files in the plurality of software files, prioritized by reputation score.

Assignments (11)
ASSIGNMENT OF SECURITY INTERESTS IN INTELLECTUAL PROPERTY (FIRST LIEN), RECORDED ON OCTOBER 16, 2019 AT REEL 050741 FRAME 0918 Recorded Sep 24, 2025
From: UBS AG, STAMFORD BRANCH, AS SUCCESSOR TO CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING AGENT
To: HPS INVESTMENT PARTNERS, LLC, AS SUCCESSOR AGENT
Reel/Frame 072947/0157 →
SECOND LIEN NOTICE OF SUCCESSION OF AGENCY Recorded Jul 30, 2025
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS PRIOR AGENT
To: UBS AG, STAMFORD BRANCH, AS SUCCESSOR AGENT
Reel/Frame 072300/0068 →
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 19, 2021
From: JEFFERIES FINANCE LLC, AS EXISTING AGENT
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS SUCCESSOR AGENT
Reel/Frame 055345/0042 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Oct 17, 2019
From: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
To: DIGICERT, INC.; GEOTRUST, LLC
Reel/Frame 050746/0973 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Oct 17, 2019
From: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
To: DIGICERT, INC.; GEOTRUST, LLC
Reel/Frame 050747/0001 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 16, 2019
From: DIGICERT, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 050741/0899 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 16, 2019
From: DIGICERT, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 050741/0918 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 3, 2017
From: DIGICERT, INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 044681/0556 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 3, 2017
From: DIGICERT, INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 044710/0529 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2017
From: SYMANTEC CORPORATION
To: DIGICERT, INC.
Reel/Frame 044344/0650 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2013
From: NAIK, ALOK; PRAKASHKUMAR, SUHAS; NARAYANAN, SREEKANTH
To: SYMANTEC CORPORATION
Reel/Frame 031350/0057 →