Descoberta e Movimento Lateral
Links para todas as partes:Parte 1. Acesso Inicial a um Dispositivo Móvel (Acesso Inicial)Parte 2. Persistência e EscaladaParte 3. Obtendo acesso à credencial (acesso à credencial)Parte 4. Evasão de DefesaTendo obtido acesso a um dispositivo móvel, o adversário provavelmente tentará usar meios regulares do sistema operacional para "olhar em volta", para entender qual vantagem foi obtida, se isso ajuda a alcançar o objetivo da invasão. Este estágio do ataque é chamado de descoberta. As técnicas de pesquisa visam obter informações sobre as características de um dispositivo móvel comprometido, bem como outros sistemas de rede disponíveis.
Depois de avaliar os recursos disponíveis no ambiente atacado, o adversário tentará obter acesso a sistemas remotos e, possivelmente, controle sobre eles, tentará iniciar ferramentas maliciosas em sistemas remotos. A atividade descrita é chamada Movimento Lateral. Os métodos de movimentação lateral também incluem meios de coletar informações de sistemas remotos sem o uso de ferramentas adicionais, como os utilitários RAT (Remote Access Tools).
O autor não é responsável pelas possíveis consequências da aplicação das informações contidas no artigo e também se desculpa por possíveis imprecisões feitas em algumas formulações e termos. As informações publicadas são uma recontagem gratuita do conteúdo de ATT @ CK Mobile Matrices: Device Access .Plataforma: Android, iOS
Descrição: para identificar ferramentas de segurança no sistema sob ataque, um invasor pode tentar identificar aplicativos instalados no dispositivo que podem aumentar o risco de detectar atividades maliciosas, ou vice-versa, para identificar aplicativos que serão alvo de mais ataques.
No Android, os aplicativos podem usar o
método de classe
PackageManager para listar outros aplicativos ou outros objetos com acesso à linha de comando para usar o comando
pm . No iOS, os aplicativos podem usar chamadas de API privadas para obter uma lista dos aplicativos instalados no dispositivo. No entanto, um aplicativo usando chamadas de API privadas provavelmente não será aceito na AppStore.
Recomendações de proteção: Os métodos de verificação de aplicativos devem incluir meios para identificar aplicativos que usam a classe
PackageManager para listar outros aplicativos, mas essa abordagem pode ser impraticável, pois muitos aplicativos chamam os métodos da classe
PackageManager como parte de seu trabalho regular. No iOS, as ferramentas de verificação de aplicativos também podem procurar chamadas de API privadas.
Plataforma: Android
Descrição: no Android, as informações sobre o tipo de dispositivo estão disponíveis na classe
android.os.Build . As informações do dispositivo podem ser usadas para explorar ainda mais explorações direcionadas que aprimoram os privilégios.
Recomendações de proteção: durante a verificação preliminar, os aplicativos que usam a classe
android.os.Build podem ser detectados, no entanto, essa medida não é eficaz, porque muitos aplicativos usam essa funcionalidade como parte do trabalho regular.
Plataforma: Android
Descrição: para listar o conteúdo do sistema de arquivos no Android, você pode usar as ferramentas de linha de comando ou a API Java para trabalhar com arquivos. No entanto, no Linux e no SELinux, o acesso de aplicativos aos arquivos geralmente é muito limitado (a menos que você use uma exploração para aumentar privilégios). Normalmente, os aplicativos podem acessar o conteúdo do armazenamento externo; portanto, o armazenamento inadequado de dados confidenciais deve ser uma preocupação. A arquitetura de segurança do iOS normalmente limita a capacidade de detectar arquivos e diretórios sem ter privilégios estendidos.
Recomendações de proteção: a possibilidade de escalação de privilégios é complicada a cada nova versão do Android e iOS. Nas versões recentes do Android, o sandbox foi reforçado, limitando a capacidade dos aplicativos de listar o conteúdo do sistema de arquivos.
Plataforma: Android, iOS
Descrição: usando os scanners de porta e vulnerabilidade, os atacantes podem tentar obter uma lista de serviços em execução em dispositivos remotos, incluindo aqueles que possuem vulnerabilidades de exploração remota. A presença de um dispositivo móvel conectado à rede interna da empresa por meio de uma conexão local ou VPN pode ser percebida pelo adversário como uma vantagem potencial.
Plataforma: Android
Descrição: no Android até a versão 5, os aplicativos podem receber informações sobre outros processos executados pelos métodos da classe
ActivityManager . No Android anterior à versão 7, os aplicativos podem obter essas informações executando o comando
ps ou "examinando" o diretório
/ proc . A partir do Android 7, o uso da função
hidepid do kernel do
Linux impede que aplicativos sem privilégios elevados recebam informações sobre outros processos.
Recomendações de proteção: usando o sistema operacional Android versão 7 e superior.
Plataforma: Android, iOS
Descrição: um invasor pode tentar obter informações detalhadas sobre o sistema operacional e o hardware, incluindo a versão, as correções instaladas e a arquitetura. No Android, a maioria das informações do sistema está disponível na classe
android.os.Build . No iOS, também existem métodos pelos quais os aplicativos podem acessar as informações do sistema.
Plataforma: Android
Descrição: no Android, os detalhes de configuração da interface de rede incorporada estão disponíveis para aplicativos por meio da classe
java.net.NetworkInteface . A classe
TelephonyManager pode ser usada para coletar informações como IMSI, IMEI e número de telefone.
Recomendações de proteção: uma análise preliminar do aplicativo deve incluir a verificação
se o aplicativo solicita permissões
ACCESS_NETWORK_STATE (necessárias para acessar as informações do
NetworkInterface ) ou
READ_PHONE_STATE (necessário para acessar as informações do
TelephonyManager ). A partir do Android 6.0, os aplicativos não podem acessar os endereços MAC das interfaces de rede.
Plataforma: Android
Descrição: os aplicativos podem usar APIs padrão para coletar dados sobre conexões de rede de entrada e saída. Por exemplo, o aplicativo NetworkConnections disponível no PlayMarket fornece essa funcionalidade.
Plataforma: Android
Descrição: para realizar ataques ao PC conectado ao dispositivo móvel, o inimigo (com privilégios elevados) pode fazer alterações no sistema operacional, após o que o dispositivo móvel representará um dispositivo USB: teclado, mouse, dispositivo de armazenamento de informações ou dispositivo de rede. Este método foi demonstrado no Android. A possibilidade de implementar esta técnica no iOS não é conhecida.
Recomendações de
proteção: Os usuários são aconselhados a conectar dispositivos móveis a um PC somente se houver uma necessidade razoável (por exemplo, se for necessário para desenvolver e depurar aplicativos móveis).
Plataforma: Android, iOS
Descrição: um adversário pode tentar usar servidores corporativos, estações de trabalho ou outros recursos disponíveis na rede. Este método é usado ao conectar um dispositivo móvel a uma rede corporativa por meio de uma conexão local ou VPN.