Top Banner
Continuous and Visible Security Testing Stephen de Vries @stephendv with BDD-Security
33
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Continuous and Visible Security Testing with BDD-Security

Continuous and Visible Security Testing

Stephen de Vries

@stephendv

with BDD-Security

Page 2: Continuous and Visible Security Testing with BDD-Security

About me

• CTO Continuum Security

• 16 years in security

• Specialised in application security

• Author of BDD-Security framework

Page 3: Continuous and Visible Security Testing with BDD-Security
Page 4: Continuous and Visible Security Testing with BDD-Security

Security testing still stuck in a waterfall world

• Feedback from security testing is too late• Rely on outside security “experts”

Page 5: Continuous and Visible Security Testing with BDD-Security

Security is not something you add…

…it’s something that’s build in, just like quality, scalability and performance

Page 6: Continuous and Visible Security Testing with BDD-Security

• Everyone is responsible for

• Move testing closer to the code

• Continuous automated testing

quality

quality

security

security

^

Page 7: Continuous and Visible Security Testing with BDD-Security

Quality testing Security testing

Difference of degree, not of kind

Page 8: Continuous and Visible Security Testing with BDD-Security

Why

What

How

Business Context Architecture

App Features

Threat Model

Non-Functional SecurityRequirements

Functional SecurityRequirements

Security Tests

Page 9: Continuous and Visible Security Testing with BDD-Security
Page 10: Continuous and Visible Security Testing with BDD-Security
Page 11: Continuous and Visible Security Testing with BDD-Security
Page 12: Continuous and Visible Security Testing with BDD-Security
Page 13: Continuous and Visible Security Testing with BDD-Security

Security Requirements

Visible Testable

• Actionable• Up-to-date

• Automated• Security Testing > Scanning

BDD-Specs (Given/When/Then)

Page 14: Continuous and Visible Security Testing with BDD-Security

BDD-Security Testing Framework

https://github.com/continuumsecurity/bdd-security

BDD-Security = JBehave +

OWASP ZAP +

Nessus +

Internal security tools +

Pre-written baseline security specifications

Selenium +

Page 15: Continuous and Visible Security Testing with BDD-Security

Examples: Infrastructure specifications

Page 16: Continuous and Visible Security Testing with BDD-Security
Page 17: Continuous and Visible Security Testing with BDD-Security
Page 18: Continuous and Visible Security Testing with BDD-Security

Security specifications for application itself

Authentication:• Passwords should be case sensitive• Present the login form itself over an HTTPS connection• Transmit authentication credentials over HTTPS• When authentication credentials are sent to the server, it should

respond with a 3xx status code. • Disable browser auto-completion on the login form• Lock the user account out after <X> incorrect authentication attempts

Page 19: Continuous and Visible Security Testing with BDD-Security

HTTP/S Proxy

Manual Application Security Testing with OWASP ZAP

Page 20: Continuous and Visible Security Testing with BDD-Security

HTTP/S Proxy

Manual Application Security Testing with OWASP ZAP^

BDD-Security

Page 21: Continuous and Visible Security Testing with BDD-Security

Configuring BDD-Security for in-depth testing

- Edit config.xml with app specific values- Create Java class that defines Selenium methods for:

- openLoginPage- Login- isLoggedIn- Logout

Page 22: Continuous and Visible Security Testing with BDD-Security

Demo

Page 23: Continuous and Visible Security Testing with BDD-Security

Application Security Scanning with ZAP

Page 24: Continuous and Visible Security Testing with BDD-Security
Page 25: Continuous and Visible Security Testing with BDD-Security
Page 26: Continuous and Visible Security Testing with BDD-Security
Page 27: Continuous and Visible Security Testing with BDD-Security

Testing Access Control

Can Alice see Bob’s data?

Page 28: Continuous and Visible Security Testing with BDD-Security

Demo

Page 29: Continuous and Visible Security Testing with BDD-Security

Part of Continuous Integration process

• Ant job in Jenkins• Run job after deploy to test environment• Fail the build if tests fail

Page 30: Continuous and Visible Security Testing with BDD-Security

Demo

Page 31: Continuous and Visible Security Testing with BDD-Security

Summary

• Security testing doesn’t need special treatment: it differs from software testing in degree, not in kind

• Automated Security tests can be integrated into a CI/CD model• Automated Security tests should include more than just

scanning• BDD tools provide self-verifying specification• BDD-Security project to jump-start your own security specs

Page 32: Continuous and Visible Security Testing with BDD-Security

Similar tools

• ZAP-JUnit (Java) https://github.com/continuumsecurity/zap-webdriver

• Guantlet (Ruby) http://gauntlt.org/

• Mittn (Python + Burp Intruder) https://github.com/F-Secure/mittn

Page 33: Continuous and Visible Security Testing with BDD-Security

Thank you

I’ll be at Office Hours13:45 TodayRoom: 211

@stephendv