万本电子书0元读

万本电子书0元读

顶部广告

Mobile Application Penetration Testing电子书

售       价:¥

0人正在读 | 0人评论 9.8

作       者:Vijay Kumar Velu

出  版  社:Packt Publishing

出版时间:2016-03-11

字       数:393.9万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Explore real-world threat scenarios, attacks on mobile applications, and ways to counter them About This Book Gain insights into the current threat landscape of mobile applications in particular Explore the different options that are available on mobile platforms and prevent circumventions made by attackers This is a step-by-step guide to setting up your own mobile penetration testing environment Who This Book Is For If you are a mobile application evangelist, mobile application developer, information security practitioner, penetration tester on infrastructure web applications, an application security professional, or someone who wants to learn mobile application security as a career, then this book is for you. This book will provide you with all the skills you need to get started with Android and iOS pen-testing. What You Will Learn Gain an in-depth understanding of Android and iOS architecture and the latest changes Discover how to work with different tool suites to assess any application Develop different strategies and techniques to connect to a mobile device Create a foundation for mobile application security principles Grasp techniques to attack different components of an Android device and the different functionalities of an iOS device Get to know secure development strategies for both iOS and Android applications Gain an understanding of threat modeling mobile applications Get an in-depth understanding of both Android and iOS implementation vulnerabilities and how to provide counter-measures while developing a mobile app In Detail Mobile security has come a long way over the last few years. It has transitioned from "should it be done?" to "it must be done!"Alongside the growing number of devises and applications, there is also a growth in the volume of Personally identifiable information (PII), Financial Data, and much more. This data needs to be secured. This is why Pen-testing is so important to modern application developers. You need to know how to secure user data, and find vulnerabilities and loopholes in your application that might lead to security breaches. This book gives you the necessary skills to security test your mobile applications as a beginner, developer, or security practitioner. You'll start by discovering the internal components of an Android and an iOS application. Moving ahead, you'll understand the inter-process working of these applications. Then you'll set up a test environment for this application using various tools to identify the loopholes and vulnerabilities in the structure of the applications. Finally, after collecting all information about these security loop holes, we'll start securing our applications from these threats. Style and approach This is an easy-to-follow guide full of hands-on examples of real-world attack simulations. Each topic is explained in context with respect to testing, and for the more inquisitive, there are more details on the concepts and techniques used for different platforms.
目录展开

Mobile Application Penetration Testing

Table of Contents

Mobile Application Penetration Testing

Credits

About the Author

About the Reviewers

www.PacktPub.com

eBooks, discount offers, and more

Why subscribe?

Preface

What this book covers

What you need for this book

Who this book is for

Conventions

Reader feedback

Customer support

Downloading the color images of this book

Errata

Piracy

Questions

1. The Mobile Application Security Landscape

The smartphone market share

The android operating system

The iPhone operating system (iOS)

Different types of mobile applications

Native apps

Mobile web apps

Hybrid apps

Public Android and iOS vulnerabilities

Android vulnerabilities

iOS vulnerabilities

The key challenges in mobile application security

The impact of mobile application security

The need for mobile application penetration testing

Current market reaction

The mobile application penetration testing methodology

Discovery

Analysis/assessment

Exploitation

Reporting

The OWASP mobile security project

OWASP mobile top 10 risks

Vulnerable applications to practice

Summary

2. Snooping Around the Architecture

The importance of architecture

The Android architecture

The Linux kernel

Confusion between Linux and the Linux kernel

Android runtime

The java virtual machine

The Dalvik virtual machine

Zygote

Core Java libraries

ART

Native libraries

The application framework

The applications layer

Native Android or system apps

User-installed or custom apps

The Android software development kit

Android application packages (APK)

AndroidManifest.xml

The structure of the Android manifest file

Android application components

Intent

Activity

Services

Unbound or start services

Bound service

Broadcast receivers

Content providers

Android Debug Bridge

Application sandboxing

Application signing

Secure inter-process communication

The Binder process

The Android permission model

The Android application build process

Android rooting

iOS architecture

Cocoa Touch

Media

Core services

Core OS

iOS SDK and Xcode

iOS application programming languages

Objective-C

The Objective-C runtime

Swift

Understanding application states

Apple's iOS security model

Device-level security

System-level security

An introduction to the secure boot chain

System software authorization

Secure Enclave

Touch ID

Data-level security

Data-protection classes

Keychain data protection

Changes in iOS 8 and 9

Network-level security

Application-level security

Application code signing

The iOS app sandbox

iOS isolation

Process isolation

Filesystem isolation

ASLR

Stack protection (non-executable stack and heap)

Hardware-level security

iOS permissions

The iOS application structure

Jailbreaking

Why jailbreak a device?

Types of jailbreaks

Untethered jailbreaks

Tethered jailbreaks

Semi-tethered jailbreaks

Jailbreaking tools at a glance

The Mach-O binary file format

Inspecting a Mach-O binary

Property lists

Exploring the iOS filesystem

Summary

3. Building a Test Environment

Mobile app penetration testing environment setup

Android Studio and SDK

The Android SDK

The Android Debug Bridge

Connecting to the device

Getting access to the device

Installing an application to the device

Extracting files from the device

Storing files to the device

Stopping the service

Viewing the log information

Sideloading apps

Monkeyrunner

Genymotion

Creating an Android virtual emulator

Installing an application to the Genymotion emulator

Installing the vulnerable app to Genymotion

Installing the Genymotion plugin to Android Studio

ARM apps and Play Store in Genymotion

Configuring the emulator for HTTP proxy

Setting up the proxy in Wi-Fi settings

Setting up the proxy on mobile carrier settings

Google Nexus 5 – configuring the physical device

The iOS SDK (Xcode)

Setting up iPhone/iPad with necessary tools

Cydia

BigBoss tools

Darwins CC tools

iPA Installer

Tcpdump

iOS SSL kill-switch

Cycript, Clutch, and class-dump

SSH clients – PuTTy and WinSCP

iFunbox at glance

Accessing SSH without Wi-Fi

Accessing SSH with Wi-Fi

Installing DVIA to the device

Configuring the HTTP proxy in Apple devices

Emulator, simulators, and real devices

Simulators

Emulators

Pros

Cons

Real devices

Pros

Cons

Summary

4. Loading up – Mobile Pentesting Tools

Android security tools

APKAnalyser

The drozer tool

Installing drozer on Genymotion

APKTool

How to make apps debuggable?

The dex2jar API

JD-GUI

Androguard

Isn't Androguard only a malware analysis tool?

Androguard's androlyze shell environment

Automating the analysis of multiple files

Introducing Java Debugger

Debugging

Attaching

Installing Burp CA certificate to the device

The list of other tools

iOS security tools

oTool

SSL Kill Switch

The keychain dumper

LLDB

Clutch

Class-dump-z

Instrumenting with Cycript

Instrumentation using Frida

Hopper

Snoop-it

Installing Burp CA certificate to an iOS device

Summary

5. Building Attack Paths – Threat Modeling an Application

Assets

Threats

Threat agents

Vulnerabilities

Risk

Approach to threat models

Threat modeling a mobile application

Mobile application architecture

Mobile applications and device data

Identifying threat agents

Modes of attacks

Security controls

How to create a threat model?

The attacker view

The device or system view

Discovering potential threats

Threat modeling methodologies

STRIDE

PASTA

Trike

Using STRIDE to classify threats

Spoofing

Tampering

Repudiation

Information disclosure

Denial of service (DoS)

Elevation of privilege

A typical mobile application threat model

Building attack plans and attack trees

Attack scenarios

A sample attack tree for a stolen or missing device

A list of free tools

A commercial tool

Threat model outcomes

Risk assessment models

Business risk

Technical risk

Summary

6. Full Steam Ahead – Attacking Android Applications

Setting up the target app

Backend server setup

Analyzing the app using drozer

Android components

Attacking activities

Attacking services

Attacking broadcast receivers

Attacking content providers

Attacking WebViews

SQL injection

Man-in-the-Middle (MitM) attacks

SSL pinning

Hardcoded credentials

Encryption and decryption on the client side

Runtime manipulation using JDWP

Storage/archive analysis

Log analysis

Assessing implementation vulnerabilities

Binary patching

Summary

7. Full Steam Ahead – Attacking iOS Applications

Setting up the target

Storage/archive analysis

Plist files

Client-side data stores

The keychain data

HTTP response caching

Reverse engineering

Extracting the class information

Strings

Memory management

Stack smashing protection

Static code analysis

OpenURL schemes

App patching using Hopper

Hardcoded username and password

Runtime manipulation using Cycript

The Bypass login method

Sensitive information in the memory

Dumpdecrypted

Client-side injections

SQL injection

UIWebView injections

Man-in-the-Middle attacks

Beating the SSL cert pinning

Implementation vulnerabilities

Pasteboard information leakage

Keyboard logs

App state preservation

Building a remote tracer using LLDB

Snoop-IT for assessment

Summary

8. Securing Your Android and iOS Applications

Secure by design

Security mind map for developers (iOS and Android)

Device level

Platform (OS) level

Screenshots/snapshots

System caching and logs

Cut, copy, and paste

iOS cookie and keychains

BinaryCookies

Keychains

Application level

App storage protection

Property lists/shared preferences

Property lists in iOS

Shared preferences in Android

Database protection

Application permissions

Backup settings

Disable debug

Use the latest API version

Securing Android components

Securing activities

Securing services

Securing content providers

Securing broadcast receivers

Verify exported components

Encryption

iOS

Android

Key management

Securing WebView

iOS

Android

App caches

Binary protection

Jailbreak detection

Filesystem-based detection

API-based detection

Root detection

Command detection method

Decompiling protection

Code obfuscation

Decryption protection

ASLR/ARC

Stack-smashing protection

Runtime protection

URLSchemes protection

Client-side injection protection

Anti-debug implementation

Filesystem protection

Anti-tamper implementation

Network level

Certificate pinning

Cipher suites

CFNetwork usage

Secure caching

Server level

Authentication

Authorization

Input/output validations

Injection flaws

Session management

Information leakage

OWASP mobile app security checklist

Mobile app developers checklist

Secure coding best practices

Android

iOS

Vendor-neutral advice

Developer cheat sheet

Developer policies

Post-production protection

Keeping up to date

Summary

Index

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部