Toda organização bem gerida já controla as vias conhecidas de saída de dados. Copiar e colar é monitorado, downloads de arquivos são registrados, e-mails são analisados, a impressão é restringida. Esses controles detêm a grande maioria das exposições acidentais de dados.
Resta uma única via que nenhum deles consegue ver: a captura de tela. Um usuário com permissão apenas de visualização fotografa a tela — com o telefone na mão, com o atalho de captura de tela do sistema operacional ou com uma gravação de tela feita por um dispositivo separado. A imagem sai da organização como pixels. O pixel não é um evento de copiar e colar, nem um download de arquivo, nem um e-mail — nenhuma das ferramentas existentes o reconhece como uma saída de dados.
O que pode ser feito com essa imagem mudou drasticamente nos últimos anos. Motores de OCR clássicos (como Tesseract e AWS Textract) conseguem extrair texto de qualidade de produção a partir de uma imagem. Modelos modernos de visão de IA — como GPT-4V, Claude Vision e Gemini — vão ainda mais longe: olham para a imagem de forma holística e inferem a estrutura da tabela, as seções do contrato e os campos do formulário, às vezes lendo mais do que até uma pessoa bem treinada.
As defesas frequentemente sugeridas para esse problema — marca d'água visível, DOM não copiável, detecção de gravação de tela, controle de área de transferência via gerenciamento de dispositivos móveis — baseiam-se em premissas que já não se sustentam. Uma marca d'água visível não impede a leitura do texto ao seu redor. O DOM não copiável não detém a câmera do celular. A detecção de gravação de tela não vê uma gravação feita por um dispositivo separado.
O único lugar que realmente fecha essa via é o próprio pixel exibido na tela — você organiza o que aparece na tela do usuário de tal forma que se torne impossível extrair texto significativo da imagem capturada.
ZeroLeak executa a aplicação web protegida em um navegador no servidor e submete os quadros renderizados a intervenções de nível de pixel antes de chegarem ao usuário. O navegador do usuário recebe um fluxo de pixels — não HTML, DOM ou JavaScript — ou seja, a única forma de extrair conteúdo é fotografar o que está na tela. E essa imagem é, por design, ilegível para motores de OCR e modelos de visão de IA.
ZeroLeak abre a aplicação web protegida em seu próprio servidor, dentro de um navegador headless. O navegador do usuário nunca recebe o HTML, o JavaScript ou o DOM da página — apenas o fluxo de pixels da versão renderizada dessa página. Pense como se estivesse assistindo a um vídeo: cliques e entradas de teclado são enviados de volta ao navegador no servidor; a nova imagem retornada flui para o usuário.
Cada página renderizada no servidor passa por oito intervenções de pixel independentes antes de ser enviada ao usuário. Ruído pequeno o suficiente para que o olho do usuário não perceba, linhas finas posicionadas nas bordas dos caracteres, separação dos canais de cor e técnicas semelhantes são aplicadas em conjunto. Cada técnica visa uma fase diferente dos motores de OCR; sobrepostas, a camada que um motor supera é detida por outra.
Modelos como GPT-4V, Claude Vision e Gemini olham para uma imagem de forma holística — não leem apenas letra por letra, mas tentam extrair o layout da página, os títulos e as tabelas. Por isso, a intervenção de pixel em nível de letra por si só não basta. ZeroLeak divide a imagem em pequenos quadros que rotacionam em uma velocidade imperceptível ao usuário e pixeliza cada quadro com um padrão independente. O sistema visual humano funde os quadros rotativos e forma uma imagem estável e legível; o modelo de visão de IA não consegue capturar um texto ou layout estável nem mesmo de um único quadro.
A proteção anti-OCR funciona dentro da mesma configuração das outras proteções de camada de tela do ZeroLeak. A página pode carregar uma identidade de usuário oculta que deixa rastro mesmo se for recortada ou redimensionada (marca d'água forense); e o correspondente no DOM do texto exibido pode produzir saída sem sentido quando copiado (cifra de texto). Cada camada é ativada ou desativada de forma independente por serviço protegido — a combinação é escolhida conforme o caso de uso.
As oito técnicas abaixo são aplicadas a cada página renderizada no servidor antes de ser enviada ao usuário. Cada uma visa um ponto fraco diferente dos motores de OCR e dos modelos de visão de IA. Sobrepostas, a superfície total que um atacante precisa superar para extrair texto da imagem que capturar é muito maior do que o efeito de técnicas isoladas.
Cada pixel sofre uma variação aleatória de brilho dentro de um intervalo muito pequeno. O humano percebe isso como uma leve textura que não afeta a leitura; porém, as bordas de pixel limpas e consistentes que os motores de OCR buscam para distinguir contornos de texto e formas de letras já não estão ali.
Motores de OCR clássicos e modernos buscam as bordas das letras e a espessura das linhas dentro de uma faixa de frequência espacial específica. Essa faixa é alvo de uma distorção de frequência sutil. A estrutura geral da imagem parece nítida para o leitor humano, enquanto o módulo de detecção de bordas do OCR não encontra uma borda confiável.
O processamento do texto é aplicado de modo diferente entre os canais de cor com pequenas variações; o mesmo caractere é renderizado de forma distinta nos canais vermelho, verde e azul. O olho humano funde os três canais e vê um único caractere legível. A maioria dos motores de OCR converte a imagem primeiro para escala de cinza — e nesse processo perde a informação de letra entre canais de que precisava.
Onde uma letra termina e outra começa é uma fase crítica para o funcionamento correto do OCR. À imagem da página são adicionadas linhas muito finas que coincidem com esses limites entre letras e que parecem ao usuário uma textura de fundo. O olho humano confunde as linhas com o fundo e as ignora; o OCR, porém, separa duas letras como uma só ou uma letra como duas e segmenta o texto de forma errada.
Cada letra é deslocada em uma quantidade pequena demais para a percepção humana — abaixo da escala de pixel. A experiência de leitura não muda. Como a posição da linha de base e o alinhamento do corpo que os motores de OCR usam para identificar letras ficam comprometidos, a precisão do reconhecimento cai.
Um deslocamento limitado de pixels é aplicado dentro da própria área de cada letra. À distância de leitura, a letra parece igual ao olho. Mas as estatísticas de nível de pixel que os motores de OCR usam para determinar se uma letra é 'A' ou 'R' ficam comprometidas.
Nas regiões sem texto são inseridos padrões específicos que o olho humano quase não percebe. Esses padrões enganam a fase em que o OCR primeiro localiza as regiões de texto e depois faz a leitura — o contraste entre texto e fundo cai na percepção do OCR, e o motor não consegue determinar onde o texto começa.
Toma-se um modelo representativo de OCR ou de visão de IA e aplicam-se alterações de pixel calculadas sobre a estrutura interna de funcionamento (gradiente) desse modelo. O resultado também afeta outros modelos da mesma família. Acrescentada às sete técnicas anteriores, o efeito total é maior do que a soma das técnicas isoladas.
Os modelos de visão de IA (GPT-4V, Claude Vision, Gemini e similares) olham para uma imagem de forma diferente do OCR. Em vez de ler letra por letra, olham para a página de forma holística e tentam reconstruir o layout, a tabela e o formulário. As oito técnicas acima detêm o OCR clássico de forma confiável, mas não neutralizam totalmente esses leitores holísticos. A segmentação por quadros rotativos é a camada projetada para esses leitores.
Cada imagem renderizada no servidor é dividida em uma grade invisível (geralmente 3×3). Cada quadro é aplicado com um padrão de pixelização independente e uma fase de padrão independente. Não há estrutura comum entre dois quadros vizinhos.
O padrão de pixelização rotaciona entre os quadros em uma velocidade maior do que o sistema visual humano pode perceber, mas em que o olho ainda consegue formar uma imagem estável. O usuário lê a página normalmente. Já o modelo de visão de IA, que olha para um único quadro ou para uma sequência curta de quadros, não consegue capturar uma estrutura estável de texto ou layout.
Os quadros não compartilham padrão nem fase entre si. Mesmo que um modelo de IA resolva o padrão de pixelização de um quadro, não consegue aplicar essa informação aos quadros vizinhos. Para resolver toda a imagem, é preciso resolver cada quadro separadamente; isso significa uma carga de trabalho diretamente proporcional ao número de quadros.
A segmentação por quadros rotativos não é uma defesa que funciona sozinha — ela é acrescentada sobre a camada de pixel das oito técnicas acima. Mesmo que um modelo de IA supere parcialmente a camada superior, abaixo dela ainda há uma camada de oito técnicas que visa o nível das letras. O atacante precisa derrotar dois tipos diferentes de proteção na mesma imagem.
A densidade da grade, a velocidade de rotação, a intensidade do padrão e a geometria da grade são definidas separadamente para cada serviço web protegido. Para conteúdo de alta sensibilidade (arquivos jurídicos, demonstrações financeiras), a proteção é reforçada; para conteúdo cotidiano, as configurações básicas são suficientes.
Marcas d'água semitransparentes e elementos DOM não copiáveis podem ser superados por recorte ou filtragem — abaixo ainda existe uma imagem limpa. A segmentação por quadros rotativos, por sua vez, altera os pixels reais do conteúdo; não há uma imagem 'limpa' escondida embaixo.
Os profissionais clínicos precisam ver dados de pacientes na tela por dever de função, mas esses dados não podem sair da organização. Com o ZeroLeak, os dados permanecem legíveis durante a sessão, mas não se consegue extrair informação significativa de uma captura de tela obtida. Para funções com permissão apenas de visualização, está alinhado ao princípio da divulgação mínima da HIPAA.
Conteúdos que precisam ser lidos, mas que ninguém deve transferir para o telefone — demonstrações financeiras, textos de contrato, arquivos de due diligence. Quando o anti-OCR e a segmentação por quadros rotativos são aplicados em conjunto, o documento é lido com facilidade na tela, mas a imagem capturada torna-se inútil.
Conteúdos classificados que os analistas precisam ver, mas que não devem sair. A alteração de nível de pixel fecha a via de exfiltração por captura de tela no mesmo limite da política de acesso.
Usuários externos que recebem autorização temporária a um painel de cliente, uma interface de auditoria ou um console de pesquisa. O usuário lê o conteúdo; mesmo que tire uma captura de tela, não consegue levar o conteúdo para outro ambiente.
Os pesquisadores precisam ver dados de estudos, registros de pacientes e resultados de laboratório. O limite de divulgação geralmente proíbe a transferência para fora. O anti-OCR converte esse limite proibido de uma política em um controle técnico.
Os programas de risco com colaboradores já não podem presumir que uma captura de tela obtida seja inofensiva. Para qualquer pessoa com uma IA no bolso, todo conteúdo exibido na tela é um vetor potencial de exfiltração. O anti-OCR e a segmentação por quadros rotativos reduzem esse risco ao nível dos ambientes apenas humanos da era pré-IA.
Veja em uma demonstração ao vivo a camada de pixel anti-OCR do ZeroLeak e a segmentação por quadros rotativos. Entregamos a mesma página ao Tesseract, AWS Textract, GPT-4V e Claude Vision e mostramos o que sai do outro lado.