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

Potência hacker e de desinformação, Irã deve usar web em retaliação aos EUA

Instalação de enriquecimento de urânio em Natanz, no Irã, foi alvo do Stuxnet, um dos maiores ciberataques já realizados; desde então, iranianos são ativos neste campo - Vahid Salemi/AP
Instalação de enriquecimento de urânio em Natanz, no Irã, foi alvo do Stuxnet, um dos maiores ciberataques já realizados; desde então, iranianos são ativos neste campo Imagem: Vahid Salemi/AP

Rodrigo Trindade

De Tilt, em São Paulo

04/01/2020 15h44

Sem tempo, irmão

  • Desde 2010, Irã esteve associado a 37 ciberataques a órgãos estatais ou empresas
  • Estados Unidos e especialistas em cibersegurança aguardam retaliação digital
  • Irã foi alvo de um dos maiores ciberataques da história, mas protagonizou outro

Os Estados Unidos se preparam para uma série de ataques cibernéticos do Irã, uma das possíveis retaliações do país asiático após a morte do general Qassim Suleimani na sexta-feira (3). Tanto autoridades americanas quanto especialistas em cibersegurança alertaram para o poderio e a alta atividade iraniana neste campo.

Horas depois da confirmação da morte de Suleimani, o diretor da CISA (Agência de Cibersegurança e Segurança de Infraestrutura, da sigla em inglês), Chris Krebs, usou o Twitter para compartilhar um comunicado emitido pelo órgão em junho de 2019. Este era um aviso do aumento da atividade maliciosa do Irã no ciberespaço, com ênfase em "destrutivos ataques wiper", nos quais dados são deletados, em vez de um "simples" roubo de dinheiro e informações.

"Em resumo, hora de se atualizar sobre as táticas, ferramentas e procedimentos iranianos e prestar atenção a seus sistemas críticos", reforçou Krebs.

De presa a predador

O poderio iraniano no campo cibernético pode ser traçado a uma ação creditada aos Estados Unidos e Israel, mas de autoria não confirmada. Em julho de 2010, o Stuxnet, um malware do tipo worm (que se replica automaticamente), comprometeu os sistemas de controle industrial em uma instalação de enriquecimento de material nuclear no Irã.

O malware fez as centrífugas da instalação pararem de funcionar, mas sem alertar operadores de que algo estava errado. O ataque foi interpretado como uma maneira de frear o programa nuclear iraniano sem a necessidade de um bombardeio ou outro tipo de ofensiva com armas tradicionais.

Desde 2010, de acordo com dados do contador de operações cibernéticas do think tank americano Council on Foreign Relations, o Irã foi associado a 36 ciberataques a alvos diversos, que variaram de bancos a empresas de tecnologia, energia, comunicação, universidades e órgãos governamentais. O mais significativo deles ocorreu em 2012, quando a Saudi Aramco, estatal saudita de petróleo, teve os dados de 35 mil computadores apagados.

Ao Technology Review, o diretor de análise de inteligência da empresa de cibersegurança FireEye, John Hultquist, os Estados Unidos foram um dos principais alvos iranianos até 2015, quando os dois países - mais Europa, China e Rússia - am um acordo nuclear, do qual Trump tirou os americanos em 2018.

Para Hultquist, as ameaças de atores estatais iranianos, ou apoiados pelo país, vão subir. Por enquanto, a previsão não inclui ataques à infraestrutura crítica dos Estados Unidos, como fornecimento de água ou energia, mas a espionagem dos sistemas do governo americano. "Também antecipamos ciberataques disruptivos e destrutivos contra a esfera privada", afirmou o diretor da FireEye.

A possibilidade de um ataque escancara o problema da falta de regras do ciberespaço. Não há um consenso internacional sobre o que é um ato de guerra virtual, apesar do potencial destrutivo material e econômico de uma ofensiva hacker. Isso gera potencial de escala de violência entre países, visto que certos ciberataques são íveis de retaliação com armas convencionais.

Campanhas de desinformação

Além de ataques feitos por hackers maliciosos, o Irã também tem histórico de atuação em campanhas de desinformação, motivadas a influenciar a opinião pública de outros países de uma forma favorável ao estado iraniano.

A CNN reuniu exemplos dessa atuação no Twitter e Facebook, redes sociais onde o país criou redes de contas falsas que fingiam ser pessoas politizadas e críticas aos rivais políticos do Irã. Em outubro de 2018, o Facebook identificou essa atuação de "comportamento coordenado não autêntico" e removeu "múltiplas páginas, grupos e contas originadas no Irã".

O diretor do laboratório de pesquisa forense digital do think tank Atlantic Council, Graham Brookie, explicou que a maioria do conteúdo espalhado digitalmente pelo Irã tem relação com a visão de mundo do país ou seus "objetivos específicos de política externa". Nas campanhas identificadas pelo Facebook, parte do conteúdo era crítico ao presidente Donald Trump.

A FireEye identificou, no entanto, que o Irã conseguiu até imprimir sua opinião 13 vezes nas seções de "cartas ao editor" de jornais americanos.

SIGA TILT NAS REDES SOCIAIS