to follow! ~15 years cyber security consulting work with mostly Federal customers: DoD, Intelligence Community, Civilian Agencies software development systems engineering immersive 3D data visualizations
data-driven analysis. Finding statistical anomalies through data science methods can be more easily achieved through the use of event enrichment. SOC Models > Data Driven Analysis > Event Enrichment > Use Cases //BLUF
model Compute & Storage is expensive SIEM is expensive Security vendors define severity Analysts rarely see the larger picture Use Cases “see” fewest events Alert-Driven: Analysis of individual alerts
man’s treasure! garbage + enrichment = high value events event lifecycle - enrichment layer Analysis extract and tease out the hidden gems within your security events
data driven architecture - the Elastic Stack enrichment prior to indexing is ideal but not necessary see docs for info on 5.0’s scripting (Painless) see docs on reindexing API (for your existing data) see docs for info on 5.0’s ingest nodes
use cases Realize the storage impact on your cluster Be aware of performance implications at logstash tier Smartly apply index mappings within elasticsearch (carefully) Enrich All THE THINGS!
} "geoip" => { "country_name" => "United States", "location" => [ [0] -77.4875, [1] 39.0437 ] } resulting document geoip.location is a GeoJSON field that maps to geo_point datatype in Elasticsearch see docs for info Logstash filter (optimized) enrichment - GEOIP using Logstash
ccTLDs (country code) .us .uk .ru .cn .jp .it Up until 2012, there used to be relatively few TLDs IANA later opened up registration for new public and privately sponsored TLDs… enrichment - TLD extraction history
"trd" => "artifacts", "domain" => "elastic.co", "subdomain" => "artifacts.elastic.co" } tld { source => "message" } Logstash filter resulting document defaults are ok, but we can trim out the subdomain the URI.host (tld.subdomain) is probably a duplicate enrichment - TLD extraction using Logstash ./logstash-plugin install logstash-filter-tld logstash-filter-tld : publicsuffix_ruby : Mozilla’s Public Suffix List
"trd" => "artifacts", "domain" => "elastic.co" } tld { source => "message" remove_field => "[tld][subdomain]" } Logstash filter (optimized) resulting document enrichment - TLD extraction using Logstash now that we have TLD strings, what can we do with them?
product of the probability of each value, times the base-2 log of that probability” Claude Shannon (1948) the information content of a message more information content > more bits > higher entropy calculating a float value based on a string values typically range from 1.0 - 6.0+ enrichment - string entropy theory
abcdefghijklmnopqrstuvwxzy ABCDEFGHIJKLMNOPQRSTUVWXYZ => 6.165420190467044 1234567890 !@#$%^&*() string length does not yield higher entropy character diversity does yield higher entropy enrichment - string entropy examples most use cases do not require high numerical resolution see docs regarding scaled_float with a scaling_factor
million records SF-86s, clearance information, financials fingerprints of 5.6 million people NASA breach: 250 GB of data released on pastebin allegedly partially commandeered a $222.7 million NASA drone
enriched fields use visualizations to identify potential anomalies use standard deviation to find statistically significant events reduce false-positives (noise) drive-by malware / browser exploitation DNS tunneling Command and Control (C2) communication data exfiltration Methods (how we’ll find the bad stuff): Use Cases (what we’re looking for):
=> 5.09 www.badguy.com/1zaGExLGRpZmZpZS1oZWxsbWFuLWdyb3VwMS1zaGExuY29tLGVjZHNhLXNo => 5.00 www.badguy.com/9wZW5zc2guY29tLHNzaC1yc2EtY2Vc3NoLXJzYS1jZXJ0LXYwMUBvcGVuct => 5.00 example of C2 data exfil web traffic traffic has high entropy traffic has high length country may be foreign sum of bytes_out may be high ports / protocols may not be standard detect by aggregating on average entropy or average length
enrichment to add value to data sources: • GEOIP (mainly for the country names) • TLD extraction on domain fields • String length on significant fields • String entropy on significant fields Use data-driven analysis: • Visualize using Histograms, Charts, Graphs • Use average values (length, entropy) • Use moving standard deviation • Focus on the bottom-talkers (20%)
Creative Commons and the double C in a circle are registered trademarks of Creative Commons in the United States and other countries. Third party marks and brands are the property of their respective holders.