detection of logic flaws in web applications -...

38
Detection of Logic Flaws in Detection of Logic Flaws in Web Applications Web Applications   Davide Balzarotti Giancarlo Pellegrino

Upload: docong

Post on 14-Oct-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Detection of Logic Flaws in Detection of Logic Flaws in Web ApplicationsWeb Applications

  

Davide Balzarotti

Giancarlo Pellegrino

Distributed, Service-oriented, Web-based applications

Seller Inc. Bank Inc.

S PU

Order item I

Transfer value(I) to S

Shipping in 2 days

2

Distributed, Service-oriented, Web-based applications

Seller Inc. Bank Inc.

S PU

Order item I

Transfer value(I) to S

Shipping in 2 days

3

Distributed, Service-oriented, Web-based applications

Buyer Inc. Seller Inc. Bank Inc.

SIdP AS PU

Order item I

Transfer value(I) to S

Log U in to P

Grant U the access for paying I

Shipping in 2 days

Log U in to S

Grant U the access to S

4

Distributed, Service-oriented, Web-based applications

Buyer Inc. Seller Inc. Bank Inc.

SIdP AS PU

Order item I

Transfer value(I) to S

Log U in to P

Grant U the access for paying I

Shipping in 2 days

Log U in to S

Grant U the access to S

5

Security Risks

Buyer Inc. Seller Inc. Bank Inc.

SIdP AS PU

Order item I

Transfer value(I) to S

Log U in to P

Grant U the access for paying I

Shipping in 2 days

Log U in to S

Grant U the access to STra

nsfer 0

.00€

Impersonate U

Ord

er F

erra

ri

6

Threats to Business Applications

Increased attack surface:– monolothic and centralized → n-tier and distributed over the Web

In 2012:– 92% of the attacks from external attackers– +33% of web-attacks from 2011– Web-attacks costed in avg >$1M per organization

A large number of techniques exist to test web applications for the presence of several classes of vulnerabilities

– SQL injection– Parameter pollution– …

7

Logic Vulnerabilities

Still lack a formal definition– Design flaws, business logic errors, … – “Weaknesses […] that commonly allow attackers to manipulate the

business logic of an application.” – CWE Database

Mainly caused by insufficient validation of the workflow and/or data flow of the application

– Detecting logic vulnerabilities requires a model of the application logic

Logic Vulnerabilities can exhibit patterns, e.g.– Information disclosure– Authentication bypass

8

The Rise of Logic Vulnerabilities

Poorly studied

Increasing Importance:– Improper authentication overtook XSS in OWASP 2013 Top10– Logic flaws 2nd security risk in 2013 according to TrustWave

Number of CVE entries associated to logic flaws over the years is increasing

9

State of the Art

White-box testing [BalzarottiCCS07, FelmetsgerUSENIX10, ...]– Scalability issues– Not applicable for business applications for which source code is not available

Formal Model

Sou

rce

cod

e

No

No

Yes

Yes

10

State of the Art

White-box testing

Design Verification via Model Checking [LoweTACAS96, MitchellUSENIX98, ArmandoCSF07, ...]

– Attacks discovered by the model checker are only valid at model-level– Attack interpretation and execution against implementations is done manually

Formal Model

Sou

rce

cod

e

No

No

Yes

Yes

11

State of the Art

White-box testing Design Verification via Model Checking

Black-box Security Testing [DoupèDIMVA10, WangS&P11, WangS&P12]

– Mostly based on crawlers and fuzzers– Still unable to automatically detect logic flaws– The entire testing is mainly done manually

Formal Model

Sou

rce

cod

e

No

No

Yes

Yes

12

State of the Art

Formal Model

Sou

rce

cod

e

No

No

Yes

Yes

Automatedtools

Automatedtools

Manual inspectionManual

inspection

13

Bridging the Gap

From the Model Checking side ● Requires abstract, simplified (but precise) models of the

application/protocol● Flaws in the model needs to be manually verified in the real system

From the System Security Testing side● Requires a real deployment of the application/protocol● Without a model, it is hard to detect logic flaws

14

Bridging the Gap

From the Model Checking side ● Requires abstract, simplified (but precise) models of the

application/protocol● Flaws in the model needs to be manually verified in the real system

From the System Security Testing side● Requires a real deployment of the application/protocol● Without a model, it is hard to detect logic flaws

15

Manual Testing

Understand the web application● Intended workflow and data flow between pages● Model how the application is supposed to work

Design tests that try unconventional behaviors ● On the worflow plane (e.g., re-orded steps)● On the data plane (e.g., replay tokens)

Run tests

Observe the results and identify vulnerabilities

16

Overview of the Approach [NDSS14]

Extraction

17

Model Inference

Navigation graph

Extraction

18

Model Inference

19

Behavioral Patterns Extraction

Extraction

20

Workflow

Traces: Navigation Graph:

21

Workflow

TrWP : Trace Waypoints

St : Singleton Nodes

: Multi-step Operations

Rp : Repeatable Operations

MWP : Model Waypoints

Traces: Navigation Graph:

22

Data Flow

Trace 1:

http://store.com/index.php?prod=2

http://store.com/view.php?id=23

http://store.com/add.php?tid=23

<HTML>

<a href=“/view.php?tid=23”> […]

<HTML>

<a href=“/add.php?tid=23”> […]

<HTML>

<a href=“/checkout”> […]

12

3

Trace 2:

http://store.com/index.php?prod=5

http://store.com/add.php?tid=6

<HTML>

<a href=“/add.php?tid=6”> […]

<HTML>

<a href=“/checkout”> […]

12

12

3

12

23

Data Flow

Trace 1:

http://store.com/index.php?prod=2

http://store.com/view.php?tid=23

http://store.com/add.php?tid=23

<HTML>

<a href=“/view.php?tid=23”> […]

<HTML>

<a href=“/add.php?tid=23”> […]

<HTML>

<a href=“/checkout”> […]

12

31

23

Client GeneratedClient Generated

Server GeneratedServer Generated

24

Trace 1:

http://store.com/index.php?prod=2

http://store.com/view.php?tid=23

http://store.com/add.php?tid=23

Data Flow

<HTML>

<a href=“/view.php?tid=23”> […]

<HTML>

<a href=“/add.php?tid=23”> […]

<HTML>

<a href=“/checkout”> […]

12

3

Trace 2:

http://store.com/index.php?prod=5

http://store.com/add.php?tid=6

<HTML>

<a href=“/add.php?tid=6”> […]

<HTML>

<a href=“/checkout”> […]

12

12

3

12

25

Data Propagation Chains

26

Test Case Generation

Extraction

27

Attack Pattern-based Test Case Generation

28

Attack Pattern-based Test Case Generation

29

Test Case Execution and Oracle

30

Test Case Execution and Oracle

31

LTL Security Property:

31

Oracle

HTTP conversation

Events extraction

App. logic checker

store/login

store/view?id=23

store.com/add?id=23

<HTML>

<a href=“/view?id=23”>

<HTML>

<a href=“/add?id=23”>

<HTML>

<a href=“/checkout”>

Verdict

?

yes

no

Login

View 23

Add 23

|= π ϕ

Case Study: Shopping Cart Web Applications

Shopping Cart Web Apps

Cashier-as-a-Service(former Payment Gateways)

CustomersBuy

Pay

33

Excerpt of Results

Applications CaaS # Test Cases

# TC Exec. Violations

# Bugs # Vulns

AbanteCart Std 233 74 16 1

Magento Exp 343 240 65 -

Std 386 210 126 -

OpenCart Exp 173 140 46 12

Std 135 71 30 -

osCommerce Exp 165 117 22 20

Std 225 128 34 1

PrestaShop Exp 137 85 - -

TomatoCart Exp 302 238 65 25

Std 224 115 24 -

CS-Cart Exp 600 347 313 -

Std 222 127 108 1

Total 3145 1892 849 60

34

Vulnerabilities

Application Popularity Shop for free

Pay less No agreementon price

Session Fixation

AbanteCart 21,200 x

Magento 3,130,000

OpenCart 9,710,000 x x

osCommerce 80,500 x x

PrestaShop 650,000

TomatoCart 119,000 x x x x

CS-Cart 260,000 x

35

osCommerce and AbanteCart: Shopping for Free

36

Security Testing → Model Checking

Passive model inference Extraction of workflow and data flow patterns Attack pattern-based test case generation Assessment of real-world web applications Detection of 10 critical vulnerabilities that affect millions

of websites

37

Missing Pieces

Replace attack patterns with Model Checking● Our models are still too complex● We need a good attacker model for the Web

The oracle needs to be provided by the analyst● Explore inference techniques to generate logic invariants

Extend the technique to other: ● classes of vulnerabilities (e.g., improper authentication)● classes of applications (e.g., online banking, travel booking, conference

systems, ...)

38