Шокирующий масштаб бразильского ботнета: 5 фактов, которые изменят ваш взгляд на сетевую безопасность
19 февраля 2026 г.Вступление
В эпоху, когда каждый «умный» гаджет может стать точкой входа для злоумышленников, вопросы кибербезопасности выходят на первый план. Недавно в Reddit появился пост, в котором пользователь поделился поразительными данными о том, как два небольших бразильских провайдера превратились в «мозговой центр» почти полуторного миллиона запросов к его домашней сети. Этот случай ярко иллюстрирует, что даже небольшие провайдеры могут стать источником масштабных атак, если их инфраструктура скомпрометирована.
Суть проблемы проста: почти половина всех записей в таблице сессий сетевого шлюза приходилась на трафик из Бразилии, хотя реальный объём данных от этих запросов составлял лишь 0,025 % от общего трафика. В результате система тратит ресурсы на обработку «мусора», а администраторы теряют видимость реального трафика.
Японское хокку, отражающее ситуацию:
Тихий поток в ночи —
Сети скрытые шепчут,
Буря в тени.
Пересказ Reddit‑поста своими словами
Автор поста живёт в США, подключён к сети Cox Fiber с выделенным блоком /27. Он выгрузил данные о сетевых потоках (flows) за сутки с устройства UDM SE и обнаружил следующее (за 12 часов 18 февраля):
- Всего зафиксировано 286 826 потоков.
- 127 887 (44,6 %) приходились на входящие запросы из Бразилии, все они пытались открыть порт 443 (HTTPS).
- Было задействовано 5 306 уникальных IP‑адресов, но они принадлежали лишь двум небольшим провайдерам.
- Объём «атакующего» трафика – 17,2 МБ, в то время как легитимный трафик составил 68,1 ГБ.
Детали о провайдерах:
- 67 Telecom (AS61614) – небольшая фирма в Понта‑Пора, граница с Парагваем. Сканирование происходило из пяти /24‑подсетей, при этом в основной подсети 45.232.212.0/24 каждый IP‑адрес (от .0 до .255) отправлял запрос.
- JK Telecomunicações (AS262909) – провайдер в Диамантине, штат Минас‑Жерайс. Сканирование охватило всю подсеть 177.36.48.0/20 (4 096 адресов), каждый из 16 /24‑подсетей был полностью задействован.
Трафик имел «униформный» характер:
- 84,5 % потоков – 104 байта, 2 пакета (SYN‑скан, подтверждение открытого порта).
- 6,2 % – 52 байта, 1 пакет (один SYN, отклонённый файрволом).
- ≈4,7 % – до 936 байт, 18 пакетов (начало TLS‑рукопожатия, вероятно, для «фингерпринтинга»).
- Средний объём данных на поток – 135 байт, то есть почти никакой полезной передачи.
Временные пики совпадали с бразильскими рабочими часами, а в течение дня количество запросов варьировалось от 2 900 до 14 000 потоков в час (≈4 SYN/сек). Все IP‑адреса, проверенные через GreyNoise, отмечены как «noise: true», то есть они активно сканируют сеть по всему миру.
Автор связывает наблюдения с ботнетом Aisuru/Kimwolf, известным с конца 2024 года, который использует более 700 тыс. скомпрометированных IoT‑устройств и более 2 млн Android‑устройств. Ботнет применялся как для DDoS‑атак (до 31,4 Тбит/сек), так и для прокси‑инфраструктуры, обслуживая скрейпинг ИИ и подбор учётных данных.
Что отличает этот случай от большинства отчётов, так это полное покрытие целых подсетей, а не «разбросанные» IP‑адреса по тысячам автономных систем.
Дальнейшие действия автора:
- Подтвердил, что порт 443 действительно отвечает.
- Заблокировал весь входящий трафик из Бразилии на уровне файрвола.
- Отправил жалобы в 67 Telecom и в бразильский CERT.
- Проверил, как IDS/IPS реагирует на такие запросы.
Суть проблемы, хакерский подход и основные тенденции
Суть проблемы – это не просто «фоновой шум» от случайных сканеров, а целенаправленная, масштабная кампания, использующая полностью задействованные подсети небольших провайдеров. Хакеры применяют классический SYN‑скан для быстрой проверки открытости порта 443, а затем, в случае положительного ответа, могут перейти к более «тонким» методам – TLS‑фингерпринтинг, попытки установить соединение и использовать устройство как прокси.
Тенденции, которые можно выделить из данного кейса:
- Комплексное компрометирование инфраструктуры провайдера – вместо того, чтобы заражать отдельные роутеры, злоумышленники, вероятно, получили доступ к оборудованию уровня CGNAT или к маршрутизаторам ядра сети.
- Полное покрытие подсетей – сканирование всех IP‑адресов в /24 и /20 свидетельствует о автоматизированных скриптах, которые берут «список» подсетей и перебирают их последовательно.
- Гео‑ориентированный тайминг – пики совпадают с рабочим временем в Бразилии, что указывает на использование «человеческого» расписания (например, сотрудники, работающие в ночную смену в США).
- Переключение ролей устройств – IoT‑устройства, ранее использовавшиеся только для DDoS, теперь становятся «домашними прокси» для обхода гео‑блокировок и сбора данных.
Детальный разбор проблемы с разных сторон
Техническая сторона
- Нагрузка на таблицу сессий – почти половина записей в таблице сессий занята «мусорным» трафиком, что усложняет диагностику реальных проблем.
- Потенциальные уязвимости в оборудовании провайдера – если злоумышленники контролируют CGNAT‑устройства, они могут генерировать трафик от любого IP‑адреса в подсети, что делает блокировку по IP‑адресу бессмысленной.
- Недостаточная фильтрация на уровне ISP – небольшие провайдеры часто не имеют продвинутых систем DDoS‑защиты, что делает их «слабым звеном».
Экономическая сторона
Для провайдера компрометация инфраструктуры может привести к репутационным потерям и штрафам от регуляторов. Для конечного пользователя – рост расходов на обслуживание сети (большие логи, необходимость в более мощных устройствам).
Юридическая сторона
Отправка жалоб в CERT и в провайдера – правильный шаг, однако в большинстве стран такие жалобы рассматриваются длительно, а доказательная база часто недостаточна для привлечения к ответственности.
Практические примеры и кейсы
Ниже представлены два типовых сценария, которые могут возникнуть в аналогичной ситуации.
Сценарий 1: Домашний пользователь с небольшим роутером
Пользователь замечает, что его домашний роутер начинает «зависать» при попытке открыть веб‑страницу. После включения логирования он видит, что в течение часа генерируется более 10 000 SYN‑запросов к порту 443 из диапазона 45.232.212.0/24. Решение:
- Включить rate‑limit на входящие SYN‑пакеты (например, 5 пакетов/сек).
- Создать правило drop для всех входящих соединений из Бразилии.
- Обновить прошивку роутера до последней версии, отключив UPnP.
Сценарий 2: Малый бизнес с выделенным блоком IP‑адресов
Компания использует несколько публичных IP‑адресов для веб‑серверов. В логах наблюдается рост количества соединений из 177.36.48.0/20. Действия:
- Развернуть IDS/IPS (например, Suricata) с правилами, блокирующими SYN‑сканирование.
- Внедрить GeoIP‑фильтрацию на уровне балансировщика нагрузки.
- Подключить сервис DDoS‑защиты (Cloudflare, Akamai) для фильтрации трафика до попадания в сеть.
Экспертные мнения из комментариев
«Я провёл небольшое сканирование в Shodan и нашёл открытые сервисы Mikrotik. Не удивлюсь, если эти провайдеры используют оборудование Mikrotik, но не обновляют его. Патчи, исправляющие серьёзные уязвимости, вышли совсем недавно».
— Smith6612
«Блокировать весь трафик из Бразилии – самое простое и эффективное решение».
— Electronic_Air_9683
«Вместо блокировки пакетов лучше их просто сбрасывать (DROP), чтобы файрвол не тратил ресурсы на ответные SYN‑ACK».
— silentstorm2008
Возможные решения и рекомендации
- Гео‑блокировка – быстрый способ сократить нагрузку, но может затронуть легитимный трафик (например, CDN).
- Rate‑limiting SYN‑пакетов – ограничивает количество новых соединений от одного источника.
- Сегментация сети – отделить публичные сервисы от внутренних, используя отдельные VLAN и файрволы.
- Обновление прошивок у оборудования провайдеров (Mikrotik, Cisco, Juniper) – критически важно, если провайдер действительно использует уязвимое ПО.
- Внедрение IDS/IPS с правилами, обнаруживающими SYN‑сканирование и TLS‑фингерпринтинг.
- Сотрудничество с провайдерами – отправка отчётов в CERT и в ISP, запрос о проведении аудита их инфраструктуры.
- Лог‑агрегация и анализ – использовать ELK‑стек или Splunk для автоматического выявления аномалий.
Заключение и прогноз развития
Случай, описанный в Reddit, демонстрирует, что даже небольшие провайдеры могут стать «платформой» для масштабных сканирующих кампаний, если их оборудование скомпрометировано. Тенденция роста количества IoT‑устройств, их плохая защита и использование в ботнетах будет только усиливаться. Ожидается, что к 2027 году появятся новые «гибридные» ботнеты, сочетающие DDoS‑мощность и возможности прокси‑серверов, а также более изощрённые методы обхода гео‑блокировок.
Для защиты от подобных угроз необходимо сочетать технические меры (фильтрация, rate‑limiting, IDS/IPS) с процессуальными (сообщения в CERT, сотрудничество с провайдерами) и постоянным мониторингом. Чем быстрее вы обнаружите аномалию, тем меньше ресурсов будет потрачено на её обработку.
Практический пример (Python) – автоматический монитор и блокировка подозрительных IP
import requests
import json
import time
# Параметры
GREYNOISE_API = "https://api.greynoise.io/v3/community/"
API_KEY = "YOUR_GREYNOISE_API_KEY" # замените на ваш ключ
BLOCKED_COUNTRY = "BR" # код страны для блокировки
CHECK_INTERVAL = 300 # проверять каждые 5 минут
def is_noise_ip(ip):
"""
Проверяет, помечен ли IP как «noise» в GreyNoise.
Возвращает True, если IP участвует в сканировании.
"""
headers = {"key": API_KEY}
try:
resp = requests.get(GREYNOISE_API + ip, headers=headers, timeout=5)
if resp.status_code == 200:
data = resp.json()
return data.get("noise", False)
except requests.RequestException:
pass
return False
def block_ip(ip):
"""
Добавляет правило в iptables для блокировки IP.
Требует прав root.
"""
import subprocess
cmd = ["iptables", "-A", "INPUT", "-s", ip, "-j", "DROP"]
subprocess.run(cmd, check=False)
def monitor_and_block():
"""
Основной цикл: читает список IP из лог‑файла,
проверяет их в GreyNoise и блокирует при необходимости.
"""
while True:
# Читаем последние 1000 строк из файла flow.log
with open("/var/log/flow.log", "r") as f:
lines = f.readlines()[-1000:]
# Выделяем уникальные IP‑адреса-источники
ips = {line.split()[2] for line in lines} # предположим, что 3‑й столбец – source IP
for ip in ips:
if is_noise_ip(ip):
print(f"Блокируем подозрительный IP: {ip}")
block_ip(ip)
# Ждём перед следующей проверкой
time.sleep(CHECK_INTERVAL)
if __name__ == "__main__":
monitor_and_block()
Скрипт периодически (каждые 5 минут) читает последние записи из файла flow.log, выделяет уникальные IP‑адреса‑источники, проверяет их через API GreyNoise и, если IP помечен как «noise», добавляет правило в iptables для блокировки. Это простой, но эффективный способ автоматизировать реакцию на массовые сканирующие атаки.
Оригинал