Developing Secure Software

Description

Mind Map on Developing Secure Software, created by lissy93 on 04/28/2014.
lissy93
Mind Map by lissy93, updated more than 1 year ago
lissy93
Created by lissy93 almost 11 years ago
11
1

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

                                                                                                          Similar

                                                                                                          Bayonet Charge flashcards
                                                                                                          katiehumphrey
                                                                                                          Definitions in AS chemistry
                                                                                                          Stephen Cole
                                                                                                          Themes of Jane Eyre
                                                                                                          blackfeather1128
                                                                                                          Biology -B2
                                                                                                          HeidiCrosbie
                                                                                                          Japanese - Months
                                                                                                          blitheetick0920
                                                                                                          FORM AND STRUCTURE: ROMEO AND JULIET
                                                                                                          Sarah Soler
                                                                                                          B3, C3, P3
                                                                                                          George Moores
                                                                                                          AS Sociology - Families and Households functionalist perspective.
                                                                                                          Camille Bailey
                                                                                                          NSI Test First day
                                                                                                          Adedipe Odunayom
                                                                                                          English Language Techniques 2
                                                                                                          Adam Arrell
                                                                                                          Romeo and Juliet Key Quotations
                                                                                                          Rachel Sheppard