Como rastrear possíveis ataques de injeção SQL?

4

Acabamos de ter um dos nossos (bastante importantes) bancos de dados wordpress inexplicavelmente descartados. Felizmente, mantemos backups noturnos para que não seja o fim do mundo, mas eu quero evitar ou pelo menos rastrear isso no futuro.

Agora, ainda não sabemos se o banco de dados foi removido devido a um desenvolvedor júnior ter acidentalmente digitado comandos na linha de comando mysql incorreta ou na janela do phpymadmin, ou se foi um ataque de injeção de SQL mal-intencionado.

Obviamente, precisamos de um controle mais rigoroso sobre as contas de usuário mysql de desenvolvedores júnior, mas além disso estou me perguntando quais são as melhores práticas para detectar / impedir a injeção de sql via administração do servidor.

Nota Eu não quero saber como limpar os insumos individualmente - Eu faço isso o tempo todo, mas escrevemos muitos scripts personalizados e sempre teremos junior desenvolvedores na equipe que podem esquecer ou entender errado. No mínimo, gostaria de saber qual é a melhor maneira (mais fácil) de:

  1. Registre todas as solicitações GET ou POST no formato de log de acesso padrão que contenha uma string de consulta ou poste dados com qualquer SQL (imagino usar uma regex como /(drop|delete|truncate|update|insert)/ em um único arquivo para todos virtualhosts que eu posso então grep

  2. Registre somente os comandos mysql que começam com drop , delete , truncate em um único arquivo. Cada entrada precisaria ser incluída no tempo mínimo e no usuário mysql, mas também seria interessante se eu pudesse ver se era pela linha de comando ou php, e se php era o script.

Obrigado pela sua ajuda! E, obviamente, deixe-me saber se há alguma solução básica usando os logs padrão que eu ignorei.

    
por Neil Sarkar 09.12.2009 / 18:00

4 respostas

1

Confira o GreenSQL: link

Felicidades

    
por 09.12.2009 / 19:33
1

O site wordpress sugere usando mod_security para isso.

    
por 09.12.2009 / 23:01
0

Apenas para adicionar junto com GET e POST você também deve registrar o cookie, arquivo, pedido.

    
por 10.12.2009 / 21:56
0

Poucas sugestões para você:

-Ativar o registro do MySQL. Use o OSSEC para monitorar esses logs. link

-Procurar o plug-in de registro do Wordpress ( link ). Vai gerar registra tudo o que acontece dentro do Wordpress (novas postagens, novos usuários, logins, logouts, etc).

-Analyze seus logs do Apache (minha recomendação é, novamente, OSSEC).

Com essas três trilhas de auditoria, será fácil monitorar e detectar problemas como este ou qualquer outro tipo de ataque.

    
por 10.12.2009 / 22:18