36
Modeling Systemic Dependencies through Attack Surface Analysis Eric Osterweil Danny McPherson Lixia Zhang

Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

Modeling Systemic Dependencies through Attack Surface Analysis!

Eric Osterweil!Danny McPherson!Lixia Zhang!

Page 2: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

2 !Verisign Public !

•  Well, do we know what our Internet services rely on? !•  Are their foundations secure and reliable? !

•  We’ve become very good at using the Internet to make our lives easier!•  I can use one tweet to tell 50 million people that I just spilled

my coffee on Emma Stone at Starbucks!

•  Our Internet services depend on networked systems, they are becoming increasingly layered and complex!

•  Ultimately, what are we paying for these conveniences?!

What’s so important about systemic dependencies and attack surfaces?!

Page 3: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

3 !Verisign Public !

What networked systems do I need to tweet to 50 million followers?!

Tweet

Desktop PC

Desktop PC

Desktop PC

Just splld coffee on @EmmaStonë #fail!

Page 4: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

4 !Verisign Public !

•  What is the relationship between dependent systems?!•  We aim to map out what we gain, and what do we pay!

•  But the application is so much broader: what systems do national critical infrastructures rely on?!•  DNS resolution for the Estonian government? Routing for

Cairo? Cross modal threats from China? SCADA systems?!

•  Our engineering precepts tell us to build systems on top of other systems!•  But, does it make us more vulnerable to attacks, failures, etc.?!

•  Is there a difference between vulnerability and availability?!

Systemic Dependencies!

Page 5: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

5 !Verisign Public !

•  Lots of ways to describe vulnerabilities, taxonomize attack vectors, etc.!

•  We can’t always enumerate all of the attacks a priori!•  They’re often only discovered reactively!

•  We turn to attack surface ::= what could feasibly be used to attack a system’s correct operation!•  If I keep my attack surface small, I reduce my exposure!•  Quantifying targets and their values are different problems!•  But, a quantifiable definition is elusive!

•  We will quantify the attack surface of HTTPS using X.509 CA verification and compare it to HTTPS+DANE!

Measuring Vulnerability!

Page 6: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

6 !Verisign Public !

•  X.509 CA verification and DANE verification!•  Attack surface methodology!•  Measuring the Alexa top 1,000!•  Discussion and future work!

Outline!

Page 7: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

7 !Verisign Public !

!!•  Protocols like Transport Layer Security (TLS) need to

be bootstrapped by cryptographic keys!•  Servers offer certificates and clients must verify authenticity!

•  CA verification uses a set of globally trusted authorities who can each vouch for any certificate’s authenticity!•  Certificates represent previous verification: contain signatures

from CAs, and point to revocation points for status checks!

Certificatation Authority (CA) Verification!

CA List

DNSSEC

root

example.com

.com

1 - Resolvinghttps://www.example.com

Web Server

2 - DNSresponse

3 - HTTPS

Client

OCSPservers

CRLservers

4 - CheckCert

CheckCA Rev

CheckCA Rev

Page 8: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

8 !Verisign Public !

•  The systemic dependencies are:!•  We first need to resolve its domain name (i.e. use DNS)!•  Next we connect to a webserver that we found from DNS!•  Then we pull an X.509 certificate down from that webserver!•  With that, we use a list of pre-bundled CA certificates that we

have pre-configured to verify the webserver’s certificate!•  Then we check to make sure the certificate was not revoked

since being issued!•  Finally, we exchange a TLS session key with the webserver,

and start our online experience!•  During this process, the attack surface includes any

resource that could feasibly enable an attack!•  Possibly, a DNS secondary could give us a bogus answer that

directed us to a malicious web site, or DigiNotar could have verified a bogus certificate, etc.!

So, when we go to Facebook…!

Page 9: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

9 !Verisign Public !

•  DNS-Based Authentication of Named Entities (DANE)!•  IETF working group, and standards track RFC for TLS!

•  Observation: since even CA verification is frontloaded by DNS, why not do verification there too?!•  Rather than the multi-rooted X.509 hierarchies, DANE uses

DNSSEC for verification!•  DNS zones have TLSA record(s) that uniquely

authorize cert used by web servers!

DANE verification process!

DNSSEC

root

example.com

.com

1 - Resolvinghttps://www.example.com

Web Server

2 - DNSresponse

3 - HTTPS

Client

Page 10: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

10 !Verisign Public !

•  Qualitatively, a picture is worth 1,000 words: we can see that the attack surface is reduced!

•  By cutting out our CA check and revocation checks, we removed a lot of moving parts!

Look at what we just cut out…!

CA List

DNSSEC

root

example.com

.com

1 - Resolvinghttps://www.example.com

Web Server

2 - DNSresponse

3 - HTTPS

Client

OCSPservers

CRLservers

4 - CheckCert

CheckCA Rev

CheckCA Rev

DNSSEC

root

example.com

.com

1 - Resolvinghttps://www.example.com

Web Server

2 - DNSresponse

3 - HTTPS

Client

Page 11: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

11 !Verisign Public !

•  Qualitatively, we can see that DANE’s attack surface is smaller, but…!•  Talk is cheap, how can we quantify it?!

•  We use the measure of systems’ systemic dependencies to quantify their attack surfaces!•  Added complexity and moving parts, increases attack surface!•  If a system needs n resources for ``correct operation,’’ and its

complexity increases this to n+m, its attack surface is greater!•  But, we need a way to systematically decompose systems into

the resources they need…!

•  Our methodology starts by identifying the logical procedural steps (processes) needed in Functional Process Digraphs (FPDs)!

•  Then, we map each process to the resources it needs, and those resources are the actual attack surface!

Attack Surface Methodology!

Page 12: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

12 !Verisign Public !

•  Identifying all of the resources needed by networked systems can be non-trivial!

•  To identify what resources a networked system uses, we start by identifying the logical processes it uses!

•  FPDs are a way to codify networked systems!•  Every logical step/procedure becomes a process in the FPD!

•  Then, we look deeper at each process node and decompose it into a high-level workflow!•  Workflows don’t fully

describe all of the processes’ inner-workings, but focuson how they access resources!

Functional Process Digraphs (FPDs)!

CA List

DNSSEC

root

example.com

.com

1 - Resolvinghttps://www.example.com

Web Server

2 - DNSresponse

3 - HTTPS

Client

OCSPservers

CRLservers

4 - CheckCert

CheckCA Rev

CheckCA Rev

Page 13: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

13 !Verisign Public !

•  Imagine a networked system that first required (say) a domain name resolution, and then connected to a remote system to search for a file!

•  Below we might see the DNS process checking and processing, followed by a server process searching for a file!

!

•  In creating an FPD, we must avoid the temptation to recursively codify processes the invoke processes beyond the semantic scope the networked system!

•  For example, it may not be semantically useful to identify the process of electrons interacting with copper atoms!

Example FPD!

Decision

processYes

No

processDecision

process

process

process

Stop

Stop

Start

Start

Page 14: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

14 !Verisign Public !

CA List

DNSSEC

root

example.com

.com

1 - Resolvinghttps://www.example.com

Web Server

2 - DNSresponse

3 - HTTPS

Client

OCSPservers

CRLservers

4 - CheckCert

CheckCA Rev

CheckCA Rev

CA verification FPDCA!

Start

Use poDNS

DNSSEC

Use DNSSEC

object security

Download cert

Check ANY CA verifies

cert

EEcert has

revocation info

Site has DNSSEC

Use poDNS

Use DNSSEC object security

Contact Server(s) for revocation info

Stop

YesNoYes No

No

Yes

DNS Resolution

Connect to web server on port 443

WWW / TCP

Web Server Cert

CAs

OCSP/CRL DNSFootprint

TLSEstablish

session key(s)

OCSP/CRLServer(s)

Note: DNSSEC!is optional!

Page 15: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

15 !Verisign Public !

•  Domain name lookups!•  This could be plain old DNS (poDNS) or DNSSEC!

•  Connection over a network path to a webserver!•  An X.509 certificate (from that webserver)!

•  Could require a chain of certificates!•  The list of CA certificates in the client browser!•  Domain name lookups for each revocation point!

•  CRL domain names and/or OCSP domain names!•  Connection over a network path to a revocation point!•  A TLS session key!

CA verification requires…!

Page 16: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

16 !Verisign Public !

DNSSEC

root

example.com

.com

1 - Resolvinghttps://www.example.com

Web Server

2 - DNSresponse

3 - HTTPS

Client

DANE verification FPDDANE!

Start

Use DNSSEC

object security

Download cert

DNS Resolution

Connect to web server on port 443

WWW / TCP

Stop

Establish session key(s)

TLS

Web Server Cert

Note: DNSSEC!is mandatory!

Page 17: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

17 !Verisign Public !

•  Domain name lookups!•  DANE requires DNSSEC!

•  Connection over a network path to a webserver!•  An X.509 certificate (from that webserver)!•  A TLS session key!

DANE verification requires…!

Page 18: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

18 !Verisign Public !

•  We can visibly see one system’s FPD is different than the other, but this is not quantitatively measurable!•  FPDs help us codify the control flow of networked systems!•  This helps us isolate their decision processes!•  This helps us focus on what resources are used!•  That helps us transform FPDs into resource graphs!•  Finally, these graphs form our attack surfaces!

•  The resources that each process uses inherit the same graphical relationships that they have in the FPD!

•  We chose a candidate set of classification types of resources that processes use!•  Network-Delivery Assurances, Session-Level Security, and

Object-Level Security!

Turning FPDs into something more meaningful!

Page 19: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

19 !Verisign Public !

Network-Delivery Assurances

Object-Level Security

Session-Level Security

DNSResolution

WWW/TCP

WebCert CAs

OCSP/CRL

DNS Footprint

TLS

OCSP/CRLServer(s)

CA Verification’s Attack Surface!

Page 20: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

20 !Verisign Public !

Network-Delivery Assurances

Object-Level Security

Session-Level Security

WWW/TCP

WebCert

TLS

DNSSECResolution SLD

TLDroot

DANE’s Attack Surface!

Page 21: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

21 !Verisign Public !

•  These graphs offer us several novel facilities!•  We can quantify the sizes of each resource node!•  We have a formal dependency/relationship between

fundamentally different types of resources (certs can be related to IP servers)!

•  We can observe resource footprint changes from protocol decisions (re: DNSSEC)!

•  Consider this last point: note that DANE’s requirement of DNSSEC moves the DNS portion of its attack surface out of the Network-Delivery Assurances tier, and into the Object-Level Security tier!•  This is a fundamental change!!•  In DNSSEC, secondary servers cannot successfully lie!!

Modeling resource element graphs!

Page 22: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

22 !Verisign Public !

•  In DNS, zones depend on name servers, and those name servers can depend on other zones!•  This recursive dependency can lead to large graphs!•  The transitive trust graph of the IPv4 and IPv6 name servers

of (for example) internetsociety.org are 119 and 85 nodes, respectively!

•  But, because DANE requires DNSSEC, these graphs are reduced to just the DNSKEYs in the chain of trust!

Transitive trust graph sizes!

Page 23: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

23 !Verisign Public !

•  We crawled the Alexa top 1,000 sites!•  We examined:!

•  How many ran HTTPS on their main site!•  How many ran HTTPS on www.<their-site>!•  How many had different certificates on <their-site> and

www.<their-site>!•  From this, and the certificates we calculated the attack

surface for each of them!•  Then, we calculated what their attack surfaces would

be if:!•  They deployed DNSSEC!•  They deployed DNSSEC + DANE!

Evaluation!

Page 24: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

24 !Verisign Public !

•  The CA verification process requires us to calculate how large the CA set is!

•  However, this is client-vendor specific!

•  We can see that the list size can vary, so we evaluated using Mozilla’s size: 169!

CA list size!

Number of CAs! RP software!169! Mozilla!167! Windows!167! Apple’s iOS 5!92! Apple’s iOS 3!

Page 25: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

25 !Verisign Public !

CA delegation chains!

Page 26: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

26 !Verisign Public !

Revocation details (from CRL/OCSP URIs)!

Page 27: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

27 !Verisign Public !

Network-Delivery Assurances

Object-Level Security

Session-Level Security

DNSResolution

WWW/TCP

WebCert CAs

OCSP/CRL

DNS Footprint

TLS

OCSP/CRLServer(s)

CA Verification’s Attack Surface!

Page 28: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

28 !Verisign Public !

Quantitatively comparing these two systems!

Page 29: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

29 !Verisign Public !

Non-log scale (just DNSSEC and DANE)!

Page 30: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

30 !Verisign Public !

•  Almost no sites in the Alexa top 1,000 had DNSSEC deployed!•  Just deploying DNSSEC reduced attack surfaces by up to a

factor of 102!

•  Deploying DANE reduced attack surfaces by as much as a factor of 103!

DNSSEC (alone) makes a huge difference!

Max! Average! Min! Type!1,104.92! 531.68! 309! Actual measured attack surface!40.42! 17.29! 7! Attack surface if sites deployed DNSSEC!10! 7.38! 7! Attack surface if sites deployed DANE!

Page 31: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

31 !Verisign Public !

•  Attack surface and Availability can be seen as orthogonal concepts!

•  One might add additional servers to their deployment, but does this increase their attack surface?!•  It might: if any of these servers is able to compromise the

correct operation of the system!•  This is why DNSSEC reduces the attack surface over DNS:

secondaries cannot lie!•  Conversely, one might find that higher redundancy

does not add to attack surface if increasing resources is independent of correctness!

Attack surface vs. Availability!

Page 32: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

32 !Verisign Public !

•  FPDs may lend nicely to kill chain-analysis!

•  Disrupting a step in an FPD can render the rest of the process moot!

•  Example: failing in the DNS stage renders following processing useless!

Using FPDs for kill chain analysis!Start

Use poDNS

DNSSEC

Use DNSSEC

object security

Download cert

Check ANY CA verifies

cert

EEcert has

revocation info

Site has DNSSEC

Use poDNS

Use DNSSEC object security

Contact Server(s) for revocation info

Stop

YesNo

Yes No

No

Yes

DNS Resolution

Connect to web server on port 443

WWW / TCP

Web Server Cert

CAs

OCSP/CRL DNSFootprint

TLSEstablish

session key(s)

OCSP/CRLServer(s)

Page 33: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

33 !Verisign Public !

•  There are lots of systems and protocols that have dependencies!•  Many times, these dependencies are non-obvious!

•  Nation states need ways to evaluate who and what they depend on so they know their vulnerability!

•  Enterprises need ways to know which of their systems have cyclic dependencies!

•  With this methodology we hope to offer a tool that lets people start evaluating what systems depend on!

Thoughts going forward…!

Page 34: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

34 !Verisign Public !

http://irl.cs.ucla.edu/~eoster/pubs.html!

Our Technical Report!

Page 35: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

35 !Verisign Public !

•  DANE. https://datatracker.ietf.org/wg/dane/charter/.!•  Flame: Massive cyber-attack discovered, Kaspersky Labs researchers

say, !May !2012. !http://www.bbc.com/news/technology-18238326 !•  E. Hutchins, M. Cloppert, and R. Amin. Intelligence-Driven Computer

Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains. In Proceedings of the 6th International Con- ference on Information Warfare and Security (ICIW), page 113. ACI, March 2011.!

•  E. Osterweil, D. McPherson, and L. Zhang. Operational implications of the dns control plane. IEEE Reliability Society Newsletter, May 2011.!

•  V. Ramasubramanian and E. G. Sirer. Perils of transitive trust in the domain name system. In Proceedings of the 5th ACM SIGCOMM conference on Internet Measurement, IMC ’05, pages 35–35, Berkeley, CA, USA, 2005. USENIX Association.!

•  W. A. C. Weekly. !DigiNotar SSL certificate com- promise!widens !to !include !security !agencies, !2011 http://

www.computerweekly.com/Articles/2011/09/05/247792/ DigiNotar-SSL-certificate-compromise-widens-to-include-security.htm!

!

Selected References!

Page 36: Modeling Systemic Dependencies through Attack Surface Analysiseoster/doc/2013-04-26-Sys-Deps.pdf · • Rather than the multi-rooted X.509 hierarchies, DANE uses DNSSEC for verification!

Thank You!

© 2012 VeriSign, Inc. All rights reserved.  VERISIGN and other trademarks, service marks, and designs are registered or unregistered trademarks of VeriSign, Inc. and its subsidiaries in the United States and in foreign countries.  All other trademarks are property of their respective owners.!