Secure Software Development Flashcards
is an organized process of developing a secure application throughout the life of the project
SDLC Software Development Life Cycle
Helps prioritize vulnerabilty identification and patching
Threat modeling
Users and processes should be run using the least amount of access necessary to perform a given information
Least Privilege
Layering of a security controls is more effective and secure than relying on a single control.
Defense in Depth
Occurs when tester is not provided with any information about the system or program prior to conducting the test
Black box testing
Occurs when a tester is provided full details of a system including the source code, diagram and user credentials in order to conduct the test
White box testing
Provides control over what the application should do when faced with a run time or syntax error. Programs should use input validation when taking data from users
Structured exception handling
Applications verify that information received from a user matches a specific format or range values.
Input Validation
Analysis and testing of a program occurs with it being executed and run
Dynamic analysis
Injection of randomize data into a software program in an attempt to find a system failures, memory leaks, error handling issues and improper input validation.
Fuzzing
Code placed in computer programs to by pass normal authentication and other security mechanism.
Backdoors
Method of accessing unauthorized directories by moving through the directory structure on a remote server
Directory traversal
Occurs when an attacker is able to execute or run commands on a victim’s computer. When the user is away from computer.
Arbitrary Code Execution
Occurs when an attacker is able to execute or run commands on a remote computer
Remote code execution
Attack against a vulnerability that is unknown to the original developer or manufacturer
Zero day
Occurs when a process stores data outside the memory range allocated by the developer.
Buffer overflow
A temporary storage area that a program uses to store data
Buffer
Reserved area of memory when the program saves the return address when a function call instruction is received.
Stack
Occurs when an attackers fill up the buffer with NOP so that the return address may hit an NOP and continue on until it finds the attacker’s code to run
Smash the stack
Series of NOPs is hit by a non malicious program
NOP Slide
Method used by programmers to randomly arrange the different address spaces used by a program or process to prevent buffer overflow exploit
Address space layout randomization ASLR
Occurs when an attacker embeds malicious scripting commands on a trusted website
Cross-site scripting (xss)
Attempts to get data provides by the attacker to be saved on the web server by the victim.
Stored/persistent attack
Attempts to have a non persistent effect activated by a victim clicking a link on the site
Reflected