Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

Developing Secure Software

Description

Mind Map on Developing Secure Software, created by lissy93 on 28/04/2014.
lissy93
Mind Map by lissy93, updated more than 1 year ago
lissy93
Created by lissy93 about 11 years ago
12
1
1 2 3 4 5 (0)

Resource summary

Developing Secure Software
  1. Stages of Security
    1. Security should be factored into every stage of the software development life cycle
      1. Design Phase: a threat model should be drawn up, this will then be refered to and followed throughout the rest of the development process
        1. Security questions should be asked and followed up during interviews
          1. Threat modeling should be a key part of the design process and not rushed
            1. When the design is complete it should be reviewed by the security team
              1. The bug bar and the end-of-line plans should be set too
            2. Implementation phase: the code should be reviewed it it should be formally stated who can modify the code
              1. Test plans must be followed throughout implemntation and development
              2. Testing Phase: testing the security of the application is a crucial part of the testing phase
                1. External Reviews
                  1. Security Pushes
                  2. Maintainence Phase: The security of the application should continue to be checked and updated
                    1. Including a good response service to bug reports
                2. Analiseing a Bug
                  1. After a bug is detected a triage process is carried out to determine when how and if a bug is going to be fixed
                    1. How many people does this bug affect?
                      1. How core is it to the requirements?
                        1. How much effort will it take to fix?
                          1. How likley is fixing the bug going to cause regression bugs?
                            1. (pretty much) All software has bugs in it, just some are so minor or hard to fix, that it's just not worthwhile amending them
                          2. Secure by Design, Default and Deployment
                            1. Secure by Design
                              1. Security should start before the project starts
                                1. Guidelines should be produced for all aspects of the project
                                  1. Learn from project mistakes, and update guidelines and search for similar problems when a potential bug is discovered
                                    1. Try and work out how the software may be broken, during the design phase (use threat models)
                                      1. Code that is dificult to maintain should not be used
                                      2. Secure by Default
                                        1. Don't give users any higher privalages than is absolutley necissary
                                          1. Keep it simple
                                            1. Only include features the are essential
                                              1. Sensitive data should be treated with care
                                              2. Secure by Deployment
                                                1. Provide good security documentation
                                                  1. Patch quickly and well
                                                    1. Provide easy access to safety resources
                                                    2. Additional Principles:
                                                      1. Minimize your attack surface
                                                        1. Use defense in depth
                                                          1. Backwards compatibility can cause issues
                                                            1. Employ secure defaults
                                                              1. Assume external systems are insecure
                                                                1. Plan on failure
                                                                  1. Security features are not secure features
                                                                    1. Don't mix code and data
                                                                      1. Fix security issues correctly
                                                                    2. Threat Modeling
                                                                      1. You can only defend a system if you have an idea of how people may try an compromise it
                                                                        1. Additional benefits of threat modeling
                                                                          1. You can understand your code better
                                                                            1. You'll find more of the bugs before the users do
                                                                              1. They can be used by others to understand your program
                                                                                1. They help with testing
                                                                                2. Threat modeling is time-consuming, but pretty easy
                                                                                3. The process
                                                                                  1. 1. Decompose Application
                                                                                    1. Must be done in a rigorous and formal manor
                                                                                      1. Modelling should be used
                                                                                        1. Data flow diagrams
                                                                                          1. UML activity diagrams
                                                                                            1. Capture how information flows through your program
                                                                                              1. Layered, start at a high level and work down the levels
                                                                                                1. For each model determine how you and others would break it
                                                                                              2. 2. Determine Threats
                                                                                                1. STRIDE
                                                                                                  1. Spoofing Identity - can the attacker pretend to be someone there not?
                                                                                                    1. Tampering with data - can the attacker maliciously manipulate data
                                                                                                      1. Repudiation - can the attacker be anonymous
                                                                                                        1. Information Disclosure - can the attacker gain access to information they wearn't supposed to know
                                                                                                          1. Denial of Service - can the attacker use DoS on other users?
                                                                                                            1. Elevation of Privilege - can the attacker access places they shouldn't be
                                                                                                          2. 3. Rank Threats
                                                                                                            1. Threat tree's
                                                                                                              1. We can use our threat classification to categorize threats into a tree, and can then model them.
                                                                                                            2. 4. Mitigation
                                                                                                          Show full summary Hide full summary

                                                                                                          0 comments

                                                                                                          There are no comments, be the first and leave one below:

                                                                                                          Similar

                                                                                                          Transforming Graphs
                                                                                                          james_hobson
                                                                                                          The Crucible Acts 1 and 2 Key Themes and Quotes
                                                                                                          Matthew T
                                                                                                          Restless Earth Notes
                                                                                                          Gladys Mba
                                                                                                          History of Psychology
                                                                                                          mia.rigby
                                                                                                          A2 Organic Chemistry - Reactions
                                                                                                          yannycollins
                                                                                                          Animal Farm- The Pigs
                                                                                                          lianastyles17
                                                                                                          Key Biology Definitions/Terms
                                                                                                          jane zulu
                                                                                                          Biology: Reproduction Flash Cards.
                                                                                                          LV1662000
                                                                                                          Chemistry GCSE Review - States of Matter, Particles, Atoms, Elements, Compounds and Mixtures
                                                                                                          Morgan Overton
                                                                                                          NCEA Guide to Studying
                                                                                                          Kerrin _