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.

 35 Hours

Number of participants


Price Per Participant (Exc. Tax)

Testimonials (5)

Provisional Courses

Related Categories