
Verwalten Sie Android-Geräte mit vordefinierten Verhaltensweisen für Cyber-Range-Umgebungen.
RoboDroid
RoboDroid ist ein hochmodernes Softwaretool, das den Verwaltungsprozess (und sehr bald auch die Bereitstellung) von Android-Geräten für den Einsatz in Cyber-Range-Umgebungen vereinfacht. Mit RoboDroid können Benutzer einfach vordefinierte Verhaltensweisen für ihre Android-Geräte einrichten und anpassen, wodurch sie komplexe Cyberangriffsszenarien erstellen und ihre Abwehrmaßnahmen gegen eine Vielzahl von Bedrohungen testen können.
Mobile Geräte sind in der heutigen Welt allgegenwärtig. Menschen nutzen Smartphones für nahezu alle Aspekte ihres Lebens, einschließlich Banking, Einkaufen und Kommunikation. Daher sind mobile Geräte zu einem Hauptziel von Cyberkriminellen geworden.
Die Sicherheit mobiler Geräte wird jedoch in Cybersicherheits-Schulungen und Testumgebungen oft vernachlässigt. Dies macht Organisationen anfällig für Angriffe, die die Schwachstellen mobiler Geräte ausnutzen. Daher ist es wichtig, mobile Komponenten in die nächste Generation von Cyber-Ranges zu integrieren, um sich an die heutige, zunehmend smartphoneabhängige Welt anzupassen.
RoboDroid wurde entwickelt, um diese Lücke zu schließen, indem es eine Reihe von Werkzeugen bereitstellt, die menschenähnliches Smartphone-Verhalten simulieren können. Die vordefinierten Verhaltensweisen werden mit Frida erstellt und im Repository RoboDroid Library verwaltet.
Das Ziel von RoboDroid ist es, eine einfache Möglichkeit zu bieten, mobile Komponenten in Cyber-Range-Umgebungen einzubringen. Das Hauptziel ist es, den Benutzern eine benutzerfreundliche Plattform zur Verfügung zu stellen, mit der sie menschenähnliches Verhalten und Aktionen auf mobilen Geräten simulieren können.
RoboDroid nutzt die Frida-Technologie, um anwendungsspezifische Verhaltensweisen auszuführen, während für alle anderen Vorgänge ADB verwendet wird. Diese leistungsstarke Kombination ermöglicht es den Benutzern, Workflows aus voreingestellten Verhaltensweisen zu erstellen, die die Aktionen eines mobilen Benutzers simulieren.
Ein Beispiel für einen Workflow, der in einer Cyber-Range-Umgebung verwendet werden kann, ist die Simulation eines mobilen Benutzers, der eine Phishing-E-Mail erhält, auf den darin enthaltenen Link klickt und anschließend eine Malware herunterlädt.
Das folgende Bild fasst dies zusammen:

Der Workflow kann in die folgenden Schritte unterteilt werden:
Durch das Erstellen und Ausführen solcher Workflows können Benutzer realistische Cyberangriffsszenarien simulieren und ihre Abwehrmaßnahmen gegen eine Vielzahl von Bedrohungen testen. Dies trägt dazu bei, sicherzustellen, dass Systeme und Netzwerke gut vor potenziellen Schwachstellen geschützt sind und die Benutzer im Falle eines Angriffs effektiv reagieren können.

RoboDroid kommuniziert über Nachrichten mit dem Frida-Agenten aus der RoboDroid Library und ermöglicht so eine effiziente Interaktion. Wenn RoboDroid ein bestimmtes Verhalten startet, wartet es auf eine Nachricht vom Frida-Agenten. Die Nachricht kann entweder vom Typ FAILURE oder COMPLETED sein.
Ist der Nachrichtentyp FAILURE, startet RoboDroid das aktuelle Verhalten neu, um einen erfolgreichen Abschluss sicherzustellen. Ist der Nachrichtentyp COMPLETED, wird der aktuelle Schritt als abgeschlossen markiert und RoboDroid fährt mit dem nächsten Schritt fort.
Darüber hinaus kann eine Nachricht vom Typ COMPLETED auch Ausgaben enthalten, die in nachfolgenden Schritten verwendet werden können. Dadurch wird sichergestellt, dass das Tool sein Verhalten optimieren kann, um eine genaue Simulation menschlicher Aktionen auf mobilen Geräten zu erreichen.
Durch diesen robusten Kommunikationsprozess gewährleistet RoboDroid die nahtlose Integration des Frida-Agenten in sein Toolkit und erleichtert die Erstellung komplexer Workflows für die Simulation mobiler Geräte in einer Cyber-Range-Umgebung.
Sie können es einfach mit folgendem Befehl installieren:
pipx install robodroid
Wir empfehlen die Verwendung von pipx anstelle von pip, da in zukünftigen Python-Versionen die Paketinstallation mit pip außerhalb virtueller Umgebungen entfernt wird.
RoboDroid bietet integrierte Unterstützung für automatisches Herunterladen (und bald auch automatische Aktualisierung) von Verhaltensweisen aus dem Repository RoboDroid Library. Wenn Sie ein neues Frida-Verhalten hinzufügen möchten, empfehlen wir Ihnen, zum entsprechenden Repository zu gehen und einen Pull Request zu erstellen.
robodroid --help
Dies zeigt die Hilfe für das Tool an:
&&&&&&&&&&&
&&&& &&&&
&&& &&&
(&&&& &&&& &&&& &&&)&
&(&&&& &&&&)&
&&&& &&&&
&&&&&&&&&&&&&
&&& &&&&&&&&&&&&&&& &&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&&&&&&&&&
&&&& &&&&
&&&& &&&&
RoboDroid v0.0.3
Usage: robodroid [OPTIONS] COMMAND [ARGS]...
Manage and deploy Android machines with pre-defined behaviors for Cyber Range environments
╭─ Options ──────────────────────────────────────────────────────────────────────────────────╮
│ --help -h Show this message and exit. │
╰────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ─────────────────────────────────────────────────────────────────────────────────╮
│ run Run RoboDroid. │
| update-library Update the RoboDroid Library to the latest version |
│ version Print the current version and exit. │
╰────────────────────────────────────────────────────────────────────────────────────────────╯
run-BefehlSie können robodroid in zwei verschiedenen Modi ausführen:
default) &&&&&&&&&&&
&&&& &&&&
&&& &&&
(&&&& &&&& &&&& &&&)&
&(&&&& &&&&)&
&&&& &&&&
&&&&&&&&&&&&&
&&& &&&&&&&&&&&&&&& &&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&&&&&&&&&
&&&& &&&&
&&&& &&&&
RoboDroid v0.0.3
Usage: robodroid run [OPTIONS]
Run RoboDroid.
╭─ Options ───────────────────────────────────────────────────────────────────────────╮
│ --log-mode [silent|normal|debug] Set logging mode [default: normal] │
│ --mode -m [interactive|managed] Set run mode [default: interactive] │
│ --config -c TEXT Name of the managed config file to load │
│ --help -h Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────────╯
Im interaktiven Modus gibt es eine Eingabeaufforderung, die es dem Benutzer ermöglicht, den ADB-Host, den Port und das zu verwendende Gerät auszuwählen. Der verwaltete Modus verwendet eine Konfigurationsdatei, die UNTER $HOME/.RoboDroid/config im yaml-Format abgelegt werden MUSS. Der verwaltete Modus ist ideal für die Einrichtung eines Labors/Umgebung ohne Benutzereingabe/Konfiguration.
Die folgende Tabelle beschreibt die Felder, die in der Konfigurationsdatei verwendet werden:
| Schlüssel | Erforderlich | Beschreibung |
|---|---|---|
| device | True | Informationen über das zu verwendende Gerät |
| workflow | True | Der zu verwendende Workflow (Name der Datei) |
Bevor Sie es tatsächlich ausführen, müssen Sie mindestens eine gültige Workflow-Datei bereitstellen, die unter $HOME/.RoboDroid/workflows im yaml-Format abgelegt werden muss.
Diese Konfigurationsdatei definiert alle Schritte des auszuführenden Workflows. Im Ordner examples finden Sie Beispiele für gültige Konfigurationen. Die folgende Tabelle beschreibt die Felder, die in der Workflow-Datei verwendet werden:
| Schlüssel | Erforderlich | Beschreibung |
|---|---|---|
Im Abschnitt init können Sie festlegen, welche APKs installiert werden müssen und welche Pakete (Speicher und Cache) bereinigt werden sollen, bevor der eigentliche Workflow ausgeführt wird. Die Struktur dieses Abschnitts ist wie folgt:
| Schlüssel | Erforderlich | Beschreibung |
|---|---|---|
| install | True | Liste der Pfade zu installierenden APKs |
| clear | False | Liste der zu bereinigenden Pakete (Speicher und Cache) |
Im Abschnitt behaviors befindet sich der eigentliche Workflow. Es handelt sich um eine Liste von Elementen, die als Schritte bezeichnet werden und sequentiell ausgeführt werden sollen. Jeder Schritt hat die folgende Struktur:
Schließlich hat jede Eingabe die folgende Struktur:
| Schlüssel | Erforderlich | Beschreibung |
|---|---|---|
| id | True | ID der Eingabe |
| value | True | Der Wert, der dieser Eingabe zugewiesen wird |
Die letzte Anmerkung ist, dass Sie auch Ausgaben von vorherigen Schritten als Eingabe für die nächsten Schritte verwenden können. Dazu setzen Sie den Wert einer Eingabe mit dem reservierten Präfix robodroid.outputs gefolgt von der ID des Schrittes und der ID der Ausgabe, z. B.:
...
- id: get-link
name: k9-mail-refresh-and-get-link
type: frida
- id: open-and-download
name: firefox-android-open-link-and-download
type: frida
inputs:
- id: link
value: robodroid.outputs.get-link.link
...
Die CLI-Optionen können auch über Umgebungsvariablen gesetzt werden (besonders nützlich beim Ausführen in Docker); die folgende Tabelle listet die derzeit verfügbaren Umgebungsvariablen auf:
| Schlüssel | Beschreibung |
|---|---|
| ROBODROID_LOG_MODE | Protokollierungsstufe von RoboDroid [silent |
| ROBODROID_RUN_MODE | Ausführungsmodus [interactive |
| ROBODROID_MANAGED_CONFIG_NAME | Name der verwalteten Konfigurationsdatei (bei Ausführung im managed-Modus) |
TODO
Wir haben ein kurzes Demovideo erstellt, das RoboDroid in Aktion mit einer Vorlage zeigt, die Folgendes tut:
Dieser Workflow simuliert einen typischen Phishing-Angriff (wenn auch vereinfacht), der in einer nächsten Generation von Cyber-Ranges mit Android-Mobilgeräten verwendet werden kann.
RoboDroid ist ein neues Tool und muss noch wachsen! Dies sind die Funktionen, die wir in Kürze hinzufügen möchten:
Natürlich planen wir, immer mehr Verhaltensweisen in der RoboDroid Library und immer mehr adb-Befehle in diesem Repository hinzuzufügen. Wir ermutigen auch jeden Benutzer, zu diesem Projekt beizutragen und es besser zu machen!
Entwickelt von Angelo Delicato @SecSI
RoboDroid wird veröffentlicht unter der GPL-3.0 Lizenz
| id |
| True |
| Die ID des Workflows |
| init | False | Der Abschnitt für die initialen Einrichtungsaktionen |
| behaviors | True | Die Liste der auszuführenden Verhaltensweisen |
| Schlüssel | Erforderlich | Beschreibung |
|---|
| id | True | ID des Schrittes |
| name | True | Der Name des Verhaltens (in der RoboDroid Library oder in der Befehlsliste) |
| type | True | Der Typ des Verhaltens ("frida-behavior", "adb") |
| inputs | False | Die Liste der Eingaben |