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

Recuperando credenciais (acesso a credenciais)


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
Parte 5. Descoberta e movimento lateral

Os opositores usam vários métodos de captura de senhas, tokens, chaves criptográficas e outras credenciais para implementar o acesso não autorizado aos recursos de um dispositivo móvel. A obtenção de credenciais legítimas por um adversário permite identificar e obter todas as permissões de uma conta comprometida em um sistema ou rede, o que dificulta a detecção de atividades maliciosas. Dado acesso apropriado, um adversário também pode criar contas legítimas para uso em um ambiente atacado.

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 .

Recursos de acessibilidade de abuso


Plataforma: Android
Descrição: os recursos de acessibilidade do Android são um kit de ferramentas para pessoas com deficiência. Um aplicativo malicioso pode usar os recursos de acessibilidade do Android para obter dados confidenciais ou executar ações maliciosas. O fato é que as APIs que fornecem serviços de acessibilidade permitem acessar o conteúdo das interfaces com as quais o usuário interage (por exemplo, lendo ou criando um email, editando um documento etc.). Essa funcionalidade fornece a capacidade de pessoas com deficiência de trabalhar com aplicativos móveis públicos. Essa funcionalidade do sistema operacional também atrai autores de malware; no entanto, para ativar os Recursos de acessibilidade do Android, o usuário deve executar várias manipulações incomuns com um aviso de segurança no final.

Recomendações de proteção: a versão do sistema operacional Android 7.0 e superior inclui proteção adicional contra essa técnica. Antes de permitir que o aplicativo seja instalado em um ambiente corporativo, é recomendável verificar se há algum abuso de recursos de acessibilidade ou implementar o Serviço de Reputação de Aplicativos Móveis para identificar aplicativos maliciosos conhecidos.

Acessar dados confidenciais nos logs do dispositivo


Plataforma: Android
Descrição: no Android anterior à versão 4.1, um invasor pode usar um aplicativo mal-intencionado com permissão READ_LOGS para obter chaves privadas, senhas e outras credenciais e dados confidenciais armazenados no log do sistema do dispositivo. No Android 4.1 e posterior, um invasor só pode acessar o log após escalar com êxito os privilégios no sistema operacional.

Recomendações de proteção: se você é desenvolvedor de aplicativos móveis, não deve gravar dados confidenciais no log do sistema de aplicativos de produção.
A partir do Android 4.1, os aplicativos não podem acessar o log do sistema (exceto as entradas adicionadas pelo próprio aplicativo). Com acesso físico ao dispositivo, o log do sistema pode ser obtido via USB usando o utilitário Android Debug Bridge (adb) .

Acesse informações ou credenciais confidenciais em arquivos


Plataforma: Android, iOS
Descrição: um invasor pode tentar ler arquivos contendo credenciais ou confidenciais (chaves privadas, senhas, tokens de acesso). Esse método requer privilégios elevados no sistema operacional ou a presença de um aplicativo de destino no sistema que armazena dados de maneira insegura (com direitos de acesso inseguros ou em um local inseguro, por exemplo, em um diretório de armazenamento externo).

Recomendações de proteção: verifique se os aplicativos usados ​​não armazenam dados confidenciais com direitos inseguros ou em um local inseguro. Android e iOS fornecem a capacidade de armazenar credenciais em hardware em um local isolado, onde elas não serão comprometidas, mesmo que os privilégios aumentem com êxito. O Android 7 fornece permissões de arquivo padrão mais altas no diretório interno do aplicativo, reduzindo a possibilidade de usar direitos não seguros.

Captura de intenção de destino (seqüestro de intenção do Android)


Plataforma: Android
Descrição: Android Intent ou Intent é um objeto de mensagens entre processos com o qual um aplicativo pode solicitar uma ação de um componente de outro aplicativo. Um aplicativo mal-intencionado pode se registrar para receber intenções de outros aplicativos e, em seguida, receber valores confidenciais, como códigos de autorização do protocolo OAuth.

Recomendações de proteção: O processo de verificação de pedidos quanto a possíveis pontos fracos deve incluir a identificação do uso inseguro dos Intents. Os desenvolvedores de aplicativos móveis devem usar métodos para garantir que as intenções sejam enviadas apenas para o destino apropriado (por exemplo, use intenções explícitas, verifique permissões, verifique o certificado do aplicativo de destino ou use os Links do Aplicativo (uma função pela qual um usuário é redirecionado para um link para o aplicativo de destino, ignorando a caixa de diálogo de seleção de aplicativos) ), adicionado no Android 6.0.Para aplicativos móveis usando OAuth, é recomendável seguir as práticas recomendadas .

Capturar dados da área de transferência


Plataforma: Android, iOS
Descrição: aplicativos mal - intencionados podem tentar capturar dados confidenciais armazenados na área de transferência do dispositivo, por exemplo, senhas copiadas / coladas no aplicativo gerenciador de senhas.

Recomendações de proteção: em um ambiente corporativo, é recomendável implementar processos para verificar vulnerabilidades e ações indesejadas nos aplicativos, políticas de restrição de instalação de aplicativos e políticas BYOD (Traga seu próprio dispositivo) que impõem restrições apenas à parte do dispositivo controlado pela empresa. Os sistemas EMM / MDM ou outras soluções de segurança de dispositivos móveis podem detectar a presença de aplicativos maliciosos ou indesejados nos dispositivos corporativos.

Capturar mensagens SMS


Plataforma: Android, iOS
Descrição: um aplicativo mal-intencionado pode coletar dados confidenciais enviados em mensagens SMS, incluindo dados de autenticação. As mensagens SMS costumam ser usadas para transmitir códigos de autenticação multifator.

O aplicativo Android deve solicitar e receber permissão para receber mensagens SMS durante a instalação ou execução. Como alternativa, um aplicativo mal-intencionado pode tentar elevar privilégios para contornar essa proteção. Os aplicativos iOS não podem acessar mensagens SMS durante a operação regular; portanto, o inimigo precisará primeiro executar um ataque à escalação de privilégios.

Recomendações de proteção: em um ambiente corporativo, recomenda-se que os aplicativos sejam pré-verificados quanto à permissão RECEIVE_SMS. Se essa permissão for detectada, o aplicativo precisará de uma análise detalhada.

Explorar a exploração da vulnerabilidade do TEE


Plataforma: Android
Descrição: aplicativos mal - intencionados ou outros vetores de ataque podem ser usados ​​para explorar vulnerabilidades no código executado em um Trusted Execution Environment (TEE). O adversário pode obter os privilégios que o TEE possui, incluindo a capacidade de acessar chaves criptográficas ou outros dados confidenciais. Para atacar o TEE, um adversário pode precisar primeiro de privilégios elevados do SO. Caso contrário, os privilégios de TEE podem ser usados ​​para explorar as vulnerabilidades do SO.

Recomendações de proteção: verifique o aplicativo em busca de vulnerabilidades conhecidas. Atualizações de segurança. Usando as versões mais recentes do sistema operacional.

Aplicativo de teclado de terceiros mal-intencionado


Plataforma: Android, iOS
Descrição: um aplicativo mal-intencionado pode se registrar como teclado do dispositivo e interceptar as teclas enquanto o usuário digita dados confidenciais, como nome de usuário e senha.

Recomendações de proteção: os aplicativos raramente são registrados como teclados; portanto, os aplicativos que fazem isso devem ser cuidadosamente analisados ​​durante a verificação preliminar. O iOS e o Android exigem permissão explícita do usuário para usar teclados de software de terceiros. Os usuários são aconselhados a ter extrema cautela antes de conceder essa permissão (quando solicitado).

Captura ou redirecionamento de tráfego de rede


Plataforma: Android, iOS
Descrição: um invasor pode capturar o tráfego de entrada e saída ou redirecionar o tráfego de rede para passar por um gateway controlado pelo inimigo para obter credenciais e outros dados confidenciais.

Um aplicativo malicioso pode se registrar como um cliente VPN no Android ou iOS para obter acesso aos pacotes de rede. No entanto, em ambas as plataformas, o usuário deve consentir o aplicativo para executar as funções de um cliente VPN e, no iOS, o aplicativo requer permissão especial da Apple.

Como alternativa, um aplicativo mal-intencionado pode tentar elevar privilégios para obter acesso ao tráfego de rede. Um adversário pode redirecionar o tráfego de rede para um gateway controlado por ele, estabelecendo uma conexão VPN ou alterando as configurações de proxy no dispositivo atacado. Um exemplo é a capacidade de redirecionar o tráfego de rede instalando um perfil de configuração malicioso do iOS ( link para a fonte ).

Dicas de segurança: revise cuidadosamente o aplicativo que solicita acesso à VPN antes de permitir que ele seja usado. A criptografia de tráfego nem sempre é eficaz, porque um adversário pode interceptar o tráfego antes de ser criptografado. IOS e Android visualizam o estabelecimento de uma conexão VPN na barra de status superior do dispositivo.

Seqüestro de esquema de URL


Plataforma: iOS
Descrição: os esquemas de URL (como a Apple os chama) são manipuladores de URL que podem ser chamados pelo navegador Safari ou usados ​​por um aplicativo para chamar outro aplicativo. Por exemplo, o esquema tel: pode ser usado para iniciar o aplicativo Phone e discar um número específico, colocando o código HTML correspondente na página de destino:

<iframe src="tel:"></iframe> 

Esquema do Skype: inicie uma chamada do Skype ":

 <iframe src="skype:user?call"></iframe> 

O iOS permite que aplicativos de diferentes desenvolvedores compartilhem os mesmos esquemas de URL. Um aplicativo mal-intencionado pode se registrar maliciosamente usando o esquema de URL de outro aplicativo, o que permitirá interceptar uma chamada para um aplicativo legítimo e usar a interface de phishing para obter credenciais de usuário ou códigos de autorização OAuth.

Recomendações de proteção: Durante a análise da segurança do aplicativo, verifique a presença de esquemas de URL potencialmente perigosos. Dê preferência a programas que usam links universais como uma alternativa aos esquemas de URL (esse é o link que o usuário redireciona para um aplicativo instalado específico).

Falsificação da interface do usuário


Plataforma: Android, iOS
Descrição: a falsificação da interface do usuário é usada para induzir o usuário a fornecer informações confidenciais, incluindo credenciais, detalhes bancários ou dados pessoais.

Substituição da interface do usuário de aplicativos legítimos ou funções do dispositivo

No Android e no iOS, um adversário pode se passar pela interface do usuário de um aplicativo ou função legítima do dispositivo, forçando o usuário a inserir informações confidenciais. O tamanho limitado de exibição dos dispositivos móveis (em comparação com um PC) pode tornar menos possível que o usuário forneça informações contextuais (por exemplo, exibindo o endereço completo do site) que podem alertar o usuário sobre o perigo. Um invasor também pode usar essa técnica sem estar presente em um dispositivo móvel, por exemplo, através de uma página da web falsa.

Substituição de um pedido legítimo

Um aplicativo mal-intencionado pode repetir completamente o aplicativo de destino - use o mesmo nome, ícone e instalação no dispositivo através de uma loja de aplicativos autorizada ou seja entregue de outras maneiras ( consulte as técnicas de entrega do aplicativo ) e peça ao usuário para inserir informações confidenciais.

Abuso de recursos do sistema operacional para interferir em um aplicativo legítimo

Nas versões mais antigas do Android, um aplicativo mal-intencionado pode usar funções regulares do sistema operacional para interferir com um aplicativo em execução. Estamos falando do método ActivityManager.getRunnigTasks desatualizado (disponível no Android antes da versão 5.1.1), que permite obter uma lista de processos do SO e definir um aplicativo em primeiro plano, por exemplo, para lançar uma interface dupla falsa.

Recomendações de proteção: em um ambiente corporativo, é recomendável realizar verificações de aplicativos em busca de vulnerabilidades e ações indesejadas (confidencialidade maliciosa ou violadora), implementar políticas de restrição de aplicativos ou políticas Bring Your Own Device (BYOD) (traga seu próprio dispositivo) que impõem restrições Somente para a parte do dispositivo controlada pela empresa Os treinamentos, treinamentos e guias do usuário ajudarão a suportar uma certa configuração de dispositivos corporativos e, às vezes, até impedirão ações específicas do usuário de risco.

Os sistemas EMM / MDM ou outras soluções para proteger dispositivos móveis podem detectar automaticamente aplicativos indesejados ou mal-intencionados em dispositivos corporativos. Os desenvolvedores de software geralmente têm a capacidade de verificar os repositórios de aplicativos em busca de aplicativos não autorizados que foram enviados usando seu ID de desenvolvedor.

É recomendável usar apenas as versões mais recentes dos sistemas operacionais móveis, que, em regra, contêm não apenas patches, mas também uma arquitetura de segurança aprimorada que fornece resistência a vulnerabilidades anteriormente não detectadas.

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


All Articles