-
Attacking User Passcodes
After watching this video; you will be able to describe how user passcodes may be attacked.
-
Carrying Out a Fuzz Test
After watching this video; you will be able to describe steps for carrying out a fuzz test.
-
Collecting and Verifying Signing Information
After watching this video; you will be able to describe how application signing information can be collected and verified.
-
Creating a Configuration Profile
After watching this video; you will be able to use Apple Configurator to create a new configuration profile.
-
Displaying iOS Signing Info and Entitlements
After watching this video; you will be able to use the Xcode codesign tool to obtain information on an iOS application's signing certificate authority and its granted entitlements.
-
Enforcing Signatures on Processes
After watching this video; you will be able to describe how signatures are enforced on application processes.
-
Enrolling Devices by Downloading Enrollment Profiles
After watching this video; you will be able to enroll a user device with the OS X Server mobile device management service by downloading and installing an enrollment profile.
-
Enrolling Devices using Profile Manager Web Portal
After watching this video; you will be able to enroll a user device with the OS X Server mobile device management service using the user's Profile Manager web portal.
-
Exploiting Bug Classes
After watching this video; you will be able to describe how to exploit use-after-free and double-free bugs.
-
Fuzzing MobileSafari
After watching this video; you will be able to carry out a fuzzing test on MobileSafari.
-
Getting Familiar with Application Signing
After watching this video; you will be able to use the Xcode codesign tool to show signing certificate authority information for an iOS application.
-
Getting Familiar with File Protection Classes
After watching this video; you will be able to describe file protection classes.
-
Getting Familiar with Keybags
After watching this video; you will be able to describe how file and keychain Data Protection classes are collected and managed in keybags.
-
Getting Familiar with Keychain Protection Classes
After watching this video; you will be able to describe keychain item protection classes.
-
Getting Familiar with the Data Protection API
After watching this video; you will be able to describe data protection API and class hierarchy.
-
Listing Application Entitlements
After watching this video; you will be able to use command line to list the entitlements for a signed application.
-
Overview of Apple Store Security
After watching this video; you will be able to describe how Apple protects the Apple Store.
-
Overview of Code Signing in iOS
After watching this video; you will be able to describe how code signing is used to enforce iOS security.
-
Overview of Fuzzing iOS Applications
After watching this video; you will be able to describe the basic idea behind fuzzing and how it is used to reveal security issues in iOS applications.
-
Overview of iOS Sandbox
After watching this video; you will be able to identify iOS Sandbox components and describe how they are related.
-
Overview of Return-Oriented Programming
After watching this video; you will be able to describe background on ROP and basics in ARM architecture.
-
Overview on iOS Network Security
After watching this video; you will be able to identify components of network security supported by iOS 8.
-
Preventing Changes on Signed Pages
After watching this video; you will be able to describe how to prevent signed code from being tampered with.
-
Protecting Processes and Code Segments
After watching this video; you will be able to describe privilege separation; address space layout randomization; and sandboxing.
-
Setting Up the OS X Server Profile Manager
After watching this video; you will be able to configure and run the Profile Manager service.
-
Understanding Dynamic Code Signing
After watching this video; you will be able to describe how to use just-in-time compiling to implement dynamic code signing.
-
Understanding How Sandboxing Impacts the App Store
After watching this video; you will be able to describe how applications are launched under a sandbox and how applications are restricted to their own container directories in the App Store.
-
Understanding iOS Attack Surface
After watching this video; you will be able to describe reduced attack surface and stripped-down iOS.
-
Understanding Possible Security Threats
After watching this video; you will be able to define malware; exploitation; and compare Mac OS threats versus iOS threats.
-
Understanding Provisioning
After watching this video; you will be able to describe the provisioning profile and how the provisioning file is validated.
-
Understanding Sandboxing and Runtime Security
After watching this video; you will be able to describe how runtime process security makes use of sandboxing to protect applications and their data on iOS 8 devices.
-
Understanding Sandboxing with Extensions
After watching this video; you will be able to describe how extensions are sandboxed to protect their files and memory space in iOS.
-
Understanding TCMalloc
After watching this video; you will be able to describe TCMalloc allocator as well as large and small object allocation and deallocation.
-
Understanding the ARM Systems Call Convention
After watching this video; you will be able to describe how system calls are invoked on ARM.
-
Understanding the iOS ARM Calling Convention
After watching this video; you will be able to describe the ARM calling convention on iOS.
-
Understanding the iOS System Allocator
After watching this video; you will be able to describe the concept of regions and how regions are allocated and deallocated.
-
Understanding the Mandatory Access Control Framework
After watching this video; you will be able to describe how Mandatory Code Signing is controlled by the Mandatory Access Control Framework; including AMFI hooks.
-
Updating and Removing Configuration Profiles
After watching this video; you will be able to use the Apple Configurator to update and remove configuration profiles.
-
Using Code Signing and Data Execution Prevention
After watching this video; you will be able to describe code signing; return-oriented programming (ROP); and data execution prevention.
-
Working with AirDrop Security
After watching this video; you will be able to describe iOS 8 support for AirDrop security.
-
Working with Bluetooth Connections
After watching this video; you will be able to describe Bluetooth connections and profiles supported by iOS 8.
-
Working with Mobile Configuration Profiles
After watching this video; you will be able to identify the contents of a configuration profile and how to identify configuration profile payload types.
-
Working with Profiles
After watching this video; you will be able to write and use a Bash shell script to crash test Safari on Mac OS X.
-
Working with Single Sign-on Authentication
After watching this video; you will be able to describe iOS 8 support for single sign-on authentication on enterprise networks.
-
Working with the Apple Configurator
After watching this video; you will be able to describe the general functionality of the Apple Configurator.
-
Working with Virtual Private Networks
After watching this video; you will be able to describe the VPN protocols and authentication methods supported by iOS 8.
-
Working with Wi-Fi Networks
After watching this video; you will be able to describe Wi-Fi standards and authentication methods supported by iOS 8.
-
iOS Security Architecture and Application Data Protection
In order to effectively develop secure iOS applications, it is key for developers to have a significant understanding of the overall iOS security architecture, as well as key techniques that can be used to protect application data and executable code. In this course, you will learn key principles about the iOS security architecture, as well as principles in administering data protection in the iOS environment. You will also learn how to install and use the iPhone Data Protection Tools forensics toolkit, how to implement access control and provisioning, and how to enforce application code signing.
- start the course
- describe how Apple protects the Apple Store
- define malware, exploitation, and compare Mac OS threats versus iOS threats
- describe reduced attack surface and stripped-down iOS
- describe code signing, return-oriented programming (ROP), and data execution prevention
- describe privilege separation, address space layout randomization, and sandboxing
- describe data protection API and class hierarchy
- describe file protection classes
- describe keychain item protection classes
- describe how file and keychain data protection classes are collected and managed in keybags
- describe how user passcodes may be attacked
- identify components of network security supported by iOS 8
- describe the VPN protocols and authentication methods supported by iOS 8
- describe Wi-Fi standards and authentication methods supported by iOS 8
- describe Bluetooth connections and profiles supported by iOS 8
- describe iOS 8 support for single sign-on authentication on enterprise networks
- describe iOS 8 support for AirDrop security
- describe how code signing is used to enforce iOS security
- describe how Mandatory Code Signing is controlled by the Mandatory Access Control Framework, including AMFI hooks
- describe the provisioning profile and how the provisioning file is validated
- use the Xcode codesign tool to show signing certificate authority information for an iOS application
- use command line to list the entitlements for a signed iOS application
- describe how application signing information can be collected and verified
- describe how signatures are enforced on application processes
- describe how to prevent signed code from being tampered with
- describe how to use Just-In-Time compiling to implement dynamic code signing
- use the Xcode codesign tool to obtain information on an iOS application's signing certificate authority and its granted entitlements
-
Securing Against Threats, Securing for Enterprise, and Jailbreaking Devices
Each iOS application runs in a separate virtual machine, or sandbox, and applications may also be subjected to dynamic analysis, or fuzzing, whereby illegal input is intentionally applied to an application so as to test for security issues. Return oriented programming may also be used in attempts to reveal certain application vulnerabilities, and devices may be jailbroken so as to make them more open to developers who can then better evaluate system security. In this course, you will learn about sandboxes and how to initialize them, how to secure iOS applications and devices for enterprise, how to design and administer fuzz tests on iOS applications, how to defend applications against exploits, how to use return-oriented programming to reveal application vulnerabilities, and how to install and use jailbreaking tools on iOS devices.
- start the course
- identify iOS Sandbox components and describe how they are related
- describe how runtime process security makes use of sandboxing to protect applications and their data on iOS 8 devices
- describe how extensions are sandboxed to protect their files and memory space in iOS
- describe how applications are launched under a sandbox and how applications are restricted to their own container directories in the App Store
- identify the contents of a configuration profile and how to identify configuration profile payload types
- describe the general functionality of the Apple Configurator
- use Apple Configurator to create a new configuration profile
- use Apple Configurator to update and remove configuration profiles
- configure and run the Profile Manager service
- enroll a user device with the OS X Server mobile device management service using the user's Profile Manager web portal
- enroll a user device with the OS X Server mobile device management service by downloading and installing an enrollment profile
- describe the basic idea behind fuzzing and how it is used to reveal security issues in iOS applications
- describe steps for carrying out a fuzz test
- carry out a fuzz test on Safari web browser for Mac OS X Yosemite
- describe how to exploit use-after-free and double free bugs
- describe the concept of regions and how regions are allocated and deallocated
- describe TCMalloc allocator as well as large and small object allocation and deallocation
- describe background on ROP and basics in ARM architecture
- describe how system calls are invoked on ARM
- describe the ARM calling convention on iOS
- create a new configuration profile using Apple Configurator and enroll a device using the OS X Profile Manager service