Entendendo o Magisk e o Módulo Shamiko: Desvendando as Alegações de Bypassing Digital.aiSegurança do Android da

Os aplicativos Android são um alvo comum para agentes maliciosos que buscam modificar o comportamento dos aplicativos, e ferramentas como Magisk ganharam popularidade devido à sua extensibilidade e capacidade de permanecerem consideravelmente ocultos. Um módulo chamado Shamiko surgiu como uma opção popular para ocultar ainda mais. Magisk, destacando a importância de soluções de segurança capazes de detectar essas sofisticadas técnicas de ocultação.

Neste post, vamos explorar o que Magisk é, explore Módulos Magisk Em geral — o que são, uma visão geral de como são construídos e sua integração ao sistema Android — e mais tarde discutiremos ShamikoTambém abordaremos as alegações sobre como contornar as medidas de segurança e como. endurecimento por aplicação As soluções oferecem proteção abrangente contra ameaças em constante evolução e um impacto mais amplo dessas ferramentas na segurança de aplicativos Android.

O que é Magisk? 

Visão geral do Magisk 

O Magisk é uma ferramenta popular que permite aos usuários do Android obter acesso root sem alterar os arquivos principais do sistema. Ao modificar a imagem de inicialização em vez da imagem do sistema, o Magisk permanece "sem sistema", o que significa que oculta as modificações das verificações de integridade do sistema. Essa capacidade permite que os usuários façam root em seus dispositivos enquanto ainda executam aplicativos que normalmente bloqueiam dispositivos com root, tornando o Magisk particularmente poderoso tanto para personalização quanto para manter a compatibilidade de aplicativos. O Magisk modifica partições importantes como Boot.img e substitui o o init executável com magiskinit, que carrega suas configurações personalizadas durante o processo de inicialização sem interferir diretamente nos arquivos principais do sistema Android¹.

Instalação do Magisk

Ao Magisk quando instalado, garante a persistência entre reinicializações, substituindo o o init executável com seu próprio magiskinit. O o init O executável é um binário nativo do Linux que é o primeiro executável a ser executado durante o processo de inicialização. Ao interceptar essa etapa, Magisk Pode modificar o comportamento do sistema desde o início.

Além disso, Magisk modifica o init.rc O arquivo é um arquivo de configuração baseado em texto que o Android usa para definir comandos a serem executados em diferentes estágios do processo de inicialização. A sintaxe de init.rc permite que ele emita comandos durante a inicialização, e Magisk O sistema é modificado para introduzir ações de inicialização personalizadas, garantindo que suas próprias operações se integrem perfeitamente.

O que é Zygisk? 

Zygisk, Parte da Magisk framework, permite que desenvolvedores injetem código personalizado no Zigoto processo após criar um novo aplicativo ou servidor_sistema processos. Essa injeção ocorre após o estágio de especialização, garantindo que quaisquer modificações ocorram dentro dos processos recém-criados, em vez de dentro do processo original. Zigoto o próprio demônio.

Ciclo de vida de Zygisk é impulsionado por vários Ganchos de função PLT (Tabela de Ligação de Procedimentos) dispostos em bibliotecas importantes:  

  • libandroid_runtime
  • livre
  • libnative_bridge 

Esses ganchos são estrategicamente posicionados para dar Zygisk Controle preciso sobre o processo e seu ciclo de vida, especialmente durante fases-chave como a inicialização do processo.

As Tabela de Ligação de Procedimentos (PLT) é um mecanismo que o vinculador dinâmico usa para resolver endereços de funções em tempo de execução, permitindo que bibliotecas compartilhem código dinamicamente. Ao inserir ganchos no PLT, Zygisk É possível interceptar chamadas feitas a funções importantes dentro do ambiente de execução do Android, permitindo injetar comportamentos personalizados em vários pontos do ciclo de vida de um aplicativo ou processo do sistema. Isso possibilita um controle preciso sobre cada fase de inicialização, permitindo que os desenvolvedores modifiquem comportamentos durante estágios críticos da execução do processo.

Por exemplo, ganchos em libandroid_runtime permitir Zygisk para intervir no ambiente de execução do Android, enquanto os hooks em livre fornecer controle sobre o Android Runtime (ART), que é responsável pela execução do código do aplicativo. Enquanto isso, libnative_bridge Lida com bibliotecas nativas, permitindo Zygisk Para gerenciar as interações entre o ambiente de execução do Android e o código nativo. 

No diagrama a seguir, você verá uma ilustração da ordem de execução desses ganchos e como eles interagem com o ciclo de vida do processo. 

O que é Especialização?

Quando o Zygote cria um novo processo para um aplicativo ou serviço, ele realiza a especialização. A especialização aplica medidas de segurança de sandbox que restringem o comportamento e os privilégios do novo processo do aplicativo. Isso garante que cada aplicativo seja executado em um ambiente controlado e isolado, sem interferir no sistema ou em outros aplicativos. Durante esse processo, o sistema aplica políticas, como a definição de permissões de usuário, contextos de segurança e outras restrições em nível de aplicativo. A especialização é crucial para manter o ambiente multiusuário seguro do Android.

Além disso, o Zygote cria um processo especial chamado system_server, que hospeda uma ampla gama de serviços de sistema responsáveis ​​por gerenciar operações essenciais do Android. Esses serviços controlam como os aplicativos interagem com o sistema operacional Android e governam componentes críticos como permissões, políticas de dispositivo e gerenciamento do ciclo de vida do aplicativo. Com o Zygisk, os desenvolvedores podem se conectar tanto ao system_server quanto aos processos do aplicativo para alterar seu comportamento ou introduzir funcionalidades personalizadas. Essa capacidade é particularmente poderosa porque permite que os desenvolvedores influenciem o funcionamento de aplicativos e serviços em tempo real, proporcionando um alto grau de controle sobre o comportamento em nível de sistema. No entanto, o código personalizado é executado dentro das restrições do sandbox de segurança do Android, o que significa que ele deve obedecer às permissões e limitações aplicáveis ​​ao aplicativo ou ao processo do sistema.

Casos de uso comuns para Magisk 

  • Dispositivos para fazer root: Muitos usuários recorrem Magisk Para obter acesso root ao Android, permitindo um alto nível de personalização e controle sobre seus dispositivos.
  • Instalando módulos: Além do enraizamento, Magisk Também oferece suporte a módulos que estendem ou modificam a funcionalidade do sistema Android ou de aplicativos existentes. 

Na próxima seção, exploraremos como o Zygisk funciona em conjunto com os módulos do Magisk para ampliar ainda mais os recursos do sistema Android.

O que são módulos Magisk? 

Magisk Os módulos são extensões que permitem aos usuários adicionar funcionalidades, modificar componentes do sistema ou ajustar o comportamento do aplicativo de forma modular. Esses módulos são um dos principais motivos para a existência de módulos. Magisk's popularidade, pois oferecem uma maneira fácil de personalizar a experiência do Android sem modificar diretamente os arquivos principais do sistema. 

Como os módulos do Magisk são construídos? 

Os desenvolvedores geralmente criam módulos Magisk usando scripts e arquivos de configuração que especificam suas modificações. Eles são desenvolvidos em um formato modular que permite que sejam facilmente adicionados ou removidos do sistema usando o aplicativo Magisk Manager. Os módulos podem variar de scripts simples a alterações mais complexas, dependendo do objetivo que pretendem alcançar. 

Exemplos de módulos Magisk

  • Bloqueadores de anúnciosBloquear anúncios em todo o sistema.
  • Extensões de funcionalidade do aplicativoModificar ou estender o comportamento de aplicativos existentes, como ativar recursos ocultos.
  • DesinchadoresRemova aplicativos de sistema indesejados para um dispositivo mais enxuto e eficiente. 

Integração com o sistema Android: Zygisk 

Uma característica notável do Magisk é Zygisk, que se integra ao Android Zigoto O Zygote é responsável por iniciar aplicativos e inicializar o Dalvik/ART, servindo como processo pai para os aplicativos. Zygisk O Magisk reside dentro do processo do aplicativo, permitindo que ele modifique os aplicativos internamente e controle significativamente seu funcionamento. Essa integração permite que o Magisk intercepte eventos importantes do ciclo de vida, como durante o processo de inicialização. pré-especialização de aplicativos e postAppSpecialize fases e aplicar ganchos que alteram o comportamento do aplicativo em tempo real.

Introdução a Shamiko 

As Shamiko O módulo oculta ainda mais Magisk e impede a detecção por verificações de segurança. Funciona em conjunto com Magisk Isso ajuda os usuários a manterem o acesso root, ocultando quaisquer modificações de aplicativos que possam ter políticas de segurança contra dispositivos com root. Tal situação evidencia a necessidade de soluções de segurança avançadas capazes de detectar essas técnicas sofisticadas de ocultação.

Alegações de burla Digital.ai (Arxan) Segurança

Os desenvolvedores do Shamiko afirmaram que o módulo pode contornar as medidas de segurança implementadas por Digital.ai(anteriormente Arxan) Proteções do Android. No entanto, apesar de seu código ofuscado, uma análise de engenharia reversa de Shamiko revelou as técnicas específicas que utiliza para ocultar sua presença.

A análise mostra que, embora Shamiko elimina alguns dos artefatos deixados por Zygisk, introduz novos artefatos no processo — artefatos que são ainda mais fáceis de detectar do que aqueles introduzidos por Magisk. 

Digital.aiResposta da [empresa/organização] a Shamiko e ameaças semelhantes 

Os desenvolvedores do Shamiko criou o módulo para contornar as medidas de segurança implementadas por Digital.ai e proteções semelhantes. Nossa análise de Shamiko's As técnicas de evasão demonstraram que, assim como ocorre com muitas ferramentas de root, as tentativas de ocultar certos artefatos frequentemente criam novos rastros detectáveis. Este é um paradoxo comum em ferramentas de adulteração que manipulam processosQuanto mais tentam se esconder, mais artefatos podem introduzir, o que pode auxiliar na detecção. 

Ferramentas de manipulação de processos, como Magisk Os módulos operam diretamente dentro do processo do aplicativo. Eles modificam métodos de detecção, interceptam APIs do sistema operacional ou alteram o código do aplicativo. Especificamente, Magisk Os módulos funcionam durante o pré-especialização e pós-especialização fases de criação do processo. Esse sincronismo significa que eles injetam código antes e depois da inicialização completa do processo do aplicativo, permitindo manipular o comportamento do aplicativo dentro do seu próprio espaço de processo. Embora isso conceda um controle significativo, também deixa para trás artefatos no processo que as soluções de segurança de aplicativos podem detectar, já que essas modificações são acessíveis de dentro do sandbox. 

Por outro lado, ferramentas de manipulação do ambiente Modificam o ambiente ao redor da aplicação, frequentemente no nível do sistema ou do kernel. Ao alterar os estados do sistema ou as respostas da API, criam artefatos ambientais que a aplicação pode detectar, sinalizando uma possível adulteração, mesmo que a própria ferramenta tente permanecer oculta. 

Enquanto ferramentas como Shamiko Embora possam tentar ocultar sua presença, essas modificações frequentemente introduzem artefatos adicionais que nossas soluções de segurança conseguem detectar. Escolhendo uma solução de endurecimento para a aplicaçãoProcure produtos que reconheçam anomalias ambientais e de processo, oferecendo uma defesa robusta contra adulteração e modificações não autorizadas.

Melhores práticas para proteger aplicativos Android contra ferramentas de root 

Ferramentas de root, ou rootkitsAs tecnologias de segurança estão em constante evolução, o que representa desafios significativos para os desenvolvedores de aplicativos que buscam proteger seus softwares contra adulteração e técnicas de evasão de detecção. Diante da rápida introdução de novas metodologias, é crucial que os fornecedores de aplicativos implementem soluções de segurança especializadas que possam se adaptar a essas mudanças. 

Para efetivamente safePara proteger aplicativos Android, as medidas de segurança devem abordar técnicas de manipulação tanto de processos quanto de ambiente. Ferramentas que manipulam processos frequentemente deixam artefatos em execução acessíveis dentro do sandbox do aplicativo, enquanto ferramentas que manipulam o ambiente podem alterar o estado do sistema, criando anomalias detectáveis. Reconhecer esses rastros distintos ressalta a importância de recursos de detecção em camadas em soluções de segurança robustas. 

Digital.ai Oferece um conjunto abrangente de proteções para defesa contra ferramentas de root e tentativas de adulteração: 

    • Guarda de Soma de Verificação: Valida a integridade do código do aplicativo., garantindo que quaisquer modificações não autorizadas sejam prontamente detectadas.
    • Proteção contra detecção de raízesIdentifica uma ampla gama de rootkits em diversas versões, proporcionando uma detecção de root robusta mesmo com a evolução dessas ferramentas.

Ao integrar essas proteções, os desenvolvedores de aplicativos podem estabelecer medidas de segurança robustas contra uma ampla gama de ferramentas de root, preservando a integridade de seus aplicativos e safeProteção de dados sensíveis.

Para obter informações sobre como proteger aplicativos iOS contra ameaças semelhantes, consulte nosso guia. Postagem anterior do blog, “Entendendo as fugas da prisão”, que explora esses desafios dentro do ecossistema iOS.

Conclusão: Abordando o desafio do rooting e da segurança à prova de futuro 

O surgimento de ferramentas como Magisk, com sua integração via Zygisk e módulos como Shamiko, representa um desafio constante para a segurança de aplicativos Android. No entanto, com uma abordagem proativa e adaptativa, apesar das alegações sobre o ataque Shamiko, soluções como Digital.ai'S O pacote de segurança do Android oferece defesas robustas contra essas ameaças em constante evolução. 

 

Se você é um desenvolvedor ou uma empresa que busca proteger seus aplicativos móveis contra as ameaças mais recentes, considere o soluções de segurança abrangentes fornecidas por Digital.aiincluindo o App AwareAntecipe-se aos ataques e garanta que seus aplicativos estejam protegidos contra ferramentas como Magisk e Shamiko.

1. Embora não possamos afirmar se o uso do Magisk é ilegal em qualquer jurisdição em que o leitor se encontre, sabemos que o uso do Magisk viola os Termos de Serviço do Android. Observação: Embora nem todas as pessoas que usam o Magisk sejam agentes maliciosos, é importante ressaltar que ele viola os Termos de Serviço do Android. safe Dizer que todos os agentes de ameaças para Android podem usar o Magisk e frequentemente o fazem.

Também recomendamos