Agile Security for Web Developers
Kim Carter
Technologist – BinaryMist
Ltd
5: Identify Risks?
Agile Security
for Web Developers
IoTPhysical People MobileCloudVPS Networ Web AppNetwork
@binarymist
Evalute me -> https://goo.gl/nmkRZ3
5: Identify Risks?
https://leanpub.com/b/holisticinfosecforwebdevelopers
IoTPhysical People MobileCloudVPS Web AppNetwork
1: Asset Identification
2: Identify Risks
3: Countermeasures
4: What risks does solution cause?
5: Costs and Trade-offs
5: Identify Risks?
30,000’ View
5: Identify Risks?
People
App
IoTMobile
VPS
Network
Cloud
Physical
Web
5: Identify Risks?
Injection
TLS
Downgrade
D-DOS?
Easy to execute.
Tricky to mitigate
People in
need of
education
Buffer
Overflows
5: Identify Risks?
1. Deeply technical (developer/engineer)
2. Network expert(s)
3. Domain expert(s)
4. Person solely responsible for product
delivery
5. Person(s) with security specialisations in
the areas involved in the finished product
5: Identify Risks?
Asset Identification
5: Identify Risks?
Risk Identification
Risk Identification
5: Identify Risks?
Risk Identification
5: Identify Risks?
Risk = Likelihood * Impact
Risk Identification
Countermeasures
Product Backlog Sprint Backlog
Product Backlog items pulled into
Sprint to form Increment Forecast
● Avoid Commercial
●
● Use Public-Domain
●
Risks that Solution Causes
New Mitigated
Risks that Solution Causes
Establish Value
Loss of Convenience
Costs and Trade-offs
Costs and Trade-offs
5: Identify Risks?
30,000’ View
10,000’ View
5: Identify Risks?
Injection
TLS
Downgrade
D-DOS?
Easy to execute.
Tricky to mitigate
People in
need of
education
10,000’ View
Tooling
Processes
&
Practises
Red Team
Penetration Testing
Reconnaissance
Penetration Testing
https://inteltechniques.com/links.html
Reconnaissance
Penetration Testing
Vulnerability Scanning
Penetration Testing
NMAP
Decoy host (-D)
Idle scan (-sI)
Vulnerability Scanning
Penetration Testing
scanner/ssh/ssh_enumusers SSH Username Enumeration
scanner/ssh/ssh_identify_pubkeys SSH Public Key Acceptance Scanner
scanner/ssh/ssh_login SSH Login Check Scanner
scanner/ssh/ssh_login_pubkey SSH Public Key Login Scanner
scanner/ssh/ssh_version SSH Version Scanner
Vulnerability Scanning
Penetration Testing
Vulnerability Scanning
Penetration Testing
Vulnerability Scanning
Penetration Testing
https://github.com/offensive-security/exploit-database
Vulnerability Searching
Penetration Testing
https://www.exploit-db.com/
Vulnerability Searching
Penetration Testing
Penetration Testing
Penetration Testing
https://nodesecurity.io/advisories
https://web.nvd.nist.gov/view/vuln/search
Vulnerability Searching
Penetration Testing
https://bitbucket.org/t0x0/threatcrawler
Exploitation
Penetration Testing
Red Team
Penetration Testing
Evil Test Conditions
Security Focussed TDD
Security Regression Testing
Hand-crafted Penetration Testing
Establish a Security Champion
Pair Programming
Code Review
Techniques for Asserting Discipline
Essentials for Creating & Maintaining High Perf Dev Team
Forming Habits and Sharpening Skills
Blue Team
Agile Dev and Practices
Red Team -> Blue Team
Agile Dev and Practices
Pen testing @ go live -> within each Sprint
Agile Dev and Practices
The Sprint
Sprint Planning
Daily Scrum
Sprint Review
Retrospective
Product Backlog
Sprint Backlog
Sprint Increment
Definition of Done
Evil Test Conditions
Security Focussed TDD
Security Regression Testing
Hand-crafted Penetration Testing
Establish a Security Champion
Pair Programming
Code Review
Techniques for Asserting Discipline
Essentials for Creating & Maintaining High Perf Dev Team
Forming Habits and Sharpening Skills
5: Identify Risks?
Agile Dev and Practices
5: Identify Risks?
Agile Dev and Practices
The Sprint
Sprint Planning
Daily Scrum
Sprint Review
Retrospective
Product Backlog
Sprint Backlog
Sprint Increment
Definition of Done
Evil Test Conditions
Security Focussed TDD
Security Regression Testing
Hand-crafted Penetration Testing
Establish a Security Champion
Pair Programming
Code Review
Techniques for Asserting Discipline
Essentials for Creating & Maintaining High Perf Dev Team
Forming Habits and Sharpening Skills
The Sprint
Sprint Planning
Daily Scrum
Sprint Review
Retrospective
Product Backlog
Sprint Backlog
Sprint Increment
Definition of Done
Evil Test Conditions
Security Focussed TDD
Security Regression Testing
Establish a Security Champion
Pair Programming
Code Review
Techniques for Asserting Discipline
Essentials for Creating & Maintaining High Perf Dev Team
Forming Habits and Sharpening Skills
Hand-crafted Penetration Testing
The Sprint
Sprint Planning
Daily Scrum
Sprint Review
Retrospective
Product Backlog
Sprint Backlog
Sprint Increment
Definition of Done
Evil Test Conditions
Security Focussed TDD
Security Regression Testing
Pair Programming
Code Review
Techniques for Asserting Discipline
Essentials for Creating & Maintaining High Perf Dev Team
Forming Habits and Sharpening Skills
Hand-crafted Penetration Testing
Establish a Security Champion
Agile Dev and Practices
The Sprint
Sprint Planning
Daily Scrum
Sprint Review
Retrospective
Product Backlog
Sprint Backlog
Sprint Increment
Definition of Done
Evil Test Conditions
Security Focussed TDD
Security Regression Testing
Code Review
Techniques for Asserting Discipline
Essentials for Creating & Maintaining High Perf Dev Team
Forming Habits and Sharpening Skills
Hand-crafted Penetration Testing
Establish a Security Champion
Pair Programming
Code Review, Static & Dynamic Analysis
Agile Dev and Practices
The Sprint
Sprint Planning
Daily Scrum
Sprint Review
Retrospective
Product Backlog
Sprint Backlog
Sprint Increment
Definition of Done
Evil Test Conditions
Security Focussed TDD
Security Regression Testing
Techniques for Asserting Discipline
Essentials for Creating & Maintaining High Perf Dev Team
Forming Habits and Sharpening Skills
Hand-crafted Penetration Testing
Establish a Security Champion
Pair Programming
Code Review
Techniques for Asserting Discipline
Static Type Checking
DbC
Agile Dev and Practices
The Sprint
Sprint Planning
Daily Scrum
Sprint Review
Retrospective
Product Backlog
Sprint Backlog
Sprint Increment
Definition of Done
Security Focussed TDD
Security Regression Testing
Evil Test Conditions
Essentials for Creating & Maintaining High Perf Dev Team
Forming Habits and Sharpening Skills
Hand-crafted Penetration Testing
Establish a Security Champion
Pair Programming
Code Review
Techniques for Asserting Discipline
Agile Dev and Practices
5: Identify Risks?
Agile Dev and Practices
5: Identify Risks?
Given When Then
There are no items in
the shopping cart
Customer clicks
“Purchase” button for a
book which is in stock
1 x book is added to
shopping cart. Book is
held - preventing
selling it twice.
“ Customer clicks
“Purchase” button for a
book which is not in
stock
Dialog with “Out of
stock” message is
displayed and offering
customer option of
putting book on back
order.
5: Identify Risks?
Agile Dev and Practices
Given When Then
There are no items in
the shopping cart
User tries to downgrade
TLS and the HSTS
header is not sent by
the server
User should be
redirected (response
301 status code) to the
HTTPS site from the
server
“ User tries to downgrade
TLS and the HSTS
header is sent by the
server
User should be
redirected to the HTTPS
site from the browser
(no HTTP traffic for
sslstrip to tamper with)
The Sprint
Sprint Planning
Daily Scrum
Sprint Review
Retrospective
Product Backlog
Sprint Backlog
Sprint Increment
Definition of Done
Security Focussed TDD
Security Regression Testing
Essentials for Creating & Maintaining High Perf Dev Team
Forming Habits and Sharpening Skills
Hand-crafted Penetration Testing
Establish a Security Champion
Pair Programming
Code Review
Techniques for Asserting Discipline
Evil Test Conditions
Requirements or design defect found via
Product Backlog Item (PBI) collaboration
Length of Feedback Cycle
Cost
Requirements or design defect
found in Test Conditions Workshop
Programming or design defect
found via Pair Programming
Programming defect found
via Continuous Integration
Programming or design defect found via
Test Driven Development (T(B)DD)
Requirements or design defect
found via Stakeholder Participation
Defect found via pair
Developer Testing
Defect found via
Independent Review
Requirements defect found via
traditional Acceptance Testing
Programming or design defect
found via Pair Review
Design defect found via
traditional System Testing
Programming defect found via
traditional System Testing
Security defect found via
traditional external Penetration Testing
Requirements or design defect found via
Product Backlog Item (PBI) collaboration
Length of Feedback Cycle
Cost
Requirements or design defect
found in Test Conditions Workshop
Programming or design defect
found via Pair Programming
Programming defect found
via Continuous Integration
Programming or design defect found via
Test Driven Development (T(B)DD)
Requirements or design defect
found via Stakeholder Participation
Defect found via pair
Developer Testing
Defect found via
Independent Review
Requirements defect found via
traditional Acceptance Testing
Programming or design defect
found via Pair Review
Design defect found via
traditional System Testing
Programming defect found via
traditional System Testing
Security defect found via Security Test
Driven Development (STDD) or regression testing
5: Identify Risks?Zap-Api & NodeGoat
https://youtu.be/DrwXUOJWMoo
Agile Dev and Practices
Security Regression Testing
People
5: Identify Risks?
Asset Identification
5: Identify Risks?
Identify Risks
Identify Risks
Employee Snatching
5: Identify Risks?
https://youtu.be/zevpMvQwWOU
Identify Risks
Weak Password Strategies
5: Identify Risks?
Identify Risks
Spoofing Caller Id,
SMiShing
https://youtu.be/tb4o5UCHzSA
Identify Risks
Spear Phishing
5: Identify Risks?
Identify Risks
Infectious Media
5: Identify Risks?
5: Identify Risks?
/opt/usb-rubber-ducky/ java -jar encoder.jar 
-i inject.txt
-o /media/kim/B4AD-3FC1/inject.bin
Unmount -> Swap SD
Identify Risks
Infectious Media
5: Identify Risks?
5: Identify Risks?
Identify Risks
Infectious Media
5: Identify Risks?
We also have Teensy
5: Identify Risks?
Countermeasures
Product Backlog Sprint Backlog
Product Backlog items pulled into
Sprint to form Increment Forecast
5: Identify Risks?
Risks that Solution Causes
5: Identify Risks?
Costs and Trade-offs
5: Identify Risks?
Defence in Depth
5: Identify Risks?
https://leanpub.com/b/holisticinfosecforwebdevelopers
@binarymist
Evalute me -> https://goo.gl/nmkRZ3
5: Identify Risks?
Identify Risks
Infectious Media
Thanks for listening
Any Questions?

Kim Carter (BinaryMist)