WebAppSec/MozSecureWorld: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 53: Line 53:


== Roadmap ==
== Roadmap ==
# X Setup [[https://github.com/mozilla/playdoh/ playdoh]] & [https://github.com/haoqili/MozSecWorld github]
# X Setup [https://github.com/mozilla/playdoh/ playdoh] & [https://github.com/haoqili/MozSecWorld github]
# X Running HelloWorld  
# X Running HelloWorld  
# X Design Planning
# X Design Planning
# X Figure out how to do [[https://docs.djangoproject.com/en/dev/ref/templates/api/#loading-templates templates]]
# X Figure out how to do [https://docs.djangoproject.com/en/dev/ref/templates/api/#loading-templates templates]
# Figure out how to put in database
# Figure out how to put in database
# Make "about" pages for each bullet above
# Make "about" pages for each bullet above

Revision as of 19:50, 8 June 2011

Purpose

A running web application to demonstrate major security paradigms used within Mozilla web applications and security capabilities of modern browsers.

Uses

  • Demonstration of secure application design
  • Explanation of importance and purpose of security features
  • Learning tool for others to reference
  • Testing site to validate effectiveness of security & design recommendations
  • Evaluation tool for pen testing individuals or tools

Design

Architecture

Python on Django via Playdoh

Security Components & Controls

Authentication

  • Brute force prevention via adaptive CAPTCHA
  • Password storage via bcrypt and system nonce
  • Account creation with blacklisted password support
  • (Possible) Secure Password Reset

How

  • Login with database and different users

Access Control

  • Presentation, Business, Data Layer Access Control
    • Presentation and Data layers use decorators
    • Read about presentation layer protection
  • (Possible) Two tier design for admin account separation
    • The picture of separate control of changing passwords

Input Validation

  • Rich text handling via bleach
  • File upload support via secure file handling guidelines
  • File Handling
  • SQL
  • Content Security Policy
    • outsource all javascript source! for the CSP demo as 2nd barrier beyond escaping characters
  • (Possible) Third party service
  • (Possible) Third party hosted images. Initial processing and per visit processing?

Transport Security

  • Full & correct TLS
  • HTTP Strict Transport Security

How

Cross Domain Controls

  • X-frame-options in header options

Cookie Protection

  • Secure Flag
  • HTTPOnly Flag

Roadmap

  1. X Setup playdoh & github
  2. X Running HelloWorld
  3. X Design Planning
  4. X Figure out how to do templates
  5. Figure out how to put in database
  6. Make "about" pages for each bullet above
    • have a generic django template
  7. Code basic item first (x-frame-options, secure flag, httponly flag)
  8. Use bleach for rich text.
  9. add decorators for data and business layers
  10. read about presentation layer
  11. Complete initial presentation layer and CSS for basic item
  12. Setup backend database
  13. Authentication/login
  14. File upload stuff

Links References

https://wiki.mozilla.org/WebAppSec/Secure_Coding_Guidelines