Ataque MITM: como deixar a aplicação mais segura

Tempo de leitura: 7 minutos

Em tempos de Lei Geral de Proteção de Dados (LGPD), de descentralização de acessos a ferramentas de trabalho (ocasionado pela prática do home office) e de golpes digitais, a preocupação com a Segurança da Informação tem aumentado. O ataque Man-In-The-Middle (MITM) é um dos mais comuns nessa área e implementar recursos que o bloqueiem é essencial em qualquer produto digital.

Por isso, o Arquiteto de Software Ernani Ely aproveitou o espaço do SoftDrops* para falar sobre o tema. De acordo com ele, “geralmente, aplicativos de pequena escala não se preocupam com isso, mas dependendo do tipo de informações que são trocadas, é importante abordar soluções para combater esse tipo de ataque”.

O Ataque MITM

O Man-in-the-Middle (em tradução literal, Homem-no-Meio) é um nome genérico para qualquer ataque virtual em que um usuário mal-intencionado, ou um hacker, intermedia a comunicação entre um cliente – site/aplicativo – e uma outra parte envolvida – servidor/API. Nesse processo, que pode acontecer em sites de bancos, e-mails ou redes sociais, o MITM passa a observar os dados trafegados podendo, inclusive, modificá-los.

 

ataque_mitm

Fonte: https://rockcontent.com/br/blog/dns-hijacking/

 

O objetivo deste tipo de ataque é obter informações sigilosas e/ou modificar os dados entregues aos usuários. Ernani explicou que ele pode acontecer de duas formas:

  • Modo Escuta: o hacker atua de modo passivo na comunicação, ou seja, ele não interfere na informação trafegada. Entretanto, fica monitorando pacotes ou comportamentos da comunicação entre cliente e servidor com o intuito de roubar dados. São comuns, nesse tipo de ataque, o sequestro de token, de senha, de dados de cartão de crédito, etc.
  • Modo Proxy: o hacker atua de modo ativo, sendo ponte entre cliente e servidor. Dessa forma, ele cria uma rota alternativa de desvio em que para o cliente ele é o servidor, e para o servidor ele é o cliente. São comuns, nesse tipo de ataque, criação de redes WiFi falsas, de VPN para download de conteúdo pirata, infecção de proxy confiável, etc.

Exemplos de Ataque

Para exemplificar, o arquiteto comentou sobre uma atividade simples para a maioria das pessoas: transferência de dinheiro entre contas. “Para tirar dinheiro da minha conta e enviar para outra pessoa, eu vou colocar os dados da conta dessa pessoa e enviar a transação para o servidor. Se, neste momento, houver um ataque MITM com um proxy malicioso, ele pode alterar esses dados para que o dinheiro vá para outro lugar. Sim, esse registro estará no comprovante da transferência, mas pode passar despercebido por muitos usuários que não fazem a conferência”.

Outro exemplo em que pode acontecer é quando precisamos de uma segunda via de um boleto. No momento da solicitação, o Man-in-the-Middle pode entregar um código de barras diferente do correto, forçando um pagamento fraudado. Isso pode acontecer não somente com códigos de barras, mas também com QR Codes – que são muito utilizados hoje em dia.

Possíveis Soluções para o MITM

A primeira solução que pode ser implementada para evitar Ataques Man-In-The-Middle é o Certificado Digital SSL. “Com ele, a API fica protegida dentro do https, e assim todo o tráfego de comunicação fica blindado, ou seja, encriptado. Na verdade, esse Certificado é requisito básico de segurança hoje em dia, e ainda assim existem diversos sites que não o utilizam e, por consequência, ficam altamente vulneráveis”, explicou Ernani.

Entretanto, o arquiteto ressaltou que o SSL resolve somente parte do problema. Isso porque ele soluciona o ataque no Modo Escuta, visto que a informação fica encriptada, mas não consegue bloquear o ataque no Modo Proxy.

“O que acontece é que o MITM se comunica com o servidor utilizando o Certificado SSL, mas forja um certificado confiável para se comunicar com o cliente. Aí vem o questionamento: mas qualquer um pode emitir um certificado? Não. O certificado precisa ser emitido por uma entidade confiável para ter validade, só que quando o hacker se conecta a sua rede proxy, ele oferece ou exige que você instale um certificado como sendo confiável”.

 

ataque_mitm(2)

Fonte: https://cyberbotnet.com/posts/SSL-Pinning-Bypass-with-Frida/

 

A maioria dos navegadores e dos sistemas operacionais móveis conseguem barrar certificados falsos para domínios ‘famosos’ (como YouTube, Google, Facebook, etc.) mesmo que a entidade emissora maliciosa tenha sido aceita. Porém, produtos digitais de menor destaque não possuem APIs com esse privilégio.

Desenvolvendo uma Aplicação Segura

Para esses casos, e para garantir que a comunicação chegue a outra ponta de maneira íntegra e sem alteração, o arquiteto de software indica a técnica SSL Pinning, na qual a aplicação realiza a verificação do certificado. Isso é possível pois cada certificado possui uma fingerprint/hash que o desenvolvedor deverá adicionar à aplicação. Assim, o cliente conseguirá validar a veracidade dessa espécie de marca.

Ernani salientou que o desenvolvedor deve atentar para alguns cuidados ao realizar esse processo, como:

  • Validar a cadeia completa: não adianta incluir somente a fingerprint do certificado do domínio, é preciso adicionar a validação de toda a cadeia de certificados para garantir que todos sejam de confiança.
  • Data de expiração do certificado: as janelas de vigência dos certificados devem ser organizadas para que a transição seja imperceptível para o usuário. Alguns meses antes da expiração do certificado, é preciso emitir um novo certificado para incluir na aplicação, assim ela irá aceitar ambos como válidos.
  • Validar somente no login: essa prática não é aconselhável porque o MITM pode não interferir em todas as requisições. Pode ser que ele queira atuar somente numa determinada ação, num ponto específico. Por isso, é importante realizar a validação a cada requisição, sempre colocando na balança a segurança vs. desempenho.

 


*O SoftDrops é um evento de troca de conhecimento que acontece às quartas-feiras, na SoftDesign. A cada edição, um colaborador expõe aos colegas algum tema de seu interesse, relacionado aos três pilares do nosso negócio: design, agilidade e tecnologia. A minipalestra dura em torno de trinta minutos e é seguida por um bate-papo entre os participantes.

Sugestões ou críticas para nosso blog? Entre em contato pelo endereço mkt@softdesign.com.br.