Valorant: Hardware ban, como funciona em teoria.

Obrigado por visitar o Nerdweek!

Sortudo!!! Sem ad pra você hoje! Com isso compartilhe com os amigos!

A Valorant, anunciou em entrevista que seu novo jogo com lançamento em 2 de Junho utilizará de hardware ban para previnir cheaters.

Durante seu beta o jogo sofreu uma quantidade exorbitante de denuncias de todas as maneiras, inclusive de cheaters que num curto período utilizaram de exploits para ter vantagem durante as partidas.

Como funcionam os Hardware Ban.

Hardware Ban não são novos, chaves de hardware eram muito mais comuns nos anos 90 onde aplicativos pagos utilizavam de chaves dongles na port LPT (famosa porta da impressora) com a chave delegada criptografia para sua aplicação.

Dongle de Criptografia

Por muito tempo o hardware ban também foi baseado em MAC Address o endereço fisico da placa de rede (HWaddr 02:42:81:0C:BC:7) que identifica a placa fisicamente para o seu hardware (HWID: Hardware Identification)

O problema do MAC Address é que com a evolução da tecnologia e a virtualização criou-se a necessidade dele ser flexível sendo então possível mudar o seu endereço. Para os profissionais de segurança, trocar o MAC Address é uma tarefa no mínimo mensal! (Eu faço semanalmente).

Veja neste simples tutorial em ingles como trocar o MAC Address para todos os sistemas operacionais do How-To-Geek.

How (and Why) to Change Your MAC Address on Windows, Linux, and Mac
A device’s MAC address is assigned by the manufacturer, but it’s not to hard to change—or “spoof”—those addresses when you need to. Here’s how do do it, and why you might want to.

Mas então qual a solução?

Não existe solução perfeita, mas uma solução solida é utilizar informações do seu hardware para criar um HASH único composto por várias partes que identificará somente sua maquina através de todos os componentes.

Por exemplo eu utilizaria o Placa Mãe/Processador/PlacaDeVideo, por serem os items mais difíceis de se substituir e no linux com a ajuda de um software como o dmidecode, faria um agregado de todas estas informações, individualmente e as utilizariam como parte da minha chave de uma criptografia delegada, e enviaria a chave publica para meu servidor.

Com isso eu teria 4 certificados únicos que precisam ser válidos através de um quorum para que o jogo se conecte com minha plataforma forçando o cheater a precisar gastar dinheiro para uma nova tentativa. Em caso uma das partes seja substituída o quorum não o deixaria entrar novamente e em caso um jogador legitimo troque uma parte o quorum também o permitira pois ele analisaria como um nova key no meu sistema.

Essa é uma abordagem completamente simplista baseada em sistema que quorum para clusters de alta disponibilidade que podem ter splithead (dados que não batem) para validar ou não a efetividade do node. Existem dezenas de métodos de criptografia que podem ser utilizados como maneira para o hardware ban.

Exemplos de items que podem ser utilizados como HWIS.

Linux

No linux todas as informações do hardware como fabricante, numero de serial, porta conectada, placa mãe são fornecidas pelo comando lspci -vvvv esses valores geralmente são imutáveis e atrelados a uma placa em especifico.

[root@ip-10-0-12-162 ec2-user]# lspci 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02) 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II] 00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II] 00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 01) 00:02.0 VGA compatible controller: Cirrus Logic GD 5446

Windows

No windows como no Linux o sistema operacional pode facilmente pegar informações do seu hardware e seus identificadores únicos de modo a ser utilizado para um hardware ban.

Get-WmiObject win32_baseboard | Format-List Product,Manufacturer,SerialNumber,Version

OSX

No OSX todos os produtos são identificados com um UUID de plataforma que é atrelado ao serial da maquina, esse número é disponível no sistema operacional mas ele é guardado em um chip integrado em sua placa mãe e não pode ser substituído.

ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, "\""); printf("%s\n", line[4]); }'