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

Golpe que rouba perfil no WhatsApp agora burla autenticação de dois fatores

Golpe no WhatsApp não para de fazer vítimas, que am dinheiro para os bandidos - Reprodução
Golpe no WhatsApp não para de fazer vítimas, que am dinheiro para os bandidos Imagem: Reprodução

Roseli Andrion

Colaboração para Tilt

17/05/2021 04h00

O velho golpe do sequestro de perfil do WhatsApp ficou ainda mais sofisticado. Os criminosos desenvolveram táticas de manipulação para conseguir ar a conta até de quem já habilitou a autenticação em duas etapas —que era o melhor jeito até então de evitar que seus contatos assem dinheiro para o golpista, que fingia ser você.

Eles usam a chamada engenharia social, ou seja, não precisam quebrar as barreiras de segurança, mas dar um jeito de te convencer na lábia a fornecer dados que facilitam a invasão.

O ataque começa com uma ligação, em que o criminoso se apresenta como representante do Ministério da Saúde e simula uma pesquisa sobre a covid-19. Ao fim do contato, ele diz que o entrevistado precisa informar um código enviado por SMS para confirmar que a pesquisa foi realizada.

Essa é a primeira etapa do novo golpe: se a vítima divulgar o código e não tiver a autenticação em duas etapas habilitada, a conta pode ser roubada só com esse dado.

Quando o golpista percebe que precisa da senha da autenticação em duas etapas, adiciona uma segunda fase do golpe. Após encerrar a ligação, o criminoso entra em contato com a vítima novamente como se fosse da equipe de e do WhatsApp e informa que identificou uma atividade maliciosa na conta.

Em seguida, diz que enviou um email para que o usuário possa recadastrar a dupla autenticação.

A vítima recebe uma mensagem legítima do WhatsApp com o título "Two-Step Verification Reset" (Redefinição da Verificação em Duas Etapas). Ali, encontra um link que desabilita a proteção adicional.

"O golpe se vale de engenharia social, pois força a vítima a clicar no link recebido por email e fica aguardando na linha enquanto a vítima a o link que desativa temporariamente a proteção", explica Fabio Assolini, pesquisador sênior de segurança da Kaspersky.

O golpista então aproveita que a conta está desprotegida e usa o código recebido na primeira ligação para instalar o perfil em outro celular e seguir com o golpe. Entra em contato com amigos e familiares da pessoa e começa a pedir dinheiro.

Como evitar ser vítima

Especialistas são unânimes em dizer que a ativação da autenticação em duas etapas continua a ser fundamental para não ser vítima de golpes na plataforma.

"Ela cria uma camada a mais de proteção", diz Arthur Igreja, especialista em tecnologia e segurança digital. "Nesse golpe, o problema não é a autenticação em duas etapas, é a engenharia social, que leva a vítima a sabotar sua própria conta. Se deixar de usá-la, o usuário se expõe ainda mais."

Para Daniel Cunha Barbosa, especialista em segurança da informação da ESET Brasil, é preciso conscientizar as pessoas sobre a manipulação para evitar o golpe, mostra como os criminosos agem faz com que mais gente desconfie das abordagens —que, obviamente, parecem legítimas.

"Os ataques de engenharia social abordam vulnerabilidades do comportamento humano e não há proteção para isso", diz.

Cuidado com vinganças

Nesta semana, uma usuária do WhatsApp enganou um golpista que havia sequestrado a conta de uma amiga. Ao ser abordada pelo criminoso, ela disse que poderia transferir o dinheiro que ele pedia, mas precisava de crédito no celular. Ele fez a recarga —e só percebeu que tinha sido enganado quando a vítima o informou.

Igreja alerta que a vingança pode ser perigosa. "Apesar de ser um crime digital, é equivalente a pensar que você foi assaltado na rua e foi atrás do ladrão. Não é seguro. E, dependendo do que for feito, a vítima pode estar cometendo um crime aplicando um golpe", pondera.

Barbosa concorda. "Não sabemos quem realmente está do outro lado. Pode ser só algum oportunista tentando fazer dinheiro com alguma técnica que aprendeu na internet, mas pode ser um criminoso real, com informações da vítima, que pode abordá-la de formas bem mais nocivas."

Como ativar a autenticação em duas etapas

Segundo Assolini, o WhatsApp poderia melhorar o processo de recuperação da autenticação em duas etapas para dificultar esse tipo de ataque. Uma opção seria permitir o recadastro na própria página da empresa, em vez de desativar a proteção.

Enquanto isso não acontece, a recomendação é criar cada vez mais camadas de proteção. Para criar o código da autenticação em duas etapas no WhatsApp, siga os os:

  • vá ao menu que fica nos três pontinhos no canto superior direito do app;
  • entre em "Configurações";
  • clique em "Conta";
  • selecione "Confirmação em duas etapas";
  • crie o código que será usado para a dupla autenticação.