Garantindo a segurança do aplicativo em ambientes de dispositivos
Transcrição
Garantindo a segurança do aplicativo em ambientes de dispositivos
Software IBM White Paper de Liderança em Ideias Inovadoras Garantindo a segurança do aplicativo em ambientes de dispositivos móveis Detecte, analise e elimine as vulnerabilidades de segurança do aplicativo com o IBM Security AppScan 2 Garantindo a segurança do aplicativo em ambientes de dispositivos móveis Índice 2 Ambientes de aplicativos remotos 3 Tipos de aplicativos remotos 4 Como a segurança do aplicativo remoto pode ser comprometida 5 Possíveis riscos de segurança para aplicativos remotos 6 Como evitar vulnerabilidades em aplicativos remotos 7 Utilizando o IBM Security AppScan para identificar vulnerabilidades 7 Ampliando a inteligência de segurança do aplicativo com a IBM 7 Para mais informações 7 Sobre o software IBM Security Systems Nos ambientes de negócios atuais, dispositivos móveis como smartphones e tablets representam o segmento de dispositivos de computação que mais cresce—ultrapassando os computadores desktops e laptops. Como mais funcionários preferem usar dispositivos móveis no local de trabalho, as organizações estão rapidamente adotando um modelo Bring Your Own Device (BYOD)—que permite que os funcionários utilizem seus próprios dispositivos móveis para fins profissionais. Muitas vezes, isso faz com que os funcionários tenham uma combinação de aplicativos corporativos e pessoais no mesmo dispositivo. Assim, a equipe de segurança tem menos controle sobre os dispositivos que podem acessar as redes corporativas. Em consequência do maior número de dispositivos wireless na força de trabalho, as organizações estão ficando mais preocupadas com a segurança remota. Para muitas, na verdade, essa área é um importante desafio tecnológico que deve ser enfrentado, além de um dos principais focos das iniciativas de segurança. Isso acontece porque os aplicativos de dispositivos móveis têm o potencial de interagir com informações confidenciais ou sensíveis. Os hackers perceberam esse fato e começaram a visar tais aplicativos. Os ataques resultantes (frequentemente noticiados pela imprensa) podem levar à diminuição da confiança em um aplicativo ou na organização que o utiliza. Embora alguns ambientes de aplicativos tenham se tornado cada vez mais padronizados e seguros, há motivos consideráveis para se preocupar e uma necessidade significativa de fornecer maior segurança para aplicativos remotos. Ambientes de aplicativos remotos Para a geração atual de smartphones e tablets, os dois ambientes de aplicativos mais usados são iOS e Android. Esses sistemas operacionais apoiam uma grande variedade de aplicativos— desde aplicativos da web executados dentro do navegador do dispositivo até aplicativos nativos executados diretamente no sistema operacional do dispositivo. iOS iOS é o sistema operacional desenvolvido pela Apple que é executado em diversos produtos, incluindo iPhone, iPod Touch e iPad. O iOS pode ser executado apenas em hardwares produzidos pela Apple; além disso, ela controla os aplicativos nativos que podem ser instalados em dispositivos com base em iOS. Esses aplicativos são distribuídos pelo mercado da Apple, chamado de App Store. Quando aplicativos são enviados para a App Store pelos desenvolvedores, a Apple os analisa e aceita ou rejeita os aplicativos com base nos resultados de sua análise. Android Android é o sistema operacional de dispositivo móvel produzido pela Google. Muitos fabricantes de hardware produzem smartphones e tablets que executam o sistema operacional Android. No entanto, ao contrário do iOS, o Android é um software livre. Por isso, cada fabricante de hardware pode fornecer uma versão customizada do sistema operacional em seu hardware. Os aplicativos Android estão disponíveis em mercados semelhantes à App Store da Apple, mas há menos restrições em relação aos aplicativos que podem ser distribuídos. Software IBM 3 Além disso, os usuários podem fazer o download dos aplicativos Android diretamente dos sites para seus dispositivos, evitando os mercados por completo. Tipos de aplicativos remotos Para ambientes iOS e Android, existem três tipos de aplicativos remotos: da web, nativos e híbridos. Os tipos de aplicativos variam na forma de desenvolvimento, aquilo que podem fazer, seu desempenho e como são distribuídos. Cada tipo de aplicativo tem vulnerabilidades de segurança—algumas são exclusivas do tipo de aplicativo, enquanto outras são comuns em todos os tipos de aplicativos. Aplicativos da web Os dispositivos móveis baseados em iOS e Android incluem navegadores da web totalmente funcionais. A partir desses dispositivos, é possível acessar qualquer site que por sua vez, pode ser acessado a partir de um computador padrão. Os aplicativos da web desenvolvidos para dispositivos móveis usam os mesmos componentes que aplicativos da web tradicionais, além de acessar os mesmos dados pelos mesmos servidores. A única diferença significativa entre aplicativos da web desenvolvidos para computadores padrão e aqueles que foram desenvolvidos para dispositivos móveis é a forma de renderização. Aplicativos nativos Os sistemas operacionais iOS e Android apoiam aplicativos nativos que podem ser baixados e executados em dispositivos móveis. Esses aplicativos geralmente têm um desempenho melhor do que os aplicativos da web executados em navegadores da web remotos. Além disso, estão mais integrados com o hardware disponível. De modo geral, os aplicativos nativos para iOS são escritos em Objective-C, programados no ambiente de desenvolvimento integrado (IDE) Xcode e, a seguir, distribuídos pela App Store da Apple. Após a instalação, os aplicativos iOS podem acessar hardwares no dispositivo móvel—como a tecnologia de sistema de posicionamento global por satélite (GPS). O usuário normalmente precisa verificar o acesso do aplicativo ao hardware em questão. Os aplicativos nativos para Android costumam ser escritos em Java e desenvolvidos no Eclipse, mas existem muitas opções para desenvolvê-los—por meio de IDEs diferentes ou mesmo sem um IDE. Depois que um aplicativo é criado, os desenvolvedores podem transferi-lo por upload para um dos muitos mercados do Android ou hospedá-lo em um site pessoal ou de negócios para que os usuários façam o download diretamente. No momento da instalação em um dispositivo móvel, os aplicativos Android solicitam a permissão do usuário para interagir com o hardware. Depois que está sendo executado no dispositivo, o aplicativo pode se comunicar com outros aplicativos executados localmente no mesmo dispositivo. Aplicativos híbridos Uma terceira categoria—aplicativos híbridos—é composta por aplicativos nativos que contêm componentes do navegador da web que carregam e executam aplicativos da web. Um aplicativo híbrido é um meio-termo entre um aplicativo da web e um aplicativo nativo. Com aplicativos híbridos, os desenvolvedores podem usar componentes dos aplicativos nativos para customizar a aparência do aplicativo, além de usar componentes de aplicativos da web para ajudar a superar as limitações de atualização dos aplicativos nativos. 4 Garantindo a segurança do aplicativo em ambientes de dispositivos móveis Servidor Servidor Internet Internet Aplicativo da web Navegador da web Servidor Internet Aplicativo nativo Aplicativo híbrido Aplicativo remoto Aplicativo remoto Navegador da web Armazenamento Sistema de posicionamento global (GPS) Armazenamento Camera GPS Armazenamento OS Camera GPS OS Figura 1: Três tipos de aplicativos remotos—da web, nativos e híbridos—se comunicam com os componentes de dispositivos móveis, servidores de aplicativos da web e a Internet. Cada um desses caminhos apresenta uma possível vulnerabilidade para ataques. Cada tipo de aplicativo remoto tem finalidades e vantagens únicas; contudo, cada categoria também está sujeita a ameaças de segurança. Há muitas áreas de vulnerabilidade que os invasores podem explorar, o que pode levar a uma possível perda ou roubo de informações pessoais ou de negócios confidenciais. Como a segurança do aplicativo remoto pode ser comprometida Os usuários são capazes de instalar vários aplicativos em seus dispositivos móveis. Porém, como eles geralmente não conseguem realizar uma análise de segurança, os aplicativos instalados podem ser maliciosos. Os invasores podem utilizar tais aplicativos nativos maliciosos para explorar o usuário ou explorar outros aplicativos no dispositivo. Além disso, os invasores podem enviar cargas pagas para aplicativos da web ou híbridos, utilizando-os para explorar os dispositivos móveis. Os resultados desses ataques podem variar em termos de finalidade e gravidade. As organizações devem considerar vários riscos de segurança em potencial para proteger seus ambientes remotos de modo suficiente. Software IBM 5 Possíveis riscos de segurança para aplicativos remotos Os aplicativos remotos têm a capacidade de acessar sistemas de servidor, armazenamento e rede críticos para a segurança. Um invasor capaz de explorar um aplicativo também pode acessar ou interromper tais sistemas. Além de atacar um sistema, estragar uma página da web e roubar dados de uma página da web, os aplicativos remotos são capazes de acessar listas de endereços, descobrir informações sobre a localização, enviar mensagens de texto, fazer chamadas e acessar redes internas. Cada tipo de aplicativo remoto tem um conjunto de riscos levemente diferente, pois todos têm um design e um conjunto de recurso diferentes. Riscos de segurança para aplicativos da web Os aplicativos da web envolvem dois componentes principais — o servidor e o cliente. Vulnerabilidades no lado do servidor — como triagem insuficiente dos dados do cliente — podem estar presentes na parte do aplicativo que é executada no servidor. As vulnerabilidades no lado do cliente podem, possivelmente, ser exploradas dentro da página da web quando esta é renderizada e executada em um navegador da web. No lado do servidor, o servidor pode aceitar dados de clientes não confiáveis e processá-los para enviar uma resposta ao cliente. Esses dados não confiáveis podem ser usados para acessar um banco de dados, um sistema de arquivos ou outras origens de informações críticas para a segurança. Se o servidor não limpar os dados não confiáveis de maneira adequada, eles poderão corromper o banco de dados, expor arquivos confidenciais ou abrir caminho para outras formas de danos. No lado do cliente, executar uma página da web enviada do servidor normalmente envolve a renderização da página e a execução do JavaScript. O navegador da web contém um mecanismo básico de segurança chamado Same Origin Policy (SOP)—uma política que basicamente determina que apenas páginas de uma origem específica podem acessar os dados armazenados e executar scripts. Isso é necessário porque alguns sites podem armazenar informações privadas, como credenciais de login. Portanto, a capacidade das páginas maliciosas de acessar e modificar páginas confiáveis diretamente é uma grave preocupação de segurança. Entretanto, a SOP impede que duas páginas de origens diferentes interajam diretamente umas com as outras. Do mesmo modo, o cliente executa todos os códigos no contexto de uma origem específica—assim, se dados não confiáveis de um invasor forem executados de alguma maneira, o invasor terá plenos poderes para acessar a página e modificá-la. Isso significa que os invasores podem capturar pressionamentos de teclas, roubar os dados inseridos, estragar a página ou executar um ataque de phishing convincente. Riscos de segurança para aplicativos nativos Os aplicativos nativos têm seu próprio conjunto de preocupações de segurança, que geralmente se dividem em duas categorias—riscos para o aplicativo e riscos para o dispositivo móvel. Um risco para o aplicativo é qualquer coisa que possa colocar as informações confidenciais ou o próprio aplicativo em risco. Um risco para o dispositivo móvel é qualquer coisa que possa ocorrer fora do aplicativo, como enviar mensagens de texto, esgotar a bateria ou fazer telefonemas. Os riscos para aplicativos nativos podem ser demonstrados em um cenário com um aplicativo de sistema de mensagens de negócios comum. Nesse exemplo, um aplicativo contém credenciais para conectar o usuário na rede do sistema de mensagens privadas, informações de contato referentes a pessoas da empresa e transcrições de mensagens de conversas anteriores. Se esse aplicativo fosse explorável, um invasor poderia coletar as informações privadas de contato, ler informações confidenciais nas transcrições de mensagens ou enviar mensagens fabricadas para pessoas da empresa—disseminando informações falsas e difamando o proprietário do dispositivo móvel. Quando têm acesso a um aplicativo explorável, os invasores podem abusar dele até que o usuário os impeça de forma ativa ou que o aplicativo explorável seja corrigido pelos desenvolvedores e atualizado pelo usuário. 6 Garantindo a segurança do aplicativo em ambientes de dispositivos móveis Riscos de segurança para aplicativos híbridos Como são uma mistura de aplicativo nativo e aplicativo da web, os aplicativos híbridos têm os riscos de segurança combinados dos outros dois tipos de aplicativos. A determinação exata de onde os riscos de segurança estão localizados depende de como o aplicativo híbrido foi construído. Servidor Internet Interfaces de programação de aplicativos do S.O. Como evitar vulnerabilidades em aplicativos remotos As vulnerabilidades em aplicativos remotos estão se tornando mais comuns. Em um exemplo específico para um aplicativo iOS, foi detectada uma vulnerabilidade na qual o aplicativo enviava dados não criptografados de listas de endereços pessoais para servidores que pertenciam a fornecedores de software. Em outro exemplo envolvendo um aplicativo Android, foi encontrada uma vulnerabilidade que poderia colocar as informações pessoais do usuário em risco, incluindo saldos de contas, informações sobre a localização e números de telefone. A implementação de melhores práticas no desenvolvimento e na análise de aplicativos pode ajudar a evitar problemas de segurança como esses. Melhores práticas para escrever o código do aplicativo Navegador da web Sistema operacional Cada categoria de aplicativo tem muitos pontos possíveis de vulnerabilidade. Para as organizações com ambientes de dispositivo móvel, ter controle dessas áreas é importante para evitar muitas ações danosas. Usuário Ao criar aplicativos remotos, as empresas podem obter benefícios a partir da implementação de um conjunto de melhores práticas para escrever o código. As melhores práticas a seguir (que abrangem categorias de aplicativos) podem ajudar as organizações a evitar e eliminar vulnerabilidades de segurança: Minimizar funcionalidades e tornar o código o mais simples possível Minimizar as permissões que são obrigatórias ou solicitadas Validar todos os dados antes de usá-los no aplicativo Não armazenar ou transmitir dados a menos que isso seja necessário Utilizar criptografia para armazenar e transmitir dados Figura 2: Os aplicativos para telefone celular podem incluir diversas vulnerabilidades que os hackers podem ser capazes de explorar— vulnerabilidades que estão em muitos caminhos de comunicação possíveis. Realizar revisões de código completas Planejar cuidadosamente para escolher o melhor tipo de aplicativo para desenvolvimento Realizar uma análise estática para detectar problemas Executar uma análise dinâmica para detectar problemas Utilizar a instrumentação para monitorar aplicativos Realizar testes para verificar se não há uma funcionalidade não intencional Software IBM 7 Detectar ataques usando a análise de contaminação Além de implementar melhores práticas para a criação de aplicativos, a prática de análise de contaminação também pode ser útil para evitar vulnerabilidades. A análise de contaminação é um tipo específico de análise estática adequada para detectar violações de integridade, tais como aplicativos que usam dados de usuários não confiáveis. Também é útil para identificar vazamentos de confidencialidade, tais como aplicativos que utilizam dados privados do usuário. Embora usar melhores práticas e realizar uma análise de contaminação possa ser útil para criar aplicativos seguros, ter as ferramentas certas para identificar vulnerabilidades pode ser algo inestimável para organizações que desejam aumentar ainda mais a segurança do aplicativo e melhorar a eficiência da detecção e da análise. Utilizando o IBM Security AppScan para identificar vulnerabilidades Desenvolvido para identificar vulnerabilidades de segurança em aplicativos remotos, o IBM Security AppScan® Source é uma excelente solução de teste de segurança do aplicativo que pode ajudar as organizações a garantir que os aplicativos remotos nativos baseados em Android sejam seguros. Como parte das Soluções Integradas de Software de Segurança Remota da IBM, o portfólio do IBM Security AppScan utiliza uma combinação de análise estática e dinâmica para detectar possíveis problemas de segurança nos aplicativos durante o início do ciclo de desenvolvimento—momento em que os defeitos podem ser corrigidos rapidamente com o mínimo de custos e impacto para os recursos. Para fazer a varredura de aplicativos da web para dispositivos móveis, o IBM Security AppScan usa as mesmas técnicas que são usadas na varredura de aplicativos da web para computadores padrão. Essencialmente, isso permite que as organizações ampliem seus programas atuais de segurança do aplicativo para incluir os aplicativos remotos. O IBM Security AppScan também é integrado com as ferramentas de desenvolvimento de aplicativos do IBM Rational® para detecção proativa de vulnerabilidades, com o IBM Security Network Intrusion Prevention System (IPS) para fornecer dados de vulnerabilidade (para proteção ativa contra ameaças) e com o QRadar SIEM da Q1 Labs (uma empresa IBM) para integrar as informações sobre vulnerabilidade do aplicativo na inteligência de segurança geral. A varredura de aplicativos da web, nativos, híbridos ou até mesmo do servidor é fácil com o IBM Security AppScan: Aplicativos da web: Basta carregar o aplicativo do servidor ou as páginas da web do cliente no programa IBM Security AppScan e fazer uma varredura. O IBM Security AppScan pode ser usado para fazer a varredura de aplicativos da web desenvolvidos para qualquer tipo de dispositivo móvel. Aplicativos nativos ou híbridos: Carregue o aplicativo Android no software Eclipse, importe o aplicativo do Eclipse para o IBM Security AppScan e, em seguida, faça uma varredura. Aplicativos do servidor: Para fazer a varredura de um aplicativo do servidor, basta carregá-lo no IBM Security AppScan e fazer a varredura. É possível utilizar o IBM Security AppScan para fazer a varredura dos aplicativos do servidor de maneira independente do aplicativo no dispositivo móvel. Ampliando a inteligência de segurança do aplicativo com a IBM Com o aumento da força de trabalho wireless no atual ambiente BYOD, a segurança do aplicativo remoto se tornou uma das maiores prioridades para muitos gerentes de segurança de TI. O comprometimento da segurança do aplicativo pode causar danos substanciais para os dados sensíveis e a imagem pública de uma organização. Cada categoria de aplicativos para os sistemas operacionais iOS e Android—web, nativos e híbridos — tem vulnerabilidades de segurança exclusivas que precisam ser abordadas. O IBM Security AppScan oferece uma solução simplificada e potente que permite ampliar a inteligência de segurança necessária para identificar e evitar vulnerabilidades dos aplicativos com facilidade e eficiência. Para obter mais informações Para saber mais sobre o IBM Security AppScan, entre em contato com seu representante ou Parceiro de Negócios IBM ou acesse ibm.com/software/awdtools/appscan/ Sobre o software IBM Security Systems O portfólio de segurança da IBM proporciona a inteligência de segurança necessária para ajudar as organizações a protegerem seu pessoal, infraestrutura, dados e aplicativos de forma holística. A IBM oferece soluções para gerenciamento de identidade e acesso, segurança de banco de dados, desenvolvimento de aplicativos,{j}gerenciamento de risco, gerenciamento de terminal e segurança de rede, entre outros. A IBM administra a maior organização de pesquisa, desenvolvimento e entrega de segurança do mundo. Isso inclui nove centros de operações de segurança, nove centros da Pesquisa IBM, 11 laboratórios de desenvolvimento de segurança de software e o IBM Institute for Advanced Security, cujas sedes estão localizadas nos Estados Unidos, Europa e Pacífico Asiático. A IBM monitora 13 bilhões de eventos de segurança por dia em mais de 130 países e possui mais de 3.000 patentes de segurança. Além disso, a IBM Global Financing pode ajudá-lo a adquirir os recursos de software de que sua empresa precisa do modo mais estratégico possível e com custo reduzido. Nós trabalharemos junto com clientes com qualificação de crédito para customizar uma solução de financiamento adequada aos seus objetivos de negócios e de desenvolvimento, ativar um gerenciamento monetário efetivo e melhorar seu custo total de propriedade. Financie seus investimentos críticos em TI e impulsione seus negócios com a IBM Global Financing. Para obter mais informações, acesse ibm.com/financing © Copyright IBM Corporation 2012 IBM Corporation Software Group Route 100 Somers, NY 10589 Produzido nos Estados Unidos da América IBM, o logotipo IBM, ibm.com, AppScan e Rational são marcas registradas da International Business Machines Corp., registradas em muitas jurisdições no mundo todo. Outros nomes de produtos e serviços podem ser marcas registradas da IBM ou de outras empresas. Uma lista atual das marcas registradas da IBM está disponível na web na página “Copyright and trademark information” em: ibm.com/legal/copytrade.shtml Java e todas as marcas registradas e logotipos baseados em Java são marcas ou marcas registradas da Oracle e/ou suas afiliadas. Este documento é atual a partir da data inicial de publicação, podendo ser alterado pela IBM a qualquer momento. Nem todas as ofertas estão disponíveis em todos os países em que a IBM atua. 1 “Finding a strategic voice: Insights from the 2012 IBM Chief Information Security Officer Assessment”. IBM Center for Applied Insights. 2012. http://www.ibm.com/common/ssi/cgi-bin/ssialias?subtype=XB&infotype= PM&appname=CHQE_CI_CI_USEN&htmlfid=CIE03117USEN&attachment= CIE03117USEN.PDF 2 Para obter mais informações sobre a SOP, leia o Browser Security Handbook. Michal Zalewski. 2008. http://code.google.com/p/browsersec/wiki/ Part2#Sameorigin_policy 3 “iOS Social Apps Leak Contact Data”. Mathew J. Schwartz. Information Week. 2012. http://www.informationweek.com/news/security/ privacy/232600490 4 Bug in Skype for Android Could Expose Your Personal Data”. William Fenton. PC Magazine. 2011. http://www.pcmag.com/ article2/0,2817,2383639,00.asp AS INFORMAÇÕES CONTIDAS NESTE DOCUMENTO SÃO FORNECIDAS “NO ESTADO EM QUE SE ENCONTRAM”, SEM QUALQUER GARANTIA, EXPRESSA OU IMPLÍCITA, INCLUSIVE SEM GARANTIA ALGUMA DE COMERCIALIZAÇÃO, ADEQUAÇÃO PARA FINS ESPECÍFICOS E QUAISQUER GARANTIAS OU CONDIÇÕES DE NÃO INFRAÇÃO. Os produtos IBM possuem garantia de acordo com os termos e condições dos contratos conforme os quais são fornecidos. A segurança do sistema de TI envolve a proteção de sistemas e informações por meio da prevenção, detecção e resposta ao acesso indevido de dentro e fora da empresa. O acesso indevido pode resultar na alteração, destruição ou uso indevido das informações ou pode resultar em dano ou uso indevido de seus sistemas, inclusive em ataques a terceiros. Nenhum sistema ou produto de TI deve ser considerado totalmente seguro; nenhum produto ou medida de segurança pode ser totalmente eficaz para prevenir o acesso incorreto. Os sistemas e produtos IBM são desenvolvidos para fazerem parte de uma abordagem abrangente de segurança, o que necessariamente envolverá procedimentos operacionais adicionais e pode exigir que outros sistemas, produtos ou serviços sejam mais eficazes. A IBM não garante que os sistemas e produtos estejam imunes à conduta maliciosa ou ilegal de qualquer parte. Recicle WGW03009-BRPT-00
Documentos relacionados
Quero saber mais Quero saber mais
Análise Estática / Code Review (AppScan) IPS (SiteProtector) Consolidação de KPIs em Dashboard LEVEL 2 LEVEL 2 IBM Qradar (SIEM) IBM Qradar (Qflow)* Análise Dinâmica de Aplicações Web(AppScan)* * O...
Leia mais