web application vulnerabilities: owasp top 10 revisited · • the owasp top 10 is an awareness...

22
Pattern Recognition and Applications Lab University of Cagliari, Italy Department of Electrical and Electronic Engineering Web Application Vulnerabilities: OWASP Top 10 Revisited Igino Corona igino.corona AT diee.unica.it 1 Computer Security April 5th, 2018 http://pralab.diee.unica.it What is a web application? Distributed Program accross client and server systems so many interpreters involved data exchanged through the HTTP(s) protocol Each interpreter adds functionalities but also attack surface and complexity HTTP(S) server HTTP(S) Client HTML Application Database CSS Images JavaScript Flash Silverlight PDF Reader

Upload: others

Post on 26-Mar-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

Pattern Recognition and Applications Lab

Universityof Cagliari, Italy

Department ofElectrical and Electronic

Engineering

Web Application Vulnerabilities:OWASP Top 10 Revisited

Igino Coronaigino.corona AT diee.unica.it

1

Computer Security April 5th, 2018

http://pralab.diee.unica.it

What is a web application?

Distributed Program– accross client and server systems– so many interpreters involved– data exchanged through the HTTP(s) protocol

Each interpreter adds functionalities but also attack surfaceand complexity

HTTP(S) serverHTTP(S) Client

HTML Application DatabaseCSSImages

JavaScript

Flash Silverlight PDF Reader

Page 2: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it

• International non-profit project to make web applications (web services) more secure– i.e., towards confidentiality, integrity, availability of

systems and data• Independent, reputable source• Key goals:

– Awareness: knowledge of the major/common threats– Testing: metodologies and tools to detect known

vulnerabilities– Training: how to address known vulnerabilities

3

Open Web Application Security Project

https://www.owasp.org

http://pralab.diee.unica.it

• One of the most important outputs of OWASP is the TOP 10 Project

• The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications• “based primarily on data submissions from firms that specialize in application

security and an industry survey that was completed by individuals”

• New version each 3 years

• It may be considered as a starting point to identify the threats for your web applications• First step of the risk evaluation

• The latest version has been produced in 2017– https://www.owasp.org/index.php/Category:OWASP_Top_Ten_2

017_Project

4

OWASP Top 10 Project

Page 3: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it 5

TOP 10 History

http://pralab.diee.unica.it

• New categories– A4:2017 - XML External Entities (XXE)– A8:2017 - Insecure Deserialization– A10:2017 - Insufficient Logging & Monitoring

• Merged– A5:2017 - Broken Access Control

• A4:2013 - Insecure Direct Object References• A7:2013 - Missing Function Level Access Control

• Retired– A8:2013 - Cross-Site Request Forgery (CSRF)– A10:2013 - Unvalidated Redirects and Forwards

https://www.owasp.org/index.php/Top_10-2017_Release_Notes

6

TOP 10 - 2017 vs 2013

Page 4: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it

• In the following we present all TOP 10 - 2017 threats– Examples and mitigation mechanisms as described in

the official OWASP website– We also highlight the main points for the mitigation of

issues/threat vectors

OWASP TOP 10

http://pralab.diee.unica.it 8

A1:2017 Injection

Injection: the quote (‘) is a meta-character: it is internallyused to separate data from (SQL) instructions

Page 5: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it 9

A1:2017 Injection

Input data must be assumed as untrusted. A safe API must always keep data separate from code, and take into account the specifics of the involvedinterpreter(s) - meta-characters

Go to main table

http://pralab.diee.unica.it 10

A2:2017 – Broken AuthenticationBruteforce attack –password guessing

Weak authenticationcredentials – e.g. password easy to guess and reused

Session identifiers effectivelysubstitute authentication credentialsduring login. They may be stolen and used by an attacker.

Page 6: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it 11

A2:2017 – Broken Authentication

Bruteforce attackprotection

Strong authenticationcredentials: default, multi-factor, complexity, expiration, recovery Protection against

information gathering(e.g., account enumeration)

Protection againstuser impersonationattacks – e.g., due to credentials theft or CSRF

Logging

Go to main table

Key point (not highlighted in this slide): Unique, Safe, Server-side Authentication API triggered for anyrequest

http://pralab.diee.unica.it 12

A3:2017 – Sensitive Data Exposure

Automatic decryption

Insecure data transport

Insecure data storage

Page 7: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it 13

A3:2017 – Sensitive Data Exposure

Secure Access Control

Secure Data storage

Secure Data transport

Go to main table

http://pralab.diee.unica.it 14

A4:2017 - XML External Entities (XXE)

Custom DocumentType Definition (DTD)

DTD has an entityprovided in anotherfile

The entity is printedout: content of /etc/passwd file

Page 8: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it 15

Other XML DTD attack (Billion Laughs)

https://en.wikipedia.org/wiki/Billion_laughs_attack

Parsed Character Data (generic text)

http://pralab.diee.unica.it 16

A4:2017 - XML External Entities (XXE)

Use a lesspowerful API!

Go to main table

Input data must be assumed as untrusted. A safe API must always keep data separate from code, and take into account the specifics of the involved interpreter(s)

Page 9: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it 17

A5:2017 – Broken Access Control

In both cases, data access depends on unauthenticated data

http://pralab.diee.unica.it 18

A5:2017 – Broken Access ControlDefault: denyUnique, Safe, Server-

side Access Control API triggered for anyrequest

Logging

If possible do not use Cross-Origin Resource Sharing (CORS) - a relaxed version of Same-origin policy

Go to main table

Page 10: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it 19

A6:2017 – Security Misconfiguration

Forgottenapplications/data

Insecure default configuration

http://pralab.diee.unica.it 20

A6:2017 – Security Misconfiguration

SystematicHardeningProcess

Security by default

Minimal functionalities(less powerful APIs)

Security-orientedArchitecture

Go to main table

Page 11: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it

A7:2017 – Cross-site scripting

Injection: different meta-characters (e.g., < >) used by the browser to separate data from (HTML/Javascript) instructions

20

http://pralab.diee.unica.it

A7:2017 – Cross-site scriptingInput data must be assumed as untrusted. A safe API must always keep data separate from code, and take into account the specifics of the involvedinterpreter(s) - meta-characters

Browser mitigation: allow script code only from specific domain names/paths(or completely disallow it)https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP

21

Be aware and enforce documentencoding!

Go to main table

Page 12: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it

A8:2017 – Insecure Deserialization

Input data is parsed to dynamically generate code (data structure/classes): e.g. java and php objects

22

Well.. Actually this is an access control issuenot a serialization one… wrong example

http://pralab.diee.unica.it

A8:2017 – Insecure DeserializationDo not use serialization. In general, it is a too powerful API.Keep data separate from code (natively)

23Go to main table

Page 13: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it 25

A9:2017 - Using Components with KnownVulnerabilities

Web applications are more and more complex. They may use hundreds of different libraries and third-party components. A vulnerability in anycomponent may be automaticallyfound and exploited. E.g. struts, other(trusted) devices

http://pralab.diee.unica.it 26

A9:2017 - Using Components with KnownVulnerabilities

Dependency/vulnerability checks must be automatized and become integralpart of the software development life cycle

Remove not used components

Always verify the source of components

Use actively mantainedcomponents

Go to main table

Page 14: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it 27

A10:2017 - Insufficient Logging&Monitoring

Insufficient logging/monitoringleads to worse breaches (higherattack impact)

http://pralab.diee.unica.it 28

A10:2017 - Insufficient Logging&Monitoring

Logging relevant context allows for reducing the impact of security issues(response/remediation)

Humans must be in the loop

Ensure Log integrity(append only)

Logging and monitoringis just part of an Incident Response Plan

Go to main table

Page 15: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it

• Issues– The OWASP TOP 10 is very useful, but somewhat

confusing• In the following we try to group TOP 10 entries

according to their– root causes– security violations

• This allows to get a high-level view of common problems– foresee and protect against attacks with the same root

causes• New threats• Threats more relevant to your web applications

29

OWASP Top 10 Project - Issues

http://pralab.diee.unica.it

Main Security Goals

– Confidentiality• ensure that (sensitive) information is disclosed to authorized parties

only

– Integrity• prevent unauthorized modification of data (data integrity), including

system code and (ab)use of system functionalities (system integrity)

– Availability• guarantee that data and services can be accessed (in a reasonable

time) by authorized parties when requested

30

Information System Security

NOTE: Violations in one category may enable violations in any other category! Examples:• Password theft (confidentiality violation) may allow attackers to perform unhauthorized

modifications of user data (data integrity violation)• A buffer overflow attack (system integrity violation) may allow attackers to gather private data

(confidentiality violation)

key aspects: • authentication• access control

Page 16: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it

Meta-Security Goalsmitigate the impact/risk of security violations

– Monitoring• keep track of security-relevant events, such as authentications,

accesses, data modifications, system performance, detectedattacks/errors/anomalies.

– Response• counteract against detected security violations and remediate

(incident response plan)

31

Information System Security

Remember: Security is a risk management process andHumans are always in the loop!

http://pralab.diee.unica.it 32

Information System Security - Objectives

INTEGRITY

CONFIDENTIALITY

AVAILABILITY

AUTHENTICATION ACCESS CONTROL

MONITORING RESPONSE

TOP 10 Classification

Page 17: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it

TOP 10 Threats and Security Violations

TOP 10 Threat Security ViolationA1:2017 – Injection Integrity (DataàCode)

A2:2017 - Broken Authentication Authentication

A3:2017 – Sensitive Data Exposure Confidentiality

A4:2017 - XML External Entities (XXE) Integrity (DataàCode)

A5:2017 - Broken Access Control Access Control

A6:2017 - Security Misconfiguration Any

A7:2017 - Cross-Site Scripting (XSS) Integrity (DataàCode)

A8:2017 - Insecure Deserialization Integrity (DataàCode)

A9:2017 - Using Components with Known Vulnerabilities Any

A10:2017 - Insufficient Logging & Monitoring Monitoring

Back to Security Objectives

http://pralab.diee.unica.it 34

OWASP TOP 10 – Integrity Violations

INTEGRITY

CONFIDENTIALITY

AVAILABILITY

AUTHENTICATION ACCESS CONTROL

MONITORING RESPONSE

Data à InstructionA1:2017 – InjectionA4:2017 - XML External Entities (XXE)A7:2017 - Cross-Site Scripting (XSS)A8:2017 - Insecure DeserializationA10:2013 - Unvalidated Redirects and ForwardsA6:2010 - Malicious File ExecutionA5:2004 - Buffer Overflows

THREAT VECTO

RS

Page 18: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it

• Unauthorized modification of data and (ab)use of system functionalities– Manipulating data, the attacker can exploit unexpected

system functionalities or abuse expected ones– The attacker (ab)uses system functionalities. Unexpected

functionalities are often raised by exploiting interpretervulnerabilities, so that• input data is erroneously interpreted as code• data and code are carried in the same channel!

– In this category fall the following TOP 10 attacks:• A1:2017 – Injection• A4:2017 - XML External Entities (XXE)• A7:2017 - Cross-Site Scripting (XSS)• A8:2017 - Insecure Deserialization• A10:2013 - Unvalidated Redirects and Forwards• A6:2010 - Malicious File Execution• A5:2004 - Buffer Overflows

35

TOP 10 OWASP - Integrity Violations

http://pralab.diee.unica.it

Input Data is wrongly/arbitrarily interpreted as– Database Query (typical), OS command, LDAP, others

• A1:2017 Injection– XML instruction

• A4:2017 - XML External Entities (XXE)– JavaScript instruction

• A7:2017 Cross-site Scripting (XSS)– Ad-hoc interpreter

• A8:2017 Insecure Deserialization– Browser instruction

• A10:2013 Unvalidated Redirects and Forwards– Assembly instruction

• A5:2004 Buffer Overflows– Web Application Interpreter

• A6:2010 Malicious File Execution

Preventing dataàcode attacks requires keeping data separate from instructions (safe API)

36

TOP 10 OWASP - Integrity Violations

Page 19: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it

Interpreters– widespread accross client and server systems– may be really complex– may interact to each other

Each interpreter adds attack surface and complexity

37

From Data to Code - Integrity Violations

HTTP(S) serverHTTP(S) Client

HTML Application DatabaseCSSImages

JavaScript

Flash Silverlight PDF Reader

http://pralab.diee.unica.it 38

INTEGRITY

CONFIDENTIALITY

AVAILABILITY

AUTHENTICATION ACCESS CONTROL

MONITORING RESPONSE

Generic Threat VectorsA9:2017 - Using Components with Known VulnerabilitiesA6:2017 - Security Misconfiguration

OWASP TOP 10 – Generic Threat Vectors

THREAT VECTORS

Page 20: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it 39

OWASP TOP 10 – Authentication

AUTHENTICATION ACCESS CONTROL

MONITORING RESPONSE

A2:2017-Broken AuthenticationINTEGRITY

CONFIDENTIALITY

AVAILABILITY

ISSUES

A8:2013-Cross-site Request Forgeries

THREAT VECTOR

http://pralab.diee.unica.it 40

OWASP TOP 10 – Confidentiality

INTEGRITY

CONFIDENTIALITY

AVAILABILITY

AUTHENTICATION ACCESS CONTROL

MONITORING RESPONSE

A3:2017 – Sensitive Data Exposure

ISSUES

Page 21: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it 41

OWASP TOP 10 – Access Control

INTEGRITY

CONFIDENTIALITY

AVAILABILITY

AUTHENTICATION ACCESS CONTROL

MONITORING RESPONSE

A5:2017 - Broken Access Control

ISSUES

http://pralab.diee.unica.it 42

OWASP TOP 10 – Availability

INTEGRITY

CONFIDENTIALITY

AVAILABILITY

AUTHENTICATION ACCESS CONTROL

MONITORING RESPONSE

A9:2004-Denial Of Service

ISSUES

Page 22: Web Application Vulnerabilities: OWASP Top 10 Revisited · • The OWASP Top 10 is an awareness document that focuses on the (ten) most serious threats for web applications • “based

http://pralab.diee.unica.it 43

OWASP TOP 10 – Monitoring

INTEGRITY

CONFIDENTIALITY

AVAILABILITY

AUTHENTICATION ACCESS CONTROL

MONITORING RESPONSE

ISSUES

A10:2017 - Insufficient Logging & Monitoring

http://pralab.diee.unica.it

• We will dig into some of the most popular and threatening web attack techniques– Most of them (but not all) are in the TOP10 OWASP

2017– Practical sessions with

• Real-world web services• OWASP BWA

1. Download Virtualbox https://www.virtualbox.org/2. Download the OVA archive

https://sourceforge.net/projects/owaspbwa/files/1.2/3. Import the OVA archive into VirtualBox

In the next lessons