Signatures & Fingerprints
Malware Fingerprinting
Malware fingerprinting is done by creating a unique identifier for the malware sample. Typically done with a hash (MD5, SHA1, or SHA256).
Fingerprinting is employed for numerous purposes, encompassing:
Identification and tracking of malware samples
Scanning an entire system for the presence of identical malware
Confirmation of previous encounters and analyses of the same malware
Sharing with stakeholders as IoC (Indicators of Compromise) or as part of threat intelligence reports
Linux
Powershell
Verify Fingerprint
We can search the hash in a file analysis tool like VirusTotal to verify the signature.
Import Hashing (IMHASH)
Import hashing is done by converting all windows import DLL's to lowercase and hashing the values. The dll's are fused together alphabetically and a MD5 sum is generated from the string.
Fuzzy Hashing (SSDEEP)
Fuzzy Hashing , also referred to as context-triggered piecewise hashing (CTPH) dissects a file into smaller, fixed-size blocks and calculates a hash for each block. The resulting hash values are then consolidated to generate the final fuzzy hash.
The ssdeep command can be used to calculate the Fuzzy Hash of a PE.
Section Hashing
Section Hashing (hashing PE sections) is a powerful technique that allows analysts to identify sections of a PE that have been modified. A common tactic by attackers it to slightly modify the code, applying section hashing makes it harder to evade.
String Analysis
Extracting strings from a binary can also be an effective method of signaturing a sample. Strings include:
Embedded filenames (e.g., dropped files)
IP addresses or domain names
Registry paths or keys
Windows API functions
Command-line arguments
Unique information that might hint at a particular threat actor
Extract strings from a binary:
There are many tools to perform this.
Last updated