Vigilante: End-to-End Containment of Internet Worms Paper by: - - PowerPoint PPT Presentation

vigilante end to end
SMART_READER_LITE
LIVE PREVIEW

Vigilante: End-to-End Containment of Internet Worms Paper by: - - PowerPoint PPT Presentation

Vigilante: End-to-End Containment of Internet Worms Paper by: Manuel Costa, Jon Crowcroft, Miguel Castro, Ant Rowstron, Lidong Zhou, Lintao Zhang, Paul Barham Microsoft Research Cambridge Microsoft Research Silicon Valley University of


slide-1
SLIDE 1

Vigilante: End-to-End Containment of Internet Worms

Paper by: Manuel Costa, Jon Crowcroft, Miguel Castro, Ant Rowstron, Lidong Zhou, Lintao Zhang, Paul Barham Microsoft Research Cambridge Microsoft Research Silicon Valley University of Cambridge, Computer Laboratory Presented by Marcus Peinado, Microsoft Research

slide-2
SLIDE 2

1980’s to early 1990’s

– Widespread adoption of personal computers – Limited or no network connectivity – Initially no hard drives; just floppy disks – Single user operating systems – Attack model: Somebody steals or tampers with my floppy disk. – Limited attention to software security

slide-3
SLIDE 3

Mid 1990’s to early 2000’s

  • Broad internet adoption
  • Massive improvements in hardware

performance

  • Massive increase in software complexity
  • Multi-user operating systems
  • New complex threats to computer security
slide-4
SLIDE 4

Worms: Code Red

  • Released July, August 2001

–Infected 360,000 machines –Spread slowly (days) –Payload: (among others) DOS attack against www.whitehouse.gov

slide-5
SLIDE 5

Worms: Slammer

  • Released January 25, 2003

– 75,000 vulnerable machines – Almost all of them infected within 10 minutes – No payload beyond worm propagation – Worm packets sent from infected machines saturated parts of the internet.

  • Exacerbated by crashes of internet routers.
slide-6
SLIDE 6

Worms: Blaster

  • Released: August 2003

– 500,000 infected machines – Spread much more slowly than Slammer (days) – Author was found and sentenced to 18 months in jail.

slide-7
SLIDE 7

Worms

  • Each of these worms

– Made newspaper headlines – Caused huge financial damages – Exploited vulnerabilities for which patches had been issued several months earlier

  • There have been more highly-visible

worms

– But not many more

slide-8
SLIDE 8

What happened next?

  • Lots of work on techniques for avoiding attacks.

– Some of them are practical. – Some of them are in widespread use.

  • Stack canaries, ASLR, NX, static analysis tools, pen-testing,

fuzzing, software development standards

  • Developer awareness: check for buffer overflows etc.
  • User awareness: install patches asap; use AV, use firewalls
  • Response infrastructure: fast patch release, AV
  • A new kind of attacker emerges

– Interested in financial gain, rather than vandalism – Cyber warfare

slide-9
SLIDE 9

Case study: Slammer

  • Buffer overflow vulnerability in Microsoft SQL

Server (MS02-039).

  • Vulnerability of the following kind:

ProcessUDPPacket() { char SmallBuffer[ 100 ]; UDPRecv( LargeBuff ); strcpy( SmallBuf, LargeBuf ); … }

slide-10
SLIDE 10

Case Study: Slammer

  • Slammer is a single UDP packet
  • Contains a string that overflows

SmallBuffer,

– Overwriting the return address on the stack – Placing the payload on the stack directly above the return address.

  • Payload

– Repeat forever

Dest_IP = random(); UDPSend( Dest_IP, SlammerPacket );

slide-11
SLIDE 11

Vigilante

slide-12
SLIDE 12

The worm threat

  • worms are a serious threat

– worm propagation disrupts Internet traffic – attacker gains control of infected machines

  • worms spread too fast for human response

– Slammer scanned most of the Internet in 10 minutes – infected 90% of vulnerable hosts

worm containment must be automatic

slide-13
SLIDE 13

Automatic worm containment

  • previous solutions are network centric

– analyze network traffic – generate signature and drop matching traffic or – block hosts with abnormal network behavior

  • no vulnerability information at network level

– false negatives: worm traffic appears normal – false positives: good traffic misclassified

false positives are a barrier to automation

slide-14
SLIDE 14

Vigilante’s end-to-end architecture

  • host-based detection

– instrument software to analyze infection attempts

  • cooperative detection without trust

– detectors generate self-certifying alerts (SCAs) – detectors broadcast SCAs

  • hosts generate filters to block infection

can contain fast spreading worms with small number of detectors and without false positives

slide-15
SLIDE 15

15

Worm containment

Internet

  • Vigilante Detectors

– Analyze execution of application – Produce alerts (SCAs) based on attack packets and vulnerable applications – Broadcast SCAs over the Pastry P2P network

Detector SCA SCA SCA SCA SCA

  • Receive SCAs
  • Verify SCAs
  • Generate packet filters from

SCAs

  • Deploy packet filters
slide-16
SLIDE 16

Vigilante’s components

D etector H

  • st

V ulnerable H

  • st

P rotection SCA D istribution SCA V erification F ilter V ulnerable A pplication Network Network SCA D istribution SCA V erification D etection E ngine SCA G eneration Network

slide-17
SLIDE 17

Outline

  • self-certifying alerts (SCAs)
  • detection and generation of SCAs
  • generation of vulnerability filters
  • evaluation
slide-18
SLIDE 18

Self-certifying alerts

  • identify an application vulnerability

– describe how to exploit a vulnerability – contain a log of events – contain verification information

  • enable hosts to verify if they are vulnerable

– replay infection with modified events – verification has no false positives enable cooperative worm containment without trust

slide-19
SLIDE 19

SCA types

  • arbitrary code execution (ACE)

– attacker can execute code in message – code injection

  • arbitrary execution control (AEC)

– attacker can load a value in message into the PC – no code injection (e.g. return into libc)

  • arbitrary function argument (AFA)

– attacker can call function with arbitrary argument – data-only attacks, no abnormal control flow

slide-20
SLIDE 20

Verifying an AEC alert

vulnerable process normal code verified alert type: AEC , attack message: verification information: program counter is at offset 6 of attack message 11111144444444111 recv

0x44444444

proves that external interfaces allow arbitrary control of the execution

SCA 11111111111111111

verification information enables independence verification is independent of detection mechanism

slide-21
SLIDE 21

SCA generation

  • log events
  • generate SCA when worm is detected

– compute verification information – search log for relevant events – generate tentative version of SCA – repeat until verification succeeds

  • detectors may guide search

– dynamic dataflow analysis is one such detector

slide-22
SLIDE 22

Detection

  • dynamic dataflow analysis
  • track the flow of data from input messages

– mark memory as dirty when data is received – track all data movement

  • trap the worm before it executes any instructions

– track control flow changes – trap execution of input data – trap loading of data into the program counter

slide-23
SLIDE 23

Detection and SCA Generation

stack pointer return address msg1 buffer id 100 id 400 id 100 id 400 //vulnerable code push len push netbuf push sock call recv push netbuf push localbuf call strcpy ret log: 1111111111111111111 id 400 id 100 msg1 id 236 AEC, , pc at offset 136 SCA: 1111111111111111111

direct extraction of verification information high coverage

slide-24
SLIDE 24

Cooperative worm containment

  • SCA enables cooperative containment

– any host can be a detector – hosts can run high-overhead detection engines – hosts can run different detection engines – small TCB for SCA verification cooperation enables low false negative rate

slide-25
SLIDE 25

SCA broadcast

  • uses secure overlay: Pastry

– hosts join overlay – detectors flood alerts over overlay links

  • denial-of-service prevention

– per-link rate limiting – per-hop filtering and verification – controlled disclosure of overlay membership

hosts receive SCAs with high probability

slide-26
SLIDE 26

Protection

  • hosts generate filter from SCA
  • dynamic data and control flow analysis

– run vulnerable application in a sandbox – track control and data flow from input messages – compute conditions that determine execution path – filter blocks messages that satisfy conditions

slide-27
SLIDE 27
  • cmp eax,buf[23]
  • jne addr1
  • test ecx, buf[13]
  • je addr2
  • mov eax,buf[20]
  • call eax

Execution trace filters

addr1 addr2 Vulnerability point Program start Condition 1 Condition 2

slide-28
SLIDE 28

Generating filters for vulnerabilities

0x3 0x24 0x67 0x42 0x1

attack: mutation:

0x3 0x12 0x28 0x63 0x4

=3 ≠0 ≠0 ≠0 ≠0

filter:

//vulnerable code mov al,[msg] mov cl,0x3 cmp al,cl jne L2 //msg[0] == 3 ? xor eax,eax L1 mov [esp+eax+4],cl mov cl,[eax+msg+1] inc eax test cl,cl jne L1 //msg[i] == 0 ? L2 ret

Match!

look at the program, not at the messages find control flow decisions that enable the attack

slide-29
SLIDE 29

Filters

  • capture generic conditions

– dataflow graphs of CPU instructions

  • safe and efficient

– no side effects, no loops

  • accumulating all control flow decisions limits

the amount of polymorphism tolerated

– two filter design alleviates this – details in the paper, still improving

slide-30
SLIDE 30
  • Central question:

– What if the exploit mutates? – Will the filter still cover exploits that differ from the exploit the detector saw?

  • Good:

– Any byte in the input that does not alter the execution path of the application can be changed. – Immune to a large class of mutations.

  • Bad:

– Mutations that alter the execution path of the application can bypass the filter.

Properties of execution trace filters

slide-31
SLIDE 31
  • <title> … </title>
  • <body>
  • <IMG …>… </IMG>
  • <A …> …</A>
  • <span> … </span>
  • Arbitrary sequence of HTLM tags
  • Tag that exploits the vulnerability
  • <script> exploit </script>
  • Arbitrary sequence of HTML tags
  • </body>
  • All the irrelevant tags on the page affect the execution trace.
  • Thus, the attacker can thwart execution trace filters by adding irrelevant input.
  • Follow up work by the authors and others tries to address this problem.

HTLM Exploit

slide-32
SLIDE 32

Evaluation

  • three real worms:

– Slammer (SQL server), Blaster (RPC), CodeRed (IIS)

  • measurements of prototype implementation

– SCA generation and verification – filter generation – filtering overhead

  • simulations of SCA propagation with attacks
slide-33
SLIDE 33

Time to generate SCAs

18 206 2667 2

1 10 100 1000 10000

Slammer Blaster CodeRed Slammer Dynamic dataflow NX SCA generation time (ms)

slide-34
SLIDE 34

Time to verify SCAs

10 18 75 20 40 60 80 Slammer Blaster CodeRed SCA verification time (ms)

slide-35
SLIDE 35

Time to generate filters

24 273 3402 1 10 100 1000 10000 Slammer Blaster CodeRed Filter generation time (ms)

slide-36
SLIDE 36

Filtering overhead

0.51 1.4 0.7 1.92 0.76 2.07 0.16 0.16 0.2

1 2 3 SQL RPC IIS Overhead (%)

Intercepted Intercepted+filter Intercepted+filter+attack

slide-37
SLIDE 37

Simulating SCA propagation

  • Susceptible/Infective epidemic model
  • 500,000 node network on GeorgiaTech topology
  • network congestion effects

– RIPE data gathered during Slammer’s outbreak – delay/loss increase linearly with infected hosts

  • DoS attacks

– infected hosts generate fake SCAs – verification increases linearly with number of SCAs

slide-38
SLIDE 38

0% 5% 10% 15% 20% 25% 30% 35% 40% 45% 50% 0.000 0.002 0.004 0.006 0.008 0.010

Detector Fraction Infected Percentage

Slammer+DoS Slammer

Containing Slammer

slide-39
SLIDE 39

0% 5% 10% 15% 20% 25% 30% 0.5β β 2β 4β 8β

Infection Rate Infected Percentage

w/ DoS w/o DoS

Increasing infection rate

(ß is Slammer’s infection rate)

slide-40
SLIDE 40

0% 2% 4% 6% 8% 10% 12% 14% 200 400 600 800 1000

SCA Verification Time (msec) Infected Percentage

w/ DoS w/o DoS

Increasing verification time

slide-41
SLIDE 41

0% 5% 10% 15% 20% 25% 30% 35% 2000 4000 6000 8000 10000

Number of Initially Infected Hosts Infected Percentage

w/ DoS w/o DoS Baseline

Increasing seed hosts

slide-42
SLIDE 42

Conclusion

  • Vigilante can contain worms automatically

– requires no prior knowledge of vulnerabilities – no false positives – low false negatives – works with today’s binaries