CH10 Secure Software Development Flashcards
What is SDLC ?
SDLC = Software Development Life Cycle
What are the seven phases of the software development life cycle ?
- Planning and Analysis
- Software / Systems Design
- Implementation
- Testing
- Integration
- Deployment
- Maintenance
What is Agile software development ?
Performed in time-boxed or small increments to allow more adaptivity to change.
Agile development projects work in either two-week or four-week time period known as sprint.
What is DevOps ?
Software development and information technology operations.
Software developers and IT operation personal work closely together to speed up the development and deployment of the applications and to get things out to the end user quicker.
What is CIA triad ?
confidentiality, integrity, and availability
Confidentiality – ensures that only authorized users can access the data. The most common way of ensuring confidentiality is to include the use of encryption to maintain the secrecy of the data being stored.
Integrity – ensuring that the data is not modified or altered without permission. Two main ways that we do this as developers is by utilizing hash algorithms as a method of integrity check for the data or by using journaling and logging functions to create audit trail showing the integrity of the data has not been compromised.
Availability – Ensuring that data is available to authorized users when it is needed. Developers do this by creating redundancy in the overall system design, by ensuring their software code is error-free, or by ensuring that their software can conduct error handling appropriately to prevent crashes.
What does Threat modeling do?
Threat modeling helps prioritize vulnerability identification and patching
What is a concept of Defense in Depth?
Layering of security controls is more effective and secure than relying on a single control
What are SDLC Principles ?
o Developers should always remember confidentiality, integrity, and availability
o Threat modeling helps prioritize vulnerability identification and patching
o Least Privilege
o Defense in Depth
o Never Trust User Input
o Minimize Attack Surface
o Create Secure Defaults
o Authenticity and Integrity
o Fail Securely
o Fix Security Issues
o Rely on Trusted SDKs
What is Black-box Testing ?
Occurs when a tester is not provided with any information about the system or program prior to conducting the test
What is White-box Testing ?
Occurs when a tester is provided full details of a system including the source code, diagrams, and user credentials in order to conduct the test
What is Gray-box testing ?
mixture of black-box and white-box. Tester is given some amount of information about the system and conducts his testing as if he doesn’t have full access to it
What is Static Analysis ?
Source code of an application is reviewed manually or with automatic tools without running the code
What is Dynamic Analysis ?
Analysis and testing of a program occurs while it is being executed or run
What is Fuzzing ?
Injection of randomized data into a software program in an attempt to find system failures, memory leaks, error handling issues, and improper input validation
What is Backdoor vulnerabilities ?
code placed in computer programs to bypass normal authentication and other security mechanisms.
Backdoors are a poor coding practice and should not be utilized.