SWE210 Software Security Week 3

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/35

flashcard set

Earn XP

Description and Tags

These flashcards cover key terms and concepts related to memory management and various forms of security attacks, including examples and definitions.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

36 Terms

1
New cards

Memory Management

The function of an operating system to control and coordinate computer memory.

2
New cards

Process

An instance of a program being executed, including its current state and memory allocation.

3
New cards

Memory Segments

Different parts of memory allocated for a process, such as code, data, heap, and stack.

4
New cards

Text Segment

Also known as the code segment, it contains executable instructions.

5
New cards

Data Segment

Stores global and static variables initialized by the program.

6
New cards

Stack

A segment of memory that stores temporary variables and function call information in a last-in-first-out manner.

7
New cards

Heap

Area of memory used for dynamic allocation at runtime.

8
New cards

Memory Injection Attack

A method where an attacker injects malicious code into the memory of a running process.

9
New cards

Array Indexing

Accessing elements of an array using an index.

10
New cards

Pointer Subterfuge

Overwriting a pointer so it refers to unexpected data.

11
New cards

ARC Injection

Overwriting a function pointer to change which function gets executed.

12
New cards

Stack

An abstract data type for the ordered storage of data elements, supporting operations push and pop.

13
New cards

Last-In-First-Out (LIFO)

A method of accessing data where the last element added is the first one to be removed.

14
New cards

Activation Records

Data structures on the call stack that contain information about a function call.

15
New cards

Stack Overflow

Occurs when too much memory is used on the call stack, potentially leading to program crashes.

16
New cards

Stack Smashing

Exploitation of a buffer overrun vulnerability in the stack.

17
New cards

Heap Smashing

Overwriting a buffer on the heap which can lead to arbitrary code execution.

18
New cards

Dynamic Memory Allocation

The process of allocating memory during runtime for managing data structures.

19
New cards

Memory Control Block (MCB)

Data structure associated with a memory chunk that contains its size and status.

20
New cards

Buffer Overflow

When data exceeds the allocated space in a buffer, leading to potential security vulnerabilities.

21
New cards

Mitigation Techniques

Methods used to enhance security and protect against memory attacks.

22
New cards

Bounds Checking

Validation of input to ensure it doesn’t exceed the limits of an array.

23
New cards

Local Variables

Variables that are declared within a function and can only be used within that function.

24
New cards

Global Variables

Variables that are declared outside all functions and can be accessed throughout the program.

25
New cards

Function Pointer

A pointer that points to the address of a function, allowing for dynamic function calls.

26
New cards

Recursive Function

A function that calls itself to solve a smaller instance of the same problem.

27
New cards

Return Address

The memory address to which control is returned after a function call.

28
New cards

Null Termination

A technique for indicating the end of a string in memory.

29
New cards

Safe Copying

Techniques employed to ensure data is copied without exceeding allocated memory.

30
New cards

Input Validation

The process of ensuring that user input is correct before it is processed.

31
New cards

Security Vulnerability

A weakness in a system that can be exploited by attackers to gain unauthorized access.

32
New cards

Kernel Space

Part of system memory where the kernel executes and provides its services.

33
New cards

User Space

Memory area where user processes execute.

34
New cards

Malicious Code

Self-replicating or harmful scripts intended to damage or disrupt systems.

35
New cards

Static Allocation

Memory allocation that occurs at compile-time, where size is fixed.

36
New cards

Dynamic Allocation

Memory allocation that occurs at runtime, allowing size to change.