;(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

OAB pede investigação do vazamento de dados de 220 milhões de pessoas

OAB pede investigação do vazamento de dados de 220 milhões de pessoas - OAB
OAB pede investigação do vazamento de dados de 220 milhões de pessoas Imagem: OAB

28/01/2021 20h51

A Ordem dos Advogados do Brasil (OAB) pediu que a Autoridade Nacional de Proteção de Dados (ANPD) investigue o vazamento de dados de mais de 220 milhões de brasileiros. As informações foram disponibilizadas para venda na internet, e o episódio foi noticiado em veículos de comunicação.

No ofício enviado à ANPD, a Ordem dos Advogados manifesta preocupação com o vazamento, que compreende uma base de Fs em número superior ao da população brasileira. São 37 bases de dados que abarcam nome, endereço, foto, score de crédito, renda, situação na Receita Federal e Instituto Nacional do Seguro Social (INSS). Parte dos dados, como nome e F, foi publicada na internet gratuitamente. Já o conjunto completo dos registros está sendo vendido em fóruns da rede.

"O ocorrido submete praticamente toda a população brasileira a um cenário de grave risco pessoal e irreparável violação à privacidade e precisa ser investigado a fundo pelas autoridades competentes, em particular por essa agência", destaca o ofício da OAB.

A Ordem dos Advogados ressalta que não houve notícia sobre medidas adotadas pela Autoridade Nacional de Proteção de Dados sobre o incidente. O ofício lembra que a Lei Geral de Proteção de Dados (No 13.709 de 2018) atribui à ANPD a responsabilidade de fiscalizar agente de tratamento, inclusive por meio de auditorias, e pede que o órgão tome providências.

Segundo a presidente da Comissão de Proteção de Dados da Ordem dos Advogados do Brasil - Seção Rio de Janeiro, Estela Aranha, este pode ser o maior vazamento de dados da história do país, não somente em número de pessoas mas também na diversidade de informações.

Estela diz que a primeira tarefa é investigar como o vazamento ocorreu e quem está por trás dele para responsabilizar o controlador do banco de dados. Ela acrescenta que, emergencialmente, é preciso ter também um plano de contingência, com as medidas que precisam ser tomadas para reduzir os riscos para as pessoas cujas informações foram vazadas ou colocadas à venda.

"A primeira é informar amplamente os titulares dos dados sobre os riscos envolvidos e quais medidas podem ser tomadas para mitigar possíveis danos. Outra é que deve recair sobre o controlador dos dados a responsabilidade por tais medidas", explica a advogada.

Segundo Estela, nos Estados Unidos, houve um episódio de grande vazamento da empresa Equifax que terminou com um acordo para a criação de um fundo de US$ 420 milhões direcionados ao ressarcimento das perdas das vítimas.

Como a Autoridade Nacional de Proteção de Dados foi efetivamente instituída há alguns meses, Estela Aranha defende a busca de parceria desta com outras instituições, como a Polícia Federal e a Secretaria Nacional do Consumidor, do Ministério da Justiça.

Origem

Não há comprovação de onde os dados teriam saído. Para o diretor da Associação Data Privacy Brasil, Rafael Zanatta, ou o responsável reuniu todas essas informações, ou elas foram obtidas de alguma base.

Há uma suspeita de que tais informações poderiam ter vindo da Serasa Experian, que trabalha com análise de crédito. A hipótese foi motivada pelo fato de terem sido encontradas semelhanças entre os dados vazados e os usados pela empresa. A Serasa negou que os dados tenham vazado de sua base.

Para Zanatta, a prioridade agora é investigar a origem para avaliar as formas de responsabilização de quem está por trás do vazamento, partindo dos indícios já existentes. Ele entende que seria necessário "delimitar, por meio de auditoria da ANPD, os servidores da Serasa e as bases [vazadas] para responder qual o grau de similitude".

Zanatta explica que, no caso das pessoas que tiveram dados vazados ou comercializados, ainda não há nada que possa ser feito enquanto não forem encontrados os responsáveis, mas argumenta que é para além da ANPD e que outros entes públicos, como o Congresso Nacional, podem debater medidas para mitigar os efeitos do vazamento e evitar novos incidentes como este.

ANPD

Em nota à Agência Brasil, a Autoridade Nacional de Proteção de Dados respondeu que, desde que tomou conhecimento do incidente, "destacou todo seu quadro técnico para analisar, com base na LGPD, os aspectos que cercam o ocorrido".

A autoridade diz que já recebeu informações do Serasa e oficiou a Polícia Federal, a empresa Psafe, que encontrou o vazamento, o Comitê Gestor da Internet no Brasil e o Gabinete de Segurança Institucional da Presidência da República.

Senacon

A Secretaria Nacional do Consumidor (Senacon) instaurou procedimento para averiguação do caso. A Serasa Experian foi notificada para informar se os dados saíram de sua base ,ou de operadoras que tratam informações a seu mando, e por quanto tempo os dados ficaram expostos.

No inquérito, a Senacon quer saber também quem teve o aos dados vazados, quais informações foram adas e que medidas foram adotadas para melhorar a segurança e proteção da informação destes indivíduos. A Senacom deu 15 dias para que a Serasa respondesse aos questionamentos.