f owasp top ten s tothe owasp asvs · owasp top10 the ten most critical web application security...

Post on 09-Jul-2020

14 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

@PhilippeDeRyck – philippe@PragmaticWebSecurity.comPHILIPPE DE RYCK

FROM THE OWASP TOP TEN(S) TO THE OWASP ASVS

@PhilippeDeRyck 2

@PhilippeDeRyck 3

@PhilippeDeRyck

• Traveling the world to deliver security courses• In-depth web security training for developers• Custom training courses with developer-oriented labs• Covering web security, API security, Angular/React security

• 15+ years of security experience• Founder of Pragmatic Web Security • Author of Primer on client-side web security• Creator of Web Security Fundamentals on edX

• Course curator of the SecAppDev course• Yearly security course targeted towards developers• More information on https://secappdev.org

GOOGLE DEVELOPER EXPERT

PH.D. IN WEB SECURITY

DR. PHILIPPE DE RYCK

(NOT EMPLOYED BY GOOGLE)

@PhilippeDeRyck 5

OWASP TOP 10

The Ten Most Critical Web Application Security Risks

@PhilippeDeRyck 6

@PhilippeDeRyck 7

@PhilippeDeRyck 8

1 – Injection

2 – Broken authentication

3 – Sensitive data exposure

3 – Sensitive data exposure

4 – XXE

5 – Broken access control

7 – XSS

@PhilippeDeRyck 9

AWARENESS

@PhilippeDeRyck 10

@PhilippeDeRyck 11

@PhilippeDeRyck 12

Authentication

Authorization

Session management

@PhilippeDeRyck 13

@PhilippeDeRyck 14

OWASP TOP 10

Awareness on the most critical issues in web applications

Brief overview of do's and don'ts in web applications

Advice is independent of application, user impact or required skills

@PhilippeDeRyck 15

OWASP TOP 10 PROACTIVE CONTROLS

Ten critical security areas that developers must be aware of

@PhilippeDeRyck 16

@PhilippeDeRyck 17

@PhilippeDeRyck 18

AWARENESS

@PhilippeDeRyck 19

@PhilippeDeRyck 20

@PhilippeDeRyck 21

@PhilippeDeRyck 22

OWASP TOP 10 PROACTIVE CONTROLS

Awareness on the most important security controls

Mainly focusing on the do's that matter for almost every application

Advice is independent of application, user impact or required skills

@PhilippeDeRyck 23

OWASP APPLICATION SECURITYVERIFICATION STANDARD

A list of security requirements or tests to determine how secure an application is

@PhilippeDeRyck 24

@PhilippeDeRyck 25

@PhilippeDeRyck 26

@PhilippeDeRyck 27

@PhilippeDeRyck 28

All applications

Applications handling sensitive info

Applications handling critical info

@PhilippeDeRyck 29

DRIVE SECURITY PROCESSES

ALIGNMENT STANDARD

@PhilippeDeRyck 30

@PhilippeDeRyck 31

@PhilippeDeRyck 32

@PhilippeDeRyck 33

OWASP APPLICATION SECURITYVERIFICATION STANDARD

Detailed overview of security do's and don'ts in web applications

Advice incorporates application type and development challenges

@PhilippeDeRyck 34

CHECKLIST

“ “the data leak was caused by a misconfigured Amazon S3 storage bucket which permitted the access and download of

information without the need for authorization

@PhilippeDeRyck 36

2.19

Verify there are no default passwords in use for the application framework or any components used by the application (such as “admin/password”).

@PhilippeDeRyck 37

AUTOMATED SECURITY TESTING

“ “The passwords were either kept in plain text format, or used the largely discredited

SHA1 hashing algorithm.

@PhilippeDeRyck 39

@PhilippeDeRyck 40

@PhilippeDeRyck

IS HASH CRACKING REALLY THAT FAST?

41

MD5 SHA1 BCRYPT(13)

Hash

es p

er se

cond

200 000 million

68 771 million

390

@PhilippeDeRyck 42

2.13

Verify that account passwords are one way hashed with a salt, and there is sufficient work factor to defeat brute force and password hash recovery attacks.

@PhilippeDeRyck 43

SECURE CODING GUIDELINES

@PhilippeDeRyck

USERNAME HARVESTING THROUGH TIMING ATTACKS

List<User> users = new UserDAO().findAllByEmailWithPassword(email);if(users.size() == 1) {User user = users.get(0);if(AuthenticationUtils.verifyPassword(user, password)) {Logger.info("Authentication successful.");return redirectAfterLogin();

}else {Logger.warn("Invalid password. Authentication failed");return handleLoginError();

}}else {Logger.warn("No matching user account found. Authentication failed");return handleLoginError();

}

12345678910111213141516

100 – 200ms operation

Almost instant operation

@PhilippeDeRyck 45

2.28

Verify that all authentication challenges, whether successful or failed, should respond in the same average response time.

@PhilippeDeRyck 46

PRIORITIZE SECURITY

@PhilippeDeRyck 47

2.31Verify that if an application allows users to authenticate, they can authenticate using two-factor authentication or other strong authentication, or any similar scheme that provides protection against username + password disclosure.

@PhilippeDeRyck 48

@PhilippeDeRyck 49

x' UNION SELECT id,email, totpsecret, 'bleh', 'bleh.png' FROM users WHERE 'x%' = 'x

@PhilippeDeRyck 50

5.10Verify that all SQL queries, HQL, OSQL, NOSQL and stored procedures, calling of stored procedures are protected by the use of prepared statements or query parameterization, and thus not susceptible to SQL injection

@PhilippeDeRyck 51

X

Verify that all shared secrets are encrypted and stored in a protected location

@PhilippeDeRyck 52

FORK AND CUSTOMIZE

@PhilippeDeRyck 53

ASVS V4.0IN PROGRESS

AVAILABLE ON GITHUBPARTICIPATE!

@PhilippeDeRyck

1-day workshops

5-day dual-track program

Whiteboard hacking (aka hands-on Threat Modeling)

Building secure web & web service applications

Securing Kubernetes the hard way

Jim Manico

Sebastien Deleersnyder

Jimmy Mesta

Crypto, AppSec Processes, web security, access control, mobile security, ...

@PhilippeDeRyck – philippe@PragmaticWebSecurity.comPHILIPPE DE RYCK

/in/PhilippeDeRyck @PhilippeDeRyck

philippe@pragmaticwebsecurity.com

top related