internet attacks the gory details bill cheswick
Download
Skip this Video
Download Presentation
Internet Attacks: The Gory Details Bill Cheswick

Loading in 2 Seconds...

play fullscreen
1 / 164

Internet Attacks: The Gory Details - PowerPoint PPT Presentation


  • 459 Views
  • Uploaded on

Internet Attacks: The Gory Details Bill Cheswick [email protected] The Internet Ad hoc collection of TCP/IP interconnections No real central authority No central knowledge of connections maybe flows, but not yet No per-packet billing, in most places

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Internet Attacks: The Gory Details' - jacob


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
the internet
The Internet
  • Ad hoc collection of TCP/IP interconnections
  • No real central authority
  • No central knowledge of connections
    • maybe flows, but not yet
  • No per-packet billing, in most places
  • Core equipment too busy to help law enforcement
  • Large perimeters are impossible to control
remote attacks and anonymity are easy
Attacks can be laundered through many hosts around the world

brief attacks are hard to track down

the average defender is clueless

Remote Attacks, and anonymity, are easy
traceback can be very hard
clueless ISPs

ignorant law enforcement

treaties with foreign countries

may not be against the local law

attacker may cease attack before traceback is completed

Traceback can be very hard
monoculture
“Monoculture”
  • Small set of target types and versions
    • Microsoft OS and applications
    • Apache
    • Samba
    • DNS
    • Cisco IOS
  • Like planting Kansas with a single strain of wheat, or vineyards with a single root stock
attacking scripts are published and shared
Attacking scripts are published and shared
  • Loners develop attack software for the rest of us
  • Hacking FAQs are common
  • Software tools are easily available
    • look up “rootkit”
  • “Script kiddies” are a major source of current Internet attacks
unsafe services
Useful

Poorly written

Poor auditing

Found in most hosts

Safer services and protocols are rare

Vendors sell flawed software

Users don’t fix holes

Host-based security is usually broken

Security requires discipline: not found in market leaders

And often not found in open source software either

Unsafe Services
unsafe services some typical errors
Unchecked user input submitted to the shell or Perl

wildcard and escape characters take over the process

CGI scripts

Secret options, commands, or back doors

DEBUG and others in sendmail

Input string length is not checked

string buffer overrun corrupts stack

strcpy, gets, sprintf

caller supplies assembly code, and jumps to it

finger (Morris worm)

early Netscape

statd (latest)

Unsafe ServicesSome Typical Errors
unsafe services privileged programs are much too large
Unsafe Services: Privileged programs are much too large
  • Sendmail is tens of thousands of lines of complex code, running as root.
  • Netscape browser/communicator is huge
  • Operating systems are huge
    • Windows
    • Unix
    • Features are never retired, only added
  • A short, simple program is hard to get right
unsafe protocols
Unsafe Protocols
  • Passwords transmitted in the clear
    • Challenge/response is better, though subject to dictionary attacks
    • EKE can hide this
    • Machine generated passwords are better, but require devices or printouts
  • Address-based authentication
    • Can be OK in controlled environments
    • DNS and routing attacks can fool these
weakest link compromises many targets
Vulnerabilities are common in network services

One break-in compromises

the rest of the host

the host’s net (via sniffers)

trusting hosts

“non-vital” targets may be vital

Weakest Link Compromisesmany targets
how do they find dangerous ports
How Do They Find Dangerous Ports?
  • Port scanners
  • Easy to write
  • Half-open (SYN-only) scanners often don’t show up in logs
  • Harder to scan for UDP services, but not by much
  • “Firewalking” can scan through a firewall
    • Uses packets that a firewall often admits, such as ICMP or TCP SYN/ACK
attacks

Attacks

Stack Smashing

programs don t check their input
Programs don’t check their input
  • Routines like gets, strcpy, and sprintf, which are inherently dangerous
  • If input length is too long, it can overwrite memory in C, overwriting variables and subroutine return addresses.
  • Every piece of external data must be checked before it is used.
  • It doesn’t hurt to check internal stuff, too
    • assert.h
    • CPU time is cheap
a stack while a procedure is running
A Stack: while a procedure is running

Other

stuff

Return addr

Local vars.

String buffer

Local vars

Where to go after the

procedure is finished

a stack while a procedure is running18
A Stack: while a procedure is running

Other

stuff

Return addr

Local vars.

String buffer

Local vars

Input line goes in here

a stack while a procedure is running19
A Stack: while a procedure is running

Other

stuff

Return addr

Local vars.

String buffer

Local vars

Input line goes in here

stack smashing attack
“Stack smashing” attack

Other

stuff

Return addr

Local vars.

String buffer

Local vars

New return address, points

to...

stack smashing attack21
“Stack smashing” attack

Other

stuff

Return addr

Local vars.

String buffer

Local vars

…new code loaded in

some space on the stack

The code runs with the

privileges of the attacked

program, usually root

some former victims of stack smashing attacks
Fingerd (Morris worm)

sendmail

syslogd

rstatd

early Netscape browsers

file names in attachments to mail

sshd

IIS web server

Some former victims of stack-smashing attacks
attacks23

Attacks

Portable Programs

dangerous services portable programs
Dangerous services:portable programs
  • JAVA
  • ActiveX^H^H^H^H^H^H^HCOMX^H^H^H^HSOAP
  • Viruses:
    • PC
    • Word
    • Excel
where do programs run26

Program

Kernel

Where do Programs Run?

This model is wrong!

java s sandbox
Is incompletely defined

Can be different for each vendor

Often optimized for speed, not security

Allows “native methods”, which can break the security model

ActiveX

like Java, but no sandbox at all

Java’s “sandbox”
attacks29

Attacks

Sniffing attacks (“eavesdropping”)

host with tcp services
Host withTCP Services

Client

Server

Attacker

ethernet and passwords
Was never secure from eavesdropping

“Sniffing” tools are common

grab host name, user name, and password

check any hacker collection

Credit card numbers are easy

Over 1,000,000 captured in 1994

It doesn’t matter how good your password is if it can be sniffed!

Still in wide use - even for root!

Ethernet and Passwords
attacks34

Attacks

IP Spoofing a trusted host

ip spoofing
IP Spoofing
  • Defeats address-based authentication
    • i.e. rlogin, rsh, tcp wrappers
  • Common tools available to the hackers
    • they don’t have to be TCP/IP experts
  • This was used to crack Tsutomu Shimomura’s machines in “Takedown.”
  • Robert Morris Jr. wrote a paper on this in 1984
  • Steve Bellovin republished it in 1989
  • First known use in 1994
response to open connection is half open
Response to Open, connection is “half open”

Client

Server

SYN,SEQ0

SYN,ACK,

SEQ0+1,SEQ0

client completes handshake tcp connection is now open
Client completes handshake, TCP connection is now open

Client

Server

SYN,SEQ0

SYN,ACK,

SEQ0+1,SEQ0

ACK,

SEQ0+1,SEQ0+1

ip spoof of a trusted client suppress the trusted client
IP Spoof of a Trusted ClientSuppress the Trusted Client

Client

Server

killer packet

or SYN attack

Attacker

open seems to come from trusted client
Open seems to come fromtrusted client

Client

Server

SYN,SEQ0

Attacker

ip spoof of a trusted client server responds to dead client
IP Spoof of a Trusted ClientServer responds to dead client

Client

Server

SYN,ACK,

SEQ0+1,SEQ0

Attacker

ip spoof of a trusted client spoof final open message
IP Spoof of a Trusted ClientSpoof final open message

Client

Server

ACK,

SEQ0+1,SEQ0+1

Attacker

ip spoof of a trusted client open server to outside access
IP Spoof of a Trusted ClientOpen Server to outside access

Client

Server

“evil trusted command”

Attacker

preventing ip spoofing
Preventing IP spoofing
  • Spoofing can be stopped at the perimeter
    • “No internal addresses accepted from the outside”
    • Helps to have a coherent address space
  • A firewall can prevent access also
  • Address-based authentication is a BAD IDEA.
attacks49

Attacks

TCP hijacking

attacker is watching an existing connection perhaps through the strong authentication stage
Attacker is watching an existing connection, perhaps through the strong authentication stage

Client

Server

Attacker

kill the client connection
Kill the client connection...

Client

Server

killer packet

Attacker

and continue the connection
…and continue the connection

Client

Server

Attacker

tcp hijacking
TCP hijacking
  • Takes over an existing, authenticated connection
  • Needs access to the packet flow
  • Common tools are available to the hackers now
  • Cryptographic signatures of packets can defeat this
attacks54

Attacks

Denial of Service

host with tcp services55
Host withTCP Services

Client

Server

Attacker

denial of service attacks
Denial-of-service Attacks
  • In your face - not subtle like traditional hacking attacks
  • Random packets are very hard to trace
  • Can go on for weeks
  • Attackers can exploit poor local software or...
  • Simply flood the site’s network with incoming packets
  • These attacks are always possible on a public service
attacks57

Attacks

Denial of Service: SYN packet attacks

normal tcp open
Normal TCP open

Client

Server

SYN,SEQ0

SYN,ACK,

SEQ0+1,SEQ0

ACK,

SEQ0+1,SEQ0+1

normal tcp open59
Normal TCP open

Client

half-open

<300ms

syn attacks
First seen at Panix.com in fall 1996

Half-open processing was implemented poorly

Quadratic behavior

Wasn’t much call for improving it

We’ve been expecting it

The only thing we left out of our firewalls book

Removed at the last minute

We knew of no good solution

We are sorry we left it out

A new one appeared in fall 1997

SYN with same source and destination address kills some TCP/IP implementation

There will be more attacks on TCP/IP implementations

lots of code involved

hard to test code in a kernel

SYN Attacks
attacks61

Attacks

Denial of Service

Ping flood (smurf)

traceback
Traceback
  • The target cannot tell where the trigger is coming from
  • Attacking hosts may not know that they are being used
  • Broadcast storms can generate more load
attacks66

Attacks

DNS, routing, and infrastructure attacks

routing attacks packet diversion and man in the middle attacks68
Routing attacksPacket Diversion and man-in-the-middle attacks

Client

Server

(router)

Attacker

routing attacks packet diversion and man in the middle attacks69
Routing attacksPacket Diversion and man-in-the-middle attacks

Client

Server

(router)

Attacker

dns attacks
DNS attacks
  • Include an extra “glue” record on a DNS query
    • short cache time-out hides the evidence
    • newest bind program checks for this
    • “DNS cache poisoning”
  • Capture DNS server and return incorrect result
  • DNSSEC can fix this
    • going through final comments now
infrastructure attacks
Infrastructure attacks
  • Our tools are still weak
    • authenticated SBGP4 is coming, maybe
  • Keep up with the latest name server
  • Move to secure router implementations, when available
  • Question: what will you do if the entire Internet is down for a week?
attacks72

Attacks

Social Engineering

(a.k.a. spying)

social engineering cont
Social Engineering (cont.)

Click here to infect your computer.

social engineering
Social Engineering

``Hello, this is Dennis Ritchie calling.

I’m in Israel now and I have forgotten

my password.’’

``Hello, <admin-name>, I’ve just

started work here. <Boss-name>

said I should have an account on

<target-host>‘‘

attacks76

Attacks

Unsafe services

host with tcp services77
Host withTCP Services

Client

Server

Attacker

host with tcp services78
Host withTCP Services

Client

Server

Attacker

default services sgi workstation
Default servicesSGI workstation

ftp stream tcp nowait root /v/gate/ftpd

telnet stream tcp nowait root /usr/etc/telnetd

shell stream tcp nowait root /usr/etc/rshd

login stream tcp nowait root /usr/etc/rlogind

exec stream tcp nowait root /usr/etc/rexecd

finger stream tcp nowait guest /usr/etc/fingerd

bootp dgram udp wait root /usr/etc/bootp

tftp dgram udp wait guest /usr/etc/tftpd

ntalk dgram udp wait root /usr/etc/talkd

tcpmux stream tcp nowait root internal

echo stream tcp nowait root internal

discard stream tcp nowait root internal

chargen stream tcp nowait root internal

daytime stream tcp nowait root internal

time stream tcp nowait root internal

echo dgram udp wait root internal

discard dgram udp wait root internal

chargen dgram udp wait root internal

daytime dgram udp wait root internal

time dgram udp wait root internal

sgi-dgl stream tcp nowait root/rcv dgld

uucp stream tcp nowait root /usr/lib/uucp/uucpd

more default services
More default services

mountd/1 stream rpc/tcp wait/lc root rpc.mountd

mountd/1 dgram rpc/udp wait/lc root rpc.mountd

sgi_mountd/1 stream rpc/tcp wait/lc root rpc.mountd

sgi_mountd/1 dgram rpc/udp wait/lc root rpc.mountd

rstatd/1-3 dgram rpc/udp wait root rpc.rstatd

walld/1 dgram rpc/udp wait root rpc.rwalld

rusersd/1 dgram rpc/udp wait root rpc.rusersd

rquotad/1 dgram rpc/udp wait root rpc.rquotad

sprayd/1 dgram rpc/udp wait root rpc.sprayd

bootparam/1 dgram rpc/udp wait root rpc.bootparamd

sgi_videod/1 stream rpc/tcp wait root ?videod

sgi_fam/1 stream rpc/tcp wait root ?fam

sgi_snoopd/1 stream rpc/tcp wait root ?rpc.snoopd

sgi_pcsd/1 dgram rpc/udp wait root ?cvpcsd

sgi_pod/1 stream rpc/tcp wait root ?podd

tcpmux/sgi_scanner stream tcp nowait root ?scan/net/scannerd

tcpmux/sgi_printer stream tcp nowait root ?print/printerd

9fs stream tcp nowait root /v/bin/u9fs u9fs

webproxy stream tcp nowait root /usr/local/etc/webserv

some dangerous services
Telnet

FTP

NFS

RPC

“secure” RPC

rlogin/rsh/rcp

X11

DNS

(web servers)

Some Dangerous Services
why are they insecure telnet
Why are they insecure?telnet
  • Eavesdropping attacks sniff passwords
    • >1,000,000 sniffed in 1994 from hacked ISPs
  • TCP hijacking takes over authenticated connections: strong passwords aren’t enough
  • Insecure accounts are subject to probes and use
  • Corruption of client host compromises the session
why are they insecure ftp
Why are they insecure?FTP
  • Same as telnet, plus
  • history of bugs in servers
  • setup errors for anonymous FTP
    • get permissions wrong
    • distribute the real password file to the masses
    • “why”
why are they insecure nfs
Why are they insecure?NFS
  • Root file handle can be sniffed
  • Relies on RPC software
why are they insecure rpc and secure rpc
RPC

address-based

local relay feature can obscure address information from the server

Secure RPC

cryptographically weak

Why are they insecure?RPC and secure RPC
why are they insecure rlogin rsh rcp
Why are they insecure?Rlogin, rsh, rcp
  • rlogin, rsh, rcp
    • can be hijacked
    • can be spoofed
      • use addressed-based authentication
    • .rhosts and /etc/hosts.equiv leak trusted host information
    • .rhosts: users should not be making security policy
why are they insecure x11
Why are they insecure?X11
  • Clear text leaks secrets
  • Cookie authentication is in the clear
  • Advanced authentication not widely available
  • xhost configuration errors
  • Historically, bugs in xdm
why are they insecure dns domain name system
Why are they insecure?DNS - domain name system
  • Bind runs as root
    • it is big, and not well understood
    • runs on vital hosts
  • Cache poisoning: cache wrong answers
    • attack address-based auth
    • spoof servers
dns lookup a asks d for b s ip address
DNS lookupA asks D for B’s IP address

D

B: 1.2.3.4

cache

Server

B -> 1.2.3.4

A

B?

Client

Attacker

dns lookup d asks b or someone who knows about b
DNS lookup: D asks B (or someone who knows about B)

D

B: 1.2.3.4

cache

Server

B?

B -> 1.2.3.4

A

Client

Attacker

dns lookup b answers d caches the answer and tells a
DNS lookup: B answers, D caches the answer, and tells A

D

B: 1.2.3.4

cache

Server

B -> 1.2.3.4

B -> 1.2.3.4

A

Client

B -> 1.2.3.4

Attacker

dns lookup a uses the answer
DNS lookupA uses the answer

D

B: 1.2.3.4

cache

Server

B -> 1.2.3.4

B -> 1.2.3.4

A

Client

X: 5.6.7.8

Attacker

dns lookup d remembers the answer for a given period
DNS lookup: D remembers the answer for a given period

D

B: 1.2.3.4

cache

Server

B -> 1.2.3.4

B -> 1.2.3.4

A

Client

X: 5.6.7.8

Attacker

dns cache poisoning attack attacker c arranges for d to ask him a question
DNS cache poisoning attack:Attacker C arranges for D to ask him a question

D

B: 1.2.3.4

cache

Server

B -> 1.2.3.4

A

X?

Client

X: 5.6.7.8

Attacker

dns cache poisoning attack attacker c arranges for d to ask him a question95
DNS cache poisoning attack:Attacker C arranges for D to ask him a question

D

B: 1.2.3.4

cache

Server

B -> 1.2.3.4

A

X?

Client

X: 5.6.7.8

Attacker

dns cache poisoning attack the attacker gives an answer plus
DNS cache poisoning attack: The attacker gives an answer, plus…

D

B: 1.2.3.4

cache

Server

X -> 5.6.7.8

B -> 5.6.7.8

B -> 1.2.3.4

A

Client

X: 5.6.7.8

Attacker

dns cache poisoning attack a gets his answer and uses it
DNS cache poisoning attack:A gets his answer, and uses it

D

B: 1.2.3.4

cache

Server

X -> 5.6.7.8

B -> 5.6.7.8

B -> 1.2.3.4

A

Client

X: 5.6.7.8

X -> 5.6.7.8

Attacker

dns cache poisoning attack the cache has an extra answer
DNS cache poisoning attack:The cache has an extra answer

D

B: 1.2.3.4

cache

Server

X -> 5.6.7.8

B -> 5.6.7.8

B -> 1.2.3.4

A

Client

X: 5.6.7.8

Attacker

dns cache poisoning attack now a asks for b s address
DNS cache poisoning attack:Now A asks for B’s address

D

B: 1.2.3.4

cache

Server

X -> 5.6.7.8

B -> 5.6.7.8

B -> 1.2.3.4

A

B?

Client

X: 5.6.7.8

Attacker

dns cache poisoning attack d knows the answer already and returns it
DNS cache poisoning attack: D “knows” the answer already, and returns it

D

B: 1.2.3.4

cache

Server

X -> 5.6.7.8

B -> 5.6.7.8

B -> 1.2.3.4

A

Client

X: 5.6.7.8

B -> 5.6.7.8

Attacker

dns cache poisoning attack a uses the answer
DNS cache poisoning attack: A uses the answer

D

B: 1.2.3.4

cache

Server

X -> 5.6.7.8

B -> 5.6.7.8

B -> 1.2.3.4

A

Client

X: 5.6.7.8

B -> 5.6.7.8

Attacker

dns cache poisoning
DNS cache poisoning
  • Gives the wrong answer on inverse lookups, foiling rsh, rlogin
  • If you connect to the wrong site they can
    • spoof a login, and capture passwords
    • spoof a web page, and give wrong answers
    • set themselves up for man-in-the-middle attacks, relaying info to the real server
dns cache poisoning103
DNS cache poisoning
  • Older versions of bind fall for this
  • You can even send an answer without a query, to some implementations!
  • DNS responses can be spoofed to
    • what if the query gets two answers: use the first?!
  • DNSSEC fixes this
why are they insecure web servers
Complex, and buggy

stack smashing attacks, etc

CGI scripts :it is always dangerous to add programs

Numerous configuration options

Apache security relies on good configuration

Needs access to internal databases

Why are they insecure?Web servers
unsafe services smb
Unsafe services: SMB
  • Protocol uses weak authentication
  • samba is big: I prefer using chroot
unsafe services microsoft authentication over pptp
Unsafe services: Microsoft authentication over PPTP
  • Weak authentication
  • Probably weak encryption implementation
    • see Bruce Schneier’s paper in ACM CCS-5
other services
Other services
  • POP3 and IMAP
  • IRC - no!
  • Realaudio
    • UDP is dangerous, TCP ok
  • Mbone
    • hard to gate
    • some UDP implementations respond to multicast packets
viruses
Viruses
  • PC viruses
    • there are tens of thousands of them, including variants
    • defense is best made at the host, with a virus checker
      • update the database often
  • Unix viruses
    • Tom duff made one
    • Shell viruses are easy
    • Unix viruses are rare!
viruses110
Viruses
  • Firewalls can filter them
    • It seems like the right place
    • It requires a lot of work, and they can be hidden
  • Macro viruses are the most alarming
  • They have access to the entire PC, with a little work
the morris worm
The Morris Worm
  • November 2, 1988
  • Spread using
    • fingerd (stack smashing)
    • sendmail (DEBUG back door)
    • password guessing
  • Poorly controlled exponential growth
  • A team of experts fought it quickly
attacks112

Attacks

Unsafe programs

slide113

Root: the gateway to privilege

find / -perm -4000 -user root -print | wc -l

slide114

Setuid-root

AIX 4.2 & 242 & a staggering number \\

BSD/OS 3.0 & 78\\

FreeBSD 4.3 & 42 & someone\'s guard machine\\

FreeBSD 4.3 & 47 & 2 appear to be third-party\\

FreeBSD 4.5 & 43 & see text for closer analysis \\

HPUX A.09.07 & 227 & about half may be special for this host \\

Linux (Mandrake 8.1) & 39 & 3 appear to be third-party \\

Linux (Red Hat 2.4.2-2) & 39 & 2 third-party programs \\

Linux (Red Hat 2.4.7-10) & 31 & 2 third-party programs\\

Linux (Red Hat 5.0) & 59\\

Linux (Red Hat 6.0) & 38 & 2--4 third-party \\

Linux 2.0.36 & 26 & approved distribution for one university \\

Linux 2.2.16-3 & 47 \\

Linux 7.2 & 42\\

NCR Intel 4.0v3.0 & 113 & 34 may be special to this host \\

NetBSD 1.6 & 35 \\

SGI Irix 5.3 & 83 \\

SGI Irix 5.3 & 102 \\

Sinux 5.42c1002 & 60 & 2 third-party programs\\

Sun Solaris 5.4 & 52 & 6 third-party programs\\

Sun Solaris 5.6 & 74 & 11 third-party programs\\

Sun Solaris 5.8 & 70 & 6 third-party programs\\

Sun Solaris 5.8 & 82 & 6 third-party programs\\

Tru64 4.0r878 & 72 & \\

insecure clients
Insecure clients
  • This is not the same as TCP hijacking
  • encryption on the link won’t fix this
  • any persistent connection is vulnerable
    • rlogin, ftp, ssh
  • Tsutomu left an rlogin session running when he went skiing
  • YOU HAVE TO BE ABLE TO TRUST YOUR CLIENT
    • laptop PCs vs. terminal rooms
we ve been losing ground for decades
We’ve been losing ground for decades
  • Bad guys are figuring out attacks that we have been waiting for over the years
    • Very few surprises
  • Defense has not improved much
    • Ssh
    • IPsec
    • Better Linux and Unix systems
how do we fix all this123

How Do We Fix All This?

Hide behind a perimeter defense?

slide124

Firewalls

Perimeter defenses

firewalls not a panacea
Backdoors usually diminish the effectiveness

Commercial firewalls are probably OK

May give community a false sense of security

The firewall is often the only secure part of a configuration

People go around them

People go through the bad ones

No protection from insiders

Firewalls: Not a panacea
slide128

This was

Supposed

To be a

VPN

you don t know to whom you are connected
Modems are cheap and easy to hook up.

Sun’s “fax” machines

Home commuting networks may link to spouse’s company, or the Internet.

even routing worked!

Remote managers can make extranet connections that aren’t authorized.

these connections can be very hard to find

but the security threat is still there

You don’t know to whom you are connected
you don t know how many hosts you have
You don’t know how many hosts you have
  • Most control is at the network level, not the host level.
  • Name server entries are optional.
  • Nobody keeps the reverse name service information up-to-date.
  • Mapping takes work, and doesn’t catch hosts that are down
  • Some network links are ephemeral.
lucent s intranet c 1997
Lucent’s intranetc. 1997

The Internet

Columbus

Murray

Hill

Murray

Hill

Holmdel

Allentown

SLIP

PPP

ISDN

X.25

cable

...

Lucent - 130,000, 266K IP addresses, 3000 nets ann.

thousands of

telecommuters

~200 business partners

how do we fix all this134

How Do We Fix All This?

Life without a firewall

“skinny dipping”

secure computing needs
Secure computing needs…
  • Safe clients
  • Secure communication
  • Safe servers
  • Strong, 2-factor authentication
    • Something you have and something you know
    • Emergency 1-factor authentication, something you know, used extremely rarely
safe clients and servers need
Safe clients and servers need:
  • A trustable Trusted Computing Base
  • Simple, well-specified and debugged kernel
    • Check out the semantics of setuid in Unix flavors (Setuid Demystified. Chen, Wagner, and Dean; Usenix Security 2002)
    • MAC controls: more permissions, use of file system permissions, and programs that know how to use them
      • “root” is bad; see Multics!)
    • Better, more routing sandboxing
      • Make chroot much better, and easier
free new servers by don knuth
Free, new servers by Don Knuth?
  • He’s busy with Volume 4
  • Literate programming of key servers might be the way to go
  • Other languages might be better: C and C++ still have buffer overflow problems
    • Modula 3?
    • Java?
we need better suspenders
We need better suspenders
  • We should never trust the application writers to get it right, though they should try hard
  • Jails/chroot/sandboxes need to be easy and common-place
    • More restrictive jails should be possible
    • Unprivileged user should be able to set these up, even if he is already in a jail
      • The /etc/passwd problem
    • Static builds should be easier
    • Careful documentation of what a program needs to access.
improve chroot
Improve chroot
  • Already some new work in this area: FreeBSD jail
  • Goal: routine jailing of everything that processes external input
    • Netscape client routinely jailed
    • mail readers
    • SpamAssassin
    • Openssl (!)
  • See Plan 9 for some good ideas
    • Network access through the file system?!
related chroot wishes
Related chroot wishes
  • Easier builds of static binaries: dynamic libraries make the TCB tougher to build
  • Chroot options to all the useful network services: they should jail themselves!
    • Apache (Ben Laurie is considering this)
    • Samba
    • Ntp
    • DNS (done)
microsoft desperately needs to do this
Microsoft desperately needs to do this
  • I am convinced that they actually are trying to get better
  • They have a long way to go
  • I wonder if they can wedge good sandboxing into their OS
simpler software
Simpler Software
  • One of the underlying problems with Microsoft applications is creeping featurism
    • For most uses, is Word much better than WordStar or any of the other early word processors?
    • Is this version of PowerPoint that much better than the first ones (bugs aside)?
simpler software in unix
Simpler Software in Unix
  • Skim through the Unix V7 man pages (http://plan9.bell-labs.com)
  • How many options does cat(1) need?
  • How many setuid-to-root programs does your system have?
new file system switch
New file system switch
  • Revisit the DOOFUS wars of the mid 80s
  • Check Plan 9 for possible uses
  • Kernel file system switch that has userland file system computation
    • Must be robust…hung inodes, etc.
    • Does not involve the network, as NFS does
  • Reimplement SFS, Samba client, etc.,
communications solutions ssh
Communications solutions: ssh
  • Source code is available
  • Widely examined
  • But: 2 protocol flaws found so far
  • stack smashing scare
  • Tunneling is valuable
  • IPsec has better crypto, maybe
ipsec
IPsec
  • Protocol well-vetted by expert community
  • We have the CPUs, I want everyone to use it, for all communications
  • Needs simpler setup
    • Microsoft requires certificates, no?
    • Secret key pairs are fine for small setups
  • Key exchange daemons worry me
    • They gotta run as root, no?
    • They can use complicated crypto libraries, and are exposed network services
slide149
SSL
  • Well-documented and ver. 3 is probably ok
  • Implemented by openssl…
  • …which uses X.509…
  • …which uses ASN.1…
  • …which is complicated, a monoculture, and has had several bugs exposed
  • Can you jail the SSL parts of your web server? (I have: sslwrap + chroot)
security doesn t need to be inconvenient
Security doesn’t need to be inconvenient
  • Modern hotel room keys
  • Modern car keys
some solutions hardware tokens
Some solutions:Hardware tokens
  • SecureID
    • time-based
  • S/Key
    • software or printout solution
  • Many others
    • usually proprietary server software
    • New USB dongles are just the ticket!

Digital Pathways

SNK-004

one time passwords
One-time Passwords

RISC/os (inet)

Authentication Server.

Id? ches

Enter response code for 70202: 04432234

Destination? cetus

$

how does it work and returns the result

Secret key

Secret key

How does it work?…and returns the result

Client

Server

70202

04432234

how does it work the server checks the result

Secret key

Secret key

How does it work?The server checks the result

Client

Server

70202

04432234

04432234

one time passwords159
One-time passwords
  • The client proves he has the key, without revealing it
  • With hardware, he may not even know the key
  • the keys are computer-generated
    • no weak passwords
  • If the challenges don’t repeat, an eavesdropper can’t predict the answer, unless the encryption (DES) is broken
one time passwords160
One-time passwords
  • The key can be generated from a password but the challenge/response pair is subject to a dictionary attack
  • This extra work for the user is worth the effort:
    • very strong authentication
    • spies use this
    • needs about a page of C code
    • can be implemented in a remote authentication server
human computed one time password a research project
Human-computed one-time password: a research project

challenge: 00193 Wed Sep 11 11:22:09 2002

response: ab0dh1kd0jkfj1kye./

not gory enough for you
Not Gory Enough For You?
  • Bugtraq mailing list
  • Firewalls and Internet Security
  • Chapman and Zwicky
  • Keyword search in search engines for hacking tools
    • “rootkit”
questions
Questions
ad