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

Spear phishing: entenda ataque que atingiu famosos no Twitter e previna-se

Getty Images
Imagem: Getty Images

Felipe Oliveira

Colaboração para Tilt

26/08/2020 04h00

O ataque que atingiu cerca de 130 contas de personalidades no Twitter, no dia 15 de julho, levantou debates sobre como as empresas podem proteger melhor seus dados. Afinal, a investigação do caso apontou para uma falha humana de funcionários do próprio Twitter, em uma modalidade de invasão chamada "phone spear phishing".

A ação, liderada por um adolescente de 17 anos, preso na Flórida ainda em julho, afetou personalidades como o candidato a presidência dos Estados Unidos, Joe Biden, o ex-presidente americano Barack Obama e bilionários da tecnologia como Bill Gates e Elon Musk.

Logo após o ataque, o Twitter revelou que os hackers usaram o "phone spear phishing" —uma técnica não tão nova, mas que costuma ser bastante eficiente. Mas por que ocorreu em uma empresa de tecnologia, onde sua equipe em tese deveria estar mais preparada?

O que é o phone spear phishing?

Muita gente sabe como funciona o phishing, ataque no qual os cibercriminosos disparam milhares de emails ou SMS com um link ou anexo. Esses links direcionam as vítimas a versões falsas de sites conhecidos —às vezes iguais aos originais— e solicitam que o usuário envie informações sigilosas como e senha de o a uma conta de banco, por exemplo. Já os anexos em emails baixam malwares (programas nocivos) para os equipamentos da vítima.

O spear phishing diferencia-se da modalidade tradicional do golpe por ser mais direcionado. Enquanto no phishing comum os disparos de emails são feitos aleatoriamente para pegar pessoas desprevenidas, a versão "spear" possui um alvo pré-determinado.

Com ele, o invasor escolhe sua vítima e pesquisa sobre ela, ou sobre a empresa onde trabalha, para parecer o mais autêntico possível em sua abordagem. A ideia é reunir o máximo de informações pessoais da vítima que foram postadas publicamente nos seus perfis de redes sociais, como LinkedIn, Facebook e Twitter. Os atacantes também podem tentar obter esses dados por meio de ligações por voz.

"O spear phishing ocorre quando um invasor liga para o alvo fingindo ser alguém com autoridade ou um colega que precisa de ajuda", explica Luis Corrons, especialista de segurança da Avast.

"Se esses funcionários não fornecerem as informações ou não tiverem o a esses dados, os criminosos usam essas informações para fazer outro ataque Vishing (outra forma de chamar o phone spear phishing) a outros funcionários", afirma Cecilia Pastorino, especialista em segurança da Eset América Latina.

Além disso, para não causar desconfiança, os golpistas usam técnicas para alterar os números de telefone que aparecem para a possível vítima, fazendo com que ela não desconfie da ligação que está recebendo.

"Eles alteram o número com provedores que chamamos de VoIP (ligação de voz pela internet). Esse serviço de telefonia está na nuvem e você consegue alterar o ID chamador para o número que quiser. Existem softwares gratuitos que fazem esse tipo de mecanismo. Confiar no número chamador é a primeira coisa que você não deve fazer", ressalta Alexandre Bonatti, diretor de engenharia da Fortinet Brasil.

Outro ponto importante, do ponto de vista do fraudador, é o poder de convencimento. Para isso, eles buscam pessoas que tenham uma boa oratória e consigam convencer a vítima de que aquela ligação partiu realmente de alguém de dentro da empresa. Assim, os cibercriminosos pesquisam outros fraudadores para fazer uma parceria. Muitos deles procuram no Discord, aplicativo de chat muito usado por gamers.

"Nessa comunidade é muito comum encontrar pedidos assim: 'preciso de parceria com alguém que não tenha voz de criança e possua inglês perfeito para um trabalho'. Esse tipo de anúncio está buscando pessoas para os ataques de spear phishing. Quem é convidado para trabalhar e aceita recebe como recompensa uns tantos bitcoins", conta Fabio Assolini, analista de segurança sênior da Kaspersky.

Como foi o ataque no Twitter

De acordo com o próprio Twitter, os hackers se aram por membros da equipe de tecnologia da empresa. Especialistas apontam que o fato de os colaboradores estarem trabalhando em home office por conta da pandemia facilita esse tipo de ataque.

Em outra frente, os hackers fizeram um página de o de usuários idêntica à usada no ambiente corporativo da empresa. Assim, ao ar tal página, os usuários se sentiram seguros e colocaram e senha, que instantaneamente eram enviados a um hacker que operava a página falsa.

Provavelmente as contas dos funcionários tinham um fator de dupla autenticação, segundo os especialistas ouvidos por Tilt. Isso faz com que os atacantes necessitem desse código além da senha e dos funcionários. Estes conseguem gerar instantaneamente por meio de um aplicativo de segurança. Assim, precisaram também convencer as vítimas a ceder esse código, assim como ocorre com golpes recentes de WhatsApp no Brasil.

Com esse código em mãos, os hackers tiveram entre um e dois minutos para roubar as contas dos usuários atingidos, como Obama, Musk e afins. Parece pouco tempo, mas com um trabalho bem coordenado, isso é mais do que suficiente. Depois da invasão, publicaram tuítes promovendo um esquema para arrecadação de bitcoins —investigações apontam que a fraude arrecadou mais de US$ 100 mil em apenas um dia.

"Tudo é feito de forma coordenada. Enquanto o funcionário enganado colocava os dados no site falso, outro fraudador recebia a informação. Eles fizeram isso e tiveram o ao istrativo dos funcionários do Twitter", explica Fábio Assolini.

Falta de treinamento

Um dos principais problemas de segurança que as empresas enfrentam está relacionado à cultura de segurança dos funcionários. Além disso, recursos de inteligência artificial mais recentes são capazes de imitar bem vozes de pessoas confiáveis das possíveis vítimas para convencê-las por telefone. Por exemplo, os fraudadores podem se ar até por diretores das empresas.

Realizar simulações com funcionários pode ser uma boa forma de precaução. "É preciso educar o funcionário, fazer treinamento, campanhas de phishing simuladas e controladas. O duro é que isso leva tempo e algum dinheiro", diz Assolini.

"As simulações precisam ser realizadas com mais frequência. Ligar para alguém do TI [tecnologia de informação], por exemplo, para ver se o colaborador a a senha pessoal para outro funcionário. Você consegue ver qual usuário precisa de mais prevenção", explica.

Ataques no Brasil

O spear phishing no Brasil atua de forma diferente. Geralmente, esse tipo de ataque é voltado a grandes empresas do setor financeiro. "O fraudador liga e diz, 'olha, sou o diretor financeiro da unidade tal e preciso que você programe uma transferência urgente de R$ 5 mil'", destaca Fabio Assolini, da Kaspersky.

Outro tipo de atuação no Brasil é com ligações diretas para clientes bancários. Os fraudadores ligam para a vítima afirmando que o cartão foi clonado e pedem para que corte o cartão e o entregue a um motoboy, mas com o chip intacto. "Esses ataques foram muito bem sucedidos no ano ado, várias pessoas tiveram seus cartões clonados, fraudados", conta.