Topic 8B Flashcards
time-of-check to time-of-use (TOCTOU)
where a system state changes between the check (verification) stage and the use (execution) stage.
Application race condition
refer to software flaws associated with the timing or order of events within a software program, which can be manipulated, causing undesirable or unpredictable outcomes.
A race condition describes when two or more operations must execute in the correct order.
When software logic does not check or enforce the expected order of events, security issues such as data corruption, unauthorized access, or similar security breaches may occur
Race conditions manifest in a wide variety of ways, such as time-of-check to time-of-use (TOCTOU) vulnerabilities
significant examples of race conditions
Dirty COW Vulnerability (CVE-2016-5195), which is a race condition vulnerability in the Linux Kernel, allowing a local user to gain privileged access
Microsoft Windows Elevation of Privilege Vulnerability (CVE-2020-0796), which is a race condition vulnerability associated with the Microsoft Server Message Block 3.1.1 (SMBv3) protocol allowing an attacker to execute arbitrary code on a target SMB server or client.
Memory injection
refer to a type of security flaw where an attacker can introduce (inject) malicious code into a running application’s process memory.
An attacker often designs the injected code to alter an application’s behavior to provide unauthorized access or control over the system.
inject code that installs malware, exfiltrates sensitive data, or creates a backdoor for future access. Injected code generally runs with the same level of privileges as the compromised application, which can lead to a full system compromise if the exploited application has high-level permissions
Common memory injection attacks include buffer overflow attacks, format string vulnerabilities, and code injection attacks.
typically mitigated with secure coding practices such as input and output validation, encoding, type-casting, access controls, static and dynamic application testing
buffer overflow vulnerability
A buffer is an area of memory that the application reserves to store expected data.
To exploit, the attacker passes data that deliberately overfills the buffer.
One of the most common vulnerabilities is a stack overflow.
The stack is an area of memory used by a program subroutine. It includes a return address, which is the location of the program that called the subroutine.
An attacker could use a buffer overflow to change the return address, allowing the attacker to run arbitrary code on the system.
Buffer overflow attacks are mitigated on modern hardware and operating systems via address space layout randomization (ASLR) and Data Execution Prevention (DEP)controls, utilizing type-safe programming languages and incorporating secure coding practices.
type-safe programming languages
A program that enforces strict type-checking during compilation and ensures variables and data are used correctly. It prevents memory-related vulnerabilities and injection attacks.
malicious update
an update that appears legitimate but contains harmful code
The significance of such attacks lies in their deceptive nature; users trust and frequently accept software updates, making malicious updates a highly effective infiltration strategy.
In 2017, the legitimate software CCleaner was compromised when an unauthorized update was released containing a malicious payload. This affected millions of users who downloaded the update, believing it was a standard upgrade to improve their system’s performance.
Evaluation target or scope
refers to the product, system, or service being analyzed for potential security vulnerabilities
The target is the focus of a specific evaluation process, where it is subjected to rigorous testing and analysis to identify any possible weaknesses or vulnerabilities in its design, implementation, or operation
Security Testing
Conducting vulnerability assessments and penetration testing to identify potential weaknesses, vulnerabilities, or misconfigurations.
Documentation Review
Reviewing documentation, such as design specifications, architecture diagrams, security policies, and procedures, to ensure the system is implemented according to secure design principles and compliance requirements.
Source Code Analysis
Analyzing source code to identify potential security vulnerabilities or coding errors to uncover issues related to input validation, secure coding practices, and coding standards.
Configuration Assessment
Evaluating configuration settings to ensure they align with security best practices and industry standards, such as assessing access controls, encryption settings, authentication mechanisms, and other security-related configurations.
Cryptographic Analysis
Assessing cryptographic mechanisms, including encryption algorithms, key management, and secure key storage, to ensure the proper implementation and use of cryptographic schemes according to industry standards and guidelines.
Compliance Verification
Verifying compliance with standards specified by relevant regulations, frameworks, or security certifications.
Security Architecture Review
Evaluating security architecture and design to identify potential weaknesses or gaps in security controls, such as insufficient segregation of duties, lack of audit trails, or inadequate access controls.