У нас только что по необъяснимым причинам упала одна из наших (довольно важных) баз данных wordpress. К счастью, мы храним резервные копии по ночам, так что это не будет концом света, но я хочу избежать или, по крайней мере, иметь возможность отслеживать это в будущем.
Теперь мы все еще не знаем, была ли база данных удалена из-за того, что младший разработчик случайно ввел команды в неправильную командную строку mysql или окно phpymadmin, или это была вредоносная атака с использованием SQL-инъекции.
Очевидно, нам нужен более жесткий контроль над учетными записями пользователей mysql младших разработчиков, но помимо этого мне интересно, каковы лучшие практики для обнаружения / предотвращения внедрения sql через администрирование сервера.
Заметка Я не хочу знать, как дезинфицировать вводимые данные на индивидуальной основе - Я делаю это каждый раз, но мы пишем много нестандартных сценариев, и у нас всегда будут в штате младшие разработчики, которые могут забыть или ошибиться. По крайней мере, я хотел бы знать лучший (самый простой) способ:
Записать все GET
или POST
запросы в стандартном формате регистрации доступа, которые содержат строку запроса или данные публикации с любым SQL в нем (я предполагаю использовать регулярное выражение, подобное /(drop|delete|truncate|update|insert)/
в один файл для всех виртуальных хостов, который я могу затем использовать grep
Регистрировать только команды 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.