Terminology & Definitions Flashcards
Definition of Vulnerability
A flaw or weakness in a system’s design, implementation, or operation and management that could be exploited to violate the system’s security policy.
When does a bug becomes a vulnerability?
A bug becomes a vulnerability when it is considered exploitable.
Definition of Vulnerability Research
Conducting applied research to discover, evaluate and mitigate new security vulnerabilities.
Definition of Software Auditing
The process of analyzing application code to uncover vulnerabilities that attackers might exploit.
Definition of Memory Safety
Property of a program where memory pointers used always point to valid memory, allocated and of the correct size/type.
Memory Safe Languages
Python: Runtime checks are done.
Rust: Compile time checks are done.
Memory Unsafe Languages
C and C++:
Does not initialize data structures
Does not protect you from reading and writing out of bounds
Does not free unused memory, avoid double-frees, avoid use-after-
free, invalidate dangling pointers (No garbage collection)
Definition of Vulnerability Class
Set of concrete vulnerabilities that share a specific pattern or concept.
Register where first parameter is stored in x86-64
RDI:
mov edi, param1
Register where third parameter is stored in x86-64
RDX:
mov edx, param3
Register where second parameter is stored in x86-64
RSI:
mov esi, param2
Register where fourth parameter is stored in x86-64
RCX:
mov ecx, param4
Register where fifth parameter is stored in x86-64
R8:
mov r8d, param5
Register where sixth parameter is stored in x86-64
R9:
mov r9d, param6
Where are the seventh parameter and onward of a function placed into?
The stack