Skip to main content

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.