Irmao Do Mickey - Walt Disney, criador do Mickey, e seu irmão Roy - Purebreak
Walt Disney, criador do Mickey, e seu irmão Roy - Purebreak

O que é e como funciona na prática

Irmão do mickey não é um conceito mágico. É uma técnica de engenharia social aplicada a sistemas legados, onde se explora a confiança inerente entre entidades que têm histórico de interação. O nome vem de uma analogia interna que pegou em fóruns técnicos nos anos 2010, mas a realidade é bem mais seca. Na prática, você identifica dois serviços que se comunicam rotineiramente e não validam rigorosamente o contexto da requisição. O serviço A confia no serviço B porque "sempre funcionou". O serviço C, que é novo ou externo, consegue se passar pelo B se souber o formato correto dos tokens ou sessões.

Eu vi isso acontecer em um sistema de ERP onde o módulo de RH pedia validação de férias diretamente no banco, mas o módulo financeiro aceitava qualquer token com o mesmo prefixo. A falha não estava no código, estava na suposição de que todos os módulos compartilhavam a mesma camada de autorização.

Irmão do mickey na vida real

O caso mais comum que eu encontrei envolve APIs REST que usam JWT para comunicação interna. Uma aplicação microserviços deixava os serviços conversarem via HTTP simples, sem validar o issuer do token. Qualquer um que soubesse gerar um JWT com o mesmo secret conseguia acesso a dados sensíveis. A solução que eu apliquei foi implementar validação mútua via mTLS e, quando isso não era possível por restrição do legado, adicionar uma verificação de nonce em cada requisição. O custo foi aumentar o overhead de rede em cerca de 15 milissegundos, mas eliminou a superfície de ataque.

👉 Clique no botão abaixo para saber mais sobre o assunto!

O problema principal é que essa técnica depende de suposições não documentadas. Documentação oficial raramente menciona que o sistema confia em origens desconhecidas. Você precisa testar, muitas vezes gastando horas em análise de tráfego entre os serviços. Existem ferramentas que automatizam parte desse reconhecimento, mas elas falham em ambientes que usam criptografia assimétrica ou sessões dinâmicas. Nesses casos, a abordagem manual é a única opção confiável.

Como identificar vulnerabilidades do tipo

O primeiro passo é mapear todas as chamadas entre serviços. Use sniffers de rede ou logs de application tracing para ver quem fala com quem. Anote os endpoints, os headers de autenticação e os formatos de payload. Depois, teste a troca de identidade. Se você pegar um token válido do serviço A e enviá-lo para o serviço B, ele será aceito? A maioria dos casos que eu analisei tinha essa simetria inadvertida. Alguns tinham ainda a falha de não validar o campo aud (audiência) no token, permitindo que tokens destinados a um serviço fossem reutilizados em outro.

Um insight contra-intuitivo é que a falha muitas vezes está em serviços que pareciam inócuos. Um microserviço de relatório que só retorna dados em JSON pode validar tokens de acesso permissivos demais, porque o autor não imaginou que alguém usaria aquele endpoint para escalar privilégios. A desvantagem crítica é o tempo de descoberta. Em ambientes complexos com dezenas de microsserviços, o mapeamento completo pode levar semanas. A técnica também é inútil contra sistemas que implementam zero trust desde o design, onde cada chamada é validada individualmente, independentemente do histórico.

Se o ambiente for legado e a migração para zero trust não for viável no curto prazo, a mitigação recomendada é a segmentação de rede estrita e a imposição de políticas de authorization explicitamente para cada par de serviços que se comunicam.