SlideShare uma empresa Scribd logo
1 de 50
Baixar para ler offline
@pati_gallardo
Make it Fixable
Living with Risk
Patricia Aas
NDC London 2018
@pati_gallardo
Who am I? @pati_gallardo
Patricia Aas
Programmer - mainly in C++ and Java
Currently : Vivaldi Technologies
Previously : Cisco Systems, Knowit, Opera Software
Master in Computer Science
Twitter : @pati_gallardo
Security is Hard @pati_gallardo
Just Remember :
- You live in the real world
- Take one step at a time
- Make a Plan @pati_gallardo
You Need A Security
“Hotline”
security@example.com
Symbiotic relationship
Be polite
Be grateful
Be professional
Be efficient and transparent
@pati_gallardo
Everybody's An Expert
@pati_gallardo
- They Are. Really. - @pati_gallardo
1. Unable to Roll Out Fixes
2. No Control over Dependencies
3. The Team is Gone
4. It’s in Our Code
5. My Boss Made Me Do It
6. User Experience of Security
Outline
@pati_gallardo
- What is a System? - What is a vulnerability? -
@pati_gallardo
Unable to Roll Out Fixes @pati_gallardo
1
Unable to
Roll out Fixes
- Relying on User Updates
- Unable to Build
- Unable to Deploy
- Regression Fear
- No Issue Tracking
- No Release Tags
- No Source
- Issue in infrastructure
@pati_gallardo
Internet of Things
Toys: My Friend Cayla, i-Que Intelligent
Robots, Hello Barbie
Mirai: Botnets created with IOT
devices, users don’t update
“Shelfware”
No Maintenance contract
Abandonware
Closed source - no way to fix/fork
@pati_gallardo
Unable to Roll Out Fixes.
Fix : Ship It!
Holy Grail : Auto Update
Code
- Get the Code
- Use Version Control
- Keep Build Environment
- Write Integration Tests
Configuration Management
- Have Security Contact
- Track issues
- Make a Deployment Plan
- Control Infrastructure
@pati_gallardo
Unable to Roll Out Fixes.
Internet of Things
- Auto-update
- Different default passwords
- Unboxing security
“Shelfware”
- Get maintenance contract
- Change supplier
- Do in-house
- Use only Open Source Software
Fix : Ship It!
@pati_gallardoUnable to Roll Out Fixes.
No Control over Dependencies @pati_gallardo
2
No Control over
Dependencies
- Too Many Dependencies
- Frameworks are Abandoned
- Libraries Disappear
- Insecure Platform APIs
- Insecure Tooling
- End-of-Life OS (Windows)
- Licenses expire/change
- Known Issues not Fixed
- OS Not Updated (Android)
@pati_gallardo
Stagefright
Bugs in the multimedia library on
Android
Heartbleed
Bug in openssl
Left-Pad
Developer unpublished a mini-Js library
@pati_gallardo
No Control over Dependencies
Fix: Control It!
Goal : Dependency Control
Be conservative
- Is it needed?
- Do you understand it?
Be cautious
- Audit your upstream
- Avoid forking
- Have an upgrade plan
- Have someone responsible
@pati_gallardo
No Control over Dependencies
Stagefright
Workaround in apps calling into
stagefright
Heartbleed
Control over production environment
Left-Pad
Removing unnecessary dependency
Fix: Control It!
@pati_gallardoNo Control over Dependencies
The Team is Gone @pati_gallardo
3
The Team Is Gone
- Team were consultants
- They were downsized
- The job was outsourced
- “Bus factor”
- “Binary blob”
- Abandonware @pati_gallardo
“Public Sector”
- Leaves the code with subcontractor
- No build environment
- Third-party access to production
environment
Abandoned frameworks
- Framework interdependency
- Unable to upgrade
- Known bugs
The Team is Gone
@pati_gallardo
Fix : Own It!
Goal : Regain Control
Take it on yourselves
- Build competence in-house
- Fork, take control
- “Barely Sufficient” Docs
- Ship It and Control It
Outsource
- Maintenance Contract
- Add Security Clause
- Own deployment channel
@pati_gallardo
The Team Is Gone.
Fix : Own It!
“Public Sector”
- Backsourcing - Bring back work
previously outsourced
Abandoned frameworks
- Replace with equivalent (OSS)
- Remove dependency
- Fork if you don’t have a choice
@pati_gallardoThe Team Is Gone.
Use It!
@pati_gallardo
It’s in Our Code @pati_gallardo
4
It’s in Our Code
- Injection
- Exploited crash etc
- Debug code in production
- Server compromised
- Outdated platform
- Intercepted traffic
- Mined local data
- Good old fashioned BUG @pati_gallardo
REMA 1000 Æ App
- Reporter: Hallvard Nygård (@hallny)
- All user data could be retrieved
- Badly handled report
- “Bug” (Lack of security) in App
BEST CASE SCENARIO
@pati_gallardo
It’s In Our Code
Fix : Live It!
Goal : Prevent & Cure
Prevent
- Sanitize your input
- Send crash reports
- Code review + tests
- Review server security
- Encrypt all traffic
- Review local storage
- Sign and check
Cure
- Ship it!
@pati_gallardo
It’s In Our Code
Browsers are very experienced
- And therefore boring ;)
gitlab.com
- “rm -rf”
- Sysadmin maintenance
- Cascading errors as backups
fail
- All logged Publicly in real
time
Transparency
Fix : Live It!
@pati_gallardo
It’s In Our Code
My Boss Made Me Do It @pati_gallardo
5
My Boss Made Me Do It
The Feature
is the Bug
How?
- Security Problem
- Privacy Problem
- Unethical
- Illegal
@pati_gallardo
Capcom's Street Fighter V
- Installed a driver
- “anti-crack solution”
“...disables supervisor-mode execution
protection and then runs the arbitrary
code passed in through the ioctl buffer
with kernel permissions..”
- Reddit user extrwi
My Boss Made Me Do It
@pati_gallardo
Fix : Protect It!
Goal : Protect your user
Prevent : Protect your team
- Workers rights
- Build trust
Cure : Protect your company
- Find a Powerful Ally
- Do Risk Analysis : Brand Reputation,
Trust
- Use the Law
LAST RESORT : Whistleblowing & Quitting
@pati_gallardo
My Boss Made Me Do It
Statoil
- Internal reports of security
incidents after outsourcing
- Only public after serious IRL
incidents
Nødnett
- Transitive outsourcing
- National Security
These are often the Unsung Heroes
(Last Resort : Edward Snowden)
Fix : Protect It!
@pati_gallardo
My Boss Made Me Do It
@pati_gallardo
Ship It, Control It, Own It, Live It & Protect It
- You need a Security Hotline
- You Have to Ship
- You Can’t do This Alone
Recap
@pati_gallardo
Designing the User Experience of Security @pati_gallardo
6
@pati_gallardo
The Users Won’t Read
Error blindness
- Most users will mentally erase
permanent error notifiers - they
won’t read
“Just click next”
- Most users will accept the defaults
- they won’t read
“Make it go away”
- The user will try to make the error
dialog go away - they won’t read
@pati_gallardo
Fix : Less is More
Don’t leave it to the user
- Just do the right thing, you don’t
have to ask
Have good defaults
- Make sure that clicking next will
leave the user in a good place
Be very explicit when needed
- If the user is in a “dangerous”
situation - design carefully and if
you have to explain : use language
the user can understand
@pati_gallardo
They Trust You
With Personal information
- They trust you to protect them from
both hackers and governments
With Data
- They trust you to protect their
pictures, documents, email …
With Money
- They trust you to protect their
payment information and
passwords
@pati_gallardo
Fix : Be Trustworthy
Only store what you have to
- Try to use end-to-end encryption,
so that even you don’t have access.
Encrypt as much as you can
Back up everything
- Your users can’t afford to lose their
baby pictures
Use third party payment
- Avoid having responsibility for their
money
@pati_gallardo
Everyone Is An Expert @pati_gallardo
1. Unable to Roll Out Fixes
2. No Control over Dependencies
3. The Team is Gone
4. It’s in Our Code
5. My Boss Made Me Do It
6. User Experience of Security
Challenges
@pati_gallardo
@pati_gallardo
Ship It, Control It, Own It, Live It & Protect It
Design For It
Make it Fixable
Living with Risk
Patricia Aas, Vivaldi Technologies
@pati_gallardo
Photos from pixabay.com - CC0 Creative Commons License
Some
Vivaldi
Swag!
@pati_gallardo

Mais conteúdo relacionado

Mais procurados

Security Code Reviews. Does Your Code Need an Open Heart Surgery and The 6 Po...
Security Code Reviews. Does Your Code Need an Open Heart Surgery and The 6 Po...Security Code Reviews. Does Your Code Need an Open Heart Surgery and The 6 Po...
Security Code Reviews. Does Your Code Need an Open Heart Surgery and The 6 Po...
Sherif Koussa
 

Mais procurados (9)

Bug Bounty - Play For Money
Bug Bounty - Play For MoneyBug Bounty - Play For Money
Bug Bounty - Play For Money
 
Security Code Reviews. Does Your Code Need an Open Heart Surgery and The 6 Po...
Security Code Reviews. Does Your Code Need an Open Heart Surgery and The 6 Po...Security Code Reviews. Does Your Code Need an Open Heart Surgery and The 6 Po...
Security Code Reviews. Does Your Code Need an Open Heart Surgery and The 6 Po...
 
5 Tips to Successfully Running a Bug Bounty Program
5 Tips to Successfully Running a Bug Bounty Program5 Tips to Successfully Running a Bug Bounty Program
5 Tips to Successfully Running a Bug Bounty Program
 
The Game of Bug Bounty Hunting - Money, Drama, Action and Fame
The Game of Bug Bounty Hunting - Money, Drama, Action and FameThe Game of Bug Bounty Hunting - Money, Drama, Action and Fame
The Game of Bug Bounty Hunting - Money, Drama, Action and Fame
 
Hackfest presentation.pptx
Hackfest presentation.pptxHackfest presentation.pptx
Hackfest presentation.pptx
 
Bug bounty programs
Bug bounty programsBug bounty programs
Bug bounty programs
 
OWTG 2016, Web Çatı Şablonlarının Güvenliği (SSTI), Ömer Çıtak
OWTG 2016, Web Çatı Şablonlarının Güvenliği (SSTI), Ömer ÇıtakOWTG 2016, Web Çatı Şablonlarının Güvenliği (SSTI), Ömer Çıtak
OWTG 2016, Web Çatı Şablonlarının Güvenliği (SSTI), Ömer Çıtak
 
Mutating Mobile Gaming
Mutating Mobile GamingMutating Mobile Gaming
Mutating Mobile Gaming
 
Making the case for sandbox v1.1 (SD Conference 2007)
Making the case for sandbox v1.1 (SD Conference 2007)Making the case for sandbox v1.1 (SD Conference 2007)
Making the case for sandbox v1.1 (SD Conference 2007)
 

Semelhante a Make It Fixable, Living with Risk (NDC London 2018)

Intro to-ssdl--lone-star-php-2013
Intro to-ssdl--lone-star-php-2013Intro to-ssdl--lone-star-php-2013
Intro to-ssdl--lone-star-php-2013
nanderoo
 

Semelhante a Make It Fixable, Living with Risk (NDC London 2018) (20)

Reading Other Peoples Code (Web Rebels 2018)
Reading Other Peoples Code (Web Rebels 2018)Reading Other Peoples Code (Web Rebels 2018)
Reading Other Peoples Code (Web Rebels 2018)
 
DevSecOps for Developers, How To Start (ETC 2020)
DevSecOps for Developers, How To Start (ETC 2020)DevSecOps for Developers, How To Start (ETC 2020)
DevSecOps for Developers, How To Start (ETC 2020)
 
Security Opportunities A Silicon Valley VC Perspective
Security Opportunities  A Silicon Valley VC PerspectiveSecurity Opportunities  A Silicon Valley VC Perspective
Security Opportunities A Silicon Valley VC Perspective
 
Reading Other Peoples Code (NDC Sydney 2018)
Reading Other Peoples Code (NDC Sydney 2018)Reading Other Peoples Code (NDC Sydney 2018)
Reading Other Peoples Code (NDC Sydney 2018)
 
DevSecOps for Developers: How To Start
DevSecOps for Developers: How To StartDevSecOps for Developers: How To Start
DevSecOps for Developers: How To Start
 
Simple SAP Security Breach !!
Simple SAP Security Breach !!Simple SAP Security Breach !!
Simple SAP Security Breach !!
 
Secure Coding principles by example: Build Security In from the start - Carlo...
Secure Coding principles by example: Build Security In from the start - Carlo...Secure Coding principles by example: Build Security In from the start - Carlo...
Secure Coding principles by example: Build Security In from the start - Carlo...
 
I can be apple and so can you
I can be apple and so can youI can be apple and so can you
I can be apple and so can you
 
0 bugs policy
0 bugs policy0 bugs policy
0 bugs policy
 
Reading Other Peoples Code (NDC London 2019)
Reading Other Peoples Code (NDC London 2019)Reading Other Peoples Code (NDC London 2019)
Reading Other Peoples Code (NDC London 2019)
 
Maturing DevSecOps: From Easy to High Impact
Maturing DevSecOps: From Easy to High ImpactMaturing DevSecOps: From Easy to High Impact
Maturing DevSecOps: From Easy to High Impact
 
Shut Up And Eat Your Veg
Shut Up And Eat Your VegShut Up And Eat Your Veg
Shut Up And Eat Your Veg
 
Intro to-ssdl--lone-star-php-2013
Intro to-ssdl--lone-star-php-2013Intro to-ssdl--lone-star-php-2013
Intro to-ssdl--lone-star-php-2013
 
AppSec is Eating Security
AppSec is Eating SecurityAppSec is Eating Security
AppSec is Eating Security
 
DMA - Stupid Cyber Criminal Tricks
DMA - Stupid Cyber Criminal TricksDMA - Stupid Cyber Criminal Tricks
DMA - Stupid Cyber Criminal Tricks
 
Anatomy of Java Vulnerabilities - NLJug 2018
Anatomy of Java Vulnerabilities - NLJug 2018Anatomy of Java Vulnerabilities - NLJug 2018
Anatomy of Java Vulnerabilities - NLJug 2018
 
7 Things People Do To Endanger Their Networks
7 Things People Do To Endanger Their Networks7 Things People Do To Endanger Their Networks
7 Things People Do To Endanger Their Networks
 
Survey Presentation About Application Security
Survey Presentation About Application SecuritySurvey Presentation About Application Security
Survey Presentation About Application Security
 
Reading Other Peoples Code (NDC Copenhagen 2019)
Reading Other Peoples Code (NDC Copenhagen 2019)Reading Other Peoples Code (NDC Copenhagen 2019)
Reading Other Peoples Code (NDC Copenhagen 2019)
 
Protecting the Front Door
Protecting the Front DoorProtecting the Front Door
Protecting the Front Door
 

Mais de Patricia Aas

Mais de Patricia Aas (20)

NDC TechTown 2023_ Return Oriented Programming an introduction.pdf
NDC TechTown 2023_ Return Oriented Programming an introduction.pdfNDC TechTown 2023_ Return Oriented Programming an introduction.pdf
NDC TechTown 2023_ Return Oriented Programming an introduction.pdf
 
Telling a story
Telling a storyTelling a story
Telling a story
 
Return Oriented Programming, an introduction
Return Oriented Programming, an introductionReturn Oriented Programming, an introduction
Return Oriented Programming, an introduction
 
I can't work like this (KDE Academy Keynote 2021)
I can't work like this (KDE Academy Keynote 2021)I can't work like this (KDE Academy Keynote 2021)
I can't work like this (KDE Academy Keynote 2021)
 
Dependency Management in C++ (NDC TechTown 2021)
Dependency Management in C++ (NDC TechTown 2021)Dependency Management in C++ (NDC TechTown 2021)
Dependency Management in C++ (NDC TechTown 2021)
 
Introduction to Memory Exploitation (Meeting C++ 2021)
Introduction to Memory Exploitation (Meeting C++ 2021)Introduction to Memory Exploitation (Meeting C++ 2021)
Introduction to Memory Exploitation (Meeting C++ 2021)
 
Classic Vulnerabilities (MUCplusplus2022).pdf
Classic Vulnerabilities (MUCplusplus2022).pdfClassic Vulnerabilities (MUCplusplus2022).pdf
Classic Vulnerabilities (MUCplusplus2022).pdf
 
Classic Vulnerabilities (ACCU Keynote 2022)
Classic Vulnerabilities (ACCU Keynote 2022)Classic Vulnerabilities (ACCU Keynote 2022)
Classic Vulnerabilities (ACCU Keynote 2022)
 
Introduction to Memory Exploitation (CppEurope 2021)
Introduction to Memory Exploitation (CppEurope 2021)Introduction to Memory Exploitation (CppEurope 2021)
Introduction to Memory Exploitation (CppEurope 2021)
 
Thoughts On Learning A New Programming Language
Thoughts On Learning A New Programming LanguageThoughts On Learning A New Programming Language
Thoughts On Learning A New Programming Language
 
Trying to build an Open Source browser in 2020
Trying to build an Open Source browser in 2020Trying to build an Open Source browser in 2020
Trying to build an Open Source browser in 2020
 
Trying to build an Open Source browser in 2020
Trying to build an Open Source browser in 2020Trying to build an Open Source browser in 2020
Trying to build an Open Source browser in 2020
 
The Anatomy of an Exploit (NDC TechTown 2019)
The Anatomy of an Exploit (NDC TechTown 2019)The Anatomy of an Exploit (NDC TechTown 2019)
The Anatomy of an Exploit (NDC TechTown 2019)
 
Elections: Trust and Critical Infrastructure (NDC TechTown 2019)
Elections: Trust and Critical Infrastructure (NDC TechTown 2019)Elections: Trust and Critical Infrastructure (NDC TechTown 2019)
Elections: Trust and Critical Infrastructure (NDC TechTown 2019)
 
The Anatomy of an Exploit (NDC TechTown 2019))
The Anatomy of an Exploit (NDC TechTown 2019))The Anatomy of an Exploit (NDC TechTown 2019))
The Anatomy of an Exploit (NDC TechTown 2019))
 
Elections, Trust and Critical Infrastructure (NDC TechTown)
Elections, Trust and Critical Infrastructure (NDC TechTown)Elections, Trust and Critical Infrastructure (NDC TechTown)
Elections, Trust and Critical Infrastructure (NDC TechTown)
 
Survival Tips for Women in Tech (JavaZone 2019)
Survival Tips for Women in Tech (JavaZone 2019) Survival Tips for Women in Tech (JavaZone 2019)
Survival Tips for Women in Tech (JavaZone 2019)
 
Embedded Ethics (EuroBSDcon 2019)
Embedded Ethics (EuroBSDcon 2019)Embedded Ethics (EuroBSDcon 2019)
Embedded Ethics (EuroBSDcon 2019)
 
Chromium Sandbox on Linux (NDC Security 2019)
Chromium Sandbox on Linux (NDC Security 2019)Chromium Sandbox on Linux (NDC Security 2019)
Chromium Sandbox on Linux (NDC Security 2019)
 
Keynote: Deconstructing Privilege (C++ on Sea 2019)
Keynote: Deconstructing Privilege (C++ on Sea 2019)Keynote: Deconstructing Privilege (C++ on Sea 2019)
Keynote: Deconstructing Privilege (C++ on Sea 2019)
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Make It Fixable, Living with Risk (NDC London 2018)

  • 2. Make it Fixable Living with Risk Patricia Aas NDC London 2018 @pati_gallardo
  • 3. Who am I? @pati_gallardo
  • 4. Patricia Aas Programmer - mainly in C++ and Java Currently : Vivaldi Technologies Previously : Cisco Systems, Knowit, Opera Software Master in Computer Science Twitter : @pati_gallardo
  • 5. Security is Hard @pati_gallardo
  • 6. Just Remember : - You live in the real world - Take one step at a time - Make a Plan @pati_gallardo
  • 7. You Need A Security “Hotline” security@example.com Symbiotic relationship Be polite Be grateful Be professional Be efficient and transparent @pati_gallardo
  • 9. - They Are. Really. - @pati_gallardo
  • 10. 1. Unable to Roll Out Fixes 2. No Control over Dependencies 3. The Team is Gone 4. It’s in Our Code 5. My Boss Made Me Do It 6. User Experience of Security Outline @pati_gallardo
  • 11. - What is a System? - What is a vulnerability? - @pati_gallardo
  • 12. Unable to Roll Out Fixes @pati_gallardo 1
  • 13. Unable to Roll out Fixes - Relying on User Updates - Unable to Build - Unable to Deploy - Regression Fear - No Issue Tracking - No Release Tags - No Source - Issue in infrastructure @pati_gallardo
  • 14. Internet of Things Toys: My Friend Cayla, i-Que Intelligent Robots, Hello Barbie Mirai: Botnets created with IOT devices, users don’t update “Shelfware” No Maintenance contract Abandonware Closed source - no way to fix/fork @pati_gallardo Unable to Roll Out Fixes.
  • 15. Fix : Ship It! Holy Grail : Auto Update Code - Get the Code - Use Version Control - Keep Build Environment - Write Integration Tests Configuration Management - Have Security Contact - Track issues - Make a Deployment Plan - Control Infrastructure @pati_gallardo Unable to Roll Out Fixes.
  • 16. Internet of Things - Auto-update - Different default passwords - Unboxing security “Shelfware” - Get maintenance contract - Change supplier - Do in-house - Use only Open Source Software Fix : Ship It! @pati_gallardoUnable to Roll Out Fixes.
  • 17. No Control over Dependencies @pati_gallardo 2
  • 18. No Control over Dependencies - Too Many Dependencies - Frameworks are Abandoned - Libraries Disappear - Insecure Platform APIs - Insecure Tooling - End-of-Life OS (Windows) - Licenses expire/change - Known Issues not Fixed - OS Not Updated (Android) @pati_gallardo
  • 19. Stagefright Bugs in the multimedia library on Android Heartbleed Bug in openssl Left-Pad Developer unpublished a mini-Js library @pati_gallardo No Control over Dependencies
  • 20. Fix: Control It! Goal : Dependency Control Be conservative - Is it needed? - Do you understand it? Be cautious - Audit your upstream - Avoid forking - Have an upgrade plan - Have someone responsible @pati_gallardo No Control over Dependencies
  • 21. Stagefright Workaround in apps calling into stagefright Heartbleed Control over production environment Left-Pad Removing unnecessary dependency Fix: Control It! @pati_gallardoNo Control over Dependencies
  • 22. The Team is Gone @pati_gallardo 3
  • 23. The Team Is Gone - Team were consultants - They were downsized - The job was outsourced - “Bus factor” - “Binary blob” - Abandonware @pati_gallardo
  • 24. “Public Sector” - Leaves the code with subcontractor - No build environment - Third-party access to production environment Abandoned frameworks - Framework interdependency - Unable to upgrade - Known bugs The Team is Gone @pati_gallardo
  • 25. Fix : Own It! Goal : Regain Control Take it on yourselves - Build competence in-house - Fork, take control - “Barely Sufficient” Docs - Ship It and Control It Outsource - Maintenance Contract - Add Security Clause - Own deployment channel @pati_gallardo The Team Is Gone.
  • 26. Fix : Own It! “Public Sector” - Backsourcing - Bring back work previously outsourced Abandoned frameworks - Replace with equivalent (OSS) - Remove dependency - Fork if you don’t have a choice @pati_gallardoThe Team Is Gone.
  • 28. It’s in Our Code @pati_gallardo 4
  • 29. It’s in Our Code - Injection - Exploited crash etc - Debug code in production - Server compromised - Outdated platform - Intercepted traffic - Mined local data - Good old fashioned BUG @pati_gallardo
  • 30. REMA 1000 Æ App - Reporter: Hallvard Nygård (@hallny) - All user data could be retrieved - Badly handled report - “Bug” (Lack of security) in App BEST CASE SCENARIO @pati_gallardo It’s In Our Code
  • 31. Fix : Live It! Goal : Prevent & Cure Prevent - Sanitize your input - Send crash reports - Code review + tests - Review server security - Encrypt all traffic - Review local storage - Sign and check Cure - Ship it! @pati_gallardo It’s In Our Code
  • 32. Browsers are very experienced - And therefore boring ;) gitlab.com - “rm -rf” - Sysadmin maintenance - Cascading errors as backups fail - All logged Publicly in real time Transparency Fix : Live It! @pati_gallardo It’s In Our Code
  • 33. My Boss Made Me Do It @pati_gallardo 5
  • 34. My Boss Made Me Do It The Feature is the Bug How? - Security Problem - Privacy Problem - Unethical - Illegal @pati_gallardo
  • 35. Capcom's Street Fighter V - Installed a driver - “anti-crack solution” “...disables supervisor-mode execution protection and then runs the arbitrary code passed in through the ioctl buffer with kernel permissions..” - Reddit user extrwi My Boss Made Me Do It @pati_gallardo
  • 36. Fix : Protect It! Goal : Protect your user Prevent : Protect your team - Workers rights - Build trust Cure : Protect your company - Find a Powerful Ally - Do Risk Analysis : Brand Reputation, Trust - Use the Law LAST RESORT : Whistleblowing & Quitting @pati_gallardo My Boss Made Me Do It
  • 37. Statoil - Internal reports of security incidents after outsourcing - Only public after serious IRL incidents Nødnett - Transitive outsourcing - National Security These are often the Unsung Heroes (Last Resort : Edward Snowden) Fix : Protect It! @pati_gallardo My Boss Made Me Do It
  • 38. @pati_gallardo Ship It, Control It, Own It, Live It & Protect It
  • 39. - You need a Security Hotline - You Have to Ship - You Can’t do This Alone Recap @pati_gallardo
  • 40. Designing the User Experience of Security @pati_gallardo 6
  • 42. The Users Won’t Read Error blindness - Most users will mentally erase permanent error notifiers - they won’t read “Just click next” - Most users will accept the defaults - they won’t read “Make it go away” - The user will try to make the error dialog go away - they won’t read @pati_gallardo
  • 43. Fix : Less is More Don’t leave it to the user - Just do the right thing, you don’t have to ask Have good defaults - Make sure that clicking next will leave the user in a good place Be very explicit when needed - If the user is in a “dangerous” situation - design carefully and if you have to explain : use language the user can understand @pati_gallardo
  • 44. They Trust You With Personal information - They trust you to protect them from both hackers and governments With Data - They trust you to protect their pictures, documents, email … With Money - They trust you to protect their payment information and passwords @pati_gallardo
  • 45. Fix : Be Trustworthy Only store what you have to - Try to use end-to-end encryption, so that even you don’t have access. Encrypt as much as you can Back up everything - Your users can’t afford to lose their baby pictures Use third party payment - Avoid having responsibility for their money @pati_gallardo
  • 46. Everyone Is An Expert @pati_gallardo
  • 47. 1. Unable to Roll Out Fixes 2. No Control over Dependencies 3. The Team is Gone 4. It’s in Our Code 5. My Boss Made Me Do It 6. User Experience of Security Challenges @pati_gallardo
  • 48. @pati_gallardo Ship It, Control It, Own It, Live It & Protect It Design For It
  • 49. Make it Fixable Living with Risk Patricia Aas, Vivaldi Technologies @pati_gallardo Photos from pixabay.com - CC0 Creative Commons License