Domain 8 -- Software Development Security Flashcards
(207 cards)
What are the phases of the SDLC?
- Requirements
- Design
- Development
- Testing
- Operations and Maintenance
What are examples of Privacy Risk?
- P1, High Privacy Risk
- P2, Moderate Privacy Risk
- P3, Low Privacy Risk
What are three models for software requirements?
- Informational model
- Functional model
- Behavioral model
What is an attack surface?
An attack surface is what is available to be used by an attacker against the product itself.
What is test driven development?
It means developing the unit tests for their modules before they even start coding
What are the 4 testing types for the exam
- Unit testing
- Integration testing
- Acceptance testing
- Regression testing
What are fuzzers and fuzzing?
- Fuzzers use complex input to impair program execution.
- Fuzzing is a technique used to discover flaws and vulnerabilities in software by sending large amounts of malformed, unexpected or random data to teh target program in order to trigger failures
What’s a manual test?
A manual test is used to analyze aspects of the program that require human intuition and can usually be judged using computing techniques.
Testers try to locate design flaws and hack the software
What’s the difference between Verification and Validation?
- Verification determines if the product accurately represents and meets the specs. Did we build the product right?
- Validation determines if the product provides the necessary solution for the intended real-world problem. Did we build the right product?
What is a zero-day vulnerability?
- A zero-day vulnerability is one that does not currently have a resolution
What are the key security tasks of the Requirements gathering phase?
- Security risk assessment
- Privacy Risk Assessment
- Risk-level acceptance
- Informational, functional and behavioral requirements
What are two key security tasks in the Design phase?
- Attack surface analysis
- Threat modeling
What are 2 key security tasks in the Development Phase?
- Automated CASE tools
- Static analysis
What are two key security activities in the Testing phase?
- Dynamic analysis
- Fuzzing
- Manual testing
- Unit, integration, acceptance and regression testing
- What is the key security related activity during the Operations and maintenance phase?
- Final security review
Why is the V-shaped methodology better than waterfall in some respects?
V-shaped emphasizes testing throughout the development process, not just at the end. Thus, it has a higher chance of success
What is a prototype?
A prototype is a sample of software code or a model that can be developed to explore a specific approach to a problem before investing expensive time and resources
What’s the difference between?
- Rapid prototyping
- Evolutionary prototypes
- Operational prototypes
- Rapid prototype lets the dev team quickly create a prototype to test the validity. Quick and dirty – not meant to used. Throw-away.
- Evolutionary prototypes - prototype will be improved upon and used
- Operational prototypes - an extension of evolutionary prototypes. Designed to be implemented in Prod while it is being tweaked
What is the incremental methodology with respect to software development?
- It allows the dev team to carry out multiple development cycles on a piece of software throughout its development.
- After each iteration, it is a working piece of software that will be implemented in production.
- Advantages:
- Product is delivered more quickly
- Initial delivery costs are lower
- Customer gets functionality earlier
- Risks of critical changes taking place are lower
What is the Spiral Methodology?
- The spiral methodology uses an iterative approach to software development and places emphasis on risk management
- Four main phases that are iterated through:
- Objectives
- Risk analysis
- Development
- Test
- At the conclusion of each cycle of the spiral a Prototype is created
- Eventually, an operational prototype will be created
What are the advantages of the spiral methodology?
- Good methodology for complex projects that have fluid requirements
- Allows new requirements to be addressed as they are uncovered
- Each prototype allows for early testing and feedback
What is the Rapid Application Development methodology?
- RAD is a methodology that relies more on the use of rapid prototyping, rather than on extensive upfront planning.
- Uses prototyping and iterative development
Do Agile methodologies use prototypes to represent the full product?
No – Agile methodologies break the product down into individual features that are continuously being delivered
What are some of the key features of the Scrum method of Agile development
- Widely used
- Allows project features to be added/changed/removed at clearly defined points
- Customer is intimately involved
- Changes can happen at the conclusion of a sprint, but not during a sprint
- Have backlogs of feature stories