Midterm Flashcards
Access Control Policies
- Discretionary Access Control
- Mandatory Access Control
- Role based (RBAC)
- Attribute based (ABAC)
Example of DAC
Unix file mode (read, write, execute)
Subject
an entity capable of accessing objects
Object
a resource to which access is controlled
MAC
Access is granted based on comparing subject security clearances to security labels on objects
DAC
Allows user to access a resource as well as by own volition enable another entity to access the same resource
Access Control Matrix
Objects vs Subjects (each box contains permissions like own, read, write, etc…)
RBAC
Access is granted based on what roles users have inside the system and what permissions those roles carry
ABAC
Controls access based on user attributes, resource to be accessed, and environmental conditions
Permitted Set
Limiting superset of a thread’s effective capabilities (capabilities a thread MAY assume)
Inheritable Set
Set of capabilities preserved across an execve
Effective Set
This is the set of capabilities used by the kernel to perform permission checks for the thread.
Weird machine
Computational artifact where additional code execution can happen outside the specification of the program
Three malware propagation techniques
- Infection of an existing executable or interpreted content by viruses
- exploit of software vulnerabilities either locally or over a network by worms or drive-by-downloads
- social engineering attacks that convince users to bypass security mechanisms to install trojans or respond to phishing attacks.
Virus
Malware that tries to replicate itself into other executable code
Worms
Independent program that propagates itself onto hosts through a network
Trojan Horse
A program that appears to have a useful function, but has a hidden malicious function
Bots
malware that subverts the computational and network resources of the infected system for the use of the attacker
Spyware
General monitoring of a system to gain useful knowledge
Rootkits
Set of programs installed on a system to maintain covert access to system with root privileges, while hiding evidence of its presence
Non executable memory
Marks memory regions as non-executable
Return to LibC Attack
Inserting an existing binary’s address into the return address (don’t need to inject own code)
Reverse engineering
Reverse engineering is the process of extracting the knowledge or design blueprints
from anything man-made
White box analysis
Looking at source code for vulnerability or algorithm details
Grey box analysis
Looking at low-level implementation with inferred abstractions
Black box analysis
Using only input and output relations, make conclusion about how system behaves
Static analysis
Looking at the code without executing program
Dynamic analysis
Looking at what code does by stepping through its execution
Static analysis example
Sign analysis to check for division by zero (among others)
Dynamic analysis example
Assertions to check for conditions that halt execution if not met
Economy of Mechanism
Security mechanisms should be as simple as possible
Fail-safe defaults
Base access decisions based on permission rather than exclusion