fundo
Fui contratado para ajudar uma empresa a manter seu servidor. Trabalho em alguns projetos PHP menores, mas também examino problemas de desempenho e, recentemente, varro os logs em busca de hackers.
Esses caras estão executando o servidor há algum tempo e têm o que eu chamaria de um aplicativo herdado nas últimas pernas. Ele usa aspas mágicas, variáveis globais (que $id
podem ser sobrescritas por $_GET['id']
), usa .htaccess como sua única segurança em alguns casos, o que você quiser. Um pesadelo de segurança e programação.
Nós fomos hackeados no passado, principalmente com injeções de SQL, que executavam SLEEP(99999999)
comandos e agiam como um ataque do DOS. Felizmente eles não corriam "mesinhas de cabeceira",
XKCD: http://xkcd.com/327/
Então, eu reescrevi suas instruções SQL vulneráveis mysql_query()
(não mysqli) para transações PDO. Também estou analisando as consultas para SLEEP
e UNION
, que não usamos, mas as injeções. Por enquanto, tudo bem.
Última edição
Recentemente, fomos informados de que os registros estão mudando no banco de dados para os usuários, como seus endereços de e-mail para aqueles supostamente criados por spammers.
Percebi que as colunas deles não tinham uma last_modified
coluna, então não conseguimos nem saber quando elas estavam sendo alteradas, muito menos por quem. Eu adicionei essa coluna, mas esse é apenas o primeiro passo.
Quando eu estava olhando para esta tabela, notei que as senhas não eram salgadas nem mesmo hash, apenas salvas como texto simples.
Comunicação com o Cliente
Como posso abordá-los sobre toda a situação, como contratada, sem agitar meus braços como um louco? Algum conselho? Eu estava pensando em uma abordagem calma de,
PROBLEMA 1 Sinopse Por que isso é um problema? O que pode acontecer se isso não for corrigido Correção sugerida EDIÇÃO 2 Sinopse Por que isso é um problema? O que pode acontecer se isso não for corrigido Correção sugerida