;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Megavazamento de dados brasileiros expõe fotos de documentos e nome de mães

Vazamento expõe documentos de 13 mil brasileiros - Syhunt
Vazamento expõe documentos de 13 mil brasileiros Imagem: Syhunt

Letícia Naísa

De Tilt, em São Paulo

31/07/2021 04h00Atualizada em 31/07/2021 14h48

Dois grandes vazamentos expam dados e informações sensíveis de brasileiros na internet, desta vez com fotos de RGs, Fs e CNHs. O material está sendo vendido em um fórum por US$ 300 (cerca de R$ 1.516).

No total, são 13 mil imagens de documentos em um arquivo de 1,2 GB. Em outra postagem do fórum, uma "amostra grátis" expõe informações de 2,5 milhões de pessoas.

O autor do crime afirma ter dados de 227 milhões de brasileiros, segundo a empresa de cibersegurança Syhunt, que identificou o megavazamento e monitora esse tipo de ação desde janeiro, quando houve um vazamento de dados de 220 milhões de pessoas. Entre as informações, há nomes completos, datas de nascimento, Fs, sexo, endereços residenciais e os nomes das mães de pessoas vivas e que já morreram.

Muitos dos dados expostos já estavam à venda em vazamentos anteriores, mas esta é a primeira vez que alguém consegue vazar o nome das mães de usuários, segundo a Syhunt, de forma gratuita.

"É um dado valioso por ser frequentemente solicitado em etapas de validação de serviços online", escreve a empresa em relatório.

Vazamento expõe documentos de 13 mil brasileiros - Syhunt - Syhunt
Vazamento expõe documentos de 13 mil brasileiros
Imagem: Syhunt

A empresa não sabe dizer quando os usuários conseguiram essas imagens, mas há indícios na publicação do cibercriminoso de que os dados foram obtidos por meio de um servidor do Detran/DF e têm a data máxima de 2019. A base completa tem 37,7 GB. Não foram encontrados indícios de que os hackers tentaram extorquir alguma empresa, ou seja, não tem características de um ramsomware.

É muito grave

"Era previsível que isso fosse acontecer. Vazou tanta informação no começo do ano que faltava a cereja do bolo, que são s e fotos de documentos das pessoas", diz Felipe Daragon, fundador da Syhunt, em entrevista a Tilt.

E isso, alerta ele, é só o começo: "13 mil fotos parece pouca coisa, mas a tendência é esse número aumentar", afirma.

Uma das preocupações do especialista é que esse número seja apenas uma amostra de um banco ainda maior que pode estar em mãos dos cibercriminosos. "Não dá pra saber se é só a ponta do iceberg, isso virou um problema global", ressalta.

Outra coisa que não dá para saber é se o seu documento está nessa lista. Ou se seus dados estão entre os 2,5 milhões expostos — ou entre os 217 milhões à venda.

É muito lucrativo

    Esse tipo de dado se tornou valioso, porque permite que muita gente lucre aplicando golpes. Com todas as informações de uma pessoa, fica muito fácil para qualquer pessoa abrir contas e criar linhas de crédito em nome dela.

    Aplicativos bancários, por exemplo, costumam pedir, além de dados básicos, também uma foto da pessoa segurando seu documento para ela provar que é ela mesma.

    Para Eduardo Schultze, líder de Threat Intelligence da Axur, outra empresa de cibersegurança, os sistemas atuais são falhos.

    "O mais indicado que é a selfie com o documento seja tirada na hora e não que a pessoa possa fazer de uma foto do celular", defende. "Os s são perigosos porque qualquer pessoa pode subir qualquer foto, então pode ser usada uma foto de um terceiro, podem ser usados dados de outras pessoas", alerta.

    E pode pedir o RG?

    Outros aplicativos, como o Mercado Livre, têm exigido foto para conclusão de compra no site, o que, segundo especialistas consultados por Tilt, é desnecessário e pode colocar em risco dados pessoais dos clientes.

    "A exigência de foto do RG é desproporcional e desnecessária para realização de cadastro e viola os princípios da finalidade, adequação e necessidade da Lei Geral de Proteção de Dados", diz Luã Cruz, pesquisador do programa de direitos digitais do Idec (Instituto Brasileiro de Defesa do Consumidor).

    Cruz considera "extremamente perigoso" exigir mais dados que o necessário para a execução de um serviço, como nesse caso, porque vão sendo criadas bases de dados que podem vazar ou ser reutilizadas para outros fins.

    Se, numa dessas, a foto do seu RG vazar e acabar nas mãos de criminosos? Os estragos são imprevisíveis, diz Carlos Affonso de Souza, diretor do Instituto de Tecnologia e Sociedade (ITS Rio).

    "Se todo mundo tiver o a todos os nossos dados pessoais, essas pessoas podem se ar por nós, podem contrair empréstimos, se comunicar com pessoas próximas e elas não vão saber. Isso é porteira aberta para uma série de fraudes e golpes."

    Como se proteger?

    • Mantenha seu antivírus em dia;
    • Não clique em links que pareçam suspeitos ou que você não sabe de onde veio;
    • Troque suas senhas com frequência;
    • Crie senhas seguras;
    • Reavalie quais contas em fintechs e sites você não usa mais e acione a LGPD: peça para ter seus dados removidos da base da empresa

    *Com matéria de Lucas Carvalho