Course Outline
Day 1: Introduction to System Security Android
- introduction to the system Android
- security model Androida: application isolation, permission system
- Android from a programmer's point of view: Java, Kotlin, manifest, resources, IPC components, web API
- apps inside: dex and apk file formats
- Android a Linux: from a developer's point of view and from a security researcher's point of view
- securityAndroidand from the inside: DAC, SELinux, partition mounting, dm-verity
- rooting
- basic tools: Android Studio, ADB, logcat
- security of Android applications in theory: CVSS, MASVS, MSTG
Day 2: Reverse engineering Android applications, static analysis and IPC security
- what is reverse engineering (reversion)
- reverse engineering with apktool: decoding resources, disassembling code
- Dalvik virtual machine, dex bytecode and Smali language
- code decompilation to language Java: Bytecode Viewer
- working with decompiled code in Android Studio
- Manifest analysis for IPC
- automatic static analysis using MobSF
- dynamic analysis of the IPC attack surface using Drozer
- vulnerabilities in IPC
- preparing proof of concept: am, Drozer, Java/Kotlin
Day 3: Dynamic analysis, repacking and instrumentation
- application log analysis
- file system content analysis
- debuggable and backupable applications
- working with the 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
- WebView vulnerabilities: gaining access via escape, XSS or debugging WebView
- WebView vulnerabilities: escalation via JavascriptInterface
- cross-platform applications: theory
- reverse engineering applications C# (Xamarin) using dotPeek and ILSpy
- reverse engineer JavaScript (React Native) applications with 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 API in Android applications
- protocols for web API: SOAP, REST, JSON-RPC, GraphQL and others
- OWASP API Top 10
- intercepting API communication using Burp Proxy
- Burp Repeater: API query modification
- authentication vulnerabilities: credential stuffing, login SQL injection, JWT vulnerabilities
- vulnerabilities related to access control: IDOR, mass assignment, access to administrative and debug functions
- other vulnerabilities: SSRF, injection, redundant data in error messages, server vulnerabilities
- discovering additional API functions in definition files: WSDL, Swagger/OpenAPI, GraphQL SDL, etc.
- automatic generation of API queries: SoapUI, Postman
Requirements
Basic security knowledge.
System Knowledge Android.
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
Scope of knowledge covered. Not everything was explained in depth, but that is probably a matter of time. The training lasts 3 days. During these 3 days, various topics were covered, which can be explored further after the training. The training was definitely beneficial. A lot of knowledge and topics were presented in an engaging way.
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