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