SB 23: Software Vulnerabilities Flashcards
What is the PA model?
A model for analyzing systems for security holes
What can happen if privileges aren’t set properly?
Insufficient privileges could cause a DoS attack whilst excessive ones can enable attackers to exploit vulnerabilities.
Why is it critical to verify the integrity of the access control file?
Because it controls the access to role accounts and you want to make sure the file has not been tampered with.
Why is it important to protect memory against unauthorized/unexpected alteration?
Because if two subjects can alter the contents of memory then one could change data on which the 2nd relies. Each process should therefore have a protected unshared memory space. Only trusted processes should be able to access it
What is buffer overflow?
Involves altering of data or injecting of instructions to be executed later.
A program writes data to a buffer beyond the buffer’s allocated memory, overwriting adjacent memory locations.
By sending in data designed to cause a buffer overflow, it is possible to write into areas known to hold executable code and replace it with malicious code, or to selectively overwrite data pertaining to the program’s state, therefore causing behavior that was not intended by the original programmer.
Morris Worm used buffer overflow as one of its attack techniques.
What is the risk of not properly de-allocating or deleting data?
Dumps of memory, which can happen if an error in the program occurs, can contain information it shouldn’t. Failure to release sensitive resources can also allow unprivileged sub-processes unwanted access
Name 5 techniques for validating conditions in programs and briefly describe each technique. What security problems can arise due to failing to perform validation?
- Bounds checking
Risks: buffer overflow - Type checking
Risks: injection attacks - Error checking
Risks: unhandled exceptions. Potentially revealing sensitive information or allowing attackers to exploit these errors - Valid data check
Risks: injection attacks, data manipulation - Checking input
Risks: injection attacks
Un-validated input
Failure to check input. Can lead to attackers sending commands via input that they can use to later exploit a system.
SQL Injection
A malicious SQL statement is inserted into an entry field for execution. Must exploit a vulnerability. i.e user input that is not properly filtered is not strongly typed.
Can be used to spoof identities, tamper with data, cause repudiation issues, etc.
Mitigate: pattern matching, software testing, grammar analysis. Or otherwise checking and validating the input.
Why is it important to be aware of program dependencies?
If the dependencies stop functioning correctly then the program will not function correctly either. It is important to frequently check for errors and be aware of which components cannot be checked for errors.