Foi-me apresentado um argumento no sentido de "você não precisa de uma senha de usuário mysql forte porque, para usá-la, eles já teriam acesso ao seu servidor". Estamos falando de uma senha de 4 dígitos, que é uma palavra padrão do dicionário de inglês em um site comercial ao vivo.
Sem influenciar as respostas com meu próprio conhecimento e experiência, gostaria de mostrar algumas respostas de uma fonte desinteressada de terceiros. Alguém quer conversar com esse? Serão apreciadas respostas práticas / de programação.
root:root
logins.1337
?Respostas:
Quem quer que esteja argumentando parece estar dizendo "Uma vez que alguém está com o pé na porta, é melhor dar-lhe acesso completo". Por essa lógica, um firewall nega a necessidade de todas as senhas na sua rede interna.
Senhas fortes são um passo para limitar os danos causados pela invasão da rede. Não há razão para jogar suas mãos para cima na derrota só porque uma pequena parte da sua rede foi comprometida.
fonte
Ele realmente remonta à idéia de ' Defesa em profundidade ', pelo menos uma senha forte pode atrasá-los para que você possa descobrir e bloqueá-los. Gosto da analogia de ter uma única chave para um condomínio fechado versus uma chave na porta de todas as casas.
fonte
Depende muito de como o servidor MySQL está configurado. Se ele aceitar apenas solicitações fora do IP residencial (127.0.0.1), isso o tornará moderadamente mais seguro.
Dado um cenário em que você permite IPs remotos, torna-se um negócio muito maior.
Além disso, é sempre bom ter uma segurança forte em caso de intrusão - melhor que eles saiam com o mínimo possível.
fonte
Existe um bloqueio na caixa Petty Cash na Contabilidade? Se sim, por quê? O prédio não possui segurança física?
fonte
Isso não é verdade, porque o mysql também pode ser usado no ambiente cliente-servidor entre redes e, por padrão, a única coisa que você precisa é de usuário / senha para obter acesso ao banco de dados (offcourse, com a porta 3306 aberta e o servidor visível publicamente) )
fonte
De fato, pode ser o contrário: se eles tiverem acesso ao mysql, poderão acessar o sistema operacional do servidor.
fonte
Se alguém obtém acesso root ao seu servidor, ele não precisará de nenhuma senha do MySQL. Mas se eles puderem executar aplicativos no seu servidor apenas como usuário não root e não web, uma senha forte do MySQL ainda poderá salvar seus dados. Mas sim, a maioria dos hacks vem da Web, o que significa que o hacker terá acesso à sua conta da Web e, portanto, pode extrair a senha do DB dos arquivos PHP.
Tudo isso assumindo que seu servidor MySQL não está aceitando conexões de qualquer lugar, exceto localhost. Se isso acontecer, você precisará de um PW forte.
fonte
Algo que parece ter sido esquecido aqui é: você confia em seus usuários na rede confiável?
Francamente, não sei, porque sei como eu era quando comecei na área de TI. Eu cutucava e cutucava em áreas às quais não tinha direito e, francamente, uma senha fraca do MySQL teria sido uma delícia para mim, pois eu teria uma chance de sorte e entrei e poderia ter causado estragos (por acidente, claro).
E se alguém usar a engenharia social para acessar sua rede confiável? Então o que você faz? Se eles estão em uma máquina atrás do firewall, eles blammo, sua segurança de firewall sólida é arruinada e eles entram diretamente na máquina.
Senhas fortes são muito simples de fazer e há muitas ferramentas de gerenciamento de senhas para facilitar a segurança das senhas, portanto não há desculpa para não fazê-lo.
fonte
localhost
/127.0.0.1
como o host. Dessa forma, ninguém pode acessar os bancos de dados externos (mesmo os da mesma rede).Eh. Se seu servidor estiver com IP bloqueado e seu usuário estiver restrito a SELECT em um conjunto de tabelas em que você não se importa com as informações, isso não é muito importante.
Por outro lado, defino minhas senhas do MySQL pressionando o teclado por um minuto e copio e colo a tagarelice resultante em um arquivo protegido, o qual faço referência no meu código sempre que preciso fazer login. É assim que deve funcionar.
Por que facilitar? Se a senha estiver anexada a uma conta local limitada (como todas deveriam ser), por que você a está digitando? Caso contrário, deve ter uma senha cuja força seja relativa ao valor dos dados que você está protegendo.
fonte
As informações da conta / acesso do mySQLs são armazenadas em um arquivo separado dos bancos de dados reais. Assim, você pode simplesmente arrastar e soltar um arquivo diferente em seu lugar. Com o mySQL, se eles tiverem acesso de gravação à parte relevante do seu sistema de arquivos, o jogo acabou.
fonte
Como os requisitos mudam ...
Portanto, hoje, o servidor que está limitado a aceitar conexões MySQL apenas para a máquina local, poderá ser aberto amanhã para que uma ferramenta externa possa ser usada para gerenciar o banco de dados. A pessoa que está fazendo essa configuração pode não saber que há senhas extremamente fracas em uso.
Se o usuário for incomodado por precisar lembrar uma senha boa e forte (por exemplo: longa, aleatória), considere torná-la muito forte e depois armazená-la na
.my.cnf
- ainda mais conveniente do que ter uma senha fraca que ele precise digitar. Claro, também há implicações de segurança nisso, mas você precisará armazenar sua senha em algum lugar, por exemplo, os aplicativos que acessam, para que você já esteja protegendo cópias da senha.Mas também leia o que @meagar disse.
fonte
A premissa de que eles já teriam acesso não é verdadeira. No entanto, se eles tiverem acesso e tiverem uma conta não privilegiada, ainda poderão facilmente invadir a senha do mysql.
Além disso, se o servidor for um servidor de produção ao vivo, você estará se anunciando na Internet. Isso significa que, em algum momento, alguém vai tentar um ataque de força bruta no servidor, incluindo mysql, tanto do porto e da conta de usuário.
se você se importa com os dados, as etapas básicas são ter uma senha raiz diferente para o banco de dados e para o usuário raiz. outros declararam que você também deve ter as permissões mais baixas possíveis para usuários e programas.
uma senha de 4 caracteres pode ser invadida em minutos, em um computador bastante barato.
Posso estar apenas repetindo o que os outros disseram, mas quanto mais munição você tiver para o seu gerente, melhor.
fonte
Muitas das razões do cenário da vida real foram abordadas por postagens antes, então adicionarei a "filosofia". Usar senhas fortes e tomar precauções para aumentar sua segurança é uma filosofia de trabalho. Uma maneira de pensar.
Agora, usando uma senha fraca, porque você é o mysql, roda apenas no 127.0.0.1 e apenas o usuário root tem acesso a ela, mostra que você não pensa no futuro. O que acontece se um dia você precisar conceder acesso via rede ao seu mysql. Você se lembrará de cobrir todos os itens de segurança que você deixou?
Um bom administrador coloca o pior cenário primeiro ao ponto da paranóia.
fonte
Depende de quais direitos esse usuário possui, você sempre deve bloquear as coisas em vários níveis. Também depende dos dados armazenados no seu banco de dados. Diga também que, hipoteticamente, existe uma vulnerabilidade no MySQL que lhes permite assumir o controle de todo o banco de dados, mas eles apenas precisavam fazer login em qualquer conta de usuário. Se sua senha fosse forte, isso tornaria a vulnerabilidade muda. Mas isso realmente depende apenas do seu caso específico.
fonte
É muito fácil se passar por outra pessoa no mysql. Dado um ID de usuário sem senha (a segurança mais fraca), basta usar
mysql -u userid
. Se tiver uma senha, é um pouco mais difícil, mas uma senha fraca facilita. Se o root não tiver senha, eu posso acessar o root comomysql -u root
. Posso fazer qualquer coisa dentro do banco de dados que o root possa.O uso de especificações de host na segurança também é uma boa idéia, especialmente se o acesso remoto estiver ou estiver disponível.
As senhas nos arquivos podem e devem ser um pouco protegidas por permissões. O acesso por raiz ou o proprietário do arquivo de senha é trivial. Se possível, a criptografia da senha no disco deve ser usada. Isso torna um pouco mais difícil de acessar, mas ainda vulnerável.
fonte
Bem, se você não está hospedando o banco de dados MySQL, mas está em um serviço de hospedagem e alguém obtém acesso ao endereço IP do seu servidor, o nome de usuário e a senha são sua última linha de defesa. É sempre bom ter um nome de usuário / senha seguros.
fonte