Quiz 1 Flashcards
What are bugs/vulnerabilities?
Malicious functionalities that extends primary intended design
What are exploits/attacks?
Inputs that leverage vulnerabilities to take control of the system or leak sensitive information
What is software security?
Risk management, it involves identifying vulnerabilities and patching vulnerable code
What are the three tasks involved in security management
Software auditing, security test, and patch develoment
What are the six main memory corruption vulnerabilities?
Buffer overflow
Integer overflow
Format String
Race Condition
Use-after-free
Double free
What are the three types of buffer overflows?
Stack overflow
Heap overflow
Type confusion
What is a buffer overflow?
When data is written outside of the space allocated to the buffer
What is the goal of Arbitrary Code Execution?
To take over a target machine
What are the targets of control flow hijacking?
Function pointer/return addresses
Exception handlers
Corrupting vtable
Longjmp buffers
What is a type confusion?
A type of vulnerability caused by exploiting logical errors that emerges from illegal down casts
How do truncation errors occur?
An integer is converted to a smaller integer type and the value of the original integer is outside the range of the smaller type
How does an arithmetic overflow occur?
The result of an integer operation does not fit within the allocated memory space
To avoid integer overflows when you need a size of a count what should you use?
size_t
To avoid integer overflows when you need a specific bit-width what should you use?
uint8_t for 8 bit, uint16_t for 16bit ect
To avoid integer overflows when you need an integer to hold a pointer what should you use?
intptr_t
What is Format String Vulnerability?
When the format of a string is used in such a way to execute code or crash a program