Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I...

74
Remixing Threat-Intelligence to Find Threats Sebastien Tricaud Devo Inc. March 19 2020

Transcript of Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I...

Page 1: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Remixing Threat-Intelligence to Find Threats

Sebastien TricaudDevo Inc.

March 19 2020

Page 2: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

What to do with Known Attacks?

Page 3: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Weiner’s Law of Libraries

There are no answers, only cross-references.

Page 4: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

What do we do with a known attack?

Page 5: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Anti-virus signature

Page 6: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Suricata Rule

Page 7: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Proxy block list

Page 8: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Anti-spam RBL

Page 9: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Yara Rule

Page 10: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

DNS Black-hole

Page 11: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Zeek Rule

Page 12: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

SIEM search pattern

Page 13: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)
Page 14: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Lessons Learned from Firewalls

DROP is the default Policy.

Page 15: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

With Data, ACCEPT is the default Policy

Problem with Threat Intel

Describes what is bad.

Page 16: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Threat Intelligence automation 101

To use all your data, you must have all your data in your SIEM.

1. Push to your SIEM, SOAR

2. Find something (hash, host, url, filename etc.) bad

3. SIEM alerts from matches

Page 17: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

People struggle with that and shout VICTORY when matchesoccur then cannot deal with the amount of alerts and lack of

context.

Page 18: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Pyramid of Pain1

I Read it from an attackerpoint of view

I Higher means moreresources for the attacker

I A lot of people are sharingthis Diagram as a great wayto explain attack complexity

1Credited to David J. Bianco

Page 19: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Perception vs Reality

Hash Values, Trivial?I Pyramid of Pain View

I Highest Confidence IndicatorsI Trivial to ChangeI Least useful Indicators

Page 20: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Highest Confidence Indicators

I MD5 is not trust worthy, see PoC‖GTFO 142

I SHA1 on MD5 footsteps

2Also check https://github.com/corkami/collisions

Page 21: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Trivial to Change

Sign a malware against a Microsoft Certificate. Possible? Yes.Trivial? not at all.

Page 22: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Perception vs Reality

Domain Names, Easy?I Pyramid of Pain View

I Easy to changeI Could require some updates

Page 23: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Easy to Change

I Fast-Flux is trivial to detect, hence making it hard to stick adomain to a pool of IP addresses

I DGA algorithms can be discovered, reversed (and subject tovulns ;-))

I The update process could be a mean to be detected

I WannaCry kill switches have not been changed and thus killedthe malware spread

Page 24: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Perception vs Reality

TTPs, Tough?I Pyramid of Pain View

I The Attacker MethodI Hard to Change an Attack Method

Page 25: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Hard to Change an Attack Method

I MITRE maps TTPs in the ATT&CK Framework

I https://attack.mitre.org/matrices/enterprise/

Page 26: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Tactics, Techniques and Procedures (TTPs) categorized byMITRE ATT&CK Framework

From MISP Statistics over 1 year

Page 27: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Top 6 Sighted TTPs

Tough to change, really?

I Spearphishing Attachment

I Spearphishing Link

I Scripting

I Obfuscated Files or Information

I Standard Application Layer Protocol

I Exfiltration Over C&C Channel

Page 28: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Lessons Learned from Firewalls

If we drop web traffic now, we drop everything.

DROP Web Traffic?

Page 29: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Upside down funnel3

Funnel of FoolsPerception

Attacks Detected

Reality

Attacks Not Detected

I Attacks can last for years

I Incident Responder struggles to Investigate

I There are much more unnoticed attacks than alerts tell

I Challenging to cope with Unknown Attacks

3Use it as you wish, you do not need to credit me for this

Page 30: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Upside down funnel3

Funnel of FoolsPerception

Attacks Detected

Reality

Attacks Not Detected

I Attacks can last for years

I Incident Responder struggles to Investigate

I There are much more unnoticed attacks than alerts tell

I Challenging to cope with Unknown Attacks

3Use it as you wish, you do not need to credit me for this

Page 31: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

This is all your Data

Page 32: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

This what you know about your Data

Page 33: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

This what others know about your Data

Page 34: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Global Picture

Page 35: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Handling Unknown Attacks

Page 36: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

“Unknown Attack” has been stiffed by poor marketing speeches.Let us apply a methodology.

Page 37: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Nobody Knows

I Machine Learning?=⇒ Learning from

uncertainty? Slow results

I Investigate?=⇒ Bet on luck? Slow

results

Page 38: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Nobody Knows

I Machine Learning?=⇒ Learning from

uncertainty? Slow results

I Investigate?=⇒ Bet on luck? Slow

results

Page 39: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

One week analyzing proxy logs URLs with million users

We use faup4 to parse URLs.

echo "http://root:[email protected]:80/client32.dll?GetAd=&PG=IM23&AP=321#foo"

| faup -o json

{

"scheme": "http",

"credential": "root:admin",

"subdomain": "",

"domain": "example.com",

"domain_without_tld": "example",

"host": "example.com",

"tld": "com",

"port": "80",

"resource_path": "/myclient32.dll",

"query_string": "?GetAd=&PG=IM23&AP=321",

"fragment": "#foo",

"url_type": "mozilla_tld"

}

4https://github.com/stricaud/faup

Page 40: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Time Frame

From 2011-08-04 21:00:00To 2011-08-05 14:05:54

Page 41: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

9.7Gb Total file size

22 843587

Total number of events

64 193 Unique domains

28 520 Subdomains and TLDs removed

Reduction of 80%

Page 42: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Faup with Snapshots

Page 43: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Creating a snapshot with faup

$ cat test.snapshot

www.cansecwest.com

www.cansecwest.com

https://packetstormsecurity.com

$ faup -q -s test test.snapshot

Page 44: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Checking a domain from that snapshot

$ faup $ snapshot get test domain cansecwest.com

{"value": "cansecwest.com", "count": 2, \

"first seen": "2020-03-18 10:16:59 -0700", \

"last seen": "2020-03-18 10:16:59 -0700"}

Page 45: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Automating Whitelisting 1/2

Create a Snapshot

Take one month of your URLs

I We know there is bad stuff in there

I We assume it is all good

I We can always investigate later

Page 46: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Automating Whitelisting 2/2

Compare your snapshot

Focus on new URLs, compare

I Malware generally do not persist over time

I Focus on newness

Page 47: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

This is Sightings

{"value": "cansecwest.com", "count": 2, \

"first seen": "2020-03-18 10:16:59 -0700", \

"last seen": "2020-03-18 10:16:59 -0700"}

Page 48: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Sightings

Sightings is the art of moving Threat Intel from what is bad towhen is observed.

Page 49: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Who is standardizing Sightings?

I The MISP ProjectI https:

//www.misp-standard.org/rfc/sightingdb-format.txt

I ATT&CKI https://attack.mitre.org/resources/sightings/

I OASIS STIX v2I https://oasis-open.github.io/cti-documentation/

stix/intro.htmlI https://docs.google.com/document/d/1IvkLxg_

tCnICsatu2lyxKmWmh1gY2h8HUNssKIE-UIA/

Page 50: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Interesting constraints in OASIS STIX v2

A Sightings value can only count up to 999,999,999.

From the JSON Standard:

numbers that are integers and are in the

range [-(2**53)+1, (2**53)-1] are interoperable

in the sense that implementations will agree

exactly on their numeric values

>>> 2**53-1

9007199254740991

Page 51: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Interesting constraints in OASIS STIX v2

A Sightings value can only count up to 999,999,999.

From the JSON Standard:

numbers that are integers and are in the

range [-(2**53)+1, (2**53)-1] are interoperable

in the sense that implementations will agree

exactly on their numeric values

>>> 2**53-1

9007199254740991

Page 52: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Introducing SightingDB 0.2!

CanSecWest 2020 release!

https://github.com/stricaud/sightingdb/

A Scalable Sighting Database, hybrid in-memory/on-disc whosegoal is to provide an easy to use way to count attributes.

Page 53: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Introducing SightingDB 0.2!

CanSecWest 2020 release!

https://github.com/stricaud/sightingdb/

A Scalable Sighting Database, hybrid in-memory/on-disc whosegoal is to provide an easy to use way to count attributes.

Page 54: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Design

I Modeled after Zookeeper for its key-value store capability:I a key is a namespace, such as “foo/bar” where “bar” is a child

of “foo”.I it allows to create as many placeholders as anyone dreamI a value is simply a string

Page 55: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Why not Redis?

I Redis is not tailored for our very specific use-case

I Incrementing a value (INCR) in Redis is atomic

I Atomic means a lock on the key for writing, preventingmultiple threads / resources to increment at the same time

Page 56: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

REST API: Write

$ curl -k https://localhost:9999/w/foo/bar/?val=hello

{"message":"ok"}

Page 57: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

REST API: Read

$ curl -k https://localhost:9999/r/foo/bar/?val=hello

{"value":"hello","first_seen":1581627580,

"last_seen":1581627580,"count":1,"tags":"",

"ttl":0}

Page 58: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Key being a namespace, powerful.

I Want to be compatible with ATT&CK?/direct-software-sighting/JCry

I Want to store relationships with a particular IP in the financeBU? /finance/8.8.8.8/

I Want to store a url? /url/

I Want to store the url for all TLD in ch? /url/tld/ca/

I Want to store the ch TLD related URLs to find them faster?/ca/tld/url/

I Want to see how many times somebody searched for the valuehttps://www.cansecwest.com from /url/? ShadowSightings!

Page 59: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Key being a namespace, powerful.

I Want to be compatible with ATT&CK?/direct-software-sighting/JCry

I Want to store relationships with a particular IP in the financeBU? /finance/8.8.8.8/

I Want to store a url? /url/

I Want to store the url for all TLD in ch? /url/tld/ca/

I Want to store the ch TLD related URLs to find them faster?/ca/tld/url/

I Want to see how many times somebody searched for the valuehttps://www.cansecwest.com from /url/? ShadowSightings!

Page 60: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Key being a namespace, powerful.

I Want to be compatible with ATT&CK?/direct-software-sighting/JCry

I Want to store relationships with a particular IP in the financeBU? /finance/8.8.8.8/

I Want to store a url? /url/

I Want to store the url for all TLD in ch? /url/tld/ca/

I Want to store the ch TLD related URLs to find them faster?/ca/tld/url/

I Want to see how many times somebody searched for the valuehttps://www.cansecwest.com from /url/? ShadowSightings!

Page 61: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Key being a namespace, powerful.

I Want to be compatible with ATT&CK?/direct-software-sighting/JCry

I Want to store relationships with a particular IP in the financeBU? /finance/8.8.8.8/

I Want to store a url? /url/

I Want to store the url for all TLD in ch? /url/tld/ca/

I Want to store the ch TLD related URLs to find them faster?/ca/tld/url/

I Want to see how many times somebody searched for the valuehttps://www.cansecwest.com from /url/? ShadowSightings!

Page 62: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Key being a namespace, powerful.

I Want to be compatible with ATT&CK?/direct-software-sighting/JCry

I Want to store relationships with a particular IP in the financeBU? /finance/8.8.8.8/

I Want to store a url? /url/

I Want to store the url for all TLD in ch? /url/tld/ca/

I Want to store the ch TLD related URLs to find them faster?/ca/tld/url/

I Want to see how many times somebody searched for the valuehttps://www.cansecwest.com from /url/? ShadowSightings!

Page 63: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Key being a namespace, powerful.

I Want to be compatible with ATT&CK?/direct-software-sighting/JCry

I Want to store relationships with a particular IP in the financeBU? /finance/8.8.8.8/

I Want to store a url? /url/

I Want to store the url for all TLD in ch? /url/tld/ca/

I Want to store the ch TLD related URLs to find them faster?/ca/tld/url/

I Want to see how many times somebody searched for the valuehttps://www.cansecwest.com from /url/? ShadowSightings!

Page 64: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Shadow Sightings

I When we read, we write!

I How many time did somebody searched for a value in anamespace?

I SightingDB stores automatically into / shadow/

I SightingDB also stores recursive access

Page 65: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Shadow Sightings

I When we read, we write!

I How many time did somebody searched for a value in anamespace?

I SightingDB stores automatically into / shadow/

I SightingDB also stores recursive access

Page 66: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Sightings on our proxy dataset

$ curl -k https://localhost:9999/r/cansec/proxy?val=www.cansecwest.com

{"error":"Value not found","path":"cansec/proxy","value":"www.cansecwest.com"}

$ curl -k https://localhost:9999/r/_shadow/cansec/proxy?val=www.cansecwest.com

{"value":"www.cansecwest.com","first_seen":1584581469,

"last_seen":1584581487,"count":1,"tags":"","ttl":0}

Page 67: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Shadow Sightings

Leading indicator: someone has searched, not the detection

Page 68: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Top 3 Sightings matches

Domain Countwww.google.com 1208671

www.google-analytics.com 890044au.download.windowsupdate.com 435872

≈ 11% of total events

Page 69: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

How many had only a single access?

22 843587

Total number of events

3609 Single Access URLs

1706 Domains without TLD

Not much data to look at.

Page 70: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Indicators of Trust

Page 71: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Mirror Approach

Reuse the principle of DROP policy established in Firewalling

I Instead of Sharing Bad Stuff to look at, Share Good Stuff

I MISP tag=”svc:trust-domain=”cansecwest.com””

I Use the Path in SightingDB: svc/trust-domain/ for domains

Page 72: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Benefits

I You can process all the data, making life harder to theattacker

I The more data, the better Sightings are

I Enable a community to influence credibility

I Lower the amount of unknown to everyone data

I Work on things you care about on your data: unique, new etc.

Page 73: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Want to join the community? CanSecWest is Trustworthy, emailme and let’s get started!

Page 74: Remixing Threat-Intelligence to Find Threatstrust.fyi/stricaud-cansec2020.pdf · Why not Redis? I Redis is not tailored for our very speci c use-case I Incrementing a value (INCR)

Thank You!

[email protected]@tricaud