A WebGPU (Web Graphics Processing Unit) é a mais recente tecnologia para renderização de gráficos em navegadores e execução de cálculos em GPUs, dando aos programadores a possibilidade de aceder à aceleração de hardware para gráficos 3D e computação de alto desempenho. A WebGPU é um passo significativo em relação a tecnologias anteriores, como a WebGL, uma vez que abre o acesso a uma API de baixo nível que permite a criação de cenas gráficas complexas e a execução de cálculos intensivos com elevada eficiência. Com estas capacidades, a WebGPU também encontrou o seu lugar em sistemas antifraude, onde ajuda a rastrear caraterísticas únicas de dispositivos para identificar utilizadores. ##### História e objetivo da WebGPU O WebGPU foi desenvolvido pelo consórcio W3C como resposta ao desejo de melhorar o acesso às capacidades de GPU para aplicações Web. O padrão foi apresentado como uma alternativa mais performática e moderna ao WebGL e OpenGL, e permite que as capacidades de APIs gráficas modernas como Vulkan, Direct3D 12 e Metal sejam utilizadas através do navegador. A WebGPU simplifica muito a integração com acelerações de hardware para tarefas de renderização e computação, tornando-a útil não apenas para efeitos visuais, jogos e computação científica, mas também para sistemas antifraude em que a impressão digital de um dispositivo ajuda na identificação. ##### Capacidades da tecnologia WebGPU A WebGPU fornece aos programadores as seguintes capacidades fundamentais: - **Acesso de baixo nível à GPU:** O WebGPU permite-lhe trabalhar diretamente com o poder de processamento da GPU, proporcionando um elevado desempenho e controlo sobre a computação gráfica. - Suporte para gráficos 3D e 2D:** O WebGPU é capaz de criar modelos e cenas 3D simples e complexos, tornando-o adequado para tarefas com uso intensivo de recursos. - **Shaders e tarefas computacionais:** O WebGPU pode utilizar shaders personalizados para criar texturas únicas e efeitos visuais realistas, bem como efetuar cálculos complexos diretamente na GPU. Estas caraterísticas fazem do WebGPU uma ferramenta poderosa para os programadores web que trabalham em aplicações com grande intensidade gráfica e computacional, bem como para os profissionais que constroem sistemas anti-fraude. ##### WebGPU em sistemas anti-fraude: proteção contra a fraude Uma das aplicações do WebGPU em sistemas anti-fraude é a criação de uma impressão digital gráfica única do dispositivo. Esta impressão digital tem em conta a forma como o hardware e os controladores do dispositivo tratam as tarefas gráficas e computacionais. Ao contrário do Canvas e do WebGL, o WebGPU fornece parâmetros adicionais para rastrear, como o número de núcleos de computação de GPU disponíveis, extensões suportadas e caraterísticas precisas de processamento de shader, permitindo que os sistemas antifraude criem assinaturas digitais exclusivas para cada dispositivo. ##### Como é que o WebGPU ajuda a identificar o utilizador? A renderização de gráficos e a execução de cálculos utilizando o WebGPU podem ter um desempenho diferente em diferentes dispositivos, dependendo das configurações de hardware, GPU e controlador. As diferenças podem ser vistas no desempenho de computação, qualidade de renderização, suporte para diferentes extensões e shaders. Estas diferenças são utilizadas para criar uma impressão digital única do dispositivo que é difícil de falsificar. Os principais factores que influenciam a singularidade de uma impressão digital WebGPU são: - Modelo e arquitetura da GPU:** Diferentes modelos de GPU processam cálculos a diferentes velocidades e com diferentes precisões. - O conjunto de extensões disponíveis e as especificações de execução de shader variam de dispositivo para dispositivo. - Configuração do browser e do controlador:** As especificidades da configuração do browser e as versões do controlador também afectam os resultados da execução e do cálculo do shader. Estas caraterísticas permitem que os sistemas antifraude criem impressões digitais precisas para identificar dispositivos de forma exclusiva e detetar tentativas de falsificação de dados. ##### Técnicas de falsificação de impressões digitais WebGPU Os atacantes também tentam contornar as impressões digitais WebGPU utilizando uma variedade de métodos de falsificação. Alguns dos métodos mais comuns incluem: - Modificação dos resultados do shader: Para falsificar as impressões digitais, os atacantes podem interferir nos shaders adicionando ruído ou alterando texturas para mudar a imagem final e ocultar as caraterísticas do dispositivo. - Injeção de dados pré-gravados: Esta técnica envolve a falsificação dos resultados da WebGPU com impressões digitais pré-gravadas de outros dispositivos. Esses dados permitem aos autores de fraudes imitar o desempenho de outros dispositivos, contornando os sistemas antifraude. ##### Como é que os sistemas antifraude detectam a falsificação de impressões digitais WebGPU? Os sistemas antifraude utilizam várias abordagens para detetar a falsificação de impressões digitais WebGPU. As principais incluem: - Análise dos resultados de renderização computacional e gráfica: Os sistemas podem gerar vários testes, cujos resultados são comparados para identificar valores atípicos. Por exemplo, pequenas diferenças no desempenho e nos detalhes de renderização podem indicar o uso de dados espúrios. - Comparação de desempenho de shaders dinâmicos: Ao utilizar shaders dinâmicos, os sistemas podem forçar o dispositivo a executar tarefas únicas em tempo real. Isto dificulta a falsificação de impressões digitais, uma vez que é difícil para os atacantes reproduzir o comportamento de um dispositivo real sem uma latência significativa. Assim, ao utilizar o WebGPU, os sistemas antifraude podem identificar actividades suspeitas através de uma análise mais profunda das caraterísticas do dispositivo e do seu comportamento de renderização e computação, tornando a falsificação de impressões digitais mais difícil. #### Impressão digital WebGPU Vamos ver alguns exemplos dos dados que podem ser recuperados de um navegador usando a API WebGPU. Vamos para a página browserleaks.com/webgpu Secção Um: Informação do Adaptador  Secção Dois: Informações sobre o limite do adaptador  Secção Três: Funcionalidades suportadas pelo adaptador  Secção Quatro: Formatos de textura suportados  Secção Cinco: Caraterísticas da linguagem WGSL (WebGPU Shading Language) suportadas.  Secção Seis: Informações adicionais sobre o adaptador (formato bgra8unorm preferido, modo de canal alfa, modo de mapeamento de tons).  Vamos verificar esta informação na nossa página de teste abrindo test-webapi.tech/webgpufull no navegador Chrome num computador   Nesta página, vemos os adaptadores que podem ser usados pelo sistema: adaptador de alto desempenho, adaptador de eficiência energética, adaptador de espera. A secção Suporte de formatos é igualmente importante, vamos verificar quais os formatos suportados pelos dispositivos de secretária e pelos dispositivos móveis  Basta verificar os formatos suportados para determinar com grande precisão se um dispositivo é um telemóvel ou um computador de secretária. É igualmente importante ter em conta que os utilizadores executam frequentemente programas de navegação anti-deteção em servidores alugados sem adaptador de vídeo e tentam apresentar o programa de navegação anti-deteção como um programa de navegação para dispositivos móveis. Nestes casos, estes testes permitem determinar que o utilizador não tem um adaptador GPU, enquanto um dispositivo móvel real apresentará os resultados esperados:  GPU Apresenta uma extensão menor, mas ajuda a identificar os utilizadores. Os valores dependem do adaptador de vídeo e das definições do browser. Pode ver no exemplo seguinte que as caraterísticas têm diferenças em diferentes dispositivos.  ##### Pegada de desempenho da WebGPU Vejamos um exemplo simples de como os sistemas anti-fraude podem identificar utilizadores utilizando a impressão digital de desempenho WebGPU Vamos abrir a nossa página de teste https://test-webapi.tech/webgpuperf no navegador Chrome num computador  Esta página mostra informações sobre a placa gráfica, obtidas através de duas APIs: WebGL e WebGPU, e os resultados de dois testes de desempenho do adaptador GPU. O primeiro teste mostra o tempo de inicialização do adaptador e o tempo de renderização. O segundo teste difere do primeiro na medida em que adicionamos uma carga adicional ao adaptador ao mesmo tempo. Vamos repetir esse teste em outros dispositivos:    Vamos comparar esta pegada de desempenho com a do Navegador Anti-Detect:  O teste anti-detect-browser mostra resultados ao nível de uma placa de vídeo de elevado desempenho, apesar de se afirmar que o dispositivo utiliza um adaptador Intel. Isto deve-se ao facto de o browser anti-deteção estar a ser executado no nosso computador com uma placa gráfica Nvidia. Vamos verificar o desempenho em diferentes dispositivos móveis:   Com base nos resultados dos testes que efectuei em vários dispositivos, podem ser feitas algumas observações interessantes. Em PCs com GPUs de gama baixa, a renderização é frequentemente mais rápida do que em dispositivos móveis modernos, o que confirma o papel significativo do hardware no desempenho. Ao mesmo tempo, as placas gráficas Radeon têm um desempenho diferente das placas Nvidia em testes de carga elevada, destacando as diferenças na arquitetura e otimização do controlador. No entanto, é de salientar que os resultados dos testes podem depender significativamente da versão do browser, bem como da carga simultânea durante o teste. Um ponto curioso é que o tempo de inicialização do adaptador nos dispositivos móveis modernos é, na maioria dos casos, mais curto do que nos PCs. No nosso teste, o nosso objetivo foi abranger as principais caraterísticas de desempenho para proporcionar uma comparação imparcial. Para distinguir melhor os tempos de renderização entre diferentes tipos de adaptadores, realizámos testes adicionais mais tarde para diferenciar melhor entre adaptadores de alto e baixo desempenho, bem como dispositivos móveis. Estes dados desempenham um papel importante na personalização dos sistemas antifraude e ajudam a ter em conta as particularidades de cada plataforma. ##### Conclusão Neste artigo ficámos a saber como os sistemas anti-fraude que utilizam a tecnologia WebGPU podem identificar utilizadores e detetar tráfego fraudulento. Em conclusão, a utilização da tecnologia WebGPU em sistemas antifraude representa um avanço significativo no domínio da proteção contra a fraude em linha. Devido ao seu elevado desempenho e precisão, esta tecnologia pode identificar eficazmente os utilizadores, bem como detetar com precisão o tráfego fraudulento. Uma comparação dos dados WebGPU e WebGL demonstra as suas vantagens na identificação do tipo de dispositivo, tipo de browser e tentativas de falsificação, tornando-a uma ferramenta indispensável para a segurança online. Com o aumento das ameaças cibernéticas, o desenvolvimento de tais soluções pode melhorar significativamente a eficácia do combate à fraude em linha. No próximo artigo, continuaremos a análise das tecnologias de navegação utilizadas nos sistemas antifraude. _Bannykh M.V._