Continuous Security - TCCC

43
Continuous Security Embracing Security Automation 1

Transcript of Continuous Security - TCCC

Page 1: Continuous Security - TCCC

Continuous SecurityEmbracing Security Automation

1

Page 2: Continuous Security - TCCC

What I Will Cover

Attack Volumes

Recent Attacks

Taking an Agile Approach

Project Overview

Tool Survey

Wrap Up

2

Page 3: Continuous Security - TCCC

Attack Volumes

3

Page 4: Continuous Security - TCCC

4

http://www.informationisbeautiful.net/visualizations/worlds-biggest-data-breaches-hacks/

Page 5: Continuous Security - TCCC

High Profile Attacks

5

Page 6: Continuous Security - TCCC

Target

Unnecessarily Exposed Data

Phishing Attack

Non-Segmented Network

Out of Date Software

Exposed Secrets

In Memory Data

7

Page 7: Continuous Security - TCCC

Stolen Vendors Credentials

Improper ConfigurationsImportant Anti-Virus Feature Turned Off

POS Systems Running on Windows XP

Unencrypted Data In Transit

Non-Segmented Network

Inadequate Monitoring

Home Depot

8

Page 8: Continuous Security - TCCC

Sally Beauty

10

Credentials Taped to Laptop

Network Admin Credentials in VB

Scripts

Installed Malware on Cash

Registers

Page 9: Continuous Security - TCCC

An Agile Approach

11

Page 10: Continuous Security - TCCC

Testing

12

Unit Tests

Service Tests

UI Tests

Page 11: Continuous Security - TCCC

Continuous Delivery

13

Code

Code

Code

Config

Build Test

Package

Integration

Staging

Production

Env1

Env2

Env3

Testing Environments

Build Test & Release

Page 12: Continuous Security - TCCC

How Can We Apply This to Security?

14

Page 13: Continuous Security - TCCC

Project Overview

15

Page 14: Continuous Security - TCCC

16

Page 15: Continuous Security - TCCC

17

Recipe

IngredientIngredient

Type

Diet

DietType

IngredientIngredient

Type

IngredientIngredient

Type

Diet

DietType

Page 16: Continuous Security - TCCC

18

Page 17: Continuous Security - TCCC

Tool Survey

19

Page 18: Continuous Security - TCCC

If checking

for vulnerable components

is good,

we will do so every time

we commit code.

20

Page 19: Continuous Security - TCCC

Objenesis

Vulnerable Components

21

GuavaMyBatis JUnit Hamcrest

Hamcrest Hamcrest

Mockito

Page 20: Continuous Security - TCCC

Vulnerable Components

22

http://www.aspectsecurity.com/research-presentations/the-unfortunate-reality-of-insecure-libraries

We studied the 31 most popular

Java frameworks and security libraries

downloaded from the [maven central]

and discovered that 26% of these

have known vulnerabilities.

More than half of the Global 500

use software built using components

with vulnerable code.

Page 21: Continuous Security - TCCC

Vulnerable Components - Examples

23

https://www.owasp.org/index.php/Top_10_2013-A9-Using_Components_with_Known_Vulnerabilities

Apache CXF Authentication Bypass

Spring Remote Code Execution

Checkmarx CxSAST

Page 22: Continuous Security - TCCC

CSharpSafeNuGet - MSBuild Task

OWASP Dependency Check

JavaOWASP Dependency Check

RubyBundler Audit

Dawnscanner

Vulnerable Components - The Tools

24

Page 23: Continuous Security - TCCC

Vulnerable Components - Tool Integration

25

Page 24: Continuous Security - TCCC

If updating

our dependencies

is desired,

we will

run canary builds regularly

to tell us when we can update.

26

Page 25: Continuous Security - TCCC

Objenesis

Upgrading Dependencies

27

GuavaMyBatis JUnit Hamcrest

Hamcrest Hamcrest

MockitoMockito

Hamcrest

Objenesis

Page 26: Continuous Security - TCCC

Upgrading Dependencies - The Tools

28

Code

Code

Code

Config

Build Test

Package

Integration

Staging

Production

Env1

Env2

Env3

Testing Environments

Page 27: Continuous Security - TCCC

If not exposing secrets

is important,

we will ensure

they are never committed

to our version control system.

29

Page 28: Continuous Security - TCCC

Exposing Secrets

30

Page 29: Continuous Security - TCCC

A talisman is an object which is

believed to contain certain

magical or sacramental

properties which would provide

good luck for the possessor or

possibly offer protection from

evil or harm.

Exposing Secrets - The Tools

31https://en.wikipedia.org/wiki/Talisman

Page 30: Continuous Security - TCCC

Exposing Secrets - Tool Integration

32

Page 31: Continuous Security - TCCC

Exposing Secrets - Tool Integration

33

19:54:42.329 :findSecrets FAILED19:54:42.336 19:54:42.336 BUILD FAILED19:54:42.336 19:54:42.336 Total time: 3.085 secs19:54:42.339 19:54:42.339 FAILURE: Build failed with an exception.19:54:42.339 19:54:42.339 * What went wrong:19:54:42.339 Execution failed for task ':findSecrets'.

java/build.gradle

java/gradle/wrapper/gradle-wrapper.jar

java/gradle/wrapper/gradle-wrapper.properties

java/gradlew

java/gradlew.bat

java/notReallyAn._rsa

java/src/vulnerableCheckSuppression.xml

The following errors were detected in

java/notReallyAn._rsa

The file name "java/notReallyAn._rsa" failed checks

against the pattern ^.+_rsa$

Page 32: Continuous Security - TCCC

If searching for

possible attack vectors

for our web sites

is good,

we will

automate this search.

to our version control system.

34

Page 33: Continuous Security - TCCC

Finding Vulnerabilities

35

Page 34: Continuous Security - TCCC

Finding Vulnerabilities - The Tools

36

HTML

Ajax

Extensions

Port Scanning

Fuzzing

LDAP Injection

Session Fixation

Page 35: Continuous Security - TCCC

Finding Vulnerabilities - Tool Integration

Plugins

Jenkins (https://wiki.jenkins-ci.org/display/JENKINS/ZAProxy+Plugin)

Maven (https://github.com/pdsoftplan/zap-maven-plugin)

Grails (https://grails.org/plugin/zap-security-tests)

Command Line Interface

37

Page 36: Continuous Security - TCCC

Wrap Up

38

Page 37: Continuous Security - TCCC

Potential Downsides

False Positives

Longer Running Builds

Won’t Catch Everything

New Things Everyday

39

Page 38: Continuous Security - TCCC

Attack Tie Backs - Target

Secrets may not have been

discovered

Up to date vendor system may

have eliminated vulnerabilities

ZAP testing might have

highlighted network navigability

40

Page 39: Continuous Security - TCCC

Attack Tie Backs - Home Depot

41

Up to date POS OS may have

eliminated vulnerabilities

ZAP testing might have

highlighted network navigability

Page 40: Continuous Security - TCCC

Attack Tie Backs - Sally Beauty

Secrets may not have been

discovered

42

Page 41: Continuous Security - TCCC

Application Code: https://github.com/wendyi/continuousSecurity

Pipelines: https://github.com/wendyi/continuousSecurityCi

Slides:http://www.slideshare.net/WendyIstvanick

Trello: https://trello.com/b/SVoLynan/continuous-security

Links

43

Page 42: Continuous Security - TCCC

Next Steps

Finish Wiring Up Existing Checks

Contribute Talisman Changes

Finish End to End Code

Wire Up ZAP

Set Up Canary Builds

Find Other Tools to Include

44

Page 43: Continuous Security - TCCC

Thank YouQuestions?

45