To ensure your success in this course, you should have experience developing native apps in iOS using Xcode and the Objective-C programming language.
A general understanding of information technology security is also helpful, but not required. We offer various courses on information technology security, including CompTIA® Security+.
Target Student
Students taking this course are software developers who are experienced with mobile app development in iOS and want to improve the security of apps they develop. Student have experience developing iOS apps, and are familiar with the iOS SDK, development tools, and processes.
Hardware Requirements
For this course, you will need one computer for each student and one for the instructor. Each computer will need the following minimum hardware configurations:
- Intel-based Mac running Mac OS X Mountain Lion 10.8.4 or later
- CD-ROM drive
- Keyboard and mouse (or other pointing device)
- 1,024 × 768 resolution monitor; higher resolution recommended, if possible
- Network cards and cabling for local network access
- Internet access (contact your local network administrator)
- Projection system to display the instructor's computer screen
Software Requirements
To prepare a student or instructor system for the class, install the following software according to the instructions provided. You will need the following software for each student and instructor computer:
- Xcode 5 with the iOS7 SDK, from developer.apple.com
- iGoat 2.0, provided with the course data files
Course duration
3 Days
Course outline
Lesson 1: The Rationale for IOS App Security
Topic A: Identify the Need for Security
Topic B: Identify Security Requirements and Expectations
Topic C: Include Security in Your Development Processes
Topic D: Identify Your Approach to Risk Management
Lesson 2: The iOS Security Architecture
Topic A: Strengths and Weaknesses of the iOS Security Architecture
Topic B: iOS App Construction
Topic C: iOS Vulnerabilities
Lesson 3: Employing Secure Mobile App Development Strategies
Topic A: Follow App Security Best Practices
Topic B: Protect Against Threats
Topic C: Software Development Life Cycle (SDLC)
Topic D: Design for Security
Topic E: Conduct Security Testing and Analysis
Topic F: Write Secure Objective-C Code
Lesson 4: Accessing Local Processes and Devices Securely
Topic A: Select Countermeasures for Local Threats
Topic B: Implement Secure Access of Local Processes and Hardware
Lesson 5: Securing Data Through Encryption
Topic A: Select Countermeasures for Threats to Cleartext Data
Topic B: Implement Encryption
Lesson 6: Accessing Local Storage Securely
Topic A: Identify Countermeasures for Local Storage Threats
Topic B: Implement Secure Access of Local Storage
Lesson 7: Communicating with Networks and Web Services Securely
Topic A: Identify Networking Threats
Topic B: Identify Countermeasures for Networking Threats
Topic C: Implement Secure Network Communication
Lesson 8: Using the UIWebView Component Securely
Topic A: Identify Countermeasures for UIWebView Component Threats
Topic B: Implement UIWebView Security
Lesson 9: Protecting Credentials in Storage and Transit
Topic A: Identify Countermeasures for Threats to Credentials
Topic B: Implement Secure User Authentication
Topic C: Implement Keychain
Lesson 10: Hardening Apps Against Attack
Topic A: Identify Countermeasures for Reverse Engineering Threats
Topic B: Harden an App