7. Vulnerabilities, Threats & Countermeasures
Buffer Overflow
-
-
Definition: A flaw that happens when a program writes data to a buffer and overruns the buffer's boundary, writing data to adjacent memory.
-
Cause: Typically caused by the program's failure to verify the size of the input data before storing it in a specific memory location.
-
Consequences: Can lead to system crashes, data corruption, and even provide an entry point for attackers to execute arbitrary code.
-
Back Doors
- Definition: Intentional points of entry into a system or application that bypass regular security mechanisms.
- Cause: Sometimes left intentionally by developers for debugging or maintenance but can be overlooked and remain post-deployment.
- Consequences: They pose a significant security risk as attackers can exploit these to gain unauthorized access.
Privileged Programs
- Definition: Programs that have elevated permissions to perform sensitive operations.
- Cause: Can be left on a system by oversight after its deployment or for maintenance.
- Consequences: When left unchecked, they can be exploited by malicious users to perform unauthorized actions, often with significant impact due to their elevated permissions.
Time-of-check-to-time-of-use (TOCTTOU) Attacks
- Definition: A race condition wherein a system's state changes between the check (verification) time and the use (action) time.
- Example: If a system checks for a user's credentials and then, after a delay, provides access, an attacker might exploit this delay to insert malicious actions.
- Consequences: Can lead to unauthorized data access, data corruption, or privilege escalation.
- Mitigation: Ensure that the time gap between check and use is minimized or secured, or use atomic operations that combine the check and action into an indivisible operation.
Vulnerabilities arise from a mix of oversight, unintended consequences of design decisions, and the inherent complexity of software systems. Do regular security audits, code reviews, and continuous security training for developers.