The following content will give you an introduction to code-signing certificates. It will help you discern what should be reported.
The following is a lot of text. However, if you are interested in more interactive content, check out Squiblydoo's free VirusTotal Fundamentals course on KC7Cyber. The course is fun but provides a vital introduction to VirusTotal as well as code-signing certificate abuse.
A code-signing certificate is a digital certificate that is used to sign software executables and scripts in order to verify the author's identity and ensure that the code has not been altered or corrupted since it was signed.
This training only pertains to certificates that are issued by a certificate provider. When a certificate provider issues a certificate, they co-sign the software as an attestation that they have validated that the signer is a legitimate organization and software provider. This signature confers trust from the issuer to the signer. On the other hand, a self-signed cert does not confer trust from one organization to another. As a result, self-signed certs indicate that the signer trusts themselves: as they are both the signer and issuer. These self-signed certs are not interesting for the purpose of this discussion.
Because code-signing confer trust, both operating systems and browsers will check to see if downloaded files are signed with a code signing certificate. If the file is issued by a trusted party (a certificate provider), the browser and operating system will trust the file.
This transfer of trust is what is important for malware distributors and it is why code-signing certificates are important.
When criminals adverise the sale of code-signing certificates they mention the trust it will receive. This type of trust transference is also seen in the advertisements. In the advertisement below, the seller states that Extended Validation (EV) certificates have a high trust. The trust from the certificate allows it to have a good reputation with SmartScreen, browsers, and it prevents warnings from Windows from User Access Control (UAC).
Criminals apply for the code-signing certificate themselves and receive them. Based on research from 2018 and Squiblydoo's observations since then, this is the most common way for actors to obtain code-signing certificates.
The application for a code-signing certificate requires several validation steps and is an indepth process.
For the purposes of this website, I recommend reviewing a report of the file in VirusTotal or on MalwareBazaar.
In the sections below, we will discuss how to identify a signed file on each platform and the different statuses that a certificate can have.On VirusTotal, you can view the signatures of a file by clicking on the Details tab. The Details tab will show you the signatures of the file. If the file is signed, you will see the signature in the Signers section.
Below is an example of a signed file on VirusTotal. The file is signed by TOV "SELT MOTO" and the signature is valid.
VirusTotal uses Microsoft's SigTool to extract the certificate information. VirusTotal provides the status of the certificate on the page. The main statuses are Valid, Invalid, Not Time-Valid, and Revoked. Valid, Not Time-Valid, and Revoked all indicate that the signature had been properly signed. Invalid indicates that hash in the signature does not match the hash of the file: this indicates that the file has been altered since it was signed or the certificate does not belong to this file. These statuses are discussed in more depth below. In addition to the signature section, VirusTotal also provides information about the certificate in the file "tags" seen at the top of an analysis. In the image below, the file is identified file is tagged as "signed" and "invalid-signature".
Find the current status of the certificate pictured above.
On MalwareBazaar, you can view the signature on the main page of the file analysis in the "Code Signing Certificate" section. Unlike VirusTotal, MalwareBazaar does not display the current status of the certificate. They do not display certificates that are Invalid.
MalwarerBazaar relies on ReversingLabs A100 to extract information regarding the certificate. A newly submitted file may take a few minutes for the certicate to display on the page.
Identify the organization that signed this file on MalwareBazaar.
When a file is signed, the signature can be in one of four states: Valid, Invalid, Not Time-Valid, or Revoked.
Below are the components of a certificate. These components are important to understand when identifying malicious certificates and reporting them.
Multiple indicators can help identify a malicious code-signing certificate. The most common indicators are:
Not all cases are easily identified. Some malware may have a low detection score on VirusTotal and may require manual malware analysis and an investigation to identify the malicious indicators.
In one recent instance, we identified a software named "PDFSkills" which uploaded user files to their servers, this behavior was in contradition with their stated Terms of Service. Upon further investigation, we found that the code-signing certificate was issued to an organization which could not be found to be associated with the PDFSkills. This inconsistency was further confirmed after the first certificate was revoked and a new certificate was used with a different organiation name. For more details on this example, see this BlueSky post: https://bsky.app/profile/squiblydoo.bsky.social/post/3ldqqqzrhpk26
No. PUP/PUA and Adware are not considered malicious. These programs are often installed with the user's consent. They are not considered malicious because they do not perform malicious behavior. They may be unwanted, but they are not malicious. However, it is important to investigate whether the software is performing malicious behavior. Some malware will install freeware or PUP as a decoy to distract from the malicious behavior. In these cases, the freeware should be reported. In most cases, the code-signing certificate will be consistent with the PUP/PUA. In these instances, the certificate is not considered malicious.
To report code-signing certificates you have a few options.