Buffer overflow:
Condition where input exceeds the buffer’s capacity so it starts overwriting other information
Buffer overflow consequences:
Shellcode:
Machine code supplied by an attacker
Stack overflow targets:
Shellcode functions:
Buffer overflow compile-time defenses:
Buffer overflow run-time defenses:
Overflow attacks:
Replacement stack frame:
Rewriting buffer and frame pointer
Return to system call:
Replacing return address with a function
Approaches to reduce software vulnerabilities:
Defensive programming:
Making sure software still functions with unexpected input
Injection attack:
Invalid input that influences execution
Cross-site scripting attack:
Input from a user is executed on another user’s browser
Input fuzzing:
Using randomly generated inputs to test abnormal input handling
Race condition:
When multiple processes access shared memory