We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

Segurança do nosso backoffice


oles@ovh.net
30-04-13, 14:30
Boa tarde,

Para alterar a palavra-passe associada ao seu identificador
de cliente é necessário aceder ao nosso website e
solicitar esta alteração, indicando o identificador de cliente.
Um email é então enviado para o endereço associado ao
identificador, email esse que contém um URL unívoco
no qual é necessário "clicar". Este URL foi concebido para
conter 21 caracteres gerados de forma aleatória com recurso
a 3 algoritmos "random" distintos, sendo gerados
7 caracteres por cada um dos algoritmos.
O cliente que recebe o email, pode então clicar no URL
e de seguida recuperar a nova palavra-passe. Um outro email
de confirmação é de seguida enviado, informando que ocorreu
uma alteração da palavra-passe. Em todos os emails enviados,
é indicado o endereço IP a partir do qual o pedido da
alteração foi efetuado.

Este é um procedimento que está implementado há 7 anos
sem que, desde então, nenhuma alteração tenha sido efetuada.

No dia 26 de Abril, foi internamente colocado em evidência
um problema com a geração dos 21 caracteres atrás referidos.
Dos 3 algoritmos de geração aleatória de caracteres que utilizávamos,
2 não geravam uma cadeia de caracteres realmente aleatória.
Assim, era possível gerar um pedido de alteração de palavra-passe
para um identificador e de seguida, através de "brute-force",
encontrar o url que seria enviado ao legítimo dono da conta.
Este problema foi reportado internamente por um dos nossos
programadores às 11:03:14 e corrigido às 12:54:13.
A origem do problema está ligada à função rand() utilizada
numa parte do código, que não recebeu um patch tal como
aplicado às demais funções do código aquando da ativação
da cache de execução do script.
Substituímos a antiga função que gerava 3 cadeias de caracteres
para compor os 21 totais, por uma geração de um código de 64
caracteres que proveem de 2 funções que geram esses caracteres
de forma realmente aleatória.

De seguida, iniciamos internamente uma pesquisa nas nossas bases
de dados para verificar se esta falha foi "aproveitada".
Para tal pesquisa usamos o histórico de alterações de
palavra-passe dos últimos 3 anos. Temos autorização oficial
para armazenar e "explorar" todos os logs do nosso backoffice
durante 10 anos, precisamente para este tipo de casos.

Encontramos 3 identificadores com serviços ativos que foram
alvo de uma alteração de palavra-passe recorrendo a "brute-force".
Nos 3 casos, tratou-se de um ataque com alvo à comunidade "bitcoin",
que utiliza os serviços OVH.
O hacker encontrou esta vulnerabilidade no dia 23 de Abril,
às 22h00 e durante 1 hora fez bastantes tentativas para
"afinar" o seu método. À 23h00, o seu método parecia estar
já definido e foi feito o primeiro "hack" a um identificador
de cliente e no dia seguinte os 2 outros identificadores,
também associados à comunidade "bitcoin", sofreram o hack.

Estivemos em contacto com estes 3 clientes, mas a qualidade
dos intercâmbios de informação não nos permitiu a colocação
em evidência de uma falha de segurança no nosso backoffice.
Foi graças a programadores internos, e de maneira completamente
independente, que o problema foi detetado e corrigido.
Compreendemos posteriormente a relação entre a falha corrigida
e o problema com estes 3 clientes, vítimas de hack.
Temos uma lição importante a interiorizar sobre a forma de
dialogar com os nossos clientes neste tipo de casos.

Esta comunicação não foi feita anteriormente, uma vez que
na nossa primeira pesquisa encontramos apenas 3 identificadores
e desejávamos concluir a primeira análise dos registos para
compreender se mais identificadores de cliente tinham sido
afetados. Terminamos hoje as pesquisas e verificamos que
apenas estes 3 clientes da comunidade "bitcoin" tinham sido
afetados.
Estamos agora a verificar os restantes 7 anos de registos
sobre as ações do nosso backoffice para tentar detetar
outras eventuais ocorrências de brute-force ao URL de alteração
de palavra-passe, mas a probabilidade é quase nula.

Penso que apesar do pequeno impacto que esta falha causou
aos clientes que nos confiam os seus serviços, era nosso dever
informar todos sobre este incidente de segurança que tivemos
de solucionar a semana passada. Ainda decorre uma ação de
"code-review" em partes antigas do backoffice OVH que já não
são reescritas há alguns anos para nos assegurarmos que não
existem outros possíveis impactos.
Está também a ser revisto o processo de comunicação com
os clientes neste género de casos, uma vez que 2 dos 3 clientes
afetados são clientes das nossas filiais.

Em resumo:

Esteve presente no nosso backoffice uma falha de segurança,
que permitia, através de um procedimento complexo que incluía
ataque de brute-force, alterar a palavra-passe de um identificador
de cliente.
Recomendamos a todos os clientes com serviços sensíveis que
limitem o acesso à sua conta apenas a certos endereços IP.

Sim, 3 clientes da comunidade "bitcoin" foram afetados por
esta falha de segurança.
É importante ler os emails que são enviados de forma automática,
sobretudo os emails sobre tentativa de alteração de palavra-passe
que foram pedidos a partir de endereços IP desconhecidos e
os emails com confirmação de alteração de palavra-passe.
Em caso de pedidos feitos por terceiros não se deve também hesitar
o contacto imediato com a nossa linha de incidentes 24/24h que poderá
bloquear a sua conta até que a situação seja clarificada.

Não, não ocorreu nenhum roubo de informação a partir das nossas
bases de dados.

Não ocorreu nenhum outro problema de segurança com a conta
de outros clientes.

É de forma sincera que lamentamos o impacto sofrido por estes 3
clientes.

Amigavelmente,
Octave