Modelos de segurança mobile

Então, como os arquitetos mobiles construíram seus sistemas com um olho voltado para resolver problemas de segurança? Várias medidas foram tomadas, mas no geral tem havido uma tentativa de abordar o problema da segurança através de cinco áreas-chave, cada uma abordando um problema específico ou necessidade:

  • O controle de acesso é usado para proteger dispositivos, que inclui senhas, biometria e tecnologias de menor privilégio, por exemplo;
  • A assinatura digital tornou-se parte do modelo de aplicação da maioria, se não de todos os S.O. móveis. Esse recurso permite que os aplicativos sejam assinados para que eles possam ser verificados de que eles são originários de um autor específico e não podem ser manipulados sem que tais atividades sejam detectadas. Embora a assinatura digital não seja necessária, o Android não permitirá a instalação de aplicativos de fontes desconhecidas por padrão. No iOS, aplicativos de fontes desconhecidas não podem ser instalados, a menos que o proprietário modifique ou use “jailbreaks” para que o telefone permita isso;
  • A criptografia é outro componente vital do modelo de segurança de um sistema operacional móvel. A criptografia é empregada em dispositivos para garantir que os dados sejam mantidos seguros no caso de um dispositivo ser perdido, roubado ou comprometido. Embora não consistentemente implementado em muitos dispositivos móveis no passado, isso mudou, com o Android 6.0 (codinome Marshmallow), mesmo exigindo criptografia de armazenamento por padrão;
  • Isolamento, que visa limitar o acesso de um aplicativo tem, é uma questão importante abordada em dispositivos móveis. Essencialmente, esta é uma forma de privilégio mínimo para aplicativos, onde se você não precisa acessar dados sensíveis ou processos, você não o fará.
  • O controle de acesso baseado em permissões funciona de forma semelhante aos sistemas operacionais de servidor e desktop. Esse recurso limita o escopo de acesso de um aplicativo bloqueando as ações que o usuário pode tentar, mas não foi concedido acesso a ele.

Sistema Operacional Android do Google

Primeiro, vamos olhar para o líder de mercado, o Android, em nossa exploração de sistemas operacionais móveis.

O Android foi lançado em 2003 nas mãos do Android Inc., que foi adquirido pela Google em 2005. Desde o início, o sistema operacional foi projetado para ser uma plataforma móvel que não era apenas rico em recursos, poderoso e móvel, mas também de código aberto. Como projetado, o Android pode ser instalado em uma ampla gama de hardware, e suporta e se integra com milhares de tecnologias avançadas de software. Ele também foi projetado para se integrar com fontes de dados externas, serviços em nuvem e outras tecnologias, bem como para executar aplicativos localmente. Para fornecer esses recursos e fazê-lo com segurança, o Google seguiu os cinco princípios mencionados anteriormente. Isso resultou em segurança para usuários, dados, aplicativos, o dispositivo e a rede em torno dele.

O Android é baseado diretamente no kernel do Linux e empresta muitos de seus Design do sistema operacional. Embora não seja idêntico ao sistema operacional Linux, ele compartilha uma série de influências de design que você notaria se você começar a cavar no sistema operacional ou ajustar o sistema.

O Android foi projetado e criado com um modelo de segurança de várias camadas que permite a flexibilidade essencial em uma plataforma aberta, oferecendo proteção para usuários e aplicativos.

Outro objetivo do sistema operacional é apoiar os desenvolvedores e tornar a plataforma fácil de trabalhar e fácil de envolver controles de segurança. Na prática, os desenvolvedores devem ser capazes de chamar facilmente os controles de segurança do sistema, e se eles são desenvolvedores experientes, eles podem ajustar os controles conforme necessário. Os desenvolvedores menos experientes ou aqueles que não estão familiarizados com as configurações de segurança adequadas são protegidos porque o sistema coloca as configurações padrão no lugar para garantir que a segurança é mantida.

Alguns dispositivos, como os de certas partes da Ásia, foram exibidos como uma ameaça de segurança por terem malware pré-instalado. Dispositivos da Huawei, por exemplo, foram exibidos por ter malware na forma de rootkits neles quando eles foram enviados.

Mas e os próprios usuários do dispositivo? O que o Android oferece para protegê-los enquanto eles usam o sistema? Assim como o Android foi desenvolvido para tornar mais fácil aos desenvolvedores desenvolver e implantar aplicativos, o sistema foi projetado com o usuário em mente. Para este fim, o sistema foi desenvolvido com a expectativa de que os ataques acontecessem, como o problema comum de malware, roubo de dados e outros. Ele também foi projetado com a ideia de que os próprios usuários podem tentar coisas que podem afetar negativamente o sistema. Android foi projetado para permitir que o usuário trabalhe com o sistema e fazer tarefas diárias, mas não dar-lhes um alto nível de acesso. O Android não permite que o usuário tenha acesso root para o sistema sem o usuário deliberadamente anular essa proteção.

Se você tiver um dispositivo Android ou tiver lido sobre o sistema operacional, você pode ter ouvido o termo “fazer root”. Em poucas palavras, isso se refere a um processo de obtenção de acesso root a um dispositivo. Normalmente, isso envolve a execução de um aplicativo ou script que concede acesso root ao usuário. Uma vez que o acesso é concedido, o usuário pode fazer quase tudo o que quiser no sistema sem restrição. No entanto, uma das desvantagens deste processo é que o dispositivo está agora exposto a maior perigo de ameaças externas também.

Design do Android

Android é composto por uma série de componentes que trabalham juntos para fazer o trabalho do sistema. Cada componente do sistema é auto-suficiente e se concentra em executar qualquer tarefa que foi projetada para fazer. Cada componente concentra-se em medidas de segurança para si e assume que todos os outros componentes também estão fazendo o mesmo. Além disso, em uma instalação normal, apenas uma pequena porção do sistema operacional Android é executado com acesso root, sendo este o kernel, e todo o resto é executado com menos acesso e em uma sandbox de aplicativos para isolar e proteger cada aplicativo.

Sandboxing é uma técnica comum usada no desenvolvimento de aplicativos, e é muito eficaz no fornecimento de segurança, estabilidade e isolamento. O sandboxing, como o nome indica, limita o acesso de um aplicativo ou ambiente a uma parte específica do sistema, criando essencialmente sua própria “sandbox” para trabalhar. O Sandboxing não se limita a uma plataforma ou tecnologia específica; Em vez disso, é um conceito encontrado em muitas áreas implementadas de maneiras diferentes, em tecnologias como Java, Android e navegadores da web.

Então, quais são os componentes básicos do sistema operacional Android?

Hardware do dispositivo – o Android é executado em uma ampla gama de configurações de hardware, incluindo smartphones, tablets e set-top boxes. Tenha em mente que esta lista de hardware é muito curta e pode ser estendida substancialmente para incluir outros dispositivos, como smartwatches.

Sistema operacional Android – O sistema operacional principal é construído sobre o kernel do Linux. Todos os recursos do dispositivo, como funções da câmera, dados GPS, funções Bluetooth, funções de telefonia, conexões de rede e similares são acessados através do sistema operacional.

Tempo de execução do aplicativo do Android – as aplicações do Android são, na maioria das vezes, escritas na linguagem de programação Java e executadas na máquina virtual Dalvik. No Android 4.4 e superior, um substituto mais rápido para Dalvik foi introduzido conhecido como Android runtime (ART). No Android 5.0 e superior, o ART substituiu completamente Dalvik.

As aplicações Android estendem o sistema operacional Android principal. Existem duas fontes primárias para aplicações:

Aplicativos pré-instalados – são aplicativos que vêm pré-embalados com o sistema operacional Android. Esses aplicativos incluem itens como o Gmail, o Calendário e outros. Estes não incluem o bloatware que vem pré-instalado de uma operadora telefônica.

Aplicativos instalados pelo usuário – o Android oferece um ambiente de desenvolvimento aberto que oferece suporte a qualquer aplicativo de terceiros. O Google Play oferece aos usuários centenas de milhares de aplicações.

O Google fornece um conjunto de serviços baseados em nuvem que estão disponíveis para qualquer dispositivo Android compatível. Os principais serviços são os seguintes:

O Google Play é um conjunto de serviços que permitem aos usuários descobrir, instalar e adquirir aplicativos a partir do seu dispositivo Android ou da Web. O Google Play facilita que os desenvolvedores acessem usuários do Android e potenciais clientes. O Google Play também fornece revisão da comunidade, verificação de licenças do aplicativo, verificação de segurança de aplicativos e outros serviços de segurança.

As atualizações do Android oferecem novos recursos e atualizações de segurança para dispositivos Android, incluindo atualizações pela Web ou via over-the-air (OTA).

Os serviços de aplicativos incluem estruturas que permitem que aplicativos Android usem recursos em nuvem, como fazer backup de dados e configurações de aplicativos e mensagens em nuvem (cloud-to-device messaging – C2DM) para envio de mensagens.

Na prática, o Android provou ser flexível, aberto, adaptável, portátil e altamente estável, bem como extremamente personalizável.

Apple iOS

O segundo sistema operacional móvel mais popular no mercado é o iOS da Apple, que está presente em vários dispositivos, incluindo o iPod, iPad e iPhone. Assim como o Android é baseado no kernel do Linux, o iOS é uma versão mais enxuta do OS X para o Mac. Contudo, enquanto ele é baseado no OS X, que é baseado no FreeBSD, não é totalmente compatível com Unix.

Ao contrário do Android, que abrange todos os cinco componentes principais do design do sistema, iOS abrange apenas quatro. Especificamente, aborda estas áreas:

  • Controle de acesso tradicional – O iOS fornece opções de segurança de controle de acesso tradicionais, incluindo opções de configuração de senha, bem como opções de bloqueio de conta.
  • Proveniência da aplicação – Assim como os itens Android que estão na Google Play Store têm sua verificação e, portanto, confiável, no iOS é o mesmo tipo de acordo com aplicativos criados por desenvolvedores aprovados pela Apple, que têm a capacidade de assinar seu aplicativo antes de colocá-lo na loja.
  • Criptografia – O iOS usa criptografia AES-256 acelerada por hardware para criptografar todos os dados armazenados no dispositivo, bem como criptografia adicional para e-mail e outros serviços.
  • Isolamento – O sistema operacional iOS isola cada aplicativo de todos os outros aplicativos no sistema e aplicativos não são permitidos exibir ou modificar os dados, a lógica ou similares uns dos outros.

Há algo para prestar atenção e expandir nesta lista, algo que é mais do que parece, e que é a questão de proveniência do aplicativo. Tanto o Android quanto o iOS usam isso para garantir que os aplicativos que são instalados pelo usuário vêm de fontes legítimas, ou seja, desenvolvedores aprovados. No entanto, os usuários de dispositivos Apple não podem instalar aplicativos não aprovados pela Apple em seu telefone, como usuários do Android podem.

Mas com isso em mente, você pode ter visto um iPhone ou dois executando um aplicativo ou outra coisa que não veio da App Store. Então, como isso ocorre? Através de um processo conhecido como jailbreaking. Então, o que é jailbreaking, e como ele funciona? Vamos falar sobre isso um pouco.

Primeiro de tudo, você precisa entender que muitos fabricantes de smartphones, tablets, consoles de jogos e outros sistemas incluem gerenciamento de direitos digitais (DRM) em seus produtos. DRM existe para controlar os tipos de software que você pode executar em seu dispositivo, bem como preservar a segurança em alguns casos. Este é o lugar onde jailbreaking se encaixa. Jailbreaking é usado para contornar as restrições impostas pelo DRM e permitem que você execute o que quiser executar e fazer o que quiser no dispositivo.

Do ponto de vista técnico, o jailbreaking é simplesmente aplicar um conjunto de patches no nível do kernel de um sistema que permite que o proprietário do dispositivo execute aplicativos não assinados. Esse processo também concede acesso root ao dispositivo e remove as restrições associadas ao acesso não-root.

Uma desvantagem deste processo é uma pequena coisa chamada anular a sua garantia. Outra desvantagem é que você está efetivamente abrindo o dispositivo com tanto acesso que tudo pode ser executado sem restrições, incluindo malwares.

Sugestões de livros:

Sou bacharel em Sistemas de Informação pela Estácio de Sá (Alagoas), especialista em Gestão Estratégica da Tecnologia da Informação pela Univ. Gama Filho (UGF) e pós-graduando em Gestão da Segurança da Informação pela Univ. do Sul de Santa Catarina (UNISUL). Certificações que possuo: EC-Council CEH, CompTIA Security+, EXIN EHF, EXIN ISO 27001, MCSO, MCRM, ITIL v3. Tenho interesse por todas as áreas da informática, mas em especial em Gestão e Governança de TI, Segurança da Informação e Ethical Hacking.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *