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

Fique atento: sites de streaming também são usados como iscas por hackers

Página de  da Netflix falsa (esq.) e verdadeira (dir.) - Reprodução
Página de da Netflix falsa (esq.) e verdadeira (dir.) Imagem: Reprodução

Felipe Oliveira

Colaboração para Tilt

16/08/2020 04h00

Você está prestes a entrar em uma plataforma de streaming para assistir aquela série que todo mundo está comentando e, na empolgação, nem percebe que caiu em um golpe. Aproveitando-se da popularidade de serviços como Netflix, Amazon Prime e Disney+, cibercriminosos começaram a usar o visual dessas plataformas como iscas, segundo relatório da empresa de segurança Kaspersky.

Os ataques são feitos por meio de emails de phishing —isto é, usando uma isca para enganar as pessoas— ou páginas falsas para . O objetivo, segundo a Kaspersky, é coletar credenciais de contas, informações financeiras ou fazer com que os usuários baixem diversas ameaças, como adware (programas que mostram propaganda intrusiva) e malware (programas nocivos ao aparelho).

A Kaspersky localizou páginas de s falsas da Netflix, por exemplo, em quatro idiomas: português, francês, inglês e espanhol.

Email falso que usa Netflix como isca - Reprodução - Reprodução
Email falso que usa Netflix como isca
Imagem: Reprodução

Páginas falsas da Netflix e Disney+ lideram ataques

Segundo a Kaspersky, as iscas mais utilizadas são a Netflix e a série "The Mandalorian", original da Disney+, serviço que só chegará ao Brasil em novembro. Entre janeiro de 2019 e abril de 2020, a empresa de segurança detectou mais de 22 mil tentativas de infecção que usavam o nome da Netflix como isca, enquanto a série "The Mandalorian" foi utilizada em 5.855 tentativas de infecção.

"Para os cibercriminosos, a mudança para o streaming significa que um novo canal de ataque lucrativo foi aberto. De fato, poucas horas após o lançamento do Disney+, milhares de contas de usuários foram invadidas e suas senhas e emails foram alterados. Os criminosos venderam essas contas online por US$ 3 a US$ 11", aponta o relatório.

A Kaspersky examinou possíveis ameaças em plataformas de streaming como Hulu, Disney+, Netflix, Apple TV+ e Amazon Prime Video. A análise detectou 57.784 tentativas de infectar usuários que buscavam ar essas plataformas de forma não oficial, ou seja, por meio de arquivos maliciosos que usavam seus nomes. Apenas a Apple TV+ não apresentou registros.

"Quando se trata de plataformas de streaming, o malware e outras ameaças (como adware) costumam ser baixados quando os usuários tentam obter o por meios não oficiais, seja comprando contas com desconto, obtendo um 'hack' para manter a avaliação gratuita em andamento ou tentando ar uma gratuita", diz o relatório.

Muitas vezes, esses links ou arquivos não oficiais vêm com outros programas maliciosos, como cavalos de Tróia (programas que realizam ações não autorizadas pelo usuário, como alteração de dados) e backdoors (método secreto para burlar a segurança dos aparelhos).

Ao investigar 25 programas originais nessas plataformas, a empresa de segurança descobriu que os cinco programas mais usados como isca são "The Mandalorian" (Disney+), "Stranger Things" (Netflix), "The Witcher (Netflix), "Sex Education" (Netflix) e "Orange is the New Black" (Netflix).

De acordo com a Kaspersky, a ameaça mais frequente encontrada para todos os ataques que usavam o nome de uma das cinco plataformas de streaming eram os diferentes tipos de cavalos de Troia, que representavam 47% de todas as ameaças.

"Conforme cresce a popularidade dessas plataformas, também aumenta a atenção que elas recebem de usuários. Eles podem ficar tentados a procurar métodos alternativos para assistir ao seu conteúdo favorito online, em vez de pagar por mais uma . Para ficar seguros, a melhor opção é ar as plataformas e programas via fontes oficiais", afirma Anton Ivanov, analista de malware da Kaspersky.

Brasil entre os países mais afetados

O relatório divulgado pela Kaspersky separou os ataques usando as plataformas de streaming como isca por região. Segundo o levantamento, o Brasil está entre os países mais afetados nas ocorrências com o nome da Netflix e da Amazon Prime.

Segundo a pesquisa, a Alemanha lidera os ataques relacionados a páginas falsas da Netflix, concentrando 11,2% dos ataques, seguida pela Argélia, com 8,2%, e Brasil e Índia, com 7,8% cada. No caso da Amazon Prime, a liderança global de ataques registrados fica com os Estados Unidos, com 36,5% dos ataques, seguidos por Índia, com 17,8%, Alemanha, com 15,1%, e Brasil, com 4,3%.

Com relação as outras plataformas presentes no estudo, o Brasil não aparece entre os cinco primeiros colocados.

A Kaspersky cita algumas dicas para os usuários se protegerem:

  • Sempre que possível, e as plataformas de streaming usando sua própria paga pelo site ou aplicativo baixado de lojas oficiais;
  • Não baixe nenhuma versão não oficial ou modificada dos aplicativos dessas plataformas;
  • Use senhas fortes e diferentes para cada uma de suas contas;
  • Use uma solução de segurança confiável.

O que dizem as plataformas

Procurada por Tilt, a Netflix afirmou que a segurança das contas dos nossos s é uma prioridade da empresa. Além disso, a empresa enviou uma página que traz explicações sobre como manter a conta protegida. Disney+ e Amazon Prime não comentaram as tentativas de golpes com suas marcas.