Chapter 3 - Programs and programming Flashcards

1
Q

Error

A

a human makes a mistake in performing some

software activity

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Fault

A

an incorrect step, command, process, or data definition in a computer program, design, or documentation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Failure

A

a departure from the system’s required behavior

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Program counter

A

Computers use a pointer or register that indicates the

next instruction.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Heap

A

storage for dynamically created data

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Stack

A

Storage for subtask call and return data

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Program fault

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Privilege escalation

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Buffer (or array or string)

A

a space in which data can be held.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

local data

A

data used strictly within one procedure

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

shared or common or global data

A

shared between two or more procedures

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Stack frame

A

This data group of parameters, return address, and stack pointer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

stack smashing

A

Arbitrary data in the wrong place causes strange behavior, but particular data in a predictable location causes a planned impact.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

data driven attack

A

the harm occurs by the data the attacker sends.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

static code analyzer

A

analyzes source code to detect unsafe conditions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

canary

A

to protect the stack, we can do that by wrapping each stack frame in a protective layer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

mediation

A

Verifying that the subject is authorized to perform the operation on an object

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

time-of-check to time-of-use (TOCTTOU)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

backdoor or trapdoor

A

An undocumented access point

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

integer overflow

A

occurs because a storage location is of fixed, finite size and therefore can contain only integers up to a certain limit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

null terminated

A

meaning that the end of the string is denoted by a null byte

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

race condition or serialization flaw

A

two processes execute concurrently, and the outcome of the computation depends on the order in which instructions of the processes execute.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Malicious code or rogue programs or malware

A

the general name for programs or program parts planted by an agent with malicious intent to cause unanticipated or undesired effects.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

virus

A

a program that can replicate itself and pass on malicious code to other non-malicious programs by modifying them.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
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.
26
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.
27
worm
a program that spreads copies of itself through a network.
28
bot (short for robot)
a kind of worm used in vast numbers by search engine hosts like Bing and Google.
29
Trojan horse
malicious code that, in addition to its primary effect, has a second, nonobvious, malicious effect. slips inside a program undetected and produces unwelcome effects later on.
30
zero-day attack
use of malware that exploits a previously unknown vulnerability or a known vulnerability for which no countermeasure has yet been distributed.
31
zero-day exploit
An attack before availability of the control
32
virus hoaxes
messages falsely warning of a piece of malicious code, apparently to cause receivers to panic and forward the message to contacts, thus spreading the panic.
33
multipartite form
they install themselves in several pieces in distinct locations, sometimes to carry out different objectives.
34
interpretive data
Although such a file is not executable as a program itself, it can cause activity in the program that handles it.
35
stealth
avoiding detection during installation, while | executing, or even at rest in storage.
36
Steganography
permits data to be hidden in large, complex, redundant data sets.
37
polymorphic virus
A virus that can change its appearance
38
encrypting viruses.
A simple variety of polymorphic virus uses encryption under various keys to make the stored form of the virus different.
39
modular
to create a design or code in small, self-contained units, called components or modules;
40
encapsulation
If a component is isolated from the effects of other components, then the system is designed in a way that limits the damage any fault causes. developers can readily see where vulnerabilities may lie if the component is isolated.
41
Information hiding
each component hides its precise implementation or some other design decision from the others.
42
Modularization
the process of dividing a task into subtasks
43
cohesion
all the elements of a component have a logical and functional reason for being there; every aspect of the component is tied to the component’s single purpose.
44
Coupling
the degree with which a component depends on other components in the system.
45
mutual suspicion
operate as if other routines in the system were malicious or incorrect.
46
confined program
strictly limited in what system resources it can access
47
SSL | secure socket layer
a cryptographic technique by which browser web communications are secured, for example, to protect the privacy of a banking transaction.
48
Address-space-layout randomization
a technique by which a module is loaded into different locations at different times (using a relocation device similar to base and bounds registers)
49
module testing, component testing, or unit testing
verifies that the component functions properly with the types of input expected from a study of the component’s design.
50
Integration testing
the process of verifying that the system components work together as described in the system and program design specifications.
51
function test
evaluates the system to determine whether the functions described by the requirements specification are actually performed by the integrated system.
52
performance test
compares the system with the remainder of these software and hardware requirements.
53
acceptance test
the system is checked against the customer’s requirements description.
54
installation test
run to make sure that the system still functions as it should
55
regression testing
After a change is made to enhance the system or fix a problem ensures that all remaining functions are still working and that performance has not been degraded by the change.
56
Black-box testing
testers cannot “see inside” the system, so they apply particular inputs and verify that they get the expected output.
57
Clear-box testing
allows visibility. Here, testers can examine the design and code directly, generating test cases based on the code’s actual construction.
58
program verification
involves making initial assertions about the program’s inputs and then checking to see if the desired output is generated.
59
Validation
assuring that the system developers have implemented all requirements.
60
design by contract™ (a trademark of Eiffel Software) or | programming by contract
a formal program development approach, but more widely, these terms refer to documenting for each program module its preconditions, postconditions, and invariants.
61
assertions
explicit statements about modules.
62
penetrate-and-patch
analysts searched for and repaired flaws.
63
security by or through obscurity
ineffective countermeasure of assuming the attacker will not find a vulnerability. the belief that a system can be secure as long as nobody outside its implementation group is told anything about its internal mechanisms.
64
work factor
the amount of effort necessary for an adversary to defeat a security control.
65
halting problem
asks whether a computer program stops execution or | runs forever.