Мой сервер сам себя DOS-ит

Вопрос или проблема

У меня, похоже, происходит некий самонаводящийся DDoS-атака. У меня есть собственная написанная программа для блога, которую я размещаю на дроплете Digital Ocean с Ubuntu 20. Долгое время всё работало отлично, но недавно сервер стал медленно реагировать, поэтому я проверил журналы доступа Apache и обнаружил, что он запрашивает одно и то же изображение несколько раз в секунду:

Фрагмент из журнала доступа:

134.209.212.156 - - [04/Oct/2024:15:32:55 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:32:54 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 3976 "-" "-"
127.0.0.1 - - [04/Oct/2024:15:32:56 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1350 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:32:56 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:32:56 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:32:56 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:32:57 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:32:57 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:32:57 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:32:54 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 3976 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:32:58 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:32:58 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:32:55 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 3975 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:32:55 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 3976 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:32:57 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 3977 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:32:54 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 3728 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:32:54 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 3729 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:32:58 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 3975 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:33:00 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:33:00 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:33:00 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:33:00 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:33:00 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:33:00 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:33:00 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"
134.209.212.156 - - [04/Oct/2024:15:33:00 +0000] "GET /https://robert-parham.com/assets/images/hero_still.png HTTP/1.1" 200 1362 "-" "-"

134.209.212.156 – это публичный IP моего сервера, на который указывает мой домен, robert-parham.com.

Сайт работает отлично на моем компьютере, под учетной записью root или под учетной записью, которую я настроил, нет cron-заданий.

Может ли это быть каким-то вредоносным ПО? Какие меры я могу предпринять или какие инструменты я могу использовать, чтобы выяснить, какая программа или кусок кода отправляет эти запросы?

Правка 1:
Вот часть вывода из sudo tcpdump -vv -s0 tcp port 80 and src host 134.209.212.156

17:05:18.015144 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 44)
    robert-parham.com.https > vmi1563824.contaboserver.net.http: Flags [S.], cksum 0x737c (ошибочно -> 0x575a), seq 2203077905, ack 1, win 64240, options [mss 1460], length 0
17:05:31.839148 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 44)
    robert-parham.com.http > vmi1563824.contaboserver.net.http: Flags [S.], cksum 0x737c (ошибочно -> 0x2b82), seq 2445306852, ack 1, win 64240, options [mss 1460], length 0
17:05:34.400019 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 44)
    robert-parham.com.https > vmi1563824.contaboserver.net.http: Flags [S.], cksum 0x737c (ошибочно -> 0x575a), seq 2203077905, ack 1, win 64240, options [mss 1460], length 0
17:05:49.535001 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 44)
    robert-parham.com.http > 185.224.128.82.41528: Flags [S.], cksum 0x95bf (ошибочно -> 0x0637), seq 899153806, ack 2088086825, win 64240, options [mss 1460], length 0
17:06:55.622040 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 44)
    robert-parham.com.https > vmi1563824.contaboserver.net.http: Flags [S.], cksum 0x737c (ошибочно -> 0xdebe), seq 3967376515, ack 1, win 64240, options [mss 1460], length 0
17:06:56.639166 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 44)
    robert-parham.com.https > vmi1563824.contaboserver.net.http: Flags [S.], cksum 0x737c (ошибочно -> 0xdebe), seq 3967376515, ack 1, win 64240, options [mss 1460], length 0
17:06:58.687124 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 44)
    robert-parham.com.https > vmi1563824.contaboserver.net.http: Flags [S.], cksum 0x737c (ошибочно -> 0xdebe), seq 3967376515, ack 1, win 64240, options [mss 1460], length 0
17:07:02.453575 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 44)
    robert-parham.com.https > vmi1563824.contaboserver.net.http: Flags [S.], cksum 0x737c (ошибочно -> 0xdebe), seq 3967376515, ack 1, win 64240, options [mss 1460], length 0
17:07:04.527413 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 44)
    robert-parham.com.https > vmi1563824.contaboserver.net.http: Flags [S.], cksum 0x737c (ошибочно -> 0xdebe), seq 3967376515, ack 1, win 64240, options [mss 1460], length 0
17:07:08.543172 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 44)
    robert-parham.com.https > vmi1563824.contaboserver.net.http: Flags [S.], cksum 0x737c (ошибочно -> 0xdebe), seq 3967376515, ack 1, win 64240, options [mss 1460], length 0
17:07:16.799356 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 44)
    robert-parham.com.https > vmi1563824.contaboserver.net.http: Flags [S.], cksum 0x737c (ошибочно -> 0xdebe), seq 3967376515, ack 1, win 64240, options [mss 1460], length 0
17:07:33.183150 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 44)
    robert-parham.com.https > vmi1563824.contaboserver.net.http: Flags [S.], cksum 0x737c (ошибочно -> 0xdebe), seq 3967376515, ack 1, win 64240, options [mss 1460], длина 0

Согласно www.abuseipdb.com, как vmi1563824.contaboserver.net, так и 185.224.128.82 имеют высокие оценки по злоупотреблениям, поэтому я довольно уверенно предполагаю, что это какое-то вредоносное ПО на данный момент.

Ответ или решение

Судя по вашему описанию и предоставленным данным, у вас действительно может быть ситуация, когда сервер инициирует чрезмерное количество запросов к собственным ресурсам, в данном случае к изображению. Это может быть вызвано ошибкой в коде, вирусом или неправильно настроенными сервисами.

Возможные причины и шаги по устранению проблемы

  1. Проблемы в коде:

    • Проверьте ваш код на наличие циклических вызовов или рекурсивных функций, которые могут привести к бесконечным запросам к серверу.
    • Обратите внимание на обработку изображений и любые другие скрипты, которые могут вызываться в процессе загрузки страницы.
  2. Настройки Apache:

    • Убедитесь, что в настройках вашего сервера нет конфигураций, которые могли бы привести к бесконечным редиректам. Например, неправильно настроенные правила mod_rewrite в .htaccess.
    • Проверьте модули Apache, которые могут быть активированы, и отключите ненужные.
  3. Анализ журнала доступа и ошибок:

    • Продолжайте следить за журналами доступа (access.log) и ошибок (error.log). Обратите внимание на IP-адреса, которые делают запросы, и проверьте, нет ли аномальных паттернов.
  4. Проверка наличия вредоносного ПО:

    • Запустите сканирование систему на наличие вирусов и вредоносного ПО. Вы можете использовать такие инструменты, как ClamAV или rkhunter для проверки системы на наличие известного вредоносного кода.
    • Проверьте установленные пакеты на предмет злонамеренных изменений или установленных скриптов.
  5. Сетевой анализ:

    • Используйтеtcpdump или аналогичные инструменты для анализа трафика. Убедитесь, что ваша система не взаимодействует с подозрительными IP-адресами.
    • Если вы видите исходящие соединения на IP-адреса, как vmi1563824.contaboserver.net и 185.224.128.82, это может указывать на компрометацию.
  6. Защита сервера:

    • Рассмотрите вопрос о блокировке подозрительных IP-адресов с помощью iptables или настройки fail2ban.
    • Используйте веб-фаервол, такой как ModSecurity, для защиты от атак на уровне приложений.
  7. Изоляция и тестирование:

    • Если продолжаете испытывать проблему, изолируйте приложение, запустив его в контейнере или на другом сервере, чтобы видеть, воспроизводится ли проблема.
    • Проверьте также наличие обновлений для вашего программного обеспечения и библиотек, которые могут содержать исправления известной уязвимости.

Заключение

Сложные проблемы с сервером, проявляющиеся в виде самоунишительных DDoS атак, зачастую требуют детального анализа как кода, так и конфигураций сервера. Важно подготовить резервные копии данных и конфигураций перед внесением значительных изменений. Если после выполненных шагов проблема не будет решена, возможно, потребуется помощь специалистов по безопасности для более глубокого анализа системы.

Оцените материал
Добавить комментарий

Капча загружается...