"securing ecommerce with data metrics". corey benninger, etsy

83

Upload: yandex

Post on 27-Jan-2015

110 views

Category:

Technology


2 download

DESCRIPTION

While the need for application logging and proper forensics information has been important after a security incident, it is not frequently used in proactive security. This talk will explore the ways that application logging, data, and metrics can be taken advantage of to create effective defenses for web applications. We query Hadoop for actual threshold numbers used for detecting attacks, proactively monitor for phishing attacks based on our own web server logs, respond in real-time to cross-site scripting attacks by hooking JavaScript methods, among other security countermeasures mined from big data. This presentation will help you build new defense strategies for your applications based on the data you are able to collect.

TRANSCRIPT

Page 1: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy
Page 2: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Securing eCommerce with Data Metrics

Corey Benninger

Page 3: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Founded in 2005, Etsy is an e-commerce website focused on handmade and vintage items, as well as art and craft supplies.

Page 4: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy
Page 5: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Continuous Deployment

Average 35 deploys to production a day About 10,000 lines of code a day

Page 6: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Corey Benninger Senior Software Security Engineer @0xb3nn

Page 7: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

https://www.etsy.com/listing/92868829/the-oh-my-orange-elephant-designer-wall

Overview

Collecting Metrics Viewing Metrics Taking Action Case Studies

Page 8: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

First, a thesis

Page 9: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

The security posture of your application is directly

proportional to how much you know about your

application.

Page 10: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

https://www.etsy.com/listing/96459220/stick-your-head-in-the-sand-pen-ink

Looks fine from here

Page 11: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Data Collection

Page 12: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Application Stats

Page 13: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

https://github.com/etsy/statsd

Page 14: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

if (preg_match(self::PATTERNXSS, $this->url) == true) { $msg = “attacktype=XSS url=” . $this->url; Logger::log_info($msg, ‘SECURITY’); StatsD::increment(‘security.potential_xss’); if (!$this->rate->checkIncrement(self::XSS_WEIGHT)) { $this->drop_request = true; } }

StatsD

Page 15: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

We <3 Graphs

Page 16: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

https://github.com/etsy/dashboard

Page 17: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy
Page 18: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Is this normal?

Page 19: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Is this normal?

Page 20: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy
Page 21: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy
Page 22: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Smoothing Data

Page 23: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Get Historical

Page 24: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Log Analysis

Page 25: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

https://www.etsy.com/listing/130330032/all-the-things-internet-meme-embroidered

Log all the things

Page 26: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Event logs Visit logs Error logs Mail logs API logs

Search logs DNS logs...

Page 27: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Splunk

Page 28: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy
Page 29: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy
Page 30: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy
Page 31: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy
Page 32: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Databases

Page 33: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

https://www.etsy.com/listing/128620213/vintage-happiness-is-a-humongousl

Databases Relational (row) database Columnar (column) database MapReduce (clustered data processing)

Page 34: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Awesome Data Team

Page 35: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

160 nodes 3840 cores

15 TB of RAM 960 TB storage

Page 36: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

!   Ad-hoc analysis of a large dataset

!   Needs to be fast (or scalable)

!   Might not do it more than once (for a data set)

Page 37: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Why: Analytics

Page 38: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

SuperBIT

Page 39: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy
Page 40: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Case Studies

Page 41: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Full Site SSL resource cost

Page 42: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Goal

Full-site SSL for all Etsy sellers

Page 43: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Opt In

Page 44: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

analytics_cascade do analytics_flow do analytics_source 'event_logs' tap_db_snapshot 'users_index' assembly 'event_logs' do group_by 'user_id', 'scheme' do count 'value' end end assembly 'users_index' do project 'user_id', 'is_seller' end assembly 'ssl_traffic' do project 'user_id', 'is_seller', 'scheme', 'value' group_by 'is_seller', 'scheme' do count 'value' end end analytics_sink 'ssl_traffic' end end

Page 45: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy
Page 46: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Incident Response for web attacks

Page 47: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

https://www.etsy.com/listing/152084181/boba-fett-the-good-the-bad-and-the

Finding Vulns

Bug Bounty Program Launched Sept 2012 Reward: $500 - $2000

Page 48: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Needle in a haystack

Page 49: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

•  URL Patterns

•  IP Addresses

Simple Patterns

Page 50: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

analytics_cascade do analytics_flow do analytics_source 'access_logs'   assembly 'incident_response' do query_event 'timestamp', 'request_uri', 'useragent', 'ip' where '"/bad_url.php'".equals(request_uri:string) group_by ’url’ do count 'value' end end analytics_sink 'incident_response' end end

Page 51: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

When to Alert setting thresholds

Page 52: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy
Page 53: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy
Page 54: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy
Page 55: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy
Page 56: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

•  Per time period, count password resets

•  Sort the amounts

•  Discard outliers

•  Average remaining

•  Compare with past known attacks

Big Data Answer

Page 57: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Collusion Fraud

Page 58: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

The Price is Wrong?

Page 59: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Overpaid

Page 60: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Analysis Check for meta-data Exact hash and fuzzy hashing Analysis of key properties (shadows, patterns, shading...)

Page 61: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Grow Stronger

Detection is timely (hashing ~1ms) Each new data point helps for analysis

Page 62: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Phishing Attack reactive to proactive

Page 63: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Not Etsy

Page 64: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Reactive

Page 65: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

source=”access_logs” client_ip=10.163.2.3 | transaction request_uri

Incident Response

Page 66: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Normal

Page 67: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Proactive

Page 68: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Scanners low hanging fruit

Page 69: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Bad Deploy?

Page 70: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy
Page 71: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

https://www.etsy.com/listing/162962424/robot-dress-up-costume

Block Only Bad Bots

Allow legitimate users (including API requests) Allow search engines Allow our own scans

Page 72: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Asimov?

Page 73: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Bad Bots

Page 74: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Bad Bots

Page 75: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

False Positives

Page 76: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

https://www.etsy.com/listing/159148839/robot-card-trust-no-one

Bad Bots

Disobey 404 Time Announce

Page 77: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Detection Nick Galbreath at DefCon 20 “LibInjection” for detecting SQLi Does it parse as SQL? Yes, then it’s SQL Do you have “.aspx” files? No, then why is someone requesting one?

Page 78: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

if (preg_match(self::PATTERNXSS, $this->url) == true) { $msg = “attacktype=XSS url=” . $this->url; Logger::log_info($msg, ‘SECURITY’); StatsD::increment(‘security.potential_xss’); if (!$this->rate->checkIncrement(self::XSS_WEIGHT)) { $this->drop_request = true; } }

Log and Limit

Page 79: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

439 - Not Handmade

Page 80: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Check the Graphs

Page 81: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Conclusions

Page 82: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

!   Instrument your application, log everything

!   Get familiar with data resources: people and tools

!   Use your data to help drive security alerts, investigations, and actions

Page 83: "Securing eCommerce with Data Metrics". Corey Benninger, Etsy

Thanks! http://codeascraft.com