Course Outline
Day 1: Introduction to Android Security
- introduction to the Android system
- Android security model: application isolation, permission system
- Android from a developer's perspective: Java, Kotlin, manifest, resources, IPC components, web API
- applications from the inside: dex and apk file formats
- Android and Linux: from a developer’s and a security researcher’s perspective
- inside Android security: DAC, SELinux, partition mounting, dm-verity
- rooting
- basic tools: Android Studio, ADB, logcat
- Android application security in theory: CVSS, MASVS, MSTG
Day 2: Reverse Engineering of Android Applications, Static Analysis, and IPC Security
- what is reverse engineering (reversing)
- reverse engineering using apktool: decoding resources, deassembling code
- Dalvik virtual machine, dex bytecode, and Smali language
- decompiling code to Java: Bytecode Viewer
- working with decompiled code in Android Studio
- analyzing the manifest for IPC
- automated static analysis using MobSF
- dynamic analysis of IPC attack surface using Drozer
- vulnerabilities in IPC
- preparing proof of concept: am, Drozer, Java/Kotlin
Day 3: Dynamic Analysis, Repacking, and Instrumentation
- analyzing application logs
- analyzing file system content
- debuggable and backupable applications
- working with a debugger
- network traffic analysis: tcpdump, Burp Proxy
- trusted certificates and certificate pinning
- repacking: modifying application code or manifest, ziapligner, jarsigner
- instrumentation: Frida and Objection
Day 4: WebView, Cross-Platform Applications, Native Libraries
- WebView: HTML and JavaScript in Android applications
- interactions between WebView and Java: filesystem access and JavascriptInterface
- vulnerabilities in WebView: gaining access through escapes, XSS, or debuggable WebView
- vulnerabilities in WebView: escalation through JavascriptInterface
- cross-platform applications: theory
- reverse engineering C# (Xamarin) applications using dotPeek and ILSpy
- reverse engineering JavaScript (React Native) applications using react-native-decompiler
- other cross-platform frameworks: Flutter (Dart), Ionic/Angular (JavaScript), and others
- native libraries: C, C++, and machine code in Android applications
- JNI: System.loadLibrary() and methods with the native keyword
- reverse engineering native libraries using Ghidra
Day 5: Web API Security
- web APIs in Android applications
- API protocols: SOAP, REST, JSON-RPC, GraphQL, and others
- OWASP API Top 10
- intercepting communication with APIs using Burp Proxy
- Burp Repeater: modifying API requests
- vulnerabilities related to authentication: credential stuffing, login SQL injection, vulnerabilities in JWT
- vulnerabilities related to access control: IDOR, mass assignment, access to administrative and debug functions
- other vulnerabilities: SSRF, injection, excessive data in error messages, server vulnerabilities
- discovering additional API features in definition files: WSDL, Swagger/OpenAPI, GraphQL SDL, etc.
- automatically generating API requests: SoapUI, Postman
Requirements
Basic knowledge of security.
Knowledge about the Android system.
Testimonials (5)
Multiple examples for each module and great knowledge of the trainer.
Sebastian - BRD
Course - Secure Developer Java (Inc OWASP)
Module3 Applications Attacks and Exploits, XSS, SQL injection Module4 Servers Attacks and Exploits, DOS, BOF
Tshifhiwa - Vodacom
Course - How to Write Secure Code
The scope of knowledge that was covered. Certainly, not everything could be explained in detail, but this is probably a matter of time. The training lasts 3 days. Over these 3 days, various topics were discussed, which can be explored further after the training. The training is definitely a plus. A lot of knowledge and issues presented in an organized form.
Pawel Sitarz - Icotera sp. z o.o.
Course - C/C++ Secure Coding
Machine Translated
Nothing it was perfect.
Zola Madolo - Vodacom
Course - Android Security
The labs