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

Costa Rica se recusa a pagar US$ 15 mi para hackers e país segue em caos

Darwin Lagazon/ Pixabay
Imagem: Darwin Lagazon/ Pixabay

Colaboração para Tilt, do Rio de Janeiro

01/06/2022 16h28

Os vários ataques cibernéticos que têm atingido o governo da Costa Rica desde abril ganharam mais capítulo ontem (31). O sistema de saúde pública do país foi desativado numa nova ação hacker. Há riscos de atrasos no atendimento médico e de cirurgias.

Até o momento, quase 30 instituições governamentais da Costa Rica já foram alvos de sequestro de dados de seus sistemas —essa estratégia de ataque é conhecida como ransomware. A ação criminosa está sendo atribuída ao grupo hacker Conti, considerado um dos mais perigosos do mundo.

"Estamos testemunhando o início de uma era de ataques cibernéticos sem precedentes", afirmou Diego González, chefe da área de Segurança Cibernética da Câmara de Tecnologias da Informação e Comunicação da Costa Rica (CAMTIC), segundo reportagem do site Rest Of Wolrd.

O país declarou estado de emergência nacional no mês ado e até o momento se recusa a pagar o resgate de US$ 15 milhões atualmente exigidos pelos hackers. Com informações de órgãos públicos iníveis, processos envolvendo cobrança de impostos, pagamento de salários e consulta a serviços foram impactados.

Entendendo o caos instalado

Os primeiros ataques cibernéticos foram registrados em 12 de abril. Até o dia 18 do mesmo mês, oito instituições públicas da Costa Rica já haviam sido alvo. Os cibercriminosos pediram inicialmente US$ 10 milhões como pagamento do resgate.

A Câmara de Comércio Exterior da Costa Rica estimou na época mais de US$ 125 milhões de perdas pela indisponibilidade de seus serviços.

Com o ar dos dias, novos sistemas públicos começaram a ser atacados. No dia 8 de maio, o grupo criminoso exigiu resgate de US$ 20 milhões. Seis dias depois, no dia 14, o valor foi reduzido para US$ 15 milhões.

Algumas operações do Ministério da Fazenda, por exemplo, estão interrompidas há quase um mês. Os processos precisaram, nesse caso, voltar a ser executados de maneira manual, através de papel e caneta. No Brasil, o Tesouro Nacional já sofreu ataques do tipo através de ransomware.

A economia está perdendo cerca de US$ 30 milhões por dia desde os primeiros ataques, segundo a congressista Gloria Navas.

O ministro das Finanças, Nogui Acosta, alertou que o governo não tem certeza se conseguirá equilibrar as contas de maio e não sabe se os impostos estão sendo pagos corretamente, nem o que foi gasto.

"O ataque cibernético tornou o pagamento de impostos e o faturamento de receitas mais complicados, porque contamos com o sistema do Ministério das Finanças", disse Daniel Jiménez, microempreendedor, ao Rest of World.

Os sistemas de folha de pagamento também estão com problemas de o. Com isso, cerca de dezenas de milhares de salários de funcionários públicos estão sem receber. Diante do caos, professores começaram a se mobilizar contra o governo.

"Muitos dos meus colegas estão ando por uma infinidade de dificuldades. Muitos estão encontrando dificuldades para pagar dívidas importantes, como suas hipotecas. Alguns estão lutando para cobrir necessidades básicas", afirmou Heidy Valencia, professora de espanhol que trabalha na capital do país, San José, de acordo com a reportagem.

O que pode ter incentivado os ataques

Recentemente, foi relatado que o Conti sofreu um processo de reformulação e está trabalhando com organizações menores de hackers, segundo a reportagem.

Sendo assim, há uma suspeita de que o ataque à Costa Rica foi motivado por um desejo de publicidade e não de dinheiro. Os Estados Unidos chegaram a anunciar recentemente a recompensa de US$ 15 milhões por pistas sobre a identificação e localização de seus membros.

Jorge Mora, ex-diretor de Governança Digital do país, acredita que um possível motivo para as ações é que a Costa Rica começou a se destacar nos últimos dois anos no cenário da segurança cibernética.

Em 2019, a Controladoria Geral da República publicou uma análise sobre as fragilidades dos sistemas de TI (Tecnologia da Informação) do Ministério da Fazenda, apontando vulnerabilidades críticas.

"Esses relatórios de auditoria contêm muitos detalhes", disse Mora ao site Rest of World, que estava intimamente envolvido no trabalho de segurança cibernética da instituição pouco antes do ataque.