
Gerenciar máquinas Android com comportamentos predefinidos para ambientes Cyber Range.
RoboDroid
RoboDroid é uma ferramenta de software de ponta projetada para simplificar o processo de gerenciamento (e muito em breve também implantação) de máquinas Android para uso em ambientes de Cyber Range. Com o RoboDroid, os usuários podem configurar e personalizar facilmente comportamentos pré-definidos para suas máquinas Android, permitindo criar cenários complexos de ataques cibernéticos e testar suas defesas contra uma ampla gama de ameaças.
Os dispositivos móveis se tornaram onipresentes no mundo de hoje. As pessoas usam smartphones para quase todos os aspectos de suas vidas, incluindo serviços bancários, compras e comunicação. Como resultado, os dispositivos móveis são agora um alvo principal para cibercriminosos.
No entanto, a segurança de dispositivos móveis é frequentemente negligenciada em ambientes de treinamento e teste de segurança cibernética. Isso pode deixar as organizações vulneráveis a ataques que exploram as fraquezas dos dispositivos móveis. Portanto, é importante introduzir componentes móveis em cyber-ranges de próxima geração para se adaptar ao mundo atual, cada vez mais dependente de smartphones.
RoboDroid foi projetado para ajudar a preencher essa lacuna, fornecendo um conjunto de ferramentas que podem simular comportamentos humanos de smartphones. Os comportamentos pré-definidos são criados usando Frida e gerenciados no repositório RoboDroid Library.
O objetivo do RoboDroid é fornecer uma maneira simples de introduzir componentes móveis em ambientes de Cyber Range. Seu principal objetivo é oferecer aos usuários uma plataforma fácil de usar que permita simular comportamentos e ações humanas em dispositivos móveis.
O RoboDroid utiliza a tecnologia Frida para executar comportamentos específicos de aplicativos, enquanto usa o ADB para todas as outras operações. Essa combinação poderosa permite que os usuários criem fluxos de trabalho de comportamentos pré-definidos que podem simular as ações de um usuário móvel.
Um exemplo de fluxo de trabalho que pode ser usado em um ambiente de cyber range envolve simular um usuário móvel recebendo um e-mail de phishing, clicando no link contido no e-mail e, posteriormente, baixando um malware.
A imagem a seguir resume isso:

O fluxo de trabalho pode ser dividido nas seguintes etapas:
Ao criar e executar fluxos de trabalho como este, os usuários podem simular cenários realistas de ataques cibernéticos e testar suas defesas contra uma ampla gama de ameaças. Isso ajuda a garantir que sistemas e redes estejam bem protegidos contra possíveis vulnerabilidades e que os usuários estejam preparados para responder efetivamente em caso de ataque.

O RoboDroid se comunica com o Agente Frida fornecido pela RoboDroid Library por meio de mensagens, proporcionando uma interação eficiente.
Quando o RoboDroid inicia um comportamento específico, ele aguarda uma mensagem do Agente Frida. A mensagem pode ser do tipo FAILURE ou COMPLETED.
Se o tipo de mensagem for FAILURE, o RoboDroid reinicia o comportamento atual para garantir a conclusão bem-sucedida. Se o tipo de mensagem for COMPLETED, a etapa atual é marcada como concluída e o RoboDroid passa para a próxima etapa.
Além disso, uma mensagem do tipo COMPLETED também pode conter saídas que podem ser usadas em etapas subsequentes. Isso garante que a ferramenta possa otimizar seu comportamento para obter uma simulação precisa de ações humanas em dispositivos móveis.
Ao fornecer esse processo de comunicação robusto, o RoboDroid garante a integração perfeita do Agente Frida em seu conjunto de ferramentas e facilita a criação de fluxos de trabalho complexos para a simulação de dispositivos móveis em um ambiente de Cyber Range.
Você pode instalá-lo facilmente executando:
pipx install robodroid
Sugerimos o uso de pipx em vez de pip, pois em versões futuras do Python a instalação de pacotes com pip será removida fora de ambientes virtuais.
O RoboDroid tem suporte integrado para download automático de comportamentos (e em breve atualização automática) do repositório RoboDroid Library. Se você deseja adicionar um novo comportamento Frida, sugerimos que vá ao repositório específico e faça um Pull Request.
robodroid --help
Isso exibirá a ajuda da ferramenta:
&&&&&&&&&&&
&&&& &&&&
&&& &&&
(&&&& &&&& &&&& &&&)&
&(&&&& &&&&)&
&&&& &&&&
&&&&&&&&&&&&&
&&& &&&&&&&&&&&&&&& &&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&&&&&&&&&
&&&& &&&&
&&&& &&&&
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. │
╰────────────────────────────────────────────────────────────────────────────────────────────╯
runVocê pode executar o robodroid em dois modos diferentes:
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. │
╰─────────────────────────────────────────────────────────────────────────────────────╯
No modo interativo, há um prompt que permite ao usuário selecionar o host ADB, a porta e o dispositivo a ser usado, enquanto o modo gerenciado usa um arquivo de configuração que DEVE SER COLOCADO em $HOME/.RoboDroid/config no formato yaml. O modo gerenciado é o modo perfeito para usar ao configurar um laboratório/ambiente sem a necessidade de entrada/configuração do usuário.
A tabela a seguir fornece uma descrição dos campos usados no arquivo config:
| Chave | Obrigatório | Descrição |
|---|---|---|
| device | Sim | Informações sobre o dispositivo a ser usado |
| workflow | Sim | O fluxo de trabalho a ser usado (nome do arquivo) |
Antes de executá-lo, você precisa fornecer pelo menos um arquivo de fluxo de trabalho válido que deve ser colocado em $HOME/.RoboDroid/workflows no formato yaml.
Este arquivo de configuração define todas as etapas do fluxo de trabalho que serão executadas. Você pode dar uma olhada na pasta examples para algumas configurações válidas. A tabela a seguir fornece uma descrição dos campos usados no arquivo workflow:
| Chave | Obrigatório | Descrição |
|---|---|---|
| id |
Na seção init, você pode definir os APKs que devem ser instalados e os pacotes que devem ser limpos (armazenamento e cache) antes de executar o fluxo de trabalho real. A estrutura desta seção é a seguinte:
| Chave | Obrigatório | Descrição |
|---|---|---|
| install | Sim | Lista de caminhos de APKs a serem instalados |
| clear | Não | Lista de pacotes a serem limpos (armazenamento e cache) |
Na seção behaviors está o fluxo de trabalho real. É uma lista de elementos chamados etapas que devem ser executadas sequencialmente. Cada etapa possui a seguinte estrutura:
Finalmente, cada entrada possui a seguinte estrutura:
| Chave | Obrigatório | Descrição |
|---|---|---|
| id | Sim | ID da entrada |
| value | Sim | O valor a ser atribuído a esta entrada |
A última coisa a dizer é que você também pode usar saídas de etapas anteriores como entrada para as próximas. Para fazer isso, você pode definir o valor de uma entrada usando o prefixo reservado robodroid.outputs seguido pelo ID da etapa e o ID da saída, por exemplo:
...
- 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
...
As opções da CLI também podem ser definidas por variáveis de ambiente (especialmente útil ao executar no Docker); a tabela a seguir fornece uma lista das variáveis de ambiente atualmente disponíveis:
| Chave | Descrição |
|---|---|
| ROBODROID_LOG_MODE | Nível de log do RoboDroid [silent |
| ROBODROID_RUN_MODE | Modo de execução [interactive |
| ROBODROID_MANAGED_CONFIG_NAME | O nome da configuração gerenciada a ser usada (ao executar no modo managed) |
EM BREVE
Fizemos um breve vídeo de demonstração que mostra o RoboDroid em ação com um modelo que faz o seguinte:
Este fluxo de trabalho simula um ataque de phishing comum (embora simplificado) que pode ser usado em um Cyber Range de próxima geração envolvendo dispositivos móveis Android.
RoboDroid é uma ferramenta recém-nascida e ainda precisa crescer! Atualmente, esses são os recursos que planejamos adicionar muito em breve:
Claro, planejamos adicionar cada vez mais comportamentos na RoboDroid Library e mais comandos adb neste repositório. Também incentivamos todos os usuários a contribuir com este projeto e torná-lo melhor!
Desenvolvido por Angelo Delicato @SecSI
RoboDroid é lançado sob a LICENÇA GPL-3.0
| Sim |
| O ID do fluxo de trabalho |
| init | Não | A seção de inicialização, contém as ações de setup |
| behaviors | Sim | A lista de comportamentos a serem executados |
| Chave | Obrigatório | Descrição |
|---|
| id | Sim | ID da etapa |
| name | Sim | O nome do comportamento (na RoboDroid Library ou na lista de comandos) |
| type | Sim | O tipo do comportamento ("frida-behavior", "adb") |
| inputs | Não | A lista de entradas |