secure by design
play

Secure by Design A novel industry practice CASTOR Software Days - PowerPoint PPT Presentation

Secure by Design A novel industry practice CASTOR Software Days 2019 October 15, 2019 Daniel Deogun & Dan Bergh Johnsson Disclaimer Warning for lack of evidence This presentation is purely anecdotical. But, we would welcome rigorous


  1. Secure by Design A novel industry practice CASTOR Software Days 2019 October 15, 2019 Daniel Deogun & Dan Bergh Johnsson

  2. Disclaimer Warning for lack of evidence This presentation is purely anecdotical. But, we would welcome rigorous studies. @DanielDeogun @danbjson #SecureByDesign

  3. About us Umeå Umeå Uppsala Uppsala Stockholm Stockholm Göteborg Göteborg Daniel Deogun Dan Bergh Johnsson Malmö Malmö Coder and Quality Defender Secure Domain Philosopher Omegapoint @DanielDeogun @danbjson #SecureByDesign

  4. Take-aways Security is important but in practice often neglected • A lot of security vulnerabilities are due to bugs • Bugs can be prevented by software design • Secure by Design collects designs that prevents bugs • that manifest as security vulnerabilities @DanielDeogun @danbjson #SecureByDesign

  5. Some security vulnerabilities • SQL Injection is often a confidentiality problem • Business integrity problems • Patch management Observation: It is hard to think about security all the time - especially when you have work to do. @DanielDeogun @danbjson #SecureByDesign

  6. Secure by Design - as method @DanielDeogun @danbjson #SecureByDesign

  7. Examples of interesting designs • Domain Primitives • Faults as normal results • Consistent upon Creation • Immutable builds • Immutability of Objects • Seamless deploy • Entity Snapshot • Stateless components • Testing of extremes • Externalization of configuration • Taint analysis • 3 R’s of Enterprise Security @DanielDeogun @danbjson #SecureByDesign

  8. Domain Primitives “A value object so precise in its definition that it, by its mere existence, manifests its validity is called a Domain Primitive.” - Secure by Design • Can only exist if its value is valid • Building block that’s native to your domain • Valid in the current context • Immutable and resemble a value object in DDD @DanielDeogun @danbjson #SecureByDesign

  9. Quantity as a Domain Primitive public final class Quantity { private final int value ; public Quantity( final int value) { inclusiveBetween (1, 99, value); this . value = value; } //Domain specific quantity operations... } @DanielDeogun @danbjson #SecureByDesign

  10. Untangle Inside - Cluttered Entity class Order { private ArrayList<Object> items ; private boolean paid ; public void addItem(String isbn, int qty) { if ( this . paid == false ) { notNull (isbn); inclusiveBetween (10, 10, isbn.length()); isTrue (isbn.matches( "[0-9X]*" )); isTrue (isbn.matches( "[0-9]{9}[0-9X]" )); Book book = bookCatalogue.findByISBN(isbn); if (inventory.availableBooks(isbn) >= qty) { items .add( new OrderLine(book, qty)); } } } //Other logic... https://flic.kr/p/wdBcT https://creativecommons.org/licenses/by/2.0/ } @DanielDeogun @danbjson #SecureByDesign

  11. De-Cluttered Entity class Order { private ArrayList<Object> items ; private boolean paid ; public void addItem(ISBN isbn, Quantity qty) { notNull (isbn); notNull (qty); if ( this . paid == false ) { Book book = bookCatalogue.findByISBN(isbn); if (inventory.availableBooks(isbn).greaterOrEqualTo(qty)) { items .add( new OrderLine(book, qty)); } } } //Other logic... } https://flic.kr/p/wdBcT https://creativecommons.org/licenses/by/2.0/ @DanielDeogun @danbjson #SecureByDesign

  12. The R's of Enterprise Security Rotate Repave Repair Ref: Justin Smith, Pivotal @justinjsmith @DanielDeogun @danbjson #SecureByDesign

  13. Advanced Persistent Threat (APT) • APT is a type of attack that often result in significant data loss or damage. • Performed over a long period of time & involves advanced techniques • Several vulnerabilities in combination are often used to exploit the system Richard Patterson https://flic.kr/p/24GcRZQ • Exploiting the fact that things seldom change • servers • credentials • ip-addresses • non-patched bugs tend to open up for attacks, e.g. • Baltimore City Ransomware • NotPetya attack on Ukraine • Heartbleed in OpenSSL @DanielDeogun @danbjson #SecureByDesign

  14. Designs Inspired from the Cloud … v 1.0 . . . ? v 1.1 v 2.0 Service Discovery Stateless Services Expand / Contract APIs @DanielDeogun @danbjson #SecureByDesign

  15. The R's of Enterprise Security Rotate Repave Repair Ref: Justin Smith, Pivotal @justinjsmith @DanielDeogun @danbjson #SecureByDesign

  16. Take-aways Security is important but in practice often neglected • A lot of security vulnerabilities are due to bugs • Bugs can be prevented by software design • Secure by Design collects designs that prevents bugs • that manifest as security vulnerabilities @DanielDeogun @danbjson #SecureByDesign

  17. Thanks @DanielDeogun @danbjson #SecureByDesign @DanielDeogun @danbjson #SecureByDesign

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend