Persistência e escalonamento de privilégios
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 DefesaParte 5. Descoberta e movimento lateralAs técnicas de fixação descrevem como obter direitos de acesso, alterar a configuração de um dispositivo móvel e outras ações, como resultado do qual um invasor garante que sua presença no sistema seja constante. Freqüentemente, um adversário é forçado a manter o acesso a um dispositivo móvel, apesar da pausa do SO, como resultado de uma reinicialização ou redefinição do sistema para as configurações de fábrica.
Tendo conquistado uma posição no sistema, o adversário tem a oportunidade de "efetuar login" em um dispositivo móvel, mas provavelmente com direitos muito limitados. No entanto, aproveitando as fraquezas da defesa, um adversário pode obter os privilégios mais altos necessários para atingir o objetivo do ataque.
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
Descrição: um aplicativo mal-intencionado pode solicitar ao usuário direitos de administrador do dispositivo e, se forem obtidos privilégios, executar manipulações que dificultam a exclusão dele.
Recomendações de proteção:Pré-validação de aplicativoNormalmente, os aplicativos raramente usam acesso administrativo. No ambiente corporativo, a triagem preliminar dos aplicativos deve identificar esses programas com o objetivo de um estudo mais aprofundado. Maggi e Zanero descreveram a
abordagem da realização de análises estáticas de aplicativos para identificar aplicativos de ransomware que abusam do acesso de administrador de dispositivos. Em suma, a detecção de aplicativos de ransomware consiste na detecção precoce dos seguintes indicadores no arquivo apk: texto ameaçador, um código associado ao bloqueio do uso do dispositivo (diálogos não deletáveis, proibição de botões de navegação, preenchimento da tela com uma janela etc.), criptografia de dados ou abuso da API do administrador.
Cuidado ao usar o acesso de administrador do dispositivoOs usuários de dispositivos móveis devem ser avisados de que não devem aceitar solicitações para conceder privilégios de administrador aos aplicativos. Além disso, o aplicativo deve ser verificado quanto ao uso de direitos de administrador antes da instalação, e os aplicativos necessários que solicitam acesso de administrador ao dispositivo devem ser cuidadosamente estudados e permitidos o uso somente se houver um bom motivo. Os usuários do Android podem visualizar a lista de aplicativos que possuem direitos de administrador nas configurações do dispositivo.
Usando as versões mais recentes do sistema operacionalAs versões mais recentes do sistema operacional, como 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. Por exemplo, o Android 7 introduziu alterações para evitar a possibilidade de abuso de direitos de administrador.
Plataforma: Android
Descrição: o aplicativo Android pode ouvir a transmissão de mensagens de transmissão BOOT_COMPLITED, o que garante sua ativação sempre que o dispositivo é iniciado, sem esperar que o usuário o inicie manualmente. BOOT_COMPLITED é um evento de transmissão no Android, notificando os aplicativos sobre o final do processo de inicialização do SO. Qualquer aplicativo equipado com um receptor BroadcastRecevier especial pode receber mensagens de difusão e executar ações com base nelas.
Uma análise de 1260 aplicativos maliciosos para Android, publicada em 2012, mostrou que 83,3% dos malwares ouviam BOOT_COMPLITED.
Recomendações de proteção: em um ambiente corporativo, é possível organizar a verificação de aplicativos para identificar programas que anunciam BroadcastReceiver, que contém um filtro de intenção por BOOT_COMPLITED. No entanto, dado o grande aumento no número de aplicativos com esse comportamento, esse método é extremamente impraticável.
Plataforma: Android, iOS
Descrição: como uma oportunidade para aumentar privilégios, um adversário pode tentar colocar código malicioso no kernel do sistema operacional ou nos componentes da partição de inicialização, onde o código não pode ser detectado, será salvo após a reinicialização do dispositivo e não poderá ser excluído pelo usuário. Em alguns casos (por exemplo, ao usar o
Samsung Knox ), um ataque pode ser detectado, mas levará à transferência do dispositivo para o modo de funcionalidade limitada.
Muitos dispositivos Android oferecem a capacidade de desbloquear o carregador de inicialização para fins de desenvolvimento, mas essa funcionalidade oferece a capacidade de atualizar maliciosamente o kernel ou modificar o código da partição de inicialização. Se o carregador de inicialização não estiver desbloqueado, o potencial de exploração de vulnerabilidades permanece para atualizar o código do kernel.
Recomendações de proteção: instale atualizações de segurança, implemente sistemas de certificação remota (Android SafetyNet, Samsung KNOX TIMA) e bloqueie o acesso a recursos corporativos para dispositivos não certificados. Organize uma verificação do status de bloqueio do carregador de inicialização em dispositivos que oferecem a capacidade de desbloquear o carregador de inicialização (permitindo que qualquer código do SO seja gravado no dispositivo).
A API do Android SafetyNet Attestation pode ser usada para identificar e responder remotamente a dispositivos comprometidos. O Samsung KNOX fornece a capacidade de validar remotamente os dispositivos Samsung Android. Os dispositivos Samsung KNOX incluem um "fusível de bit de garantia Knox não reversível" que funcionará se um kernel não-KNOX estiver carregado no dispositivo. Quando acionado, os serviços corporativos de contêiner KNOX não estarão disponíveis no dispositivo. Conforme descrito no Guia de segurança do iOS, os dispositivos iOS não podem inicializar ou permitir a ativação do dispositivo se forem detectadas alterações não autorizadas. Muitos aplicativos corporativos realizam suas próprias verificações para detectar e responder a dispositivos comprometidos. Tais verificações não são um meio confiável, mas podem detectar os principais sinais de comprometimento.
Plataforma: Android, iOS
Descrição: se o adversário puder aumentar os privilégios, ele poderá usá-los para colocar código malicioso na partição do sistema do dispositivo, onde será salvo após a reinicialização do sistema operacional e não será facilmente acessível para remoção pelo usuário. Muitos dispositivos Android permitem desbloquear o gerenciador de inicialização para fins de desenvolvimento. Esse recurso também pode ser usado por um adversário para modificar uma partição do sistema.
Recomendações de proteção: dispositivos Android com suporte a Inicialização verificada realizam verificação criptográfica da integridade da partição do sistema. A API Android SafetyNet pode ser usada para identificar dispositivos comprometidos. O Samsung KNOX também oferece a capacidade de controlar remotamente os dispositivos suportados. Os dispositivos IOS não inicializam ou não permitem a ativação de um dispositivo no qual alterações não autorizadas são detectadas.
Plataforma: Android
Descrição: com os privilégios apropriados, um invasor pode tentar colocar código malicioso em um tempo de execução confiável (TEE) de um dispositivo ou outro tempo de execução isolado semelhante, onde o código não é detectável, ele será salvo após a reinicialização do dispositivo e não poderá ser excluído pelo usuário. A execução de código no TEE fornecerá ao adversário a capacidade de controlar ou falsificar a operação do dispositivo.
Dicas de segurança: Os dispositivos devem executar verificações de integridade no código executado no TEE no momento da inicialização. O iOS não inicializará se o código executado no Secure Enclave falhar na verificação da assinatura digital.
Plataforma: Android
Descrição: para melhorar o desempenho, o Android Runtime (ART) compila o bytecode (classes.dex) no código da máquina durante a instalação do aplicativo. Se um invasor aumentar privilégios, ele poderá modificar esse código em cache. Como o código foi originalmente compilado no dispositivo, o controle de integridade não é aplicado a ele, diferente do código da partição do sistema.
Recomendações de proteção: use as versões mais recentes do sistema operacional móvel e a instalação obrigatória de patches de segurança.
Plataforma: Android, iOS
Descrição: aplicativos mal
- intencionados podem explorar as vulnerabilidades não corrigidas do sistema operacional móvel para obter privilégios avançados.
Recomendações de proteção: verifique o aplicativo em busca de vulnerabilidades conhecidas. Instale atualizações de segurança. Usando as versões mais recentes do sistema operacional.
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. Instale atualizações de segurança. Usando as versões mais recentes do sistema operacional.