Chapter 3 - Programs and programming Flashcards
Error
a human makes a mistake in performing some
software activity
Fault
an incorrect step, command, process, or data definition in a computer program, design, or documentation.
Failure
a departure from the system’s required behavior
Program counter
Computers use a pointer or register that indicates the
next instruction.
Heap
storage for dynamically created data
Stack
Storage for subtask call and return data
Program fault
Trying to execute something that does not correspond to a valid instruction or trying to execute a privileged instruction when not in the proper mode
Privilege escalation
By replacing a few instructions right after returning from his or her own procedure, the attacker regains control from the operating system, possibly with
raised privileges.
Buffer (or array or string)
a space in which data can be held.
local data
data used strictly within one procedure
shared or common or global data
shared between two or more procedures
Stack frame
This data group of parameters, return address, and stack pointer
stack smashing
Arbitrary data in the wrong place causes strange behavior, but particular data in a predictable location causes a planned impact.
data driven attack
the harm occurs by the data the attacker sends.
static code analyzer
analyzes source code to detect unsafe conditions
canary
to protect the stack, we can do that by wrapping each stack frame in a protective layer.
mediation
Verifying that the subject is authorized to perform the operation on an object
time-of-check to time-of-use (TOCTTOU)
concerns mediation that is performed with a
“bait and switch” in the middle. it exploits the delay between the two actions: check and use. That is, between the time the access was checked and the time the result of the check was used, a change occurred, invalidating the result of the check.
backdoor or trapdoor
An undocumented access point
integer overflow
occurs because a storage location is of fixed, finite size and therefore can contain only integers up to a certain limit.
null terminated
meaning that the end of the string is denoted by a null byte
race condition or serialization flaw
two processes execute concurrently, and the outcome of the computation depends on the order in which instructions of the processes execute.
Malicious code or rogue programs or malware
the general name for programs or program parts planted by an agent with malicious intent to cause unanticipated or undesired effects.
virus
a program that can replicate itself and pass on malicious code to other non-malicious programs by modifying them.
transient virus
a life span that depends on the life of its host; the virus runs when the program to which it is attached executes, and it terminates when the attached program ends.
resident virus
locates itself in memory; it can then remain active or be activated as a stand-alone program, even after its attached program ends.