Schulung: Android Apps sicher entwickeln & hacken

Egal ob nativ, mit Cross-Platform-Frameworks oder mit Web Views: Android Apps kommen in vielen Formen – und in jeder von ihnen kann sicherheitstechnisch viel schiefgehen. Sicherheitslücken in Android Apps können eine Gefahr für Nutzer, ihre Daten und ihre Smartphones darstellen und in einigen Fällen sogar für die Server, Anwendungen und Dienste, für deren Verwendung die jeweiligen Android-Apps gedacht sind. Findige Angreifer können mitunter sensible private und persönliche Daten abgreifen, die von der DSGVO geschützt sind, wodurch sich rechtliche und finanzielle Risiken ergeben, von Reputationsrisiken ganz zu schweigen. Nutzer können sich Dienste womöglich kostenfrei erschleichen. Hacker können die Server, die die API für Android-Apps bereitstellen, attackieren. Einige Lücken lassen sich von anderen Apps auf dem Gerät des Nutzers der verwundbaren App ausnutzen und andere sogar über den Browser oder über das Internet.
Die genannten Risiken sind nur ein kleiner Ausschnitt all dessen, was aus Sicherheitssicht bei Android-Apps alles bedenklich sein kann. Daher bieten wir in dieser Schulung ein praktisches Training für Android-Entwickler an, wie sie die häufigsten und wichtigsten Schwachstellen in ihren eigenen Android Apps verhindern können. Hierdurch schützen sie sich selbst, die Nutzer ihrer Apps sowie deren Smartphones und Daten, sowie auch ihren Arbeitgeber – indem rechtliche Risiken und Risiken für dessen Systeme abgewendet werden. Die Schulung bespricht die genannten Probleme in der Theorie, untersucht viele Lücken in der Praxis und einige werden sogar von den Teilnehmern selbst ausgenutzt („gehackt“).

Was sollen die Teilnehmer in der Schulung lernen?

In dieser Schulung lernen Entwickler von Android Apps sowohl die Theorie wie auch an einigen Beispielen die Praxis von Angriffen gegen Android-Apps. Wir werden gemeinsam die OWASP Mobile Top 10 behandeln – der wenn auch nicht formale, aber de-facto-Standard, welcher die wichtigsten Schwachstellen in Mobile Apps katalogisiert. Wir werden dessen Kategorien kennenlernen, gemeinsam nachvollziehen, wie Schwachstellen aus diesen Kategorien entstehen können und wie man sich gegen sie mit sicherer Programmierung schützen kann. Insbesondere werden wir aber auch einige dieser Schwachstellen selbst ausnutzen („hacken“) – damit die Teilnehmer lernen, wie Angreifer vorgehen und was die Auswirkungen von solchen Schwachstellen sein können.
Die praktischen Übungen werden an einer echten, wenn auch absichtlich unsicheren Android-App geübt.
Auch lernen wir den MASVS, den Mobile Application Security Verification Standard, kennen. Dieser ist eine Checkliste, an Hand derer Entwickler die Sicherheit ihrer Apps einschätzen und verbessern können. Zu guter Letzt gehen wir auch auf sichere Entwicklungsprozesse und Lifecycle Models ein.

Was sind die Inhalte?

Die Themen decken dabei unter anderem die folgenden Punkte ab:

  • Nötige Theorie zu Konzepten der OWASP Mobile Top 10 in Android Apps
  • Nötige Theorie zum MASVS (Mobile Application Verification Standard)
  • Hands-on: Identifikation von Schwachstellen der OWASP Mobile Top 10
  • Hands-on: Exploitation/Ausnutzen einiger identifizierter Schwachstellen, um Effekte und Bedrohungen der Schwachstellen selbst erleben zu können
  • Hands-on: Anschließendes Beheben der Schwachstellen und Verifikation des Fixes
  • Hands-on-Bestandteile der Schulung werden an einer eigenen verwundbaren, echten Android-App durchgeführt
  • Inhalte zu Secure Development Lifecycle (SDL)
  • Offene Fragerunde mit dem Trainer, in dem die Anliegen der Teilnehmer besprochen werden können

Was ist die Zielgruppe (Vorwissen etc.)?

Android-Entwickler, die souverän und selbstständig Android-Apps programmieren können und mit den grundlegenden Android-Konzepten und -Komponenten (Activites, Services, Intents, Broadcasts usw.) vertraut sind.
Bereitgestellt werden sollte von den Teilnehmern ein eigener Laptop mit installiertem Android Studio in jeweils aktueller Version sowie ein fertiges Android-Emulator-Image mit API-Level 30 (Android 11), x86-Architektur, auf welches der Entwickler per adb Zugriff hat.

Wie lange soll die Schulung dauern?

Dauer: 3 Tage