Как ломали этот сайт и как я отразил ddos-атаку

Рассуждаем о том, как страшно жить и как безопасно жить :)

Модераторы: Leon, Technik_Writer

Spacesoft
Сообщения: 195
Зарегистрирован: Пн мар 17, 2008 4:02 pm

Как ломали этот сайт и как я отразил ddos-атаку

Сообщение Spacesoft »

Почему-то этот сайт bolvanka.org.ru не понравился китайцам (или тем, кто взломал их серверы).

На этот сайт стали сыпаться сотни тысяч запросов с нескольких IP адресов (принадлежащих подсети китайского интернет-магазина Alibaba.com) в сутки, вследствие чего виртуальный хостинг стал давать сбои.

Мне пришлось скачать логи Apache со своего хостинга на свой компьютер через FTP клиент и посредством программы cowaxess_1.3.0_x64 проанализировать самые весомые логи на предмет того, какие именно IP на каких сайтах нужно забанить для нормальной работы моих сайтов.

Я увидел такую картину на основании логов только текущего дня:

Код: Выделить всё

1	24 453 (10.07%)	1 (0.84%)	413.39 MiB (10.23%)	US United States	47.89.251.140
2	24 357 (10.03%)	1 (0.84%)	402.12 MiB (9.96%)	US United States	47.254.24.77
3	24 347 (10.03%)	1 (0.84%)	403.02 MiB (9.98%)	US United States	47.254.47.223
4	24 294 (10.00%)	1 (0.84%)	406.66 MiB (10.07%)	US United States	47.254.22.192
5	24 268 (9.99%)	1 (0.84%)	402.56 MiB (9.97%)	US United States	47.254.35.118
6	24 210 (9.97%)	1 (0.84%)	395.43 MiB (9.79%)	US United States	47.254.43.7
7	24 194 (9.96%)	1 (0.84%)	404 MiB (10.00%)	US United States	47.254.41.44
8	24 167 (9.95%)	1 (0.84%)	400.59 MiB (9.92%)	US United States	47.254.36.89
9	24 147 (9.94%)	1 (0.84%)	397.92 MiB (9.85%)	US United States	47.88.51.0
10	23 965 (9.87%)	1 (0.84%)	396.74 MiB (9.82%)	US United States	47.254.35.11
11	34 (0.01%)	1 (0.84%)	368.49 KiB (0.01%)	RU Russian Federation	194.84.176.132
12	27 (0.01%)	1 (0.84%)	478.03 KiB (0.01%)	Unknown	45.153.225.223
13	26 (0.01%)	1 (0.84%)	444.7 KiB (0.01%)	Unknown	45.146.230.152
14	14 (0.01%)	1 (0.84%)	90.23 KiB (0.00%)	RU Russian Federation	194.84.176.129
Очевидно, что первые 10 IP-адресов "сожрали" ресурсы хостинга, забив канал до сайта bolvanka.org.ru одномоментными обращениями, которые хостинг не успевал обрабатывать, выдавая вместо кода HTTP 200 код HTTP 503.

При том что в robots.txt указано, что все интернет-пауки страницы с сайта bolvanka.org.ru должны получать по одной через каждые 4 секунды:

Код: Выделить всё

User-agent: *
Crawl-delay: 4
Я решил забанить вот эти подсети:

Код: Выделить всё

## USER IP BANNING
<Limit GET POST>
 	order deny,allow
        Deny from 47.254.0.0/16
        Deny from 47.88.0.0/14
</Limit>
Spacesoft
Сообщения: 195
Зарегистрирован: Пн мар 17, 2008 4:02 pm

Re: Как ломали этот сайт

Сообщение Spacesoft »

Как я вышел на эту проблему.

Сначала мне пришло письмо на почту, с которым я не знал что делать:
Тема: Превышено потребление процессорного времени на хостинге my_hosting_name (my_hosting_name hosting CPU usage exceeded)
Отправитель: support@nic.ru

Здравствуйте!

На вашей услуге хостинга my_hosting_name по договору my_hosting_ID/NIC-D зафиксировано повышенное потребление процессорного времени. За период 1 день потребление составило свыше 50% процессорного времени при предусмотренных тарифом 50%.

С описанием возможных причин этой ситуации и дополнительной информацией вы можете ознакомиться в разделе помощи:
https://www.nic.ru/help/ispol6zovanie-resursov-hostinga_6762.html

Рекомендуем вам при помощи разработчика сайта проанализировать работу сайта с целью снижения потребления ресурсов. Кроме того, вы можете перейти на тариф с большим количеством предоставляемого процессорного времени. Сделать это можно в разделе личного кабинета "Услуги" - "Хостинг, почта, конструктор сайтов".

Статистика по потреблению ресурсов доступна в разделе панели управления хостингом "Ресурсы" -> "Статистика" -> "Процессорное время":
https://www.nic.ru/hcp2/resources/stats/

---
С уважением,
Департамент по работе с клиентами
RU-CENTER Group
Эл. почта: support@nic.ru
Телефоны:
+7 495 994-46-01
+7 495 737-06-01
Факс: +7 495 737-06-02
https://nic.ru/
Я ответил на него так:
получатель:hosting@nic.ru

Здравствуйте!

Возможно, что некоторые хакеры пытаются взломать или за-ddos-ить мои сайты?

По моему представлению, повышенная нагрузка на мои сайты никакими другими причинами не обоснована.
Мне пришёл такой ответ от технической поддержки хостинга:
отправитель: RU-CENTER NCC<support@nic.ru>
Здравствуйте!

Для диагностики данной ситуации рекомендуем Вам проанализировать логи доступа и ошибок Ваших сайтов.

Лог-файлы на хостинге хранятся каталоге /var/log, где:
имя_сайта.access_log – лог обращений,
имя_сайта.error_log – лог ошибок,
файлы с расширением .gz – логи за предыдущие дни.
Каталог /var/log/ доступен через «Файловый менеджер» панели управления хостингом.
При открытии файлового менеджера необходимо два раза осуществить переход на уровень выше, нажимая стрелку в верху списка каталогов. Далее Вы окажетесь в корневом каталоге "/", где находится каталог var.
По FTP корневой каталог сервера может быть доступен, если Вы в панели управления хостингом в разделе "FTP и SSH" для пользователя измените значение параметра "Домашний каталог" c "/home/login" на "/".
https://www.nic.ru/help/ftp-zagruzka-fajlov-na-server_6765.html
Также Вы можете увидеть данный каталог, подключившись к хостингу по SSH:
https://www.nic.ru/help/ssh-dostup_6767.html


——
С уважением,
Кирилл Валуев
Департамент по работе с клиентами
RU-CENTER Group
https://nic.ru
Spacesoft
Сообщения: 195
Зарегистрирован: Пн мар 17, 2008 4:02 pm

Re: Как ломали этот сайт

Сообщение Spacesoft »

Spacesoft писал(а): Вс фев 21, 2021 7:45 pm Мне пришлось скачать логи Apache со своего хостинга на свой компьютер через FTP клиент и посредством программы cowaxess_1.3.0_x64 проанализировать самые весомые логи на предмет того, какие именно IP на каких сайтах нужно забанить для нормальной работы моих сайтов.
Технические детали: для вызова программы анализа логов веб-сервера Apache cowaxess_1.3.0_x64 я написал парочку служебных CMD-файлов, которые существенно упрощают запуск этой программы (она работает только из командной строки и не содержит графического интерфейса).

any.cmd: анализирует один лог-файл и пишет результат в HTML файл (к имени лог-файла прибавляется .html). Имя анализируемого лог-файла указывается в качестве первого и единственного параметра CMD-файла.

Код: Выделить всё

C:\cowaxess_x64\bin\goaccess.exe %1 -o %1.html --log-format=COMBINED
Пример вызова этого файла: (находясь в каталоге с файлом bolvanka.org.ru.access_log.html)

Код: Выделить всё

any.cmd bolvanka.org.ru.access_log.html 
parse_all.cmd: анализирует все лог-файлы в текущем каталоге и пишет вывод в HTML файлы (к имени лог-файлов прибавляется .html). Работает без параметров.

Код: Выделить всё

FOR %%a IN (*.access_log) DO any.cmd %%a
Пример вызова этого файла: (находясь в каталоге с файлами *.access_log.html)

Код: Выделить всё

parse_all.cmd
Spacesoft
Сообщения: 195
Зарегистрирован: Пн мар 17, 2008 4:02 pm

Re: Как ломали этот сайт и как я отразил ddos-атаку

Сообщение Spacesoft »

В процессе ddos-атаки атакуемый сайт на самом деле сломался - движок PHPBB 3 из-за недостатка серверных ресурсов сгенерировал какие-то кривые шаблоны и положил их в свой кэш, вследствие чего весь форум у всех пользователей отображался безо всякой расцветки и оформления (на форуме полностью "слетели" стили CSS). Из-за этого нельзя было зайти в админ-панель - при попытке войти туда по прямому адресу сайт перекидывал на стартовую страницу форума.

При этом в bolvanka.org.ru.error_log посыпались сообщения о такой ошибке:
[Sun Feb 21 18:16:23.257187 2021] [php7:error] [pid 14164] [client 47.254.47.223:0] PHP Fatal error: Uncaught RuntimeException: Class 's9e\\TextFormatter\\Plugins\\Autoemail\\Configurator' does not exist in /home/my_hosting_name/bolvanka.org.ru/docs/vendor/s9e/text-formatter/src/Configurator/Collections/PluginCollection.php:97\nStack trace:\n#0 /home/my_hosting_name/bolvanka.org.ru/docs/phpbb/textformatter/s9e/factory.php(454): s9e\\TextFormatter\\Configurator\\Collections\\PluginCollection->load('Autoemail')\n#1 /home/my_hosting_name/bolvanka.org.ru/docs/phpbb/textformatter/s9e/factory.php(347): phpbb\\textformatter\\s9e\\factory->configure_autolink(Object(s9e\\TextFormatter\\Configurator))\n#2 /home/my_hosting_name/bolvanka.org.ru/docs/phpbb/textformatter/s9e/factory.php(387): phpbb\\textformatter\\s9e\\factory->get_configurator()\n#3 /home/my_hosting_name/bolvanka.org.ru/docs/phpbb/textformatter/s9e/renderer.php(97): phpbb\\textformatter\\s9e\\factory->regenerate()\n#4 /home/my_hosting_name/bolvanka.org.ru/docs/cache/production/container_4335734bbdd20f586549a504dff5f80c.php(3916): phpbb\\textformatter\\s9e\\renderer->__construct(Object(phpbb\\cache\\driver\\file), './cache/product...', '_text_formatt in /home/my_hosting_name/bolvanka.org.ru/docs/vendor/s9e/text-formatter/src/Configurator/Collections/PluginCollection.php on line 97
Чтобы восстановить работоспособность сайта, мне пришлось удалить каталог cache в корне PHPBB 3 форума.

К этому времени DDOS-атака уже была заблокирована:
[Sun Feb 21 19:18:22.245077 2021] [access_compat:error] [pid 14821] [client 47.254.41.44:0] AH01797: client denied by server configuration: /home/my_hosting_name/bolvanka.org.ru/docs/viewforum.php
, вследствие чего сайту bolvanka.org.ru под управлением PHPBB 3 удалось корректно перегенерировать CSS-шаблоны (путем пересоздания каталога cache) и он как ни в чём не бывало продолжил свою работу в штатном режиме.

Вернуться в «Безопасность жизнедеятельности»