32
Information Security Web Application Security Information Security Security Test Automation in Software Development using Open Source Tools

Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

Embed Size (px)

DESCRIPTION

Slides from David's presentation at Devoxx on 14/11/2013.

Citation preview

Page 1: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity

Web Application Security

InformationSecurity

Security Test Automation in Software Development using Open Source Tools

Page 2: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity

About Smals vzw-asbl

One of Belgium's largest ICT-organisations:1750 people

"ICT for Society"Work: ex. Dimona-DmfA

Salary & labour prestations

Health: ex. eHealth-platformSecure exchange of medical data in Belgium

Family life: ex. VESTAHome care for elderly (financial / operational support)

In-house ICT-service, working exclusively for the governmentHigh priority for ICT Security & Privacy

Page 3: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity3

InformationSecurity

Introduction

Security Test Automation in Software Development using Open Source Tools Can we do it? What do we need?

Source code Working parts of the application Selenium tests for the functional part

3

Page 4: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity4

InformationSecurity

Application Security Disclaimer

Hacking is illegal and can be punished under the legal framework of the information criminality laws (Law issued on the 28 of november 2000 about informatica criminality). So the methods we show here are illegal if used without consent of the victim.

4

Page 5: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity

Hacking is illegal under Belgium Law

Article 550bis § 1A person who, while he knows that he is not yet entitled to it, gain access to a computer system, or in it maintains, shall be punished with imprisonment from three months to one year and a fine of twenty-six [euro] to twenty-five thousand [euro] or with one of these penalties. If the crime referred to in the first paragraph, committed with fraudulent intent, the maximum six months imprisonment to two years.

5

Page 6: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity

Security mythsFirewalls …

• Firewalls are always configured to allow web traffic -> HTTP(S)

• Attacker appears to the web application as a normal user

Page 7: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity7

InformationSecurity

Security mythsSSL secures the application…

• Server-side SSL only guarantees confidentiality on transport level

• Attacker also uses the SSL tunnel

Page 8: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity8

InformationSecurity

Security mythsThe Application framework solves that…

• Frameworks Don't Solve Security Issues

• Some frameworks facilitate, but not by default

• Some frameworks do, by default- Workarounds exist to develop the

security problems

Page 9: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

OWASP Top Ten (2013 Edition)

A1: Injection

A2: Broken Authentication

and Session Management

A3: Cross-Site Scripting (XSS)

A4: Insecure Direct Object References

A5: Security Misconfiguration

A6: Sensitive Data Exposure

A7: Missing Function Level Access Control

A8: Cross Site Request Forgery

(CSRF)

A9: Using Known Vulnerable

Components

A10: Unvalidated Redirects and

Forwards

9

Page 10: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity

SQL Injection

User: Johnpassword: secret

SELECT user FROM users WHERE user='John' AND password='secret';

John

Welkom, John

User: xxxxpassword: ' or 1=1;--

SELECT user FROM users WHERE user='xxx' AND password='' or 1=1;--';

Aaron

Welkom, Aaron

Page 11: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity11

Stored XSS

Coming home at 5 o'clock

<script>Steal password</script>

passwords

Page 12: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity12

Reflected XSS

http://site.com/index?<script>steal password</script>

http://site.com/index?<script>steal password</script>

Error: reason (<script>steal password</script>) unknown

passwords

Page 13: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity13

InformationSecurity

Sensitive Data ExposureClear text transmission

• Confidential information is just sent back to the User- Improper web application implementation

- Secure and non-secure sections- Improper analysis of the information- Improper configuration

- Unsecured SESSION cookies

Page 14: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity14

InformationSecurity

Sensitive Data ExposureError messages

• Error messages for developers carry a lot information to find the problem causing the error message- Stack traces in JAVA- SQL Error messages from Database- PHP error messages- …

• Those error messages can give a lot information to the hacker, when displayed to him/her- Information of dataflow in the Web application- Database layout- Operating System information- Network information- Application frameworks used

Page 15: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity

Cross Site Request Forgery

http://bank.com/transaction?amount=10000&acc=001.1234567.27

http://bank.com/transaction?amount=10000&acc=001.1234567.27

Transaction successfull

Online to her bank

Page 16: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity16

InformationSecurity

Secure SDLC

Requirementsand use cases

Design Test plansCode

Testresults

Fieldfeedback

Securityrequirements

Riskanalysis

Risk-basedsecurity tests

Staticanalysis(tools)

Penetrationtesting

Design Review

Code Review

Which risks we take

What needs to be tests?

Code review tools

Iterative approach

Pen testing tools

Page 17: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity17

InformationSecurity

Findbugs

Static Source code analyzer Works on Java byte code

Source must compile! Searches for bug patterns

Find bugs Find false warnings

Eclipse plugin By default almost all enabled

Page 18: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity18

InformationSecurity

Findbugs

For security patterns: DMI_CONSTANT_DB_PASSWORD

Hardcoded constant database password DMI_EMPTY_DB_PASSWORD

Empty database password EI_EXPOSE_REP

May expose internal representation by returning reference to mutable objects

EI_EXPOSE_REP2May expose internal representation by incorporating reference to mutable object

EI_EXPOSE_STATIC_REP2May expose internal static state by storing a mutable object into a static field

MS_EXPOSE_REPPublic static method may expose internal representation by returning array

Page 19: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity19

InformationSecurity

Findbugs

SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTENonconstant string passed to execute method on an SQL statement 

SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRINGA prepared statement is generated from a nonconstant String 

XSS_REQUEST_PARAMETER_TO_SEND_ERRORJSP reflected cross site scripting vulnerability

XSS_REQUEST_PARAMETER_TO_SERVLET_WRITERServlet reflected cross site scripting vulnerability in error page 

RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPENullcheck of value previously dereferenced

NP_NULL_ON_SOME_PATHPossible null pointer dereference

NP_NULL_ON_SOME_PATH_EXCEPTIONPossible null pointer dereference in method on exception path

Page 20: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity20

InformationSecurity

Demo Findbugs

Eclipse

Page 21: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity21

InformationSecurity

PMD

Static Source code analyzer Runs against the Java source code Also searches for bug patterns There are no real security patterns

included Gotham Digital Science has a security rule set

Page 22: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity22

InformationSecurity

PMD

For security patterns: ArrayIsStoredDirectly AvoidCatchingThrowable AvoidPrintStackTrace AvoidThrowingNullPointerException DoNotCallSystemExit ExceptionAsFlowControl MethodReturnsInternalArray MisplacedNullCheck

Page 23: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity23

InformationSecurity

Demo PMD

Eclipse

Page 24: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity24

InformationSecurity

Zed Attack Proxy

Intercepting Proxy Traditional and AJAX spiders Automated scanner Forced Browsing Fuzzer Dynamic SSL Certificates Smartcard and Client Digital Certificates

support

Page 25: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity25

InformationSecurity

Zed Attack Proxy

Web sockets support Support for wide range of scripting

languages Plug-n-Hack support Authentication and Session Support Powerful REST based API Automatic updating option Integrated and growing marketplace of

add-ons

Page 26: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity26

InformationSecurity

Demo Zaproxy

Eclipse

Page 27: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity27

InformationSecurity

Demo: Automatic Build Proces

Maven Findbugs PMD Zaproxy

Page 28: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity28

InformationSecurity

TODO’s

Maven Zed Attack Proxy and site phase integration

SONAR integration of Zed Attack Proxy How about Agile development?

Can we ingrate this process in TDD and BDD?

Page 29: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity29

InformationSecurity

Links

FindBugs™ - Find Bugs in Java Programs PMD – Don’t shoot the Messenger OWASP Zed Attack Proxy Project - OWASP ZAP Maven Plugin Automated

Security Testing of web applications using OWASP Zed Attack Proxy

Belgium - OWASP Gotham Digital Science

Page 30: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity30

InformationSecurity30

Resources …

• Books: Software Security Microsoft Secure Development Lifecycle Enterprise Security Architecture

Page 31: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity31

InformationSecurity

Reflection

Open Source Good start

Commercial Tools Are more integrated in their environment Perform better Comes with a price

Manual review by experts Best results Expensive Non constant reviews Very late in the process

Page 32: Devoxx 2013 - David Tillemans - Security Test Automation in Software Development using Open Source Tools

InformationSecurity32

InformationSecurity

Questions