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

Ministério da Saúde foi alvo de grupo conhecido por bullying sob demanda

Imagens enviadas por fontes a Tilt apontam o  do grupo de doxing como envolvido no ataque ao Ministério da Saúde - Reprodução
Imagens enviadas por fontes a Tilt apontam o do grupo de doxing como envolvido no ataque ao Ministério da Saúde Imagem: Reprodução

De Tilt e colaboração para Tilt, em São Paulo

14/12/2021 09h00Atualizada em 14/12/2021 14h04

O ciberataque sofrido pelo Ministério da Saúde —que tirou do ar a página da pasta e vários sistemas, como o ConecteSus— não foi um "ransomware" (sequestro de dados), mas um "doxing", espécie de bullying virtual encomendado, feito com a intenção de envergonhar um alvo. Esta é a conclusão de fontes consultadas por Tilt que analisaram as evidências que temos até o momento.

Na sexta-feira, quando o site do Ministério da Saúde foi alvo de um ataque que tirou o o da população a diversos serviços de saúde pública, os especialistas mencionaram o "ransonware", porque a mensagem deixado pelo grupo Lapsus$, que reivindica a ação, dava indícios de sequestro do sistema: "50 TB [terabytes] de dados foram copiados e excluídos".

Horas depois, a Polícia Federal (PF) descartou esta possibilidade, pois os dados não estavam criptografados e foram recuperados sem necessidade de pagamento de resgate. O Ministério da Saúde informou que as informações devem voltar ao ar "em breve" —há backup de todas as informações e nenhum dado sobre vacinação foi perdido.

Então, ou-se a falar em "defacement", uma "pichação virtual" que apenas altera uma página, sem comprometer os dados. Nesse tipo de ataque, uma página é simplesmente direcionada para outra (redirecionamento de DNS).

Isso realmente aconteceu, mas fontes apontam que o ataque teria ido além. Ao analisar os contatos do Telegram que deveriam negociar o suposto resgate dos dados com o governo federal, descobriu-se que o da página, que não iremos identificar, também é dono de um site de "doxing" e de um grupo privado da plataforma "Doxbin".

Neste tipo de página ou grupo, as pessoas compartilham anonimamente potenciais alvos para ações do grupo e compartilham informações sensíveis, como nome, endereço e dados financeiros, daqueles que querem assediar.

O que é doxing?

O site de vingança virtual (ou "bullying", nas palavras dos responsáveis) expõe informações pessoais com o objetivo de causar vergonha, para praticar extorsão ou por ativismo. O grupo costuma deixar claro as motivações de quem procurou o doxing, como acusações de pornografia infantil online e invasões virtuais —nem todas as histórias compartilhadas são de fácil comprovação, e muitas das publicações permanecem no ar até hoje.

Também costumam ser alvos de doxing ex-namorados/as, pessoas com cargos públicos e altos funcionários de empresas.

Uma fonte da Polícia Federal ouvida pela BBC News Brasil afirmou que os investigadores estão trabalhando com a possibilidade de que o ataque tenha sido uma ação conhecida como "hacktivismo", feita para mandar um recado. É muito comum um grupo atacar páginas públicas para mostrar que o governo não está cuidando da infraestrutura cibernética.

No caso do site do Ministério da Saúde, os responsáveis conseguiram ar informações que permitiram o "defacement", ou seja, a "pixação virtual" da página do Ministério, hospedada na nuvem da Amazon, que ou a ter o endereço de um grupo do Telegram, onde ocorreria a negociação.

Os criminosos conseguiram credenciais de o a pelo menos 23 órgãos do governo, entre os quais o Ministério da Saúde. Com essas credenciais, conseguiram entrar e apagar a rede de dados hospedada na Amazon.

Segundo técnicos do governo, um segundo ataque, no domingo (12), teria mirado diretamente a rede do Ministério da Saúde, mas foi bloqueado.

Até 2014, o site de doxing operava na deep web (parte da internet não "encontrável" em sistemas de busca), mas uma operação do FBI (polícia federal dos EUA) derrubou o o ao endereço. Atualmente, ele está no ar e é facilmente achado em mecanismo de busca.

Em seus termos de uso, o site se define como "um local para usuários fazerem de informações em texto sem medo de censura": "se a informação for ao ar, ela só sairá se for falsa, contra nossos termos ou se recebermos uma ordem judicial do país onde está nosso servidor".

Ainda nos termos de uso é dito que o site não autoriza a veiculação de informações sobre "crianças com menos de 15 anos", solicitações de ataque doxing e pastas com dados vazados dos alvos. O grupo também diz que não apoia violência física contra seus alvos.

Expor informações que se encontram em domínio público não é crime, mas o assédio, a ameaça e o stalking são e rendem até três anos de prisão. Segundo a PF, os responsáveis poderão ser enquadrados pelos crimes de invasão de dispositivo informático, interrupção ou perturbação de serviço informático, telemático ou de informação de utilidade pública e associação criminosa.

Motivação política não comprovada

Ainda não há indícios, no entanto, de que o ciberataque que atingiu o Ministério da Saúde e tirou do ar o ConecteSUS teve motivações políticas.

A queda do sistema aconteceu num momento de tensão entre a Anvisa (Agência Nacional de Vigilância Sanitária) e o presidente Jair Bolsonaro (PL), que rechaça a ideia defendida pela agência de exigir aporte de vacina para evitar a disseminação da variante ômicron no Brasil.

Ele já se referiu à iniciativa como uma "coleira" e disse a apoiadores que não aceitaria a adoção deste recurso nacionalmente. Depois que houve o ataque, o governo publicou uma portaria adiando as exigências de quarentena e de apresentação de comprovante de vacinação para entrar no Brasil.

No sábado (11), o Supremo Tribunal Federal (STF) entrou em cena e determinou que ageiros internacionais que cheguem ao Brasil apresentem comprovante de vacinação contra o coronavírus.

Também não há indícios de que o grupo de doxing esteja por trás da adulteração das carteiras de vacinação de figuras públicas, como a ex-deputada Manuela D'Ávila, que foi candidata a vice-presidente da República pelo PCdoB.

Mas, como ressalta o advogado Ronaldo Lemos, diretor do Instituto de Tecnologia e Sociedade, este tipo de ataque a serviços públicos tende a ser uma tendência para o próximo ano, quando teremos eleições nacionais.

"Há uma mudança de estratégia em curso. Ciberataques se tornaram arma política, incorporada ao protocolo de ação de vários grupos, especialmente aqueles que se beneficiam de estratégias de medo, incerteza e dúvida", escreveu ele em sua coluna da Folha de S. Paulo.

"Uma vez que o uso de campanhas de desinformação por meio da internet tem perdido efeito, em razão da atuação das plataformas e também do Supremo, há uma migração para ataques às estruturas governamentais como forma de gerar repercussão social. Essa repercussão pode então ser instrumentalizada para avançar fins políticos e minar a confiança nas próprias instituições públicas", completa.