Operação mira armazenamento de pornografia infantil e usa IA para rastrear arquivos em Goiânia

Foi deflagrada na manhã desta quinta-feira, 13, a Operação Anjo da Guarda II, que investiga o armazenamento de material de pornografia infantil em dispositivos eletrônicos. Um mandado de busca e apreensão foi cumprido em Goiânia.

A ação é coordenada pelo Grupo de Atuação Especial de Combate ao Crime Cibernético (CyberGaeco), do Ministério Público de Goiás (MPGO), e pela Delegacia Estadual de Repressão a Crimes Cibernéticos (Dercc), da Polícia Civil de Goiás (PCGO). A investigação utiliza recursos tecnológicos para identificar e coletar possíveis evidências relacionadas ao crime.

Durante o cumprimento do mandado, as equipes utilizaram o Nêmesis, ferramenta desenvolvida pelo próprio MPGO para auxiliar na localização de imagens e vídeos de pornografia infantojuvenil armazenados em dispositivos eletrônicos. Segundo o Ministério Público, a tecnologia utiliza inteligência artificial para identificar arquivos de interesse durante a análise dos equipamentos.

O sistema também permite que parte da análise seja realizada posteriormente, em laboratório, com o objetivo de preservar a cadeia de custódia das evidências. De acordo com o coordenador do CyberGaeco, Fabrício Lamas Borges da Silva, a operação integra a atuação do órgão no combate a crimes praticados no ambiente virtual.

“A operação decorre do compromisso do MPGO de combater crimes cibernéticos que exijam alto grau de especialização, bem como o esforço de priorizar a proteção de crianças e adolescentes e a cooperação e a união de esforços mútuos entre os órgãos estatais para o cumprimento de suas missões”, afirmou.

/**
* nwe-wp-gallery.js
*
* Extraído do bundle (public.js) para uso em arquivo separado.
* Requer:
* – jQuery (window.jQuery)
* – Viewer (a lib usada no bundle; pode ser importada ou estar em window.Viewer)
*
* Estrutura esperada no HTML:
* .nwe-wp-gallery
* .nwe-wp-gallery-img img (imagem principal)
* .nwe-wp-gallery-cont-list
* .nwe-wp-gallery-arrow.left/.right (setas)
* .nwe-wp-gallery-list (container com scroll horizontal)
* .nwe-wp-gallery-list-item (thumb)
* data-original=”URL” (imagem grande)
* data-pos=”1″ (posição para o contador)
* .page span (contador/posição)
*/

(function (global) {
const DEFAULTS = {
selector: “.nwe-wp-gallery”,
viewerOptions: { title: true, url: “src” },
animation: {
scrollMs: 200,
fadeMs: 200,
arrowFadeInMs: 300,
scrollPadding: 10,
scrollMultiplier: 2,
},
};

function getJquery($) {
const jq = $ || global.jQuery;
if (!jq) {
throw new Error(“[nwe-wp-gallery] jQuery não encontrado (window.jQuery).”);
}
return jq;
}

function getViewer(ViewerClass) {
// No bundle ele aparece como “new y.a(…)”.
// Aqui aceitamos via injeção ou via global window.Viewer.
return ViewerClass || global.Viewer;
}

/**
* Liga os eventos e o comportamento do “thumb strip” + setas.
* @param {jQuery} $gallery – container .nwe-wp-gallery
* @param {object} opts
*/
function bindGalleryControls($gallery, opts) {
const $ = $gallery.constructor; // jQuery ref
const $list = $gallery.find(“.nwe-wp-gallery-list”);

// Clique nas setas para scroll horizontal
$gallery
.find(“.nwe-wp-gallery-cont-list .nwe-wp-gallery-arrow”)
.off(“click.nweGallery”)
.on(“click.nweGallery”, function () {
const itemWidth = $list.find(“.nwe-wp-gallery-list-item”).outerWidth();
const step = opts.animation.scrollMultiplier * itemWidth;

let next = $list[0].scrollLeft + step + opts.animation.scrollPadding;
if ($(this).hasClass(“left”)) {
next = $list[0].scrollLeft – step – opts.animation.scrollPadding;
}

$list.animate({ scrollLeft: next }, opts.animation.scrollMs);
});

const $items = $gallery.find(“.nwe-wp-gallery-list .nwe-wp-gallery-list-item”);

// Mostra as setas quando o usuário scrolla a lista
$list
.off(“scroll.nweGallery”)
.on(“scroll.nweGallery”, function () {
const $arrows = $(this).parent().find(“.nwe-wp-gallery-arrow”);
if ($arrows.is(“:visible”) === false) {
$arrows.fadeIn(opts.animation.arrowFadeInMs);
}
});

// Força um pequeno scroll inicial (como no bundle)
$list.scrollLeft(1);

// Clique em um thumb: ativa, troca imagem principal, atualiza contador
$items
.off(“click.nweGallery”)
.on(“click.nweGallery”, function () {
$items.removeClass(“active”);
$(this).addClass(“active”);

const $main = $gallery.find(“.nwe-wp-gallery-img”);
const data = this.dataset || {};
const original = data.original;
const pos = data.pos;

if (!original) return;

const $caption = $main.find(“span”);
const $img = $main.find(“img”);
$img.fadeOut(opts.animation.fadeMs, () => {
$img.attr(“src”, original);
$caption.html(data.caption);
$img.fadeIn(opts.animation.fadeMs);
});

if (pos != null) {
$gallery.find(“.page span”).html(pos);
}
});
}

/**
* Inicializa UMA galeria: Viewer + controles.
* @param {Element|jQuery} galleryEl
* @param {object} options
* @returns {void}
*/
function initSingleGallery(galleryEl, options = {}) {
const opts = mergeDeep({}, DEFAULTS, options);
const $ = getJquery(opts.$);
const ViewerClass = getViewer(opts.Viewer);

const $gallery = $(galleryEl);
if ($gallery.length === 0) return;

// 1) Viewer (clique na imagem e abre lightbox)
if (ViewerClass) {
// Evita duplicar Viewer caso você reinicialize via AJAX/hook
// (a lib geralmente seta “element.viewer”, mas isso depende da versão).
try {
// eslint-disable-next-line no-new
new ViewerClass($gallery[0], opts.viewerOptions);
} catch (e) {
// Se o Viewer não estiver disponível/compatível, segue só com os controles
// para não quebrar a página.
}
}

// 2) Controles (setas + thumbs)
bindGalleryControls($gallery, opts);
}

/**
* Inicializa TODAS as galerias que existem no DOM.
* @param {object} options
*/
function initAllGalleries(options = {}) {
const opts = mergeDeep({}, DEFAULTS, options);
const $ = getJquery(opts.$);

$(opts.selector).each(function () {
initSingleGallery(this, opts);
});
}

/**
* Reproduz o comportamento do bundle:
* – Ao DOMContentLoaded inicializa tudo
* – Se existir wp.hooks, registra o addAction para reinicializar galerias inseridas dinamicamente
*/
function bootstrapNweWpGallery(options = {}) {
const opts = mergeDeep({}, DEFAULTS, options);

global.addEventListener(“DOMContentLoaded”, function () {
initAllGalleries(opts);
});

// Hook usado no bundle: “nwe_next_post_after_insert”
if (global.wp && global.wp.hooks && typeof global.wp.hooks.addAction === “function”) {
global.wp.hooks.addAction(
“nwe_next_post_after_insert”,
“theme_next_post_after_insert”,
(containerEl) => {
if (!containerEl) return;

const galleries = containerEl.querySelectorAll(opts.selector);
if (!galleries || galleries.length === 0) return;

galleries.forEach((el) => initSingleGallery(el, opts));
}
);
}
}

// Helpers simples (sem depender de libs)
function isObject(item) {
return item && typeof item === “object” && !Array.isArray(item);
}

function mergeDeep(target, …sources) {
if (!sources.length) return target;
const source = sources.shift();
if (isObject(target) && isObject(source)) {
for (const key in source) {
if (isObject(source[key])) {
if (!target[key]) Object.assign(target, { [key]: {} });
mergeDeep(target[key], source[key]);
} else {
Object.assign(target, { [key]: source[key] });
}
}
}
return mergeDeep(target, …sources);
}

// Exports globais (pode trocar para export default se estiver em bundler)
global.NweWpGallery = {
initSingleGallery,
initAllGalleries,
bootstrapNweWpGallery,
};
})(window);
window.NweWpGallery.bootstrapNweWpGallery();

Ferramenta usa inteligência artificial

O Nêmesis foi desenvolvido pela Coordenadoria de Segurança Institucional e Inteligência (CSI) e pelo CyberGaeco. A ferramenta tem como objetivo auxiliar equipes de investigação na identificação, coleta e documentação de possíveis provas em crimes cometidos contra crianças e adolescentes no ambiente virtual.

Conforme o MPGO, o sistema permite uma varredura dos dispositivos eletrônicos durante o cumprimento de mandados de busca e apreensão. A tecnologia busca reduzir o tempo necessário para localizar arquivos que possam ser relevantes para a investigação e possibilita uma análise mais detalhada posteriormente.

A ferramenta foi apresentada pelo Ministério Público em maio deste ano, durante o Maio Laranja, campanha nacional de conscientização e combate ao abuso e à exploração sexual de crianças e adolescentes. Desde então, segundo o órgão, o sistema também foi apresentado a outras unidades do Ministério Público no país. A Operação Anjo da Guarda II dá continuidade a ações de investigação de crimes relacionados à exploração sexual de crianças e adolescentes no ambiente digital.

Leia também:

  • Dois homens são presos após tentativa de furto de carga dos Correios na BR-153, em Morrinhos
  • Homem é preso com fuzil HK 416 em veículo perto de shopping na Avenida Perimetral, em Goiânia

O post Operação mira armazenamento de pornografia infantil e usa IA para rastrear arquivos em Goiânia apareceu primeiro em Jornal Opção.

Jornal Opção