Назад | Перейти на главную страницу

Как отследить возможную атаку с помощью SQL-инъекции?

У нас только что по необъяснимым причинам упала одна из наших (довольно важных) баз данных wordpress. К счастью, мы храним резервные копии по ночам, так что это не будет концом света, но я хочу избежать или, по крайней мере, иметь возможность отслеживать это в будущем.

Теперь мы все еще не знаем, была ли база данных удалена из-за того, что младший разработчик случайно ввел команды в неправильную командную строку mysql или окно phpymadmin, или это была вредоносная атака с использованием SQL-инъекции.

Очевидно, нам нужен более жесткий контроль над учетными записями пользователей mysql младших разработчиков, но помимо этого мне интересно, каковы лучшие практики для обнаружения / предотвращения внедрения sql через администрирование сервера.

Заметка Я не хочу знать, как дезинфицировать вводимые данные на индивидуальной основе - Я делаю это каждый раз, но мы пишем много нестандартных сценариев, и у нас всегда будут в штате младшие разработчики, которые могут забыть или ошибиться. По крайней мере, я хотел бы знать лучший (самый простой) способ:

  1. Записать все GET или POST запросы в стандартном формате регистрации доступа, которые содержат строку запроса или данные публикации с любым SQL в нем (я предполагаю использовать регулярное выражение, подобное /(drop|delete|truncate|update|insert)/ в один файл для всех виртуальных хостов, который я могу затем использовать grep

  2. Регистрировать только команды mysql, начинающиеся с drop,delete, truncate в один файл. Каждая запись должна включать в минимальное время и пользователя mysql, но также было бы здорово, если бы я мог видеть, было ли это через командную строку или php, и если php, то какой был сценарий.

Спасибо за вашу помощь! И, очевидно, дайте мне знать, есть ли какое-нибудь базовое решение с использованием стандартных журналов, которые я пропустил.

Сайт wordpress предлагает с помощью mod_security для этого.

Проверьте GreenSQL: http://www.greensql.net/

Ура

Несколько предложений для вас:

-Включить ведение журнала MySQL. Используйте OSSEC для отслеживания этих журналов. http://www.ossec.net/wiki/SQL_Logging#MySQL_Logging

-Включить плагин ведения журнала Wordpress ( http://www.ossec.net/main/wpsyslog2 ). Он будет генерировать журналы для всего, что происходит внутри Wordpress (новые сообщения, новые пользователи, вход в систему, выход из системы и т. Д.).

-Анализируйте журналы Apache (я снова рекомендую OSSEC).

С помощью этих трех журналов аудита будет легко отслеживать и обнаруживать проблемы, подобные этой или любой другой атаке.

Чтобы добавить вместе с GET и POST, вы также должны зарегистрировать COOKIE, FILE, REQUEST.