У меня проблемы с постоянными согласованными попытками взлома веб-сайта (написанного на php). Основная проблема - попытки sql-инъекции, запущенные на сервере Debian.
Вторичным эффектом проблемы является рассылка или многократная рассылка спама URL-адресами, которые, хотя дыра в безопасности была закрыта, все еще очевидно связаны с попытками взломать сайт и продолжают увеличивать нагрузку на сайт, и поэтому должны быть заблокированы.
Итак, какие меры я могу предпринять, чтобы:
A: блокировать известных злоумышленников / известные атакующие машины (в частности, анонимность через ботнет или ретрансляционные серверы), чтобы их повторный, непрерывный, ограниченный по времени доступ не влиял на нагрузку на сайт,
и B: сообщить об атаке и ответить на нее (я знаю, что сообщение в правоохранительные органы почти наверняка бесполезно, как и сообщение на IP / машину, на которой происходят атаки, но другие ответы будут приветствоваться).
По моему опыту, вы мало что можете сделать, кроме как заблокировать оскорбительные IP-адреса. Вероятно, не помешало бы привлечь внешнюю компанию для проведения аудита безопасности, если вы стали регулярной целью и недостатки были обнаружены в прошлом. Для этого мы использовали компанию 7safe.
Если IP-адрес происходит из вашей страны, и попытка взлома оказалась успешной, привлечь полицию - неплохая идея. Здесь, в Великобритании, нам с этим немного повезло.
Сегодня я наблюдал за попытками взлома моего собственного сайта. Излишне говорить, что они ни к чему не привели! Но взлом - это факт жизни в Интернете.
Для варианта А вы можете исследовать mod_security, однако это то, что вам следует тщательно протестировать, сначала в режиме отчетов.
Я предполагаю, что ваше приложение достаточно защищено:
И что компьютер, на котором он работает, полностью исправлен, и все несущественные службы отключены.
Кроме того, вы можете рассмотреть возможность запуска базы данных на другом хосте.
По моему опыту, сообщение о поведении владельцу сетевого блока в вежливом электронном письме, хотя и не очень часто эффективно, все же может иметь более удовлетворительный результат, чем полагаться на местные правоохранительные органы или правоохранительные органы злоумышленника. В частности, если они предоставляют адрес для «злоупотреблений».
Просто предоставьте им записи журнала, показывающие проблему (не забудьте предоставить подробную информацию о любых преобразованиях часовых поясов для дат / времени).
Хотя вы можете начать блокировать доступ с этих адресов, вы можете подумать о реализации чего-то вроде fail2ban с помощью автопредставления PHP - поэтому, если вы обнаружите, что кто-то непослушный, вы можете автоматически заблокировать его доступ с помощью брандмауэра ОС.
Мой стандартный ответ на это остается такой же: Вы не можете помешать людям делать плохие вещи в Интернете. Атаки, которые вы видите, несомненно, автоматизированы и широкополосны: они атакуют не ваш сайт, а любой уязвимый сайт в любом месте.
Вы можете потратить огромное количество усилий на преследование «заведомо плохих» хостов, отслеживание потенциальных клиентов, выполнение детективной части; но единственная полезная вещь, которую вы можете сделать, - это защитить свою систему от ее приложения (приложение работает как непривилегированный пользователь, возможно, chrooted, разумные ulimit, обновленное ядро и т. д.), защитить приложение от его пользователей (надежная аутентификация и авторизация, создание SQL-запросов-заполнителей, тестирование на проникновение с помощью инструментов веб-безопасности) и мониторинг успешный попытки несанкционированного доступа.