Pplware

MySQL permite acesso mesmo com passwords erradas

O MySQL é provavelmente a base de dados mais usada no mundo, dando suporte aos mais diversos serviços. Por norma, tudo o que é credenciais de utilizadores, configurações e outros dados sensíveis, ficam armazenamos nas base de dados associadas aos serviços e espera-se que o nível de segurança seja inquestionável.

No entanto, soube-se entretanto que especialista de segurança descobriram graves vulnerabilidades no MySQL e MariaDB (variante do MYSQL), que permite a um atacante aceder a um servidor MySQL e entrar até com uma password errada!

De acordo com Sergei Golubchik, coordenador da área de segurança do projecto MariaDB, esta vulnerabilidade está presente nas versões 5.1.61, 5.2.11, 5.3.5, 5.5.22 e inferiores, e afecta várias distribuições Linux. (Ubuntu, openSUSE 12.1, Arch Linux, Fedora 16, entre outros). Segundo Golubchik, esta vulnerabilidade pode também ser explorada no MariaDB.

Mas o que causa tal bug?

Numa pequena informação publicada já online (ver aqui), Golubchik refere que o MySQL guarda apenas o hash das passwords dos utilizadores, adicionando também uma sequência de caracteres aleatórios que dificultam outro tipo de ataques (ex. força bruta ou ataques dicionário). Na prática o que acontece é que, em determinadas situações, no processo de comparação entre a password introduzida pelo utilizador e a password armazenada, a validação dá um OK, mesmo as passwords não sendo iguais.

“When a user connects to MariaDB/MySQL, a token (SHA over a password and a random scramble string) is calculated and compared with the expected value. Because of incorrect casting, it might’ve happened that the token and the expected value were considered equal, even if the memcmp() returned a non-zero value”

Assim sendo, o atacante apenas necessita de saber o nome dos utilizadores registados para acesso ao MySQL (incluindo o utilizador root) e tentar assim o acesso à base de dados.

Golubchik fez também saber que a probabilidade de acesso com sucesso é de 1 em 256 tentativas, isto porque, como referido, são adicionados um conjunto de caracteres aleatórios que dificultam outro tipo de ataques.

Uma vez detectada a vulnerabilidade que foi registada com o código CVE-2012-2122, estão já disponíveis os patchs para MySQL (aqui) e MariaDB (aqui), que permitem minimizar os riscos de segurança.

Joshua Drake, um programador da Accuvant Labs, disponibilizou também um pequeno script que permite verificar se os nossos servidores estão vulneráveis. Esse script pode ser descarregado aqui.


Download: Patch CVE-2012-2122 MySQL | MariaDB
Download: Script para verificar se o seu sistema é vulnerável (aqui)

Exit mobile version