Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Correct the most common web development security mistakes - Eric Vanderburg

652 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Correct the most common web development security mistakes - Eric Vanderburg

  1. 1. Correct the most common web development security mistakes © 2015 Property of JurInnov Ltd. All Rights Reserved Eric A. Vanderburg, MBA, CISSP Director, Information Systems and Security Computer Forensic and Investigation Services
  2. 2. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Security mistakes • Current state • Common web development mistakes – Security misconfiguration – URL access – Redirects and forwards – Direct object references – Storage locations – Transport layer 2
  3. 3. © 2015 Property of JurInnov Ltd. All Rights Reserved Threats Impacts Threat and Impact
  4. 4. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Current state  Average breach costs $214 per record  Average organizational cost $7.2 million per incident  Risk and compliance budgets expected to increase by 21% 4
  5. 5. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved $548 million The US government is increasing cyber security R&D by 35% to $548 million next year More organized outside attacks Facts and Figures
  6. 6. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Security misconfiguration • Secure web servers and dependencies • Source code repositories • All credentials should change in production 6
  7. 7. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Impact • Install backdoor through missing network or server patch • XSS flaw exploits due to missing application framework patches • Unauthorized access to default accounts, application functionality or data, or unused but accessible functionality due to poor server configuration 7
  8. 8. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Protection • Verify your system’s configuration management – Secure configuration “hardening” – Must cover entire platform and application – Keep up with patches for OS and components – Analyze security effects of changes • Can you export the application configuration – Build reporting into your process • Verify the implementation – If you can’t verify it, it isn’t secure – Scanning finds generic configuration and missing patch problems 8
  9. 9. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved URL access • Failure to restrict URL access • How it happens: – Displaying only authorized links and menu choices – This is called presentation layer access control, and doesn’t work – Attacker simply forges direct access to ‘unauthorized’ pages 9
  10. 10. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Example • Attacker notices the URL indicates his role /user/getAccounts • Attacker modifies it to another directory /admin/getAccounts, or /manager/getAccounts 10 • Attacker views more accounts than just their own
  11. 11. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Impact • Attackers invoke functions and services they’re not authorized for • Access other user’s accounts and data • Perform privileged actions 11
  12. 12. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Protection • For each URL, a site needs to do 3 things – Restrict access to authenticated users (if not public) – Enforce any user or role based permissions (if private) – Completely disallow requests to unauthorized page types (e.g., config files, log files, source files, etc.) • Verify your architecture – Use a simple, positive modeevery layer – Be sure you actually have a mechanism at l at every layer 12
  13. 13. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Verify the implementation • Forget automated analysis approaches • Verify that each URL in your application is protected by either – An external filter, like Java EE web.xml or a commercial product – Or internal checks in YOUR code – Use ESAPI’s isAuthorizedForURL() method • Verify the server configuration disallows requests to unauthorized file types • Use WebScarab or your browser to forge unauthorized requests 13
  14. 14. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Redirects and forwards • Unvalidated redirects and forwards • Web application redirects send victims to a site of the attacker’s choice • Forwards – They internally send the request to a new page in the same application – Sometimes parameters define the target page – Used to bypass authentication and authorization checks 14
  15. 15. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Impact • Redirect victim to phishing or malware site • Attacker’s request is forwarded past security checks, allowing unauthorized function or data access 15
  16. 16. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Protecting redirects • Avoid using redirects and forwards as much as you can • If used, don’t involve user parameters in defining the target URL • If you ‘must’ involve user parameters, then either – Validate each parameter to ensure its valid and authorized for the current user, or – (preferred) – Use server side mapping to translate choice provided to user with actual target page • Defense in depth: For redirects, validate the target URL after it is calculated to make sure it goes to an authorized external site 16
  17. 17. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Protecting forwards • Ideally, you’d call the access controller to make sure the user is authorized before you perform the forward (with ESAPI, this is easy) • With an external filter, like Siteminder, this is not very practical • Next best is to make sure that users who can access the original page are ALL authorized to access the target page. 17
  18. 18. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Direct object references • Insecure direct object references • Caused by failed access control at the presentation layer allowing attackers to modify parameter values. – Only listing the ‘authorized’ objects for the current user, or – Hiding the object references in hidden fields and then not enforcing these restrictions on the server side 18
  19. 19. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Impact • Impact – Unauthorized access – Data breach – Data corruption 19
  20. 20. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Example • www.banking.com/user?acct=10579 • Attacker notices his acct parameter is 10579 ?acct=10579 • He modifies it to a nearby number ?acct=10580 • Attacker views the victim’s account information 20
  21. 21. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Protection techniques • Eliminate the direct object reference • Replace them with a temporary mapping value • ESAPI provides support for numeric & random mappings » IntegerAccessReferenceMap » RandomAccessReferenceMap • Validate the direct object reference • Verify the parameter value is properly formatted • Verify the user is allowed to access the target object • Verify the requested mode of access is allowed to the target object (e.g., read, write, delete) 21
  22. 22. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Storage locations • Insecure Cryptographic Storage – Failure to identify all sensitive data – Failure to identify all the places that this sensitive data gets stored – Databases, files, directories, log files, backups, etc. – Failure to properly protect this data in every location 22
  23. 23. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Impact • Attackers access or modify confidential or private information – e.g, credit cards, health care records, financial data (yours or your customers) • Attackers extract secrets to use in additional attacks • Company embarrassment, customer dissatisfaction, and loss of trust • Expense of cleaning up the incident, such as forensics, sending apology letters, reissuing thousands of credit cards, providing identity theft insurance • Business gets sued and/or fined 23
  24. 24. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Protection techniques • Verify your architecture – Identify all sensitive data – Identify all the places that data is stored – Ensure threat model accounts for possible attacks – Use encryption to counter the threats, don’t just ‘encrypt’ the data • Protect with appropriate mechanisms – File encryption, database encryption, data element encryption 24
  25. 25. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Protection techniques • Use the mechanisms correctly – Use standard strong algorithms – Generate, distribute, and protect keys properly – Be prepared for key change • Verify the implementation – A standard strong algorithm is used, and it’s the proper algorithm for this situation – All keys, certificates, and passwords are properly stored and protected – Safe key distribution and an effective plan for key change are in place – Analyze encryption code for common flaws 25
  26. 26. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Transport Layer • Insufficient Transport Layer Protection – Failure to identify all sensitive data – Failure to identify all the places that this sensitive data is sent – On the web, to backend databases, to business partners, internal communications – Failure to properly protect this data in every location 26
  27. 27. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Impact • Attackers access or modify confidential or private information – e.g, credit cards, health care records, financial data (yours or your customers) • Attackers extract secrets to use in additional attacks • Company embarrassment, customer dissatisfaction, and loss of trust • Expense of cleaning up the incident, such as forensics, sending apology letters, reissuing thousands of credit cards, providing identity theft insurance • Business gets sued and/or fined 27
  28. 28. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved Protection techniques • Protect with appropriate mechanisms – Use TLS on all connections with sensitive data – Individually encrypt messages before transmission (XML- Encryption) – Sign messages before transmission (XML-Signature) • Correct use – Use standard strong algorithms (disable old SSL algorithms) – Manage keys/certificates properly – Verify SSL certificates before using them 28
  29. 29. © 2015 Property of JurInnov Ltd. All Rights Reserved Questions
  30. 30. © 2015 Property of JurInnov Ltd. All Rights Reserved© 2015 Property of JurInnov Ltd. All Rights Reserved For assistance or additional information • Phone: 216-664-1100 • Web: www.jurinnov.com • Email: eric.vanderburg@jurinnov.com • Twitter: @evanderburg • Facebook: www.facebook.com/VanderburgE • Linkedin: www.linkedin.com/in/evanderburg • Youtube: www.youtube.com/user/evanderburg JurInnov Ltd. The Idea Center 1375 Euclid Avenue, Suite 400 Cleveland, Ohio 44115

×