Os browsers modernos suportam várias línguas para a apresentação de conteúdos, localização de interfaces e preferências do utilizador. Esta funcionalidade, inicialmente destinada à conveniência do utilizador, tornou-se uma parte importante dos sistemas antifraude. A análise das definições linguísticas permite detetar possíveis discrepâncias entre o perfil declarado de um utilizador e os parâmetros reais do seu dispositivo. #### O que são linguagens de navegação? As linguagens dos programas de navegação definem o idioma utilizado para apresentar as páginas Web, a interface do programa de navegação e outros elementos. São representados como uma lista de idiomas preferidos, que o navegador envia para o servidor no cabeçalho HTTP Accept-Language. As informações sobre o idioma também podem ser obtidas através do objeto navigator.language ou navigator.languages em JavaScript. #### Como é formada uma impressão digital de idioma? A impressão digital de idioma inclui os seguintes dados: 1. **Accept-Language** - lista de línguas preferidas e respectiva prioridade. - Exemplo: en-US,en;q=0.9,ru;q=0.8 2. **navigator.language** - a língua principal do browser. - Exemplo: en-US 3. **navigator.languages** - matriz de línguas preferidas. - Exemplo: [ “en-US”, “en”, “ru-RU” ] 4. **Língua da interface do navegador** - a língua em que o próprio navegador é apresentado. 5. **Idioma do sistema operativo ** - o idioma definido a nível do sistema operativo. Estes parâmetros formam uma combinação que pode ser utilizada para identificar o utilizador. #### Aplicação das línguas nos sistemas antifraude Os sistemas antifraude analisam os dados linguísticos para identificar utilizadores potencialmente suspeitos. Eis alguns cenários-chave para a sua utilização: 1. **Deteção de incoerências:** - Se a língua da interface do browser não corresponder à língua do sistema operativo. - Se Accept-Language contiver idiomas não utilizados na região do utilizador. - Se as línguas preferidas do utilizador mudarem com demasiada frequência. 2. **Verificação da correspondência de geolocalização:** - As definições de idioma são comparadas com a localização geográfica do utilizador, determinada pelo endereço IP ou pelo GPS. - Por exemplo, se o endereço IP apontar para França, mas as definições de idioma estiverem definidas para chinês, tal pode ser suspeito. 3. **Deteção de falsificação de parâmetros** - Se os parâmetros navigator.language e navigator.languages estiverem em conflito. - Se o idioma do navegador mudar em cada nova visita. ###### Métodos de falsificação de parâmetros linguísticos Os atacantes, numa tentativa de contornar os sistemas antifraude, podem utilizar vários métodos para alterar as definições de idioma: 1. **Troca do cabeçalho HTTP Accept-Language:**. - Utilizando um proxy ou um software especial, o conteúdo do cabeçalho é alterado para corresponder ao perfil pretendido. 2. **Alterar as definições do browser:** - Utilizar navegadores anti-deteção que permitam definir valores arbitrários de navigator.language e navigator.languages. 3. **Emulação de localização:** - O navegador altera o idioma da interface para criar a ilusão de correspondência entre regiões. 4. **Mascaramento parcial:** - Acrescentar línguas adicionais a Accept-Language para criar um perfil mais universal. ###### Como é que os sistemas antifraude detectam a falsificação da língua? 1. **Análise de consistência:** - Verificando se todos os parâmetros de idioma (cabeçalho HTTP, navigator.language, idioma da interface) são consistentes. 2. **Verificação de combinações raras:** - Identificar preferências linguísticas invulgares que raramente ocorrem na vida real (por exemplo, en-GB,ar-KW,ja-JP). 3. **Comparação com dados de referência:** - Utilizar uma base de dados para testar a probabilidade de utilização de determinadas línguas numa determinada região. 4. **Teste dinâmico:** - Alterar as definições linguísticas num sítio Web e verificar a resposta do programa de navegação. Por exemplo, se o navegador não refletir a alteração, isso pode indicar falsificação. 5. **Localização de erros e mensagens** - Analisar a língua das mensagens de sistema do programa de navegação. É difícil de falsificar, uma vez que a língua das mensagens depende da configuração do sistema operativo. #### Analisar as impressões digitais da língua Vamos verificar que dados um sítio Web pode obter sobre a localização de um utilizador abrindo a página browserleaks.com/javascript no nosso navegador Chrome:  Esta página fornece ao site informações sobre a data e a hora no dispositivo do utilizador, o fuso horário, a localidade, o formato do relógio, o tipo de calendário, o sistema de registo de números, os idiomas principal e preferido e informações sobre vozes sintetizadas na interface do controlador do serviço de voz. Vamos verificar as informações de localização por endereço IP, vamos abrir a página browserleaks.com/ip  Esta página fornece ao site informações detalhadas sobre o endereço IP e os idiomas do utilizador nos cabeçalhos http. Vamos ver na nossa página de teste test-webapi.tech/language que outras informações de localização o site pode coletar do navegador do usuário. Vamos abrir a página no navegador Chrome no servidor. Verificação da exatidão da secção T**time:**  Nesta secção, obtemos o endereço IP do visitante, verificamos a localização utilizando um serviço de terceiros em relação ao endereço IP, obtemos as coordenadas e o fuso horário do navegador a partir do navegador do utilizador **Importante:** na página de teste, todas as conclusões sobre a incompatibilidade de parâmetros não são exactas e são apresentadas apenas como exemplo de análise dos dados obtidos. Na secção **Resultados dos serviços de geolocalização**, a página obtém informações sobre o endereço IP de várias bases de dados e compara-as com as informações obtidas na secção Verificação da precisão do tempo:  Na secção **Informação da hora local**, vemos a hora, a data e o fuso horário diretamente do browser do visitante:  A secção **Configurações de idioma do browser** define os idiomas do browser utilizando JavaScript e cabeçalhos http no thread principal, no web worker e no service worker e, em seguida, compara os valores entre si:  Note-se que a presença da língua russa num utilizador da Finlândia já pode ser detectada pelos sistemas antifraude como um indicador atípico, especialmente no caso de registos de contas em massa. Vejamos a próxima secção - **Análise da língua das mensagens do sistema  Esta secção define o idioma das mensagens de erro, o idioma do texto de validação das mensagens de formulário e o idioma das mensagens do sistema no browser do utilizador. Na secção **Detalhes de internacionalização**, vemos as definições regionais, o tipo de calendário, o fuso horário e o sistema numérico baseado no browser a partir das definições do sistema do dispositivo do utilizador. Os formatos de data e o formato de apresentação da moeda também são definidos:  O formato de apresentação da moeda depende das definições linguísticas do sistema   Passemos à última secção **Vozes de síntese de fala**. Esta secção verifica as vozes disponíveis para a síntese de voz no browser:  O conjunto de vozes e o seu número difere consoante os navegadores e os dispositivos, e este parâmetro permite que os sistemas antifraude identifiquem os utilizadores com bastante precisão e identifiquem visitas suspeitas, especialmente quando comparado com as definições de idioma do navegador. Seguem-se alguns exemplos de diferentes dispositivos: PC Intel (navegador Chrome)  PC Intel (navegador Chromium)  PC Intel (navegador Firefox)  PC AMD (navegador Chrome)  PC AMD (navegador Chromium)  AMD PC (navegador Firefox)  Nos resultados do teste, vemos que a lista de vozes para a síntese de voz difere tanto entre os diferentes dispositivos como nos diferentes browsers. Vamos verificar o browser anti-deteção, vamos abrir a página sem perfil, com definições básicas: . Existem algumas diferenças nos valores dos resultados deste teste: - O browser anti-deteção indica Fuso Horário - Europa/Moscovo. - Representa a utilização da língua en-US apenas. - Utiliza apenas 2 vozes da localidade Ru (semelhante ao navegador Chromium). - Representado no cabeçalho User-Agent pelo navegador Chrome. Vamos tentar aplicar o perfil no browser anti-deteção e repetir o teste: . Depois de aplicar o perfil, o browser anti-deteção substitui corretamente todos os parâmetros de idioma relativos à localização especificada, exceto um: o browser mostra mensagens de validação de formulários no idioma En, o que é suspeito quando se utiliza o idioma Ru principal no browser. #### Deteção de idiomas no browser do utilizador com base no exemplo da Amazon e do Google Vamos verificar que informações sobre idiomas o nosso navegador recebe do sítio Amazon. Vamos abrir a página inicial no navegador Chrome:  Com uma simples análise dos ficheiros JavaScript, podemos ver que o site obtém informações sobre o idioma preferido e os idiomas disponíveis no nosso navegador. Vamos verificar que informações o Google recolhe sobre os idiomas. Vamos abrir a caixa de pesquisa e ver o código.  O site detectou com precisão que estamos a utilizar o idioma ru, note-se que o navegador está aberto num servidor localizado na Alemanha, que o Google também detecta (ru-DE).   A Google também recolhe informações sobre o idioma preferido e os idiomas disponíveis. O sítio também analisa os eventos de mudança de idioma da voz, o idioma de destino da tradução e recolhe informações sobre a escolha do idioma sugerido. #### Conclusão A análise dos parâmetros linguísticos do browser fornece aos sistemas antifraude uma quantidade significativa de informações para a autenticação do utilizador. Estes parâmetros ajudam a identificar incoerências entre as definições do browser, as definições do sistema operativo, os cabeçalhos HTTP e a geolocalização, permitindo reconhecer comportamentos potencialmente suspeitos. Os testes demonstraram que os métodos de falsificação das definições linguísticas, como a utilização de programas de navegação anti-deteção ou a alteração dos cabeçalhos HTTP, nem sempre são eficazes. Mesmo pequenas diferenças, como a língua das mensagens do sistema, podem levantar suspeitas. Assim, as definições linguísticas tornam-se uma componente importante de uma avaliação exaustiva do perfil do utilizador. Muitos sistemas antifraude utilizam ativamente a impressão digital da língua como uma das principais métricas para a análise comportamental, a correspondência de dados e a deteção de falsificações. As métricas linguísticas do navegador são uma ferramenta poderosa que ajuda os sistemas antifraude a identificar incoerências e a melhorar a segurança dos controlos. Apesar das tentativas dos atacantes para falsificar os dados linguísticos, os sistemas detectam essas manipulações analisando a coerência dos parâmetros e as combinações raras. As impressões digitais linguísticas geradas a partir de múltiplos parâmetros são amplamente utilizadas para identificar utilizadores e detetar actividades suspeitas. A utilização destes dados em combinação com outros mecanismos, como a geolocalização e os fusos horários, pode melhorar significativamente a precisão da deteção de fraudes. No próximo artigo, continuaremos a análise das tecnologias de navegação utilizadas nos sistemas antifraude. *Bannykh M.V.*