Estudamos MITRE ATT & CK. Matrizes móveis: acesso ao dispositivo. Parte 5

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 Escalada
Parte 3. Obtendo acesso à credencial (acesso à credencial)
Parte 4. Evasão de Defesa

Tendo 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 .

Visão geral (descoberta)


Visão geral do aplicativo (descoberta de aplicativos)


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.

Descoberta do tipo de dispositivo


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.

Descoberta de arquivos e diretórios


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.

Digitalização do serviço de rede


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.

Visão geral do processo (descoberta de processo)


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.

Descoberta de informações do sistema


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.

Descoberta de configuração de rede 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.

Visão geral das conexões de rede (descoberta de conexões de rede do sistema)


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.

Movimento lateral


Atacar PC via conexão USB


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).

Explorar recursos empresariais


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.

Source: https://habr.com/ru/post/pt457092/


All Articles