32
BootJacker: Compromising Computers using Forced Restarts Ellick M. Chan, Jeffrey C. Carlyle, Francis M. David, Reza Farivar, Roy H. Campbell Department of Computer Science University of Illinois at Urbana-Champaign Presentation by Tristan Gibeau

Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Embed Size (px)

Citation preview

Page 1: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

BootJacker: Compromising

Computers using Forced

RestartsEllick M. Chan, Jeffrey C. Carlyle, Francis M. David, Reza Farivar,

Roy H. CampbellDepartment of Computer Science

University of Illinois at Urbana-ChampaignPresentation byTristan Gibeau

Page 2: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

OutlineOverview of Direct Access Security

Little History of Computer Components

Approach of BootJacker

The Process

Effectiveness on a Linux System

How to Counteract

Related Work

Conclusion

Page 3: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Direct Access Security What prevents access to an attacker?

Screen Saver / Lock Screen Password Protection Password Protected Login Screens File Systems are Encrypted Virtual Private Network Connections Encrypted websites (SSL)

Page 4: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

The Workings…..How exactly do these software measures work?

Passwords or Keys are entered by the user at login or resuming system state

Trusted Platform Module (TPM) supplies the operating system with the key

Where do they go? After successful verification they are stored in the

computers volatile memory or Random Access Memory (RAM)

Is that safe??????

Page 5: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Computer ComponentsComputers are made up of many different

parts, but lets focus on one specific one: RAM

Random Access Memory – This is where the computers programs, processes, and other temporary information is stored.

Continues power is needed to ensure contents are not corrupted or erased.

How long does the data stay active? In most cases the data is kept during restarts or

brief power outagesWith use of liquid nitrogen, memory can be stored

up to a week!

Page 6: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Oh Rebooting Woes…So how much data is actually intact after a

reboot? Most computer systems will overwrite sections of

memory at boot upContains caching information for peripherals, i/o

mappings, and other motherboard related operations

Page 7: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Unleash the BootJackerA few things to know about BootJacker

BootJacker is a proof of concept It will not work on Error Correcting Code (ECC)

memory Requires direct or physical access to the

computer It is Operating System dependent (Linux Kernel

2.6)

Page 8: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

The ApproachHow does it work?

BootJacker uses a vulnerability that volatile memory is not completely erased when force restarted

Using the pieces left over, BootJacker then resuscitates the computer back to the live user session.

This allows the attacker to have full admin rights to the victim computer bypassing the security of the machine. Also allows for access to any open channels the

user may of have had open at the time of force restart

Page 9: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

How does it really work…

BootJacker operates like a small bootstrap environment, at boot-up it begins to resuscitate the computer at its core systems. Core Systems include both Hardware and

Software

Using what information is still provided within the volatile memory BootJacker will be able to revive the machine in

the state is was before forced restart

Page 10: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

This is done with a little help…MALWARE!TerminatorAttacks security and logging software

Antivirus, intrusion detection tools, system logger deamons

Allows Attacker to load tools

RootShell -- Superuser Shell spawned by BootJacker

Gives root access to the attacker Allows the attacker to implement what ever attack he

or she wishes

Page 11: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

--Resuscitation--ITS ALIVE!!!!!

Hardware Interrupt Controller

All interrupts are re-enabled Interrupts include system timer to keyboard.

System TimerThe timer needs to be exactly the same

Otherwise this will prevent the system from resuscitating properly

Keyboard & MouseHot-Swappable

BootJacker sends a command to re-initialize them

Page 12: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Hardware Resuscitation….

Display Monitor Uses standard VGA or VESA video modes

Basic text mode to ensure compatibility After successful resuscitation, attacker can re-enable

graphics console

Disk Relies on Linux’s error recovery routines Linux sends a re-initialization command to drives

BootJacker responds after initialization is completed

Page 13: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Coprocessor Unit BootJacker has to reset and re-initialize

Coprocessor is disabled at system restart

Network BootJacker utilizes the API’s of Linux to re-

initialize the network adaptorSince system restart only takes up to a minute,

connections don’t usually time out.

Page 14: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Software Resuscitation Page Tables

BootJacker needs to discover the address of page locations If not, system resuscitation will fail

Alt-SysRq-B Reboot method used to enable resuming of

software processes This helps ensure that the Stack does not

become corruptAllow for proper process/context reconstructing to

occur Instructions are properly reloaded due to a call

back method caused by instructional fetch fault

Page 15: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Software Interrupts Schedule

Processes running before restart were on a scheduleSchedule is attempting to run during resuscitation

These are pushed on to a stack for future

Using existing Linux API Interrupts are successfully re-enabled for all

processesScheduling is resumed

Page 16: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

The ProcessHow does a attacker implement this?

Attacker needs to have direct access to the computerStealing the computerUn-authorized access to the computerRemoval of memory components

Removing hard-drive & volatile memory

Forced Restart is initializedPressing of restart button on computer systemUse of Hot-Key restarts (Alt-SysRq-B)

Page 17: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

The Process ContinuedBootJacker is connected to the computer

Bootable DeviceDVD / CDUSB Flash/Hard DriveNetwork Boot

BootJacker boots instead of host system

Page 18: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Process…

BootJacker successfully revives the host operating system Attacker can now break the system with malware

payloads

If needed, the system can then be returned to the unsuspecting owner

A few hiccups… If the drive is inserted before force restart

Could cause intrusion software to detect the insertion

Page 19: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

A Few Side NotesAlternate booting

Attacker may need to configure bios to boot from removable media

Most BIOS will boot from CDMost will not boot from USB

Operating Systems Attack BootJacker will need to be recompiled for different

kernels

Timing The quicker you are the better chance you have

Memory is volatile, could be refreshed over time (BIOS dependant)

Page 20: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

EffectivenessTest System Hardware

IBM InteliStation M Pro2 GHZ Intel Pentium 4512 MB of RAM IDE Disk Drive Intel Pro/100 Network Card

This configuration is optimal for Hardware Resuscitation

Operating System Linux 2.6 Kernel (x86 – 32 Bit)

Page 21: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Time to Test…Test Tasks Performed

gcc: Compilation of the C source file containing the H.264/MPEG-4 AVC video compression codec in the MPlayer [37] media program.

gzip: File compression using the deflate compression algorithm.

wget: File download. convert: JPEG image encoding. aespipe: AES file encryption.

During the middle each test the computer was force restarted The tasks were successfully completed after

resuscitation

Page 22: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Security Test Applications

SSH Secure shell connection between two computers

SSL Web browser session to a secure web server

PPTP Secure connection to a secure network

University or Business

dm-crypt & Loop-AES Encrypted File Systems

Page 23: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

ResultsSSH & SSL

Both are stored in user space After successful resuscitation

Attacker was able to access secured sessions on SSH

Attacker was also able to view secured websites Email Online Banks

VPN During the process of BootJacker

VPN connections stay intact

Page 24: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Results…Linux File Encryption

After successful exploitationFull access to encrypted drives remained

dm-crypt Loop-AES

Page 25: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Time

So how long does this take to do…. Less then 60 seconds!

In most cases it took less then 30 seconds In most test runs

Most time was consumed by the BIOS boot process

Page 26: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

How to Counteract BootJacker

System Reconfiguring Prevent the system from alternate booting

Password protecting BIOS Use of ECC memory Requiring memory tests at each boot

Clears out memory

Operating System Reconfiguration Prevent secrets/keys from being stored in volatile

memory Drop secure connections when screen saver / lock

screen events occur Encrypt memory & stop computations until user has

authenticated

Page 27: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Related WorkFireWire Protocol Attack

Access physical memory thru FireWire port Allows access to keys and other secret data

stored in volatile memory

Cold Boot Attacks Access memory to view keys and other secret

information stored in volatile memory Uses a memory tool that analyses contents of

volatile memory for specific secured data

Page 28: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Vbootkit & eEye BootRoot Install code that is executed on next boot cycle

Place malware on the system to monitor secrets Does not attempt to recover information from

memory or revive the system

Page 29: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

ConclusionPros

Easily achieve access to the systemNo need for knowledge about the userBypass security algorithms within the system

Intrusion Detection, Antivirus, Loggers

Have access to current secure sessions VPN, SSH, SSL, File Encryption

Complete processes being executed before force restart gcc, gzip, wget, convert, aepipe

Achieve Root access to the system Terminator, RootShell

Page 30: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Conclusion….Pros Continued

Mass DistributionSince most corporations and companies use the

same software & hardware setup One compiled version can be used on a wide amount of

machines

Practical UseForensics

Recovery of data

Page 31: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

Conclusion….Cons

Not a very diverse attackNeeds to be recompiled based on:

System Hardware Operating System Kernel

Not effective against ECCNewer computers implement ECC memory

Limited to older systems No support for multi-core

New systems built today are exercising multi-core Physical Interaction needed

Direct access to the computer is required

Page 32: Outline Overview of Direct Access Security Little History of Computer Components Approach of BootJacker The Process Effectiveness on a Linux System How

References J. Mäkinen. Automated OS X Macintosh password retrieval via firewire.

http://blog.juhonkoti.net/2008/02/29/automated-os-x-macintosh-password-retrievalvia-firewire, 2008.

Trusted Computing Group. Trusted Platform Module version 1.2.http://www.trustedcomputinggroup.org/specs/TPM/.

WiebeTech. HotPlug: Transport a live computer without shutting it down. http://www.wiebetech.com/products/HotPlug.php, 2008.

R. Anderson. Security Engineering: A Guide to Building Dependable Distributed Systems. Wiley, First edition, January 2001.

A. Boileau. Hit By A Bus: Physical Access Attacks with Firewire. In RUXCON, Sydney, Australia, Sep 2006.

Wikipedia

W. Link and H. May. Eigenshaften von MOS-Ein-Transistorspeicherzellen bei tieften Temperaturen. In Archiv fur Elektronik und Ubertragungstechnik, pages 33–229–235, June 1979