Análise de Segurança em Aplicativos Bancários na Plataforma Android

This paper presents the results of a security analysis on banking applications in the Android platform. The analysis included some aspects of the mobile application, the server configuration and the connection between app and server; and spanned 7 different Brazilian banks: Banco do Brasil, Bradesco, Caixa Economica Federal, Citibank, HSBC, Itau, and Santander. It was possible to mount a server impersonation attack in most banks, and obtain confidential information, such as authentication credentials and financial information. Collected observations were not restricted to impersonation attacks, including server configuration flaws and questionable design choices, such as integration with social networks. Resumo. Este trabalho apresenta os resultados de uma analise de seguranca em aplicativos bancarios na plataforma Android. A analise abrangeu alguns aspectos do aplicativo movel, a configuracao do servidor e a conexao entre aplicativo e servidor. Os bancos analisados foram Banco do Brasil, Bradesco, Caixa Economica Federal, Citibank, HSBC, Itau e Santander. Foi possivel montar um ataque de personificacao do servidor com sucesso na maioria dos aplicativos e obter informacoes sigilosas, credenciais de autenticacao e dados financeiros. As observacoes coletadas nao se resumiram apenas aos ataques de personificacao, mas tambem a falhas na configuracao dos servidores e decisoes de projeto questionaveis, como integracao com redes sociais. 1. Introducao O protocolo SSL/TLS [Hirsch and Engelschall 2013] e o mais utilizado para se estabelecer conexoes seguras via Internet, mas varios cuidados precisam ser tomados em sua implementacao. Em especial, instituicoes financeiras – por sua natureza critica – devem manter boas praticas de seguranca, monitorar novos ataques, substituir algoritmos criptograficos obsoletos e implementar novas medidas de seguranca. Isso e essencial para resistir a agentes maliciosos cada vez mais sofisticados. Os ataques bancarios, por serem uma atividade muito lucrativa, possuem intrinsecamente uma natureza adaptativa. Segundo a Federacao Brasileira de Bancos [FEBRABAN 2014], cerca de 24% (25 milhoes) de contas utilizam Mobile Banking, ou seja, uma em cada quatro contas utiliza a tecnologia, que ja representa 12% do numero total de transacoes. Um pronunciamento da FEBRABAN sobre dicas de seguranca eletronica informou que os bancos brasileiros teriam uma perda de R$ 1,4 bilhao por fraude em 2012 [FEBRABAN 2012]. Houve na ocasiao uma certa comemoracao, apesar do valor expressivo informado, ja que o valor representa menos de 0,007% das transacoes bancarias. 2. Fundamentacao Teorica Nesta secao, discute-se o protocolo SSL/TLS, suas propriedades de seguranca, boas praticas e vulnerabilidades conhecidas. 2.1. Protocolo SSL/TLS Em 1994, a empresa Netscape reconheceu a necessidade de se estabelecer uma conexao segura para realizar comercio eletronico e projetou a primeira versao do protocolo criptografico SSL (Secure Sockets Layer 1.0). Este protocolo foi concebido com o objetivo de fornecer propriedades de seguranca muito poderosas, como: • Confidencialidade: e a garantia do sigilo das informacoes fornecidas, protecao contra sua revelacao nao autorizada. • Integridade: significa ter a disponibilidade de informacoes confiaveis, corretas e em formato compativel com o de utilizacao. Em outras palavras, que a informacao nao foi alterada de forma indevida. • Disponibilidade: refere-se a resistencia a falhas e manutencao do servico pelo maximo de tempo possivel. No contexto de seguranca, ha enfase em resistir nao apenas a falhas e acidentes, mas tambem a ataques de negacao de servico [Handley and Rescorla 2006]. • Autenticidade: consiste na identificacao e a confirmacao da origem da informacao. • Irretratabilidade: propriedade do que nao pode ser rejeitado e tratado novamente. E frequentemente associada a natureza irrevogavel de assinaturas digitais. Apos varias mudancas no protocolo SSL, o navegador Netscape lancou a versao 3.0 em 1996. Entretanto, uma contribuicao mais fundamental seria essencial para o desenvolvimento do protocolo. Em 1999 surgiu o sucessor do protocolo SSL: o protocolo TLS 1.0 (Transport Layer Security) – que agora e controlado por uma comunidade aberta, a IETF – Internet Engineering Task Force. 2.1. 1. Descricao do protocolo O SSL/TLS funciona na camada de aplicacao do modelo TCP – local onde sao processados dados para envio – e acima da camada de transporte – local onde mensagens sao enviadas. Qualquer aplicacao que faca uso do protocolo SSL/TLS fica isolada da camada de transporte, ou seja, suas mensagens passam primeiro pelo SSL/TLS, antes de prosseguir para a camada de transporte. Enlace Internet SSL/TLS Transporte Aplicacao Record Protocol Handshake Protocol Cipher Change Protocol Alert Protocol HTTP, FTP, SSH, DNS . TCP, UDP, SCTP, RTP . IP, ARP, RARP, ICMP, IPsec . Ethernet, Wi-Fi, Modem . Figura 1. Modelo TCP com SSL/TLS sobre a camada de aplicacao. Dentro do SSL/TLS ha quatro subprotocolos: • Handshake Protocol: especifica mensagens trocadas para se estabelecer uma conexao. E neste protocolo que e feita a escolha dos algoritmos criptograficos. Em caso de qualquer erro, ou aviso gerado pelo Alert Protocol, o Handshake Protocol deve ser reiniciado, por ser o mais critico; • Cipher Change Protocol: define qual ou quais algoritmos serao utilizados durante a conexao; • Alert Protocol: dispara um erro ou aviso no caso de qualquer inconsistencia na troca de mensagens, para preservar as garantias de seguranca; • Record Protocol: faz a seguranca e verificacao dos dados da aplicacao, usando as chaves criptograficas derivadas durante a etapa de handshake.