- Desenvolvimento de Software
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 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.
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:
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.
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”.
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.
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:
*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.