This work is licensed under a Creative Commons license
Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)
You are free to:
Under the following terms:
Introduction To Cybersecurity
Malicious Software
Simone Aonzo, Ph.D.
Reverse Engineering Malware
Simone Aonzo, Ph.D.
☣️ Malicious Software ☣️
Both IntroSec and RevMal courses share this common part… 😅
Then they then diverge:
MALicious softWARE
How does malware get onto computer devices?
Malware Types (infection mechanism)
Malware Types (1/2)
Malware Types (2/2)
Malware Behavior Catalog (MBC)
The MBC is a taxonomy that describes what malware does, enabling consistent behavioral analysis, labeling, and comparison across samples and tools
Short History
Short History (the origins)
Old Hacker School
Short History (the origins)
Old Hacker School
Short History (the origins)
Old Hacker School
Short History (the origins)
Old Hacker School
Short History (the 90’s)
Virus Golden Age
Short History (the new millennium)
Worms
Short History (the new millennium)
Worms
Short History (the new millennium)
Cyber-Crime
Worms
Short History (2010-15)
State-Sponsored
Short History (today)
Diversification
1981 - Virus
1990 - Malware
2000
2010
1981 - Virus
1990 - Malware
2000
AV industry
2010
Worms
2000
1981 - Virus
1990 - Malware
Targeted �State-Sponsored
2010
Cybercrime
Mobile/IoT
Families and Campaigns
Malware family and campaign
Family
Campaign
Often the family name coincides with the name of the campaign in which it is used
Malware family and campaign – NotPetya
NotPetya was a high-profile malware family and campaign that occurred in 2017
Malware family and campaign – Zeus and Avalanche
Malware family – Emotet
Emotet is a well-known malware family that emerged in 2014
VirusTotal aggregates many antivirus engines
Who gives the family names?
Security companies name the families
TeslaCrypt
Analysis / Detection / Classification
Analysis
Program Analysis
Program Analysis
Binary�Analysis
Program Analysis
Binary�Analysis
Malware�Analysis
“How to analyze a �program that does not �want to be analyzed”�
Indicators of Compromise (IoCs)
Observable artifacts that indicate a system may have been compromised
Often fragile, i.e., easily changed by attackers
Analysis produces IoCs →
classification uses them to make decisions
Classification
“If malware analysis is about extracting data, classification �is about taking decisions �based on that data”�
Detection
“How to detect known or unknown samples, in ~realtime and with�only partial control of the�environment”�
Malware Analysis
Malware Analysis - (My) Definition
“Program analysis of a software that does not want to be analyzed”
does not want to be analyzed ⇔ adversarial context
Goals of malware analysis
Software Reverse Engineering (SRE)
How can you study the code without having the source code?
Binary Analysis (BA) ⇆ SRE
Classification
[Binary classification] Benign or Malicious?
[Family classification] �If malicious, what other samples behave like it?
Classification
[Binary classification] Benign or Malicious?
[Family classification] �If malicious, what other samples behave like it?
?
Classification
Automated Binary Analysis
[Binary classification] Benign or Malicious?
[Family classification] �If malicious, what other samples behave like it?
Precise� Unbiased
Precise� Unbiased
Scalable
Is it known ??
yes
no
Is it known ??
The vast majority of files are Singleton�Malware use polymorphism to randomize its appearance
yes
no
Is it known ??
yes
no
Does it match a�known signature?
Is it known ??
yes
no
Current static AV signatures are very imprecise.�But this has more to do with Malware detection, and that is another story...
Does it match a�known signature?
Is it known ??
Extract its �behavior
Does it match a�known signature?
yes
no
Is it known ??
Does it match a�known signature?
Is it known ??
Static Analysis
Does it match a�known signature?
Is it known ??
Static Analysis
Malware code is highly obfuscated, encrypted, �self-modifying, dynamically generated, ...
Does it match a�known signature?
Is it known ??
Malware Analysis Sandbox
Does it match a�known signature?
Is it known ??
Malware Analysis Sandbox
Malware is like a Volkswagen: if it knows it is under test, it fakes the results
Does it match a�known signature?
Is it known ??
Malware Analysis Sandbox
Malware is like a Volkswagen: if it knows it is under test, it fakes the results
We can only run programs for �a limited time. Evasion can be as �simple as waiting 5 minutes.
Does it match a�known signature?
What if the malware works only �when the user visits Facebook ?
Is it known ??
Malware Analysis Sandbox
Classifier
Does it match a�known signature?
Is it known ??
Malware Analysis Sandbox
Classifier
Does it match a�known signature?
Lack of a Malware definition, beyond�the “I know when I see it”
No tolerance for False Positives
Adversarial environment�Very noisy data
Is it known ??
good
Malware Analysis Sandbox
Classifier
Clustering
bad
Does it match a�known signature?
Trojan X
Ransomware Y
Is it known ??
good
Malware Analysis Sandbox
Classifier
Clustering
bad
Does it match a�known signature?
This was just one sample!!!
~450k–560k new malware samples are detected each day, contributing to over 1 billion known unique malware binaries (~20-30 years)
E.g., equation Group (APT-C-40) Sample��(analyzed 23 months before it was “discovered”)
A very complex problem