Lecture 36

advertisement
Lecture 36




Reminder: No class on Friday. CS Senior
Project presentations 1:30-2:40pm in KC-267
Posted: Homework 8, due Friday, April 20.
Case study final reports in PDF format due one
day before presentation. Presentations due
electronically day after presentation.
Questions?
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
1
Outline

Program threats

System and network threats

Current events article

Reis, Barth, and Pizano, "Browser Security:
Lessons from Google Chrome", Communications of
the ACM, August 2009.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
2
Program Threats

Trojan Horse: program that misuses the
environment it is in. Get an authorized user to
run a program that does something other than
what is expected.



Relative path is vulnerable, especially if '.' is in path.
Could end up running a different program.
Login screen emulators sniff passwords.
Spyware uses covert channels to communicate
surreptitiously, usually from victim machine.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
3
Program Threats


Trapdoor: special input recognized by a
program to circumvent security. Often used for
debugging, but then left open. Can be added
by the compiler, so not visible in source code.
Viruses: fragments of code embedded into
programs by "infecting" them. Generally very
malicious, e.g., deleting files, crashing systems,
etc.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
4
Program Threats


Stack & buffer overflow: overwrite the return
address to return to rogue program. Many
programs use fixed-size buffers in the stack to
store user data without guarding against
overflow.
While setting up an overflow attack takes
considerable knowledge, the exploit can be
scripted so that just about anyone (aka script
kiddie) can launch an attack.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
5
System and Network Threats

Worms: stand alone programs that propagate
through service vulnerabilities.


Morris worm (1988): exploited rsh, finger, and
sendmail. rsh uses .rhosts file to allow remote log in
without a password. finger was a buffer overflow on
the username argument. sendmail was a debug
backdoor that executed provided code.
Took down much of the precursor to the Internet.
Resulted in 3 years probation, 400 hours
community service, $10K fine. Legal costs >$100K
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
6
System and Network Threats


W32.Sobig.F@mm (2003): original worm was
hidden in a photo uploaded to a porn newgroup
using a stolen credit card number. Used its own
SMTP engine to email itself as an attachment to
every address found on the infected system. Was
the fastest spreading worm at the time the text was
written.
Port scanning: not an attack in and of itself,
but often used to test and detect system vulnerabilities in advance of an attack. Often done
from infected machines.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
7
System and Network Threats

Denial of Service (DoS): often easier than
trying to break in.



Java applet that eats CPU time or infinitely pops up
windows
TCP/IP SYN attack. Needs to be stopped at the
network level until the OS can catch up
Accidental DoS. E.g., CS courses using fork( ) or
new operator in loops.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
8
System and Network Threats

Generally not possible to stop DoS, especially
distributed attacks. Note that excessive
network connections may be the normal
consequence of something like a successful ad
campaign.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
9
What to do about security?

Cryptography and encryption (CS 415)

Frequent updates and anti-virus scans

Firewalls

Intrusion detection systems
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
10
Current Events Article




Reis, Barth, and Pizano, "Browser Security:
Lessons from Google Chrome",
Communications of the ACM, August 2009.
Authors are Google software engineers. Barth
was a postdoc at UC-Berkeley at time of article.
Example of a technical paper for a general
technical audience.
Summary: This paper discusses three key
problems for web browser security and how
Google Chrome addresses them.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
11
Web Browser Security


Web browsers are an appealing target for
attacks. Practically every computer has at least
one user that uses a web browser to connect
over a network to obtain content, services, and
applications. The user trusts that the browser
"does the right thing".
By their nature, web browsers invite outside
code to be executed on a user's computer.
Historically, every browser has had a bug that
allowed breaches of security.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
12
Web Browser Security


Also, even after security bugs are patched,
many users continue to run older, vulnerable
versions.
Authors identify three factors that contribute to
the security danger

Severity of vulnerabilities

Window of vulnerability

Frequency of exposure
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
13
Severity of Vulnerabilities



Ideally, all software is bug-free and lack
exploitable vulnerabilities. Reality is that we
can only hope to reduce the severity of
vulnerabilities.
Do this by isolating browser components and
reducing privileges to the minimum needed to
accomplish task to reduce the amount of
damage that can be done.
Google Chrome uses separate processes and
sandboxing along with various OS facilities.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
14
Security Architecture

Google Chrome consists of two types of
processes


Browser kernel: high-privilege process that
interfaces with user and runs under the user's
authority. Responsible for drawing the UI, store
cookies and history, network access.
Rendering engine: low-privilege processes that
acts on behalf of the Web content providers. They
are not trusted to interact with user file system.
Responsible for parsing HTML, executing
JavaScript, decode images to paint an off-screen
buffer, etc.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
15
Security Architecture
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
16
Security Architecture


Sandboxing is a generic term used to mean
that a process is run in an environment that
restricts its access to system resources.
Google Chrome uses two types of sandboxes
around the rendering engine


JavaScript sandbox that immediately surrounds the
process. This is a virtual machine that prevents
interaction between Web pages.
An OS sandbox that prevents any interaction with
other processes or the OS itself.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
17
Security Architecture


The only communication allowed by the
rendering engine is via an IPC channel to the
browser kernel with a restricted, simple
message interface. This includes HTTP
protocol traffic, rendered pages, and user input
events.
Implemented using OS facilities. In Windows,
uses a restricted security token. Mac OS X has
built-in sandbox facility. Linux has third-party
options.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
18
Exploitation Mitigation

Google Chrome uses various OS barriers to
make it more difficult for attackers to jump to
malicious code. From the Windows
implementation:


DEP (data execution prevention): mark memory
pages as non-executable, e.g., the stack
GS (stack overrun detection): places canary with
each stack call between current top of stack and
return address. Compiler inserts check for correct
canary value. Helps prevent stack overrun exploits.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
19
Exploitation Mitigation


ASLR (address space layout randomization):
randomizes the location of common system
components.
These mitigations can be used by any program
and do not require major changes to program
structure.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
20
Compatibility Challenges


Browsers must maintain compatibility with
emerging Web content, but plug-ins are not
designed to run in a sandbox.
At the time of the article, Google Chrome ran
plug-ins outside of the sandbox relying on thirdparties to provide adequate security. Since
then, they have started integrating plug-ins like
a PDF reader that do run inside the sandbox.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
21
Window of Vulnerability


Any exploit can cause harm. Want to minimize
the length of time users run unpatched
versions.
Two areas of activity

Automated quality testing

Convenient auto-updating for users
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
22
Automated Testing

When a vulnerability is discovered, Google
applies a three-step process to produce a
security patch.



Triage the severity of the the vulnerability and
assign an engineer to resolve the issue
Diagnose root cause and write a patch. Could be
as simple as adding a bounds check, or as complex
as replacing a data structure.
Test patch to make sure is both fixes the problem
and does not break any functionality
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
23
Automated Testing

Third step takes the longest. Want to automate
it. Google Chrome testing consists of:


Thousands of regression tests run after every
change to browser source code.
Tests on one million Web sites in a VM farm that
monitors rendering for memory errors, crashes, and
hangs. Often exposes race conditions and other
low-probability events.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
24
Security Updates



Auto-updating should be convenient and nondisruptive to user. Google Chrome uses a
system called Omaha that checks every 5
hours for updates.
When an update occurs, the download happens
in a parallel directory, then when the browser is
launched again, the new version takes over.
Updates happen shortly after they are available
and the user never has to wait.
Also, have added Flash Player to distribution.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
25
Frequency of Exposure


Google Chrome warns users if they try to visit a
site that has been reported as malicious, e.g.,
distributing malware or is a phishing attempt.
Issues include


Privacy: do not want to have every URL visited
reported to a central service. Solution is for
browser to download URL hashes periodically.
Minimizing false positives: provide tools help
publishers remove their URLS from blacklist when
they have been cleaned up.
Wednesday, April 11
CS 470 Operating Systems - Lecture 36
26
Download