55
Needle Finding Issues within iOS Applications Marco Lancini

Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

NeedleFinding Issues within iOS Applications

Marco Lancini

Page 2: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Whoami

Me: Marco Lancini– Security Consultant at MWR InfoSecurity

– @lancinimarco

MWR InfoSecurity– Research-led Security Consultancy

– Offices in the UK, USA, Singapore, South Africa, Germany, Poland…

Page 3: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

What is this talk about?

Current State of Mobile (in)Security

iOS Pentesting (the current state)

Needle (idea, architecture, features, etc.)

Demo

Roadmap

Page 4: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

CURRENT STATE OF MOBILE (IN)SECURITY

Page 5: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

My Life as a Pentester

Scoping Testing ReportingTesting

Page 6: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Mobile app lifecycle

Idea

Execution

Public Release

Page 7: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Mobile app lifecycle

Page 8: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Some real life examples…

Page 9: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Where to focus

Page 10: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

OWASP Mobile Top 10 (2014)

Page 11: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Server Side Security

Page 12: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Client Side Security

Page 13: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Attacker’s Perspective• Physical access– Stolen device– Unattended device– Shared environment

• Malware– JB devices– Non-JB devices

• Exploitation– Outdated software– 0day

Page 14: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Attacker’s Perspective

• Network communications

– Man-in-the-Middle (MitM)

– Clear text / Weak encryption

– Client-side attacks

• The web server

– Web application security

Page 15: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

IOS PENTESTING(the current state)

Page 16: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Assessment Scenarios

Source Code Review

Mobile App Test

Device Review

Mobile Device

Management

Page 17: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Types of Applications

Page 18: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Analysing iOS Applications

Run the app on a jailbroken device

MiTM all the network communications

Inspect the app via instrumentation

Manipulate the runtime

Review the codebase

Page 19: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Techniques / 1

Static Analysis

• Reverse engineer the binary

• Perform code review

Data Security

• Look for insecure storage

• Assess data sources (keychain, plist files, cookies)

• Check presence of caching

Page 20: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Techniques / 2

Runtime Analysis

• Bypass integrity checks

• [Patch the binary]

• Instrument the app (hooking)

Transport Security

• Proxy the traffic

• [Bypass TLS pinning]

• Asses WebViews / exploit JS bridges

Page 21: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

iOS Testing Environment

Page 22: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Testing Tools

• Jailbroken device– Weaken the sandbox

– Emulate attackers’ perspective

• Alternate Market (Cydia)– Common unix tools (BigBoss)

– OpenSSH

• Hooking framework – Cycript/Frida/Theos

• Intercepting proxy (Burp)

Page 23: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Testing Tools

Page 24: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Common problems

• Need to rely on a multitude of different tools– each one developed for a specific need

– each one with its own mode of operation (and syntax)

• Issues– steep learning curve

– time wasted in configuring many different tools

– a “drozer for iOS” was missing

Page 25: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

INTRODUCING: NEEDLE(a new format)

Page 26: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

What is Needle?

• A tool for auditing iOS Application Security

• An open source, modular framework

– streamline the entire process

– acts as a central hub

Page 27: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

What it’s *not*

• Not a “drozer” for iOS– does not require an agent installed on the device

(for now)

– does require a jailbroken device

• Not a vuln scanner– knowledge (and intuition) of the tester is still

required

Page 28: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Motivation

Beginners: easy to use

Professionals: save time during assessments

Developers: quickly test their products

Page 29: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

The Architecture

Page 30: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Architecture

• Decoupled components

• Entirely written in Python

Framework Core

Helpers

UI

API

Device Manager

Modules

Page 31: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

UI

Page 32: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Device Manager

• Manage connections with the iDevice– SSH over Wi-Fi

– SSH over USB

• Device setup, port forwarding, cleanup…

• Basic commands– shell, push/pull

• App management– metadata, open, decrypt, data protection…

Page 33: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

DEMOBasic Usage

Page 34: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Framework Core

• Initialize and manage all the other components

• Load/execute modules/jobs

• Maintain status– global options, loaded modules, running jobs,

device status…

– pointers to instantiated objects

– constants

Page 35: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Helpers

• Common functionalities offered both to the Core and APIs

• Sanitization, logging, printing…

Page 36: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

API

• The framework core exposes APIs to interact with the localand remote OS

• These wraps common functionalities– file and data access– command execution– networking

• Speed-up creation of new modules

Page 37: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

API

Page 38: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Modules

• Heart of Needle’s functionalities

• Collection of python scripts

Page 39: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Modules / Sample

Page 41: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Currently Supported Modules

Binary

• App Metadata

• Compilation Checks

• Shared Libraries

• Strings

• Class Dump

• Install IPA

• Pull IPA

Storage

• Binary Cookies

• Cache.db Files

• Plist Files

• SQL Files

• Dump Keychain

• Screenshot Caching

• Keyboard Autocomplete Caching

Page 42: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Currently Supported Modules

Dynamic

• Jailbreak Detection

• URI Handler

• Heap Dump

• Monitor File changes

• Monitor OS Pasteboard

• Syslog Monitor

• Syslog Watch

Hooking

• Cycript shell

• Frida shell

• Frida trace

• Frida launcher

• Enumerate Classes (script)

• Enumerate Methods (script)

• Enumerate All Methods (script)

Page 43: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Currently Supported Modules

Comms

• List Installed Certificates

• Export Installed Certificates

• Import Installed Certificates

• Delete Installed Certificates

• Install MitmProxy CA Certificate

• Intercepting Proxy

Static

• Code Checks

Page 44: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

ACTION TIME

Page 45: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

DVIA

Page 46: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

DEMOBinary Analysis

Page 48: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

DEMODynamic Analysis

Page 49: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

DEMOHooking

Page 50: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

DEMONetwork Comms

Page 51: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

DEMOStatic Analysis

Page 52: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

ROADMAP

Page 53: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Roadmap

• Replace all the dependencies

Agent to deploy on device

Support for non-jailbroken devices

• Substrate integration

• WebView scanner

• Hook Swift methods

• URI handlers fuzzer

• Pinning detection/bypass

• Obfuscation detection

New modules

… community based

Page 54: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Wanna help?

Page 55: Needle - F-Secure Labs · Server Side Security. Client Side Security. Attacker’s Perspective •Physical access ... ACTION TIME. DVIA. DEMO Binary Analysis. DEMO Storage. DEMO Dynamic

Want to know more?

mwr.to/needle

@mwrneedle