Depois do estranho bloqueio da NOS do domínio bit.ly, voltamos a detectar novos bloqueios em domínios legítimos na rede desta operadora, em vigor deste a passada segunda feira, dia 23 de março. Domínios de serviços de comunicação em tempo real, como o Discord, de serviços de autenticação da Microsoft, e até domínios de informação pública sobre o Coronavirus estão a ser bloqueados.

Quando o domínio do bit.ly foi bloqueado pela NOS – tendo sido desbloqueado algumas horas depois – ficamos com a pulga atrás da orelha, relativamente ao porquê deste bloqueio, mas a informação disponível na altura era muito pouca para retirar conclusões. No entanto, na passada segunda feira, com o bloqueio de mais domínios legítimos nesta operadora, foi-nos possível detectar um padrão que explica – mas não justifica – estes recentes bloqueios.

O discord.gg, login.live.com, coronavirus-map.com e coronavirus.app foram os quatro domínios que, desde segunda-feira, começaram a acionar o nosso sistema de alertas do Ahoy!. O primeiro, discord.gg, é um domínio utilizado pelo Discord para partilhar os convites de acesso às centenas de milhares de comunidades existentes nestas plataformas. O segundo domínio, login.live.com, é bastante auto-explicativo – serve para iniciar sessão nos vários serviços da Microsoft, como o Outlook, Office 365, entre outros. Já os dois domínios de mapas do Coronavirus parecem, numa primeira análise, perfeitamente legítimos onde apenas é feita partilha de informação.

Mas então, porque é que a NOS está a bloquear estes domínios? Não havendo conteúdo piratas, certamente não será por causa do Memorando. Mas também não são sites de gambling, pelo que não é responsabilidade da SRIJ. Ao que nós conseguimos apurar, estes domínios estão a ser bloqueados por suspeitas de phishing. Neste artigo, que pode ser um pouco técnico, explicamos a metodologia utilizada para chegar a esta conclusão, e porque é que este tipo de bloqueios poderão ser ilegais.

Estes domínios estão mesmo bloqueados?

A nossa primeira hipótese relativamente a estes quatro domínios seria que, talvez, o bloqueio detectado fosse um falso positivo. Para testar se o site estaria efetivamente bloqueado recorremos ao serviço RIPE Atlas, que tem milhares de pequenas máquinas de teste (chamados probes) espalhados pelo mundo, ligadas a diferentes ISPs. Em Portugal existem cerca de 200 probes (que qualquer pessoa pode ter em sua casa), onde cerca de 25 estão atualmente ligados à rede da NOS, identificada como AS2860.

Estes probes podem ser utilizados para diversos testes de rede, como pedidos HTTP, testes de Ping, ou mesmo resolução de DNS. A ideia foi então, recorrer a estes para validar qual o IP que é devolvido pelos servidores de DNS destas ligações, para estes domínios. Caso a resposta do servidor de DNS seja o IP 195.23.113.202 (que é o correspondente ao servidor onde os domínios bloqueados na NOS estão a apontar), significa que o domínio está efectivamente bloqueado.

Começamos por testar o discord.gg. Os resultados não poderiam ser mais óbvios.

$ python resolve.py --asn=AS2860 -r 50 discord.gg [162.159.130.234 162.159.133.234 162.159.134.234 162.159.135.234 162.159.136.234] : 5 occurrences [195.23.113.202] : 21 occurrences

De 26 probes que testaram o domínio discord.gg, 21 devolveram o IP da NOS, confirmando que o mesmo está bloqueado. A resposta correcta dos outros 5 probes pode ser justificada pela alteração dos DNS por omissão, no router da operadora.

Efectuamos então os testes para os restantes três domínios, e como seria de esperar, todos estes devolveram bloqueados. Todos, menos o login.live.com.

O Estranho Caso do login.live.com

Apesar de recebermos dezenas de alertas relativamente a este domínio, os resultados estavam a ser muito inconsistentes. De vários testes que fizemos, muitas das vezes eram devolvidos os IP’s correctos para este domínio, mas ocasionalmente 3 ou 4 probes devolviam o IP da NOS. Mas porquê?

$ host login.live.com 212.0.160.26 Using domain server: Name: 212.0.160.26 Address: 212.0.160.26#53 Aliases: login.live.com is an alias for login.msa.msidentity.com. login.msa.msidentity.com is an alias for lgin.msa.trafficmanager.net. lgin.msa.trafficmanager.net has address 40.90.137.124 lgin.msa.trafficmanager.net has address 40.90.23.206 lgin.msa.trafficmanager.net has address 40.90.137.127 lgin.msa.trafficmanager.net is an alias for fe-bl02p-msa.trafficmanager.net. lgin.msa.trafficmanager.net is an alias for fe-bl02p-msa.trafficmanager.net.

Esta é a resposta esperada por um pedido DNS ao login.live.com, utilizando um servidor de DNS da NOS (212.0.160.26). A resposta parece 100% correcta, mas como o problema parecia ser intermitente, decidimos testar com vários servidores de DNS da NOS (que encontramos utilizando uma lista pública de DNS em Portugal). Finalmente, depois de muitas respostas correctas, encontramos o que estávamos à procura:

$ host login.live.com 88.157.200.129 Using domain server: Name: 88.157.200.129 Address: 88.157.200.129#53 Aliases: login.live.com is an alias for login.msa.msidentity.com. login.msa.msidentity.com is an alias for lgin.msa.trafficmanager.net. lgin.msa.trafficmanager.net has address 195.23.113.202

Neste servidor de DNS, também da NOS, o login.live.com não devolve o IP bloqueado. Mas este domínio é um “pseudónimo” (alias) de login.msa.msidentity.com, que por sua vez também é um alias de lgin.msa.trafficmanager.net. E este está, efectivamente, a devolver o IP de bloqueio da NOS. Testando este domínio utilizando o RIPE Atlas, conseguimos confirmar essa mesma informação:

$ python resolve.py --asn=AS2860 -r 50 lgin.msa.trafficmanager.net [40.90.137.125 40.90.23.154 40.90.23.247] : 1 occurrences [195.23.113.202] : 20 occurrences [40.90.137.126 40.90.23.206 40.90.23.247] : 1 occurrences [40.90.23.153 40.90.23.154 40.90.23.208] : 1 occurrences

Portanto, o login.live.com não está bloqueado directamente, mas como a resposta deste domínio depende da resposta do lgin.msa.trafficmanager.net, que está bloqueado, poderá por vezes causar problemas de acesso.

Porque é que a NOS está a bloquear estes domínios?

A resposta correcta a esta questão apenas poderá ser respondida pela própria empresa. No entanto, temos uma teoria muito forte: a NOS bloqueia, de forma automática e sem validação, sites que sejam suspeitos de phishing ou de distribuição de malware.

Olhemos então para o discord.gg: Uma pesquisa no Google mostrou que este domínio foi marcado, de forma errada, como potencialmente malicioso. Este domínio foi marcado recentemente como malicioso no site any.run, que faz a deteção de Malware.

Será que o mesmo acontece com o domínio da Microsoft? Surpresa, surpresa, parece que sim:

É possível ainda encontrar tópicos no fórum da MalwareBytes, relativamente ao bloqueio deste domínio nesta suite de segurança. Uma das respostas, colocada a 10 de Fevereiro, indica que é um falso positivo e que já terá sido retirado da base de dados desta empresa.

O coronavirus.app também é marcado como potencialmente malicioso, assim como o coronavirus-map.com.

Isto leva-nos a suspeitar bastante que estes quatro domínios foram, de forma errada, identificados como maliciosos e adicionados a uma lista. A NOS, por sua vez, utilizará esta lista para bloquear sites maliciosos na sua rede.

Mas estes bloqueios não nos protegem?

Na teoria sim, até poderão ajudar os internautas mais vulneráveis ou com menos conhecimentos de informática a protegerem-se deste tipo de ataques. Mas aqui o problema em questão é a forma como a NOS efectua este bloqueio.

Em primeiro lugar, a mensagem que é mostrada quando a página é bloqueada é genérica, pouco informativa e muito provavelmente errada. Estes domínios não estão a ser bloqueados por cumprimento de ordens administrativas, muito menos de ordens judiciais. No limite, esta página deveria informar que a página foi bloqueada por ser potencialmente um problema de segurança e deverá incluir forma de reportar falsos positivos.

Em segundo lugar, questionamo-nos sobre a legitimidade de uma empresa como a NOS poder bloquear, de forma arbitrária e sem qualquer ordem judicial, domínios em Portugal. A falta de transparência deste processo é gritante. Não sabemos qual é a fonte que a NOS utiliza para bloquear estes domínios; não sabemos quem é responsável por mantê-la e testá-la. Imaginando que será uma empresa terceira – uma hipótese bastante plausível – , que nenhum de nós conhece nem sabe qual é, tem, na prática, o poder de bloquear qualquer domínio em Portugal, sem qualquer controlo ou transparência. Até poderá ser de forma acidental, como cremos que terá acontecido no bloqueio do bit.ly há poucas semanas. Mas é um poder demasiado grande para estar a ser aplicado desta forma, sem transparência.

Em terceiro lugar, nunca em nenhuma situação a NOS mencionou a existência deste “serviço”, nem há possibilidade de não o utilizar. Uma funcionalidade destas ao nível do operador até poderia ser interessante – mediante alguns cuidados, desde que os clientes soubessem que esta existe, e que seja possível desactivar. Da forma como está, é um mistério como funciona.

Da forma como está, a NOS está a bloquear, de forma invisível e imediata, domínios e serviços completamente legítimos. A legalidade destes bloqueios é muito questionável, e em última instância pouco ética. Resta-nos ver se, com a divulgação destes bloqueios, a NOS ofereça uma explicação oficial para esta situação. Continuaremos a acompanhar!