O que Bad Guys 2 me ensinou sobre assimetria de informação e Application Security Problema que ninguém quer nomear

01 Eles eram alunos do seu trabalho

Há uma frase em Bad Guys 2 que deveria deixar qualquer profissional de segurança perplexo. Quando as Bad Girls se revelam pela primeira vez — Kitty Kat, Pigtail Petrova e Doom — elas não chegam ostentando poder de fogo superior ou tecnologia de ponta. Elas chegam como admiradoras. Fãs. “Alunas do trabalho delas”, como o filme as descreve. Elas estudaram os Bad Guys tão profundamente que conseguem replicar suas características, antecipar seus movimentos e explorar seus relacionamentos. Quando os Bad Guys finalmente entendem o que está acontecendo, o jogo já acabou. A assimetria de informação já estava completa antes mesmo da cena de abertura.

Os atacantes já haviam estudado seu trabalho. Eles tinham seu arquivo binário. Nada desse reconhecimento apareceu nos seus registros.

Isso não é uma sacada cinematográfica inteligente. É a descrição de todas as violações de segurança graves em aplicativos na última década.

Os atacantes já haviam estudado seu trabalho. Eles tinham seu binário. Executaram-no offline, por meio de desassembladores e depuradores, à vontade, sem pressão de tempo e sem sistema de alarme. Conheciam suas chaves criptográficas, sua lógica de autenticação, seus padrões de chamadas de API, seu esquema de ofuscação — se você tivesse um. Conheciam seu aplicativo melhor do que a maioria dos seus próprios desenvolvedores. E nada desse reconhecimento apareceu em seus registros.

A questão não é se isso está acontecendo com a sua aplicação. Está. A questão é o que eles encontram quando verificam.

02 A assimetria de informação é o verdadeiro problema

A assimetria de informação é um conceito usado por economistas para descrever situações em que uma das partes em uma transação sabe significativamente mais do que a outra. George Akerlof ganhou o Prêmio Nobel em 2001 por explorar como a informação assimétrica destrói os mercados — seu exemplo mais famoso é o mercado de carros usados, onde os vendedores conhecem o verdadeiro estado do carro e os compradores não, produzindo um mercado que entra em colapso, com a venda de carros problemáticos. A parte com mais informação vence, sistematicamente, não porque seja mais inteligente, mas porque sabe coisas que a outra parte não sabe.

Em segurança de aplicações, a assimetria favorece totalmente o atacante desde o momento da distribuição. O atacante obtém o binário. O binário contém sua lógica, suas chaves, seus segredos, suas suposições de confiança. O atacante pode examiná-lo sem restrições. Você, o desenvolvedor, não consegue ver o que o atacante está fazendo com sua aplicação depois que ela sai do seu ambiente. Você obtém os logs. Eles obtêm visibilidade equivalente ao código-fonte de tudo o que você distribuiu.

Isso não é hipotético. Os descompiladores e desassembladores modernos democratizaram a engenharia reversa a um nível que seria impensável há vinte anos. Um analista competente, com ferramentas gratuitas disponíveis, pode pegar um aplicativo móvel, remover sua camada de ofuscação em uma tarde, extrair chaves embutidas no código em poucas horas e mapear toda a superfície de comunicação do aplicativo com o servidor em um ou dois dias. As ferramentas são refinadas. A documentação é extensa. As comunidades em torno dessas ferramentas são ativas.

As garotas más não precisavam ser mais inteligentes que os caras maus. Elas só precisavam de mais informações sobre os caras maus do que os caras maus tinham sobre elas. No filme, essa assimetria foi construída por meio de observação e pesquisa pacientes. Em segurança de aplicativos, o invasor constrói essa assimetria no momento em que baixa seu aplicativo da loja.

03 O Problema da Pata Carmesim: Quando o Segredo Sai da Caixa

O momento mais instrutivo em Bad Guys 2 não é o assalto em si, mas sim as filmagens.

A governadora Diane Foxington tem uma identidade secreta: a Pata Carmesim, seu antigo alter ego criminoso. Esse segredo foi guardado a sete chaves por anos. É a base de sua autoridade pública, sua legitimidade política, seu relacionamento com Wolf. É, em todos os sentidos relevantes, uma chave criptográfica — uma informação oculta da qual depende todo um sistema de confiança.

Kitty Kat possui as imagens. Ela as usa como chantagem, coagindo os bandidos a cooperarem com seu roubo. No clímax, quando Wolf pensa ter recuperado o pen drive com as imagens, Kitty as publica na internet mesmo assim. A identidade secreta de Diane é divulgada globalmente. O valor da chantagem evapora, mas também tudo o que o segredo protegia. A credibilidade do governador, seu relacionamento, sua carreira política — tudo dependente da chave secreta permanecer escondida — desmoronam simultaneamente.

É exatamente isso que acontece quando chaves criptográficas são extraídas de um aplicativo.

A chave é o segredo. O segredo é a base do sistema de confiança. Uma vez extraído — uma vez que o atacante o possui — não importa como você reaja. A exposição é assimétrica e irreversível. Você pode rotacionar a chave, corrigir o aplicativo, revogar o certificado. O atacante já tem o que precisava.

O erro de Wolf foi acreditar que possuir o pen drive significava controlar o segredo. O segredo já havia saído da caixa. No desenvolvimento de aplicativos móveis e web, esse erro é estrutural. Chaves embutidas em binários não são segredos. São informações públicas com atraso. O atraso é o tempo necessário para que um analista competente as examine.

04 A Ilusão do Pen Drive

Existe uma falha recorrente no pensamento sobre segurança de aplicações: a confusão entre o contêiner e o segredo. As organizações tratam as chaves como se a segurança da chave fosse determinada pela segurança do local onde ela está armazenada. Módulo de Segurança de Hardware (HSM)? Seguro. Cofre de chaves criptografado? Seguro. Codificado diretamente no binário do aplicativo móvel? Bem, usamos uma ferramenta de ofuscação de terceiros, então…

Wolf acreditava que o pen drive continha as filmagens. Kitty já havia feito cópias e o upload estava na fila antes mesmo de ela entregar qualquer coisa. O objeto físico era um adereço. Um marcador. Algo para entregar para que Wolf parasse de procurar as filmagens reais, que a essa altura já existiam em uma infraestrutura sobre a qual ele não tinha visibilidade.

A ofuscação está no pen drive. Não na filmagem.

É isto que a indústria continua aprendendo e esquecendo. A ofuscação dificulta a engenharia reversa. Ela aumenta o custo. Para alguns modelos de ameaça, o aumento de custo é uma medida defensiva significativa. Mas para qualquer atacante com motivação suficiente — um Estado-nação, uma organização criminosa financeira, um concorrente bem financiado — a ofuscação é um atraso, não uma defesa. A chave ainda está no código binário. Um analista habilidoso o encontrará. Ele pode levar três dias em vez de três horas. O resultado é o mesmo.

A criptografia clássica foi concebida sob a premissa de que os algoritmos são públicos e as chaves, secretas. Toda a estrutura teórica da criptografia moderna só se sustenta enquanto essa premissa for válida. Em um ambiente onde a aplicação é executada em hardware controlado pelo atacante — cada dispositivo móvel, cada endpoint de IoT, cada aplicação cliente — essa premissa falha. A chave está em algum lugar no binário.

Com tempo e ferramentas adequadas, é possível encontrá-la. A única arquitetura criptográfica que sobrevive à extração de chaves é aquela em que a extração não produz resultados úteis.

05 Susan Nunca Foi Susan: A Ameaça Interna como Canal de Extração de Informações

A namorada de Snake, "Susan", é Doom. Ela não parece uma ameaça. Ela parece um relacionamento. Snake, que tem estado cada vez mais ausente das operações dos Bad Guys, está passando tempo com alguém que cultivou exatamente o acesso de que precisa. Ela não precisa romper o perímetro. Ela já está dentro do perímetro. Snake a deixa entrar.

A posição interna é um dos vetores de ataque mais confiáveis, tanto no cinema quanto na vida real. As Garotas Más não precisavam comprometer os Caras Maus por meio de um ataque externo. Elas precisavam de um elo de confiança dentro da rede de relacionamentos, e Snake o forneceu sem nem mesmo saber que o estava fazendo.

Em segurança de aplicações, isso se relaciona diretamente com a cadeia de suprimentos. O vetor mais perigoso contra uma aplicação reforçada não é a própria aplicação — é aquilo em que a aplicação confia. SDKs de terceiros. Dependências de código aberto. Serviços de API. Pacotes de análise. Toda biblioteca externa que sua aplicação inicializa em tempo de execução tem, em princípio, o mesmo acesso ao estado de execução da sua aplicação que o seu próprio código. Se essa biblioteca for comprometida, ou se ela já era maliciosa desde o início, a relação de confiança que você construiu em toda a sua base de código se torna irrelevante.

O processo de Violação de dados da SolarWinds em 2020 O exemplo clássico em nível de infraestrutura é uma violação do sistema de compilação que distribuiu atualizações maliciosas por meio de canais confiáveis ​​para milhares de organizações. Mas o padrão se aplica rotineiramente a aplicativos móveis. Um SDK para dispositivos móveis de um fornecedor legítimo é adquirido. O novo proprietário lança uma atualização com exfiltração de dados integrada. Todos os aplicativos que baixaram esse SDK automaticamente agora executam um código que viola todas as premissas de confiança sobre as quais foi construído. O perímetro nunca foi violado. A relação de confiança foi o alvo do ataque.

Susan nunca foi Susan. Seu SDK de análise pode não ser o seu SDK de análise.

06 Rabo de Cavalo Conhece Suas Assinaturas

Pigtail Petrova, a engenheira javali entre as Garotas Más, é a personagem tecnicamente mais interessante do filme. Foi ela quem incriminou os Bandidos. Ela fez isso não pela força bruta, mas pela replicação. Estudou os métodos dos Bandidos — suas assinaturas, sua abordagem, seus sinais — tão minuciosamente que conseguia produzir crimes que pareciam indistinguíveis dos seus atos. Os Bandidos foram culpados por roubos que não cometeram porque Pigtail conseguia imitar seu comportamento no nível funcional.

Isso é engenharia reversa como inteligência competitiva. É também o que atacantes financeiros sofisticados fazem com sistemas de autenticação de aplicativos.

Quando um atacante realiza engenharia reversa completa de um aplicativo de mobile banking, ele não encontra apenas chaves. Ele encontra comportamentos. Ele entende a sequência de chamadas de API que constitui uma sessão legítima. Ele entende o protocolo de desafio-resposta que o aplicativo usa para provar a autenticidade ao servidor. Ele entende quais dados de telemetria do dispositivo o aplicativo envia, quais cabeçalhos ele inclui e quais padrões de tempo caracterizam o uso normal. Com essas informações, ele pode construir um emulador — um cliente sintético que imita o comportamento do aplicativo com precisão suficiente para passar pela validação do servidor.

O servidor recebe solicitações que parecem vir de um aplicativo legítimo. Elas são indistinguíveis, do ponto de vista forense, de solicitações legítimas, porque o invasor fez engenharia reversa da assinatura da solicitação legítima e a replicou. A fraude permanece invisível até que o próprio padrão da fraude se torne detectável — momento em que o invasor já realizou milhares de transações.

07 MacGuffinite e o Objetivo Real

Os cineastas arrancaram risadas genuínas ao batizar seu objeto de consumo de MacGuffinite — um metal raro que atrai ouro magneticamente. A piada é uma referência a Hitchcock: um MacGuffin é qualquer coisa que a trama exija que todos desejem, independentemente de seu significado intrínseco. O MacGuffinite é o pretexto. O objetivo real é extrair todo o ouro do mundo da Estação Espacial Multinacional. O elaborado roubo é a infraestrutura para o objetivo concreto, que opera em uma escala completamente diferente.

As equipes de segurança são treinadas para defender o MacGuffinite. O atacante quer outra coisa.

Quando um invasor realiza engenharia reversa em seu aplicativo móvel, o objetivo óbvio são as chaves criptográficas. Mas as chaves são frequentemente instrumentais. O que o invasor realmente deseja pode ser a capacidade de gerar tokens de autenticação válidos em larga escala — permitindo a apropriação indevida de contas de milhões de usuários. Pode ser a capacidade de interceptar e modificar dados financeiros em trânsito sem acionar o mecanismo de fixação de certificados. Pode ser a capacidade de clonar a identidade do aplicativo para acessar diretamente os serviços de back-end, ignorando todos os controles que o aplicativo impõe na camada do cliente.

A operação mais importante é o roubo do smartwatch no casamento. Silenciosa, cirúrgica, quase invisível. O ouro é o que acontece depois.

08 O perímetro sempre foi uma proposta, não um muro

O setor de segurança passou quase duas décadas construindo perímetros. Firewalls, sistemas de detecção de intrusão, segmentação de rede, arquitetura de confiança zero. O modelo subjacente: manter os invasores do lado de fora, confiar no que está dentro e defender a fronteira entre os dois.

O modelo fazia sentido quando o aplicativo residia no seu hardware, no seu centro de dados, atrás do seu firewall. Começou a apresentar problemas quando o aplicativo migrou para a nuvem. E deixou de funcionar completamente quando o aplicativo passou a estar no bolso do usuário.

Um aplicativo móvel é implantado em hardware controlado pelo atacante. Um dispositivo IoT é implantado em hardware que o atacante pode possuir fisicamente. Um aplicativo web é carregado em um navegador que o atacante pode inspecionar. Em nenhum desses ambientes o modelo de perímetro se aplica. O aplicativo não está dentro do perímetro. O aplicativo está fora do perímetro, sendo executado em um ambiente adversário, desde o momento em que é distribuído.

Este é o problema arquitetônico que a segurança perimetral não consegue resolver. Você pode criar um ambiente de servidor impecável. Zero vulnerabilidades na infraestrutura. Segmentação de rede perfeita. Controles de acesso impecáveis ​​em todos os serviços de backend. E então, seu aplicativo móvel é distribuído com uma chave de serviço embutida no código e um esquema de ofuscação que um analista júnior com um fim de semana livre consegue quebrar. O invasor não toca no seu servidor. Ele toca no seu aplicativo, que se comunica fluentemente com o seu servidor.

09 A geometria da superfície de ataque mudou

Serviços financeiros. Saúde. Contratos de defesa. Telecomunicações. Todos os setores que digitalizaram suas operações voltadas para o cliente na última década, sem saber, realocaram sua superfície de ataque do data center para o endpoint. Os dados sensíveis, a lógica de autenticação, as operações criptográficas — tudo isso agora roda, pelo menos em parte, em hardware que a organização não possui ou controla.

As implicações para a criptografia são específicas e subestimadas. A criptografia clássica — as criptografias AES-256, as assinaturas RSA, os handshakes TLS — é comprovadamente segura sob a premissa de que a chave é secreta. Essa premissa não é matemática, mas sim física. A matemática da criptografia moderna é sólida. O problema reside na premissa.

Quando um aplicativo realiza operações criptográficas em um dispositivo controlado pelo atacante, este pode observar a memória do aplicativo no momento em que a chave é carregada, no momento em que a operação é executada e no momento em que a saída é produzida. Uma classe de ataques chamada ataques de canal lateral explora exatamente isso: consumo de energia, emissões eletromagnéticas, variações de tempo, padrões de acesso ao cache — todos eles vazam informações sobre a chave que está sendo usada. Em um ataque de caixa branca, o atacante vai além, tratando o próprio aplicativo como uma caixa aberta para análise, extraindo a chave diretamente do código compilado.

AES-256 continua sendo AES-256. Mas quando a chave é acessível, a criptografia é tão forte quanto o sigilo da chave — e o sigilo da chave é zero, ou próximo disso.

10. Endurecimento de segurança binária não é ofuscação. Criptografia de caixa branca não é criptografia.

É aqui que a discussão sobre segurança precisa se tornar mais precisa, porque a confusão desses conceitos custa dinheiro real e expõe as organizações a riscos reais.

A ofuscação transforma o código para dificultar sua leitura. Ela renomeia variáveis, simplifica o fluxo de controle, insere código inútil e criptografa strings. Um analista determinado acabará por perceber a fraude. A ofuscação é um atraso. É como um pen drive.

O fortalecimento binário é algo diferente. Ele instrumenta o próprio aplicativo com defesas que tornam a adulteração detectável ou inoperável. Técnicas anti-depuração que detectam quando o aplicativo está sendo executado em um depurador e alteram seu comportamento. Verificações de integridade que verificam o próprio código do aplicativo em tempo de execução e se recusam a executá-lo se forem detectadas modificações. Controles anti-adulteração que detectam se o aplicativo está sendo executado em um ambiente emulado. Verificações ambientais que identificam condições de root/jailbreak indicativas de um dispositivo adversário. O fortalecimento binário não apenas torna o analista mais lento — ele altera a economia do ataque, tornando os fluxos de trabalho de engenharia reversa mais comuns não confiáveis.

A criptografia de caixa branca aborda o problema da exposição da chave diretamente. Na criptografia de caixa preta padrão, a chave é uma entrada separada para a operação criptográfica. Na criptografia de caixa branca, a chave é matematicamente incorporada à própria implementação, por meio de uma série de transformações matemáticas que a tornam irrecuperável, mesmo quando o atacante tem acesso total ao código e à memória e pode observar cada computação intermediária. A operação criptográfica ainda produz resultados corretos. A chave não pode ser extraída da implementação. Não há pen drive para entregar.

Essas não são melhorias incrementais no perímetro. Trata-se de uma premissa arquitetônica diferente: em vez de tentar manter os invasores longe do seu aplicativo, você cria um aplicativo que permanece seguro mesmo quando os invasores têm acesso total a ele.

11. Inteligência contra ameaças com reconhecimento de aplicativos: Sabendo quando as garotas mal-intencionadas já estão dentro do aplicativo.

O problema fundamental dos vilões no filme é que eles são reativos. Eles reagem a eventos que não previram porque não tinham visibilidade do que estava sendo armado contra eles. Eles não sabiam da existência das garotas más até que elas decidiram se revelar, no momento escolhido por elas, nos termos delas.

Historicamente, a segurança de aplicações tem enfrentado o mesmo problema. O ataque é descoberto depois de ocorrido. Os registros são analisados ​​após a violação. A análise forense reconstrói o que o invasor fez. O período entre a invasão inicial e a detecção — o que o setor chama de tempo de permanência — varia, em média, de semanas a meses. Durante esse período, o invasor opera com a assimetria de informações totalmente a seu favor.

A solução lógica é a instrumentação que antecipa a detecção na cadeia de ataque — antes da conclusão da extração da chave, antes do uso do token de sessão falsificado, antes que o cliente emulado faça sua primeira chamada fraudulenta. Aplicativos que conseguem observar seu próprio ambiente de execução e relatar anomalias — como atividades de depuração, padrões incomuns de acesso à memória, execução em emuladores e código adulterado em execução contra serviços reais — criam telemetria que reduz o tempo de permanência do atacante.

Quando seu aplicativo consegue informar que está sendo executado dentro de um depurador, o analista que estuda seu binário deixa de ser invisível. Quando seu aplicativo reporta que uma versão crackeada está acessando seus servidores, a falsificação do Pigtail não passa despercebida por meses. A assimetria de informação começa a desaparecer.

12. A pergunta essencial a fazer antes do envio

Antes de os vilões partirem para qualquer missão, Wolf tinha um plano. O plano partia do pressuposto de certas assimetrias de informação a favor dos vilões. Eles sabiam coisas que o alvo desconhecia. Possuíam capacidades que o alvo não conseguia prever. O plano funcionava enquanto a assimetria se mantivesse.

As Garotas Más reverteram isso. Elas construíram uma imagem mais completa dos Caras Maus do que os Caras Maus tinham de si mesmos, pelo menos operacionalmente. O plano falhou porque a assimetria de informação da qual dependia já havia sido invertida.

Antes de lançar sua próxima aplicação, uma pergunta: o atacante que realiza engenharia reversa do seu binário encontra algo útil?

Se a resposta for sim — se houver chaves ali, ou assinaturas de autenticação replicáveis, ou lógica que quebre a confiança quando exposta — então o seu plano depende de uma assimetria de informação que o atacante acabará por eliminar. Eles são, em algum lugar, estudiosos do seu trabalho.

Os vilões acabam vencendo, claro. É um filme para toda a família. Mas eles vencem alterando a assimetria de informação — infiltrando-se no plano da Kitty, entendendo seu verdadeiro objetivo e agindo com base em informações que ela desconhecia. É assim que se vence na segurança de aplicações. Você não vence torcendo para que as vilãs nunca estudem seu trabalho. Elas já estudaram. Você vence garantindo que o que elas estudaram não revele seus próximos passos.

Digital.ai Proteção de aplicativo

Digital.aiplataforma de A abordagem parte da camada binária. O fortalecimento binário protege a aplicação contra os fluxos de trabalho mais comuns de engenharia reversa e adulteração — anti-depuração, verificação de integridade, detecção ambiental e autoproteção em tempo de execução. A criptografia de caixa branca incorpora chaves nas implementações de forma que a extração se torne matematicamente intratável, em vez de apenas inconveniente. A inteligência orientada a aplicativos fornece telemetria sobre o que está acontecendo com sua aplicação em ambientes reais — se ela está sendo analisada, modificada ou imitada.

O objetivo não é atrasar o analista. O objetivo é garantir que o que o analista encontrar, mesmo com acesso completo, não gere nenhuma vantagem operacional. Quando o pen drive está vazio, Kitty não tem nada para enviar.

Também recomendamos