Como descobrir o usuário que mudou a senha de root do MySQL?

1

No meu servidor de testes do CentOS, alguém alterou a senha de root do MySQL. Existe alguma maneira de descobrir, quem mudou a senha e quando?

    
por Ravichandran 24.03.2015 / 20:42

1 resposta

0

Primeiro, se o usuário executasse a alteração da senha "root" de uma máquina remota e o log do MySQL não estivesse habilitado, basicamente não haveria registros de qualquer valor em qualquer lugar que você acessasse que conectaria um usuário a essa ação específica. Mas supondo que o usuário estava logado através de uma sessão de linha de comando, há algumas coisas que você verifica que podem fornecer algumas pistas.

Como qualquer usuário executando o MySQL a partir da linha de comando criaria automaticamente um .mysql_history em seu diretório home, você poderia executar um comando como este no sistema para ver se ele contém algo:

grep -i -e "password" /home/*/.mysql_history

Isso faria uma pesquisa sem diferenciação de maiúsculas e minúsculas no arquivo .mysql_history de cada usuário procurando a palavra password , supondo que ela alterasse a senha por meio do próprio cliente MySQL e usando o próprio cliente para alterar a senha.

Mas você também pode olhar através de seu .bash_history para ver qualquer um que tenha usado o MySQL e, em seguida, talvez se concentrar neles como um possível suspeito

grep -i -e "mysql" /home/*/.bash_history

Isso não faria distinção entre maiúsculas e minúsculas no arquivo .bash_history de cada usuário procurando a palavra mysql , o que significaria que eles executavam - ou tentavam executar - algo que o MySQL conectava na linha de comando.

Mas isso é tudo assumindo que o usuário em questão não apagou ou alterou seus arquivos .bash_history ou .mysql_history para cobrir suas faixas. Se eles fossem informados o suficiente para apagar esses arquivos de histórico, não tenho certeza se você pode rastreá-los, a menos que o log do MySQL estivesse habilitado. E o registro em log do MySQL é normalmente desativado por padrão devido ao impacto negativo no desempenho que ele tem em um sistema.

Tudo o que foi dito, se esta configuração do MySQL tiver outros usuários ativados, esteja aberto à idéia de que talvez alguém tenha sido designado a um usuário que possa ter sido diferente de "root", mas em> mesmo nível de permissões como "root". Isso significa que eles poderiam ter usado sua conta supostamente não "raiz" para fazer o que quisessem.

Concessões rápidas, soltas e não seguras do MySQL são perturbadoramente comuns e frequentemente colocadas em prática por administradores de bancos de dados que, por qualquer motivo, simplesmente configuram uma conta "não raiz" separada e usam apenas GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost'; quando atribuição de direitos ao novo usuário. Idéia horrível desde que GRANT ALL PRIVILEGES ON *.* basicamente significa, “Deixe esse usuário fazer qualquer coisa em qualquer banco de dados, como se fosse um usuário root.”

    
por 24.03.2015 / 20:59