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

Celular e até religião: veja se hackers roubaram seus dados do Facebook

Gabriel Francisco Ribeiro

Do UOL, em São Paulo

12/10/2018 16h27

O Facebook divulgou nesta sexta-feira (12) que 29 milhões de contas da rede social tiveram informações expostas a hackers na mega falha de segurança que veio a público no fim de setembro. A rede social divulgou uma página que diz se você foi afetado ou não pelo vazamento de dados pessoais.

Clique aqui (facebook.com/help/securitynotice) para saber se você foi afetado. Ao rolar a tela, uma caixa azul vai dizer se a conta foi ou não exposta a hackers e em que nível. O site ainda não foi disponibilizado em português (use um tradutor automático para entender caso você não entenda).

Uma dica é: se você vir o "Yes" na caixa azul, significa que hackers tiveram o ao seu perfil.

Veja também:

Entre os dados que vazaram para hackers, estão informações sensíveis como número de telefone, endereço de email e localização do usuário - muitos brasileiros foram afetados.

A rede social havia estimado anteriormente o número de afetados em 50 milhões, mas reduziu para 29 milhões após investigação.

Página do Facebook informa se dados foram ados por hackers - UOL - UOL
Página do Facebook informa se dados foram ados por hackers
Imagem: UOL

Em um caso em que o "sim" é avisado pela rede social, é possível ver um o gigantesco de informações por hackers:

- Nome
- Endereço de email
- Celular
- Nome de usuário
- Data de nascimento
- Gênero
- Tipos de dispositivos em que você ou o Facebook
- A língua em que você usa o Facebook
- Status de relacionamento
- Religião
- Cidade de nascimento
- Cidade atual
- Trabalho
- Educação
- Site
- 10 mais recentes localizações que você fez check-in ou que foi marcado
- 15 buscas mais recentes que você procurou na barra do Facebook
- Pessoas e páginas que você segue no Facebook

A listagem de dados acima está em 14 milhões de contas que tiveram dados mais ados. O nível do ataque hacker pode variar — outras 15 milhões tiveram "apenas" parte dos dados entregues nas mãos de hackers.

O o a dados sensíveis, como no caso desta falha do Facebook, é gravíssimo segundo a nova lei de dados europeia, a GDPR. O Facebook pode tomar uma multa bem alta por causa da vulnerabilidade ao não fazer o suficiente para proteger dados de usuários.

Segundo a rede social, os hackers não tiveram o a senhas de contas e informações de pagamentos ou cartão de crédito.

GDPR: nova lei europeia fecha cerco à exploração de dados pessoais e influencia o comportamento das empresas por todo o mundo

Entenda

O Facebook apontou ainda que os amigos dos próprios hackers foram os primeiros afetados - a ação seguiu em escala pegando amigos de amigos até chegar ao número absurdo de 30 milhões. Tudo isso foi feito automaticamente e um amigo acabou expondo outro. Os hackers atuaram por 11 dias até o Facebook descobrir que estava sob ataque.

Fui afetado, e agora?

O Facebook explica que as informações poderiam ser usadas por hackers ou por terceiros para criar e espalhar spam no Facebook e fora dele.

Para se prevenir, a rede social recomenda:

- Ficar atento a ligações indesejadas, mensagens de texto e emails de pessoas que você não conhece
- Seu email e número de telefone podem ser usados contra você para spam ou tentativas de phishing
- Se você receber um email que diz ser do Facebook, pode revisar os emails seguros recentes em sua conta para confirmar se é legítimo
- Outras informações podem ser usadas para te enviar emais personalizados e mensagens que podem dar golpes em você

FBI está investigando

A empresa de Mark Zuckerberg apontou ainda que está trabalhando com autoridades para investigar os hackers envolvidos na ação. O FBI está envolvido no caso e pediu para que a rede social não divulgue quem pode ser o autor por trás da invasão.

"Estamos cooperando com o FBI, que está investigando ativamente e pediu para nós não discutirmos quem pode estar por trás do ataque", escreveu Guy Rosen, executivo do Facebook, em um post no blog da companhia.

Está seguro? Veja como ficar mais protegido online

Leia mais

O ataque hacker

Segundo a companhia, hackers aproveitaram uma falha no código da função "Ver como". A vulnerabilidade permitiu que os criminosos assem tokens — "chaves digitais" que deixam as pessoas continuar logadas no serviço sem precisar recolocar a senha — e isso poderia ser usado para tomar controle das contas das pessoas.

"Este ataque explorou uma interação complexa envolvendo uma série de ocorrências em nossos códigos. Ele nasceu de uma mudança de código que fizemos na nossa ferramenta de de vídeo em julho de 2017, que impactou a funcionalidade 'Ver como'. Os invasores não precisaram apenas encontrar essa vulnerabilidade e usá-la para ganhar o a um token, mas também tiveram que ir desta conta a outras para roubar mais tokens", disse Guy Rosen, vice-presidente de gerenciamento de produto do Facebook.

Para resolver o problema, o Facebook resetou os tokens de o de 50 milhões de contas. Outros 40 milhões de perfis foram deslogados como precaução. Com isso, 90 milhões de perfis foram afetados -- isso representa 4% do total de 2,23 bilhões de usuários mensais do site.

Você é o produto: cada o que você dá na web gera rastros e essas informações são usadas para te vigiar e influenciar o seu comportamento

Entenda