61
ATM: Adaptive Testing Methodology Daniel Miessler Director of Advisory Services IOActive

Adaptive Testing Methodology [ ATM ]

Embed Size (px)

Citation preview

Page 1: Adaptive Testing Methodology [ ATM ]

ATM: Adaptive Testing Methodology

Daniel MiesslerDirector of Advisory ServicesIOActive

Page 2: Adaptive Testing Methodology [ ATM ]

Web hacking in pictures

Image from stopherdingcats.com

Page 3: Adaptive Testing Methodology [ ATM ]

Concepts

Page 4: Adaptive Testing Methodology [ ATM ]

“ I used to think we had security problems, and then we figured out how to integrate the security solution.

Actually, the security basics are long figured out, it’s the integration that's killing us. We don't have a security problem with integration requirements. We have an integration problem with security requirements.

~ Gunnar Peterson

http://1raindrop.typepad.com/1_raindrop/2013/11/there-are-no-security-problems.html

Page 5: Adaptive Testing Methodology [ ATM ]

My take on Gunnar’s thought

1. Security is an integration problem

2. It’s not that we don’t know what to do

3. It’s that we don’t know how to integrate what we know (or learn) into what we do

Page 6: Adaptive Testing Methodology [ ATM ]

Security is an integration problem

Page 7: Adaptive Testing Methodology [ ATM ]

Two ways to learn: Osmotic vs. Algorithmic

VS

Page 8: Adaptive Testing Methodology [ ATM ]

Osmotic learning

1. Consume a talk/book/video about testing SAP2. Don’t fall asleep3. Mostly pay attention to the content4. Say, “hmm…” to yourself 1-3 times5. Maybe jot something down on a piece of paper

you’ll never see again6. Don’t remember any/most of it when you do

the task next

Page 9: Adaptive Testing Methodology [ ATM ]

Algorithmic learning

1. You already care about testing SAP a lot2. For this reason, you already have an algorithm for

doing so3. You also like to learn more about it (seminars/etc.)4. When you learn something new, you immediately

update your methodology with anything legit5. The very next time you test SAP, you have

directly benefitted from the talk/video/book you consumed

Page 10: Adaptive Testing Methodology [ ATM ]
Page 11: Adaptive Testing Methodology [ ATM ]

Algorithmic vs. Osmotic learning

Page 12: Adaptive Testing Methodology [ ATM ]

Web methodologies are monolithic

199 Pages

94 Pages

=

Page 13: Adaptive Testing Methodology [ ATM ]

Web methodologies lack context

Page 14: Adaptive Testing Methodology [ ATM ]

Web methodologies lack empathy

“The customer wants you to find everything you can in 13 minutes.”

Page 15: Adaptive Testing Methodology [ ATM ]

Methodologies are hard to update

Page 16: Adaptive Testing Methodology [ ATM ]

Review– Security is an integration problem

Page 17: Adaptive Testing Methodology [ ATM ]

Review– Security is an integration problem– Algorithmic learning is better for improving methodologies

Page 18: Adaptive Testing Methodology [ ATM ]

Review– Security is an integration problem– Algorithmic learning is better for improving methodologies– Most web methodologies are monolithic

Page 19: Adaptive Testing Methodology [ ATM ]

Review– Security is an integration problem– Algorithmic learning is better for improving methodologies– Most web methodologies are monolithic– Methodologies are not context-sensitive

Page 20: Adaptive Testing Methodology [ ATM ]

Review– Security is an integration problem– Algorithmic learning is better for improving methodologies– Most web methodologies are monolithic– Methodologies are not context-sensitive– Methodologies don’t know how much time you have

Page 21: Adaptive Testing Methodology [ ATM ]

Review– Security is an integration problem– Algorithmic learning is better for improving methodologies– Most web methodologies are monolithic– Methodologies are not context-sensitive– Methodologies don’t know how much time you have– Methodologies are hard to update

Page 22: Adaptive Testing Methodology [ ATM ]

Review (propositions, challenges)– Security is an integration problem– Algorithmic learning is better for improving methodologies– Most web methodologies are monolithic– Methodologies are not context-sensitive– Methodologies don’t know how much time you have– Methodologies are hard to update

Page 23: Adaptive Testing Methodology [ ATM ]

Adaptive Testing Methodology (ATM)

Page 24: Adaptive Testing Methodology [ ATM ]

Methodology

Page 30: Adaptive Testing Methodology [ ATM ]

ATM Concepts

Page 31: Adaptive Testing Methodology [ ATM ]

ATM Concepts

– BJJ vs. Praying Mantis (efficacy)

Image by knotlikeyou2 of Deviant Art

Page 32: Adaptive Testing Methodology [ ATM ]

ATM Concepts

– BJJ vs. Praying Mantis (efficacy)– Willingness to use other tools

Page 33: Adaptive Testing Methodology [ ATM ]

ATM Concepts

– BJJ vs. Praying Mantis (efficacy)– Willingness to use other tools– Heavy focus on OSINT

Page 34: Adaptive Testing Methodology [ ATM ]

ATM Concepts

– BJJ vs. Praying Mantis (efficacy)– Willingness to use other tools– Heavy focus on OSINT– Flexibility based on conditions

Page 35: Adaptive Testing Methodology [ ATM ]

ATM Concepts

– BJJ vs. Praying Mantis (efficacy)– Willingness to use other tools– Heavy focus on OSINT– Flexibility based on conditions– Transparency

Page 36: Adaptive Testing Methodology [ ATM ]

Methodology (structure)

Page 37: Adaptive Testing Methodology [ ATM ]

Methodology (structure)

Page 38: Adaptive Testing Methodology [ ATM ]

Methodology (structure) [ technology ]

Universal | 30M | 1H | 1D | 2D | UL | Check text here.

Page 39: Adaptive Testing Methodology [ ATM ]

Methodology (structure) [ technology ]

Universal | 30M | 1H | 1D | 2D | UL | Check text here.Apache | 30M | 1H | 1D | 2D | UL | Check text here.

Page 40: Adaptive Testing Methodology [ ATM ]

Methodology (structure) [ technology ]

Universal | 30M | 1H | 1D | 2D | UL | Check text here.Apache | 30M | 1H | 1D | 2D | UL | Check text here.Wordpress PHP | 30M | 1H | 1D | 2D | UL | Check text here.

Page 41: Adaptive Testing Methodology [ ATM ]

Methodology (structure) [ time ]

Universal | 30M | 1H | 1D | 2D | UL | Check text here.

Page 42: Adaptive Testing Methodology [ ATM ]

Methodology (structure) [ time ]

Universal | 30M | 1H | 1D | 2D | UL | Check text here.PHP | 30M | 1H | 1D | 2D | UL | Check text here.

Page 43: Adaptive Testing Methodology [ ATM ]

Methodology (structure) [ time ]

Universal | 30M | 1H | 1D | 2D | UL | Check text here.PHP | 30M | 1H | 1D | 2D | UL | Check text here.Express | 30M | 1H | 1D | 2D | UL | Check text here.

Page 44: Adaptive Testing Methodology [ ATM ]

Execution

Page 45: Adaptive Testing Methodology [ ATM ]

Execution

1. Client makes a request to ATM service

Page 46: Adaptive Testing Methodology [ ATM ]

Execution

1. Client makes a request to ATM service2. Client sends two (2) things

- DOMAIN- TIME SCOPE

Page 47: Adaptive Testing Methodology [ ATM ]

Execution

1. Client makes a request to ATM service2. Client sends two (2) things

- DOMAIN- TIME SCOPE

3. ATM service tests the domain for its stack

Page 48: Adaptive Testing Methodology [ ATM ]

Execution

1. Client makes a request to ATM service2. Client sends two (2) things

- DOMAIN- TIME SCOPE

3. ATM service tests the domain for its stack4. ATM service receives stack information

Page 49: Adaptive Testing Methodology [ ATM ]

Execution

1. Client makes a request to ATM service2. Client sends two (2) things

- DOMAIN- TIME SCOPE

3. ATM service tests the domain for its stack4. ATM service receives stack information5. ATM service parses the current

methodology for rules that match the stack and time combination given

Page 50: Adaptive Testing Methodology [ ATM ]

Execution

1. Client makes a request to ATM service2. Client sends two (2) things

- DOMAIN- TIME SCOPE

3. ATM service tests the domain for its stack4. ATM service receives stack information5. ATM service parses the current

methodology for rules that match the stack and time combination given

6. ATM service returns the custom set of methodology checks to the client

Page 51: Adaptive Testing Methodology [ ATM ]

Execution (visual)

SITE

CLIENT ATM

Page 52: Adaptive Testing Methodology [ ATM ]

Execution (visual)

SITE

CLIENT ATM(send domain/time)

[1]

Page 53: Adaptive Testing Methodology [ ATM ]

Execution (visual)

SITE

CLIENT ATM(send domain/time)

[1][2]

(checks site stack)

Page 54: Adaptive Testing Methodology [ ATM ]

Execution (visual)

SITE

CLIENT ATM(send domain/time)

[1][2]

(checks site stack)

[3] ATM parses checks

Page 55: Adaptive Testing Methodology [ ATM ]

Execution (visual)

SITE

CLIENT ATM(send domain/time)

[1][2]

(checks site stack)

[3] ATM parses checks

(returns checks to client)

[4]

Page 56: Adaptive Testing Methodology [ ATM ]

Demo

Page 57: Adaptive Testing Methodology [ ATM ]

- Contextual security testing- Crowdsourced updates via Github- Adjusts to technology stack- Adjusts to your time constraints- Produces customized testing for your app

Page 58: Adaptive Testing Methodology [ ATM ]

Next steps

Improve the methodologies (currently alpha, way more to add) Add additional factors (continuous monitoring via proxy logs) Add other types of context (besides stack and time) Add other types of testing (network/forensics/etc) Determine best time increments (community) Improve performance of the stack detection (multithreading) Create this is public service infrastructure that can be used with

various methodologies and clients Determine if I should do anything with the domains (stack-

check.com / adaptivetestingmethodology.com) (meh) Explore local implementations (non-service-based) for product

integrations

Page 59: Adaptive Testing Methodology [ ATM ]

Announcement: Portswigger and ATM

Coming to Burpsuite Soon!

** Ask me about RobotsDisallowed and SecLists integration as well

Page 60: Adaptive Testing Methodology [ ATM ]

Thanks

Daffyd Stuttard and the WAHH OWASP for ASVS and Web Testing Methodology Jason Haddix for the Bug Hunter’s Methodology Nestor Mata Cuthbert for help with Wordpress IOActive for being a phenomenal place to work

Page 61: Adaptive Testing Methodology [ ATM ]

- [ PROJECT ] github.com/danielmiessler/ATM- [ SERVICE ] danielmiessler.com/services/atm

- [ TWITTER ] twitter.com/danielmiessler- [ MAIL ] [email protected] [ MAIL ] [email protected]