Post-Mortem Memory Analysis of Cold-Booted Android Devices



Similar documents
Post-Mortem Memory Analysis of Cold-Booted Android Devices

Android Packer. facing the challenges, building solutions. Rowland YU. Senior Threat Researcher Virus Bulletin 2014

Live Memory Forensics on Android with Volatility

Bypassing Local Windows Authentication to Defeat Full Disk Encryption. Ian Haken

MSc Computer Security and Forensics. Examinations for / Semester 1

A Survey on Mobile Forensic for Android Smartphones

Are free Android virus scanners any good?

Introduction to BitLocker FVE

Android Programming and Security

Blackbox Android. Breaking Enterprise Class Applications and Secure Containers. Marc Blanchou Mathew Solnik 10/13/

Discovering authentication credentials in volatile memory of Android mobile devices

Introduction to Android

Analysing Android s Full Disk Encryption Feature

Informatica forense. Mobile Forensics - Approfondimenti tecnici e particolarità degli smartphone

Android Security for Enterprise App Developers Jon Preedy

Super Manager User Manual. English v /06/15 Copyright by GPC

Disk Encryption. Aaron Howard IT Security Office

Advanced ANDROID & ios Hands-on Exploitation

Frost. Forensic Recovery of Scrambled Telephones. Tilo Müller, Michael Spreitzenbarth, and Felix C. Freiling

Kaspersky Lab s Full Disk Encryption Technology

Mobile Device Security and Encryption Standard and Guidelines

BlackBerry 10.3 Work and Personal Corporate

Computer Forensics. Securing and Analysing Digital Information

EC-Council Ethical Hacking and Countermeasures

Encrypting with BitLocker for disk volumes under Windows 7

Hands-On How-To Computer Forensics Training

Chapter 14 Virtual Machines

How to Remotely Track Any Lost Smartphone, Tablet, or PC

Into The Droid. Gaining Access to Android User Data DEF CON 20

Solid-State Drives with Self-Encryption: Solidly Secure

Just EnCase. Presented By Larry Russell CalCPA State Technology Committee May 18, 2012

Encrypted File Systems. Don Porter CSE 506

Apple ios 8 Security

Computing forensics: a live analysis

CJIS SECURITY POLICY: VERSION 5.2 CHANGES AND THE UPCOMING REQUIREMENTS.

USER TRAINING. Enterprise Mobility Solutions October 23, 2013

Lecture 2 PLATFORM SECURITY IN ANDROID OS

Whitepaper Enhancing BitLocker Deployment and Management with SimplySecure. Addressing the Concerns of the IT Professional Rob Weber February 2015

Last modified: November 22, 2013 This manual was updated for the TeamDrive Android client version

Introduction to Android

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

In-Depth Look at Capabilities: Samsung KNOX and Android for Work

Chapter 4. Operating Systems and File Management

Cleartext Passwords in Linux Memory

Friendly ARM MINI2440 & Dalvik Virtual Machine with Android

The virtual safe: A user-focused approach to data encryption

Sophos Mobile Control User guide for Apple ios. Product version: 4

COMMONWEALTH OF PENNSYLVANIA DEPARTMENT S OF PUBLIC WELFARE, INSURANCE AND AGING

Getting Familiar With Android

GadgetTrak Mobile Security Android & BlackBerry Installation & Operation Manual

Junos Pulse for Google Android

Mobile Application Development 2014

Quick Start Guide: Iridium GO! Advanced Portal

Smart Ideas for Smartphone Security

Windows Vista The Definitive Guide

Running a Program on an AVD

Kaspersky Security for Mobile

Mobile Iron User Guide

Secure Storage. Lost Laptops

Computer Hacking Forensic Investigator v8

International Engineering Journal For Research & Development

Android Architecture. Alexandra Harrison & Jake Saxton

Android Security. Device Management and Security. by Stephan Linzner & Benjamin Reimold

Mobile App User's Guide

Digital Forensics Tutorials Acquiring an Image with FTK Imager

User Manual. HitmanPro.Kickstart User Manual Page 1

Egnyte App for Android Quick Start Guide

Kaspersky Lab Mobile Device Management Deployment Guide

ios Security Decoded Dave Test Classroom and Lab Computing Penn State ITS Feedback -

McAfee Multi Access from ø. Step-by-step guide to protecting your devices. Always.

A Hard Pill to Swallow?

Configuring the Qaleido Sync Client for the iphone

More details >>> HERE <<<

MTP: Continuous User Authentication on Android Using Face Recognition

Example of Standard API

Managing Remote Access

Android anti-forensics at the operating system level

More details >>> HERE <<<

Mobile Operating Systems. Week I

Automating Linux Malware Analysis Using Limon Sandbox Monnappa K A monnappa22@gmail.com

This guide describes features that are common to most models. Some features may not be available on your tablet.

What Happens When You Press that Button? Explaining Cellebrite UFED Data Extraction Processes

HP AppPulse Active. Software Version: 2.2. Real Device Monitoring For AppPulse Active

mcashier User Guide To accept payments To cancel a payment

Cookbook Backup, Recovery, Archival (BURA)

Encrypting the Private Files on Your Computer Presentation by Eric Moore, CUGG June 12, 2010

COS 318: Operating Systems

Windows Phone 8.1 Mobile Device Management Overview

Guidance End User Devices Security Guidance: Apple OS X 10.9

Detecting Malware With Memory Forensics. Hal Pomeranz SANS Institute

Lecture outline. Computer Forensics and Digital Investigation. Defining the word forensic. Defining Computer forensics. The Digital Investigation

Transcription:

Post-Mortem Memory Analysis of Cold-Booted Android Devices Christian Hilgers Holger Macht Tilo Müller Michael Spreitzenbarth FAU Erlangen-Nuremberg Chair of Computer Science 1 Prof. Felix Freiling IMF 2014 8th International Conference on IT Security Incident Management & IT Forensics May 12th - 14th, 2014 Münster, Germany

Introduction: Cold-Boot Attacks against Android

FROST FROST: Forensic Recovery of Scrambled Telephones Cold-boot based recovery tool for encrypted Android smartphones. Scenario: Criminal leaves phone behind at the scene, or the phone gets confiscated. The suspect is not able or willing to tell the PIN. Phone is switched-on when police accesses it, but its user partition is encrypted. Although all data on disk are encrypted, RAM contents are never encrypted!

Remanence Effect RAM is not lost immediately after power is cut but fades away gradually over time. original ~150ms ~500ms ~1sec ~2sec ~4sec ~6sec Cooling down RAM chips slows down the fading process (e.g, on PCs up to 40 sec). Question: How to acquire RAM dumps from cold-booted Android phones?

Example: Samsung Galaxy Nexus Android phones have open bootloaders that enable us to run our own system code: Bootloaders are locked by default Bootloaders can be unlocked with physical access via USB Unlocking wipes the user partition... but RAM gets not wiped!

The FROST Attack

Evaluation: Bit-Error Rate 90 80 70 5-10 C 10-15 C 15-20 C 20-25 C 25-30 C bit-error rate 60 50 40 30 20 10 0 0 1 2 3 4 5 6 seconds

Post-Mortem Memory Analysis

Android Memory Contents

Simple Memory Analysis Tools like PhotoRec and Strings can recover plenty of sensitive data from Android images: Address book contacts Calendar entries Emails and messaging Thumbnail pictures Web browsing history WhatsApp history WiFi credentials fully recovered partly recovered However, forensically more accurate analyses of Android memory structures are needed: Which data belongs to which process / App? Can recovery be automated by Volatility plugins?

Background: Dalvik VM Dalvik VM Java Runtime Environment one DVM instance per Android App to be replaced by ART in future (Android 4.4) Android App 1 Android App 2 Android App 3 APK DEX Resources APK DEX Resources APK DEX Resources Dalvik VM Dalvik VM Dalvik VM Linux Process Linux Process Linux Process Linux Kernel Hardware

Volatility Plugins for Linux Android is based on the Linux kernel each DVM instance is a Linux process hence, existing Volatility plugins for Linux memory images can be used: linux_ifconfig linux_route_cache linux_pslist linux_proc_maps (acquires memory mappings of individual processes, i.e. for DVM instances / Apps)

Locate DVM Instances With existing Linux plugins, we can identify memory regions per process: linux_proc_maps Entry point to each DVM instance: DvmGlobals To analyze a specific App, it is essential to locate the offset to DvmGlobals in the process memory. Therefore, we provide a Volatility plugin: dalvik_find_gdvm_offset

dalvik_find_gdvm_offset Volatility plugin to locate DvmGlobals: class class dalvik_find_gdvm_offset(linux_common.abstractlinuxcommand): dalvik_find_gdvm_offset(linux_common.abstractlinuxcommand): def def calculate(self): calculate(self): offset offset 0x0 0x0 mytask mytask None None for for task, task, vma vma in in dalvik.get_data_section_libdvm(self._config): dalvik.get_data_section_libdvm(self._config): if if not not self._config.pid: self._config.pid: if if task.comm}%""% task.comm}%""%!! %"%zygote%"%: %"%zygote%"%: continue continue mytask mytask task task break break proc_as proc_as mytask.get_process_address_space() mytask.get_process_address_space() gdvm gdvm None None offset offset vma.vm_start vma.vm_start while while offset offset < < vma.vm_end: vma.vm_end: offset offset } } 1 1 gdvm gdvm obj.object(%'%dvmglobals%'%, obj.object(%'%dvmglobals%'%, vm vm proc_as, proc_as, offset offset offset) offset) if if dalvik.isdvmglobals(gdvm): dalvik.isdvmglobals(gdvm): yield yield (offset (offset - - vma.vm_start) vma.vm_start)

Generic Volatility Plugins Altogether, we provide five Volatility plugins that can generically be applied to Android Apps: dalvik_find_gdvm_offset find the DVM instance of a process dalvik_vms find all DVM instances in memory dalvik_loaded_classes list all classes of a DVM instance dalvik_class_information list information of a specific class dalvik_find_class_instance find a specific class instance

Example Outputs find DVM instances: $./vol.py [...] dalvik_vms o HEX PID name heapstartingsize heapmaximumsize 2508 zygote 5242880 134217728 2612 system_server 5242880 134217728 2717 ndroid.systemui 5242880 134217728 stacksize tablesize numdeadentries numentries 16384 4096 0 2507 16384 8192 0 4123 16384 8192 0 2787 find loaded classes: $./vol.py [...] dalvik_vloaded_classes o HEX p 4614 PID Offset Descriptor sourcefile 4614 0x40c378b8 Ljava/lang/Long; Long.java 4614 0x40deb6d0 Ljava/io/Writer; Writer.java 4614 0x414e2f60 Lde/homac/Mirrored/ArticlesList; ArticlesList.jav...

Specific Volatility Plugins The generic plugins are designed to support data recovery from any Android App. Additionally, we provide four examples how to use these plugins in forensically interesting use cases: dalvik_app_calllog dalvik_app_lastinput dalvik_app_password dalvik_app_pictures

Case A) Call Log Recovery Goal: recover list of incoming/outgoing phone calls from confiscated phones Target process: com.android.contacts Target class: PhoneClassDetails.java One instance of this class is in memory per call log entry. Class members: type (incoming, outgoing, missed) duration, date and time telephone number, contact name, photo

Case B) Last User Input Recovery Goal: retrieve the last given user input from a confiscated phone Target process: com.android.inputmethod.latin Target class: RhichInputConnection Target field: mcommittedtextbeforecomposingtext (this field is like a keyboard buffer)

Case C) User PIN Recovery Goal: recover the user PIN (if entered at least once before phone is confiscated) Target process: keystore (Note: this process is an Android system process and not running a DVM instance) Target location: relative address inside keystore +/- 200 kbytes at maximum

Case D) Photo Metadata Recovery Goal: recover metadata like date, time and GPS coordinates from photo gallery Target process: com.android.gallery3d Target class: LocalAlbum LocalImage Class members: name, size, date and time GPS coordinates (if activated)

Volatility Plugins Availability GNU General Public License 2.0 Link: https://www1.cs.fau.de/filepool/projects/android_volatility_plugins.zip volatility/ volatility/plugins/ volatility/plugins/overlays/ volatility/plugins/overlays/linux/ volatility/plugins/overlays/linux/dalvik_vtypes.py volatility/plugins/linux/ volatility/plugins/linux/dalvik_app_calllog.py volatility/plugins/linux/dalvik_find_class_instance.py volatility/plugins/linux/dalvik_app_password.py volatility/plugins/linux/dalvik.py volatility/plugins/linux/flags.py volatility/plugins/linux/dalvik_app_pictures.py volatility/plugins/linux/dalvik_loaded_classes.py volatility/plugins/linux/dalvik_class_information.py volatility/plugins/linux/dalvik_vms.py volatility/plugins/linux/dalvik_app_lastinput.py

Anti-Forensics Thwarting the Cold-Boot Attack

Anti-Forensics by Manufacturers Smartphone manufacturers could change their bootloader policy, such that: bootloaders cannot be unlocked (like in iphones and Windows Phones) or RAM is wiped (not only disks) when bootloaders get unlocked However, this only raises the bar for forensic memory acquisition. The root problem, i.e., sensitive data in RAM, is not solved.

Anti-Forensics through Full Memory Encryption Obviously, full disk encryption (FDE) does not counteract cold-boot attacks on Android RAM. In analogy to FDE, main memory must be encrypted. However, due to performance and hardware constraints, only academic solutions exist: M. Henson and S. Taylor, Beyond Full Disk Encryption: Protection on Security-Enhanced Commodity Processors, Jun. 2013. A. Wurstlein, Design and Implementation of a Transparent Memory Encryption and Transformation System, Aug. 2012.

Anti-Forensics through Secure Deallocation Idea: Erase highly sensitive data from RAM on screen lock events (e.g., PINs and passwords). IMAP PW lock screen erased unlock screen IMAP PW re-read password from (encryted) disk Problem: Dalvik VM does not enable the application level programmer to reliably erase data from RAM. Future Work: Patch the DVM to allow secure deallocation.

Conlusions

Conclusions Screen locks (e.g., PINs) and disk encryption are insufficient to protect sensitive data on smartphones today Smartphone Security Survey by Ponemon / AVG (2011) 89% use their smartphone for email 66% keep sensitive business data on it 34% use their smartphone for e-payment Smartphones are perfect targets for cold boot attacks: smartphones contain sensitive data smartphones are more often lost than laptops smartphones are usually switched on (but locked)

Thank You! Questions?