Lecture 1 - The Security Mindset
eecs-388
Introduction
- security studies how systems behave in the presence of an adversary
- adversary - an intelligence that actively tries to cause the system to misbehave
- e.g. a person, group, institution, AI
- security mindset - mitigate problems before they can be exploited, by thinking about how attackers might cause a system to fail
Thinking Like an Attacker
-
understand techniques for circumventing security
-
look for ways security can break, not excuses why it won’t
-
always ask what could go wrong
-
look for the weakest links
-
identify assumptions security depends on, and if any are false
- e.g. “executing a program incorrectly and cleaning it up = not executing it”
-
think outside the box - attackers are not constrained by system designers’ skill sets
- e.g. software can be attacked via hardware vulnerabilities or physical security weaknesses
Thinking Like a Defender
Security Policies
- what assets are we trying to protect?
- what properties are we trying to enforce?
- e.g. confidentiality, integrity, availability, authenticity
Threat Modeling
- who are we defending against?
- attacker motivations?
- which threats should we disregard?
Assessing Risk
- what would breaches cost us? (money, safety, reputation)
- how likely?
- how to recover?
Selecting Countermeasures
- costs vs benefits? no security mechanism is free
- indirect costs include added complexity, false positives, lost productivity
- technical or nontechnical approaches
- e.g. law enforcement, procedures, training
Secure Design and Assessment
- security is a process (something you do), not a product (something you buy)
- must be practiced continuously during development
- good design strives for defense-in-depth (layered defenses)
- instead of trying to convince yourself the system is secure, identify weaknesses and mitigate them
- focus attention on the:
- attack surface (parts of the system exposed to attackers)
- trusted components (parts that must function correctly for system to be secure)