Computer Security Introduction
Computer Security Introduction
Introduction
1
References
• https://cs155.stanford.edu/lectures/01-intro.pptx
2
Information Security CIA
• At the core of information security is the act of maintaining the
following:
• Confidentiality
• Integrity
• Availability
3
CIA in day-to-day lives
4
Top 10 products by total number of “distinct” vulnerabilities in 2019
5
source: https://www.cvedetails.com/top-50-products.php?year=2019
Vulnerable applications being exploited
Office
Java Android
Browser
6
Source: Kaspersky Security Bulletin 2017
Security Bugs Types
• Edge cases
• Valuable design –“Not a bug, a feature”
• Too high permission
7
Computer Networks
8
Why so many security bugs? Case study: Zoom
client
Users have an expectation of privacy.
https://zoom.com/[meeting]
https://zoom.com/[meeting]
Browser
Zoom Can this be attacked?
web server
zoom.com
http://localhost:19421/launch?action=join&confno=[confrence number] 11
The problem [J. Leitschuh, July 2019]
Any web site can send a request to the local web server
• Joins users to conference w/o user’s knowledge!
What happened next? Responsible disclosure, 90 days (CVE-2019-13450).
• Fixed by Zoom. Web server removed by Apple’s MRT tool.
Browser
Zoom
web server
evil.com
http://localhost:19421/launch?action=join&confno=[confrence number] 12
Why so many security bugs? Case study: Zoom client
13
What happens if protection is disabled?
requires user
approval
libssl.1.0.0
Zoom curl64
app
17
Introduction
What motivates
attackers?
… economics 18
Why compromise systems?
1. IP address and bandwidth stealing
21
Lots of financial malware
22
Source: Kaspersky Security Bulletin 2017
Similar attacks on mobile devices
Example: FinSpy.
• Works on iOS and Android (and Windows)
23
Why own machines: 3. Ransomware
a worldwide problem
• Worm spreads via a vuln.
in SMB (port 445)
• Apr. 14, 2017: Eternalblue vuln.
released by ShadowBrokers
• May 12, 2017: Worm detected
(3 weeks to weaponize)
24
WannaCry ransomware
25
Server-side attacks
• Data theft: credit card numbers, intellectual property
• Example: Equifax (July 2017), ≈ 143M “customer” data impacted
• Exploited known vulnerability in Apache Struts (RCE)
• Many many similar attacks since 2000
• Political motivation:
• DNC, Tunisia Facebook (Feb. 2011), GitHub (Mar. 2015)
26
Infecting visiting users. Example: Mpack
• Features
• management console provides stats on infection rates
• Sold for several 100$
• Customer care can be purchased, one-year support contract
27
Data theft: what is stolen (2012-2015)
28
Source: California breach notification report, 2015
How companies lose customer data
insider misuse/attack
Physical document
7% loss
Accidental disclosure 21%
22%
17% 32%
malware/hacking
lost/stolen laptops or servers
30
Marketplace for Vulnerabilities
Option 1: bug bounty programs (many)
• Google Vulnerability Reward Program: up to $31,337
• Microsoft Bounty Program: up to $100K
• Apple Bug Bounty program: up to $200K
• Stanford bug bounty program: up to $1K
• Pwn2Own competition: $15K
Option 2:
• Zerodium: up to $2M for iOS, $2.5M for Android (2019)
• … many others
31
Marketplace for Vulnerabilities
https://zerodium.com/faq.html
34
Marketplace for owned machines
clients spam
keylogger
Pay-per-install (PPI) services bot
PPI operation:
1. Own victim’s machine PPI service
2. Download and install client’s code
3. Charge client
Victims
Source: Cabalerro et al. (www.icir.org/vern/papers/ppi-usesec11.pdf) 35
Marketplace for owned machines
clients spam
keylogger
bot
Victims
Source: Cabalerro et al. (www.icir.org/vern/papers/ppi-usesec11.pdf) 36
Ken Thompson’s clever Trojan
Turing award lecture
(CACM Aug. 1984)
38
Can we trust the compiler?
No! Example malicious compiler code:
compile(s) {
if (match(s, “login-program”)) {
compile(“login-backdoor”);
return
}
/* regular compilation */
}
39
What to do?
Solution: inspect compiler source code,
then recompile the compiler
40
Thompson’s clever backdoor
Attack step 1: change compiler source code:
compile(s) {
if (match(s, “login-program”)) {
compile(“login-backdoor”);
return
}
if (match(s, “compiler-program”)) { (*)
compile(“compiler-backdoor”);
return
}
/* regular compilation */
} 41
Thompson’s clever backdoor
Attack step 2:
• Compile modified compiler ⇒ compiler binary
• Restore compiler source to original state
44
Do you want to know more #1?
45
Do you want to know more #2?
46