IS 430 Chapter 3

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

1/65

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

66 Terms

1
New cards

Memory Allocation Examples

Stack: Most local variables and data

Heap: anything from malloc() or similar calls

Static: things like string literals

Code: 1's and 0s of your instructions

2
New cards

program counter

pointer or register that indicates the next instruction

3
New cards

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

4
New cards

Buffer Overflows

Occur when data is written beyond the space allocated for

5
New cards

How attackers could cause damage?

An attackers inputs are expected to go into regions of memory allocated for data, but those inputs are instead allowed to overwrite memory holding executable code.

6
New cards

Buffer

a space in which data can be held. it resides in memory.

7
New cards

local data

data used strictly within one precedure

8
New cards

shared, common, or global data

shared between two or more procedures

9
New cards

Privilege Escalation

executing attack code with higher system permissions

10
New cards

stack frame

stack pointer

11
New cards

Attacker can produce effects from an overflow attack by

Overwrite the program counter

Overwrite part of the code

Overwrite program counter and data

12
New cards

Four types of Buffer Overflow

User Data

User Code

System Data

System Code

13
New cards

heap

provides space for dynamic data

14
New cards

stack smashing

overflowing some element of the stack to execute unintended instructions.

15
New cards

data driven attack

relies on data provided by user. for example stack smashing

16
New cards

Overflow Countermeasures

Stay within bounds

Check lengths before writing

Confirm array subscripts are within limits

Monitor input to accept only as can be handled

Limit privileges of the program

17
New cards

Harm from Buffer overflows

Overwrite:

Another piece of your programs's data

An instruction in your program

Data or code belonging to another program/OS

Overwriting instructions gives attackers program's execution privileges

Overwriting OS gives attackers OS execution privileges

18
New cards

Two keys features of buffer overflow attacks

1) attacker can write directly to particular memory addresses

2) language or compiler allows inappropriate operations on certain data types.

19
New cards

static code analyzer

analyzes source code to detect unsafe conditions

20
New cards

Separation

To protect from attacks, separating sensitive areas from running code and its buffers and data space.

21
New cards

canary layer

wrapping each stack frame in a protective layer

22
New cards

Address Space Layout Randomization (ASLR)

Reduce the chance that an attacker can guess or rely on the location of things like system code of the next stack frame.

23
New cards

Mediation

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

24
New cards

Preventing Incomplete Mediation

Validate all input

Limit user's access to sensitive data and functions

Complete mediation using a reference monitor

25
New cards

Reference monitor Properties

1) small and simple enough to give confidence of correctness

2) unbypassable

3) always invoked.

These three properties give us complete mediation

26
New cards

Time Of Check/Time Of Use

concerns mediation that is performed with a "bait and switch" in the middle. It exploits the delay between the actions: check and use.

27
New cards

Countermeasures for TOCTTOU

- access checking software must own the request data until the requested action is complete.

- ensure serial integrity, allow no interruption during validation

- Validation routine can seal the request to detect modification

28
New cards

Undocumented access point

undocumented entry point or execution mode (backdoor)

29
New cards

off-by-one error

miscalculating the condition to end a loop or overlooking that an array has certain elements.

30
New cards

Integer Overflow

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

31
New cards

unterminated null-terminated string

An attacker intentionally feeds an overly long string into a processing program to see if and how program will fail.

32
New cards

null-terminated string

the end of the string is denoted by null byte, or 0x00.

33
New cards

Parameter length

too many parameters

34
New cards

wrong output type or size

A calling and called procedure need to agree on the type of and size of data values exchanged.

35
New cards

too-long string

input a string longer than it can handle

36
New cards

Unsafe Utility Program

library of utility routines to assist with common activities

37
New cards

Race condition

situation in which program behavior depends on the order in which two procedures execute

38
New cards

Security implication of race conditions

can cause inconsistent, undesired and therefore wrong outcomes, a failure of integrity

39
New cards

Malware

programs planted by an agent with malicious intent to cause unanticipated or undesired effects

40
New cards

Virus

program that replicate itself and pass on malicious code to nonmalicious programs by modifying them

41
New cards

Worm

a program that spreads copies of itself through a network

42
New cards

Trojan Horse

code that contains unexpected, undocumented, additional functionality

43
New cards

Rabbit

Code that replicates itself without limit to exhaust resources

44
New cards

Logic bomb

Code that triggers action when a predetermined condition occurs

45
New cards

Time bomb

Code that triggers action when a predetermined time occurs

46
New cards

Dropper

Transfer agent code only to drop other malicious code, such as virus or Trojan horse

47
New cards

Hostile mobile code agent

code communicated semi-autonomously by programs transmitted through the web

48
New cards

Script attack, JavaScript, active code attack

Malicious code communicated in JavaScript, ActiveX, or another scripting language, downloaded as part of displaying a web page

49
New cards

RAT (Remote Access Trojan)

Trojan horse that, once planted, gives access from remote location

50
New cards

Spyware

program that intercepts and covertly communicates data on the user

51
New cards

Bot

semi-autonomous agent under control of controller

52
New cards

Zombie

code or entire computer under control of a program

53
New cards

Harm from Malicious code to users and systems

Sending email to user contacts

Deleting or encrypting files

Modifying system info

stealing sensitive info

attaching to critical system files

Hide copies of malware in multiple locations

54
New cards

Malware Activation

One-time execution

Boot sector viruses

Memory-resident viruses

Application files

Code libraries

55
New cards

Virus detection mechanisms

Known string patterns in files or memory

Execution patterns

Storage patterns

56
New cards

Malware countermeasures for users

use software acquired from reliable sources

Test software in an isolated environment

Only open safe attachments

Treat every website as potentially harmful

Create and maintain backups

57
New cards

countermeasures for developers

Modular code: single purpose, small, simple, independent

Encapsulation (hides a components implementation details)

Information hiding

Mutual suspicion

Confinement (damage does not spread to other systems)

Genetic diversity

58
New cards

Design principles for security

Least privilege

Economy of mechanism

Open design

Complete mediation

Permission based

Separation of privilege

Least common mechanism

Ease of use

59
New cards

unit testing

component functions properly with types of input expected (predetermined set of data)

60
New cards

API Integration testing

verifying that system components work together as described in system

61
New cards

function test

evaluates system to determine whether functions are actually performed by the integrated system.

62
New cards

performance test

compares the system with the remainder of these software and hardware requirements

63
New cards

acceptance test

system is checked against customer requirements

64
New cards

installation test

system still functions as it should

65
New cards

regression testing

After a change to a system takes place, retesting to ensure functionality, performance, and protection.

66
New cards

Other countermeasures

Good:

Proofs of program correctness

defensive programming

design by contract

Bad:

penetrate and patch

security by obscurity