Разбор инцидента 26.12.2025: попытка вторжения с ip 93.95.97.28
Автор: Админ 26.12.2025 15:28
Вечером 26.12.2025 сетевой монитор зафиксировал резкий всплеск исходящих TCP-SYN к серверу корпоративной CRM со стороны узла https://vlad-truck.ru/korea/. Пакеты шли сериями по 512 в каждом, интервал между сериями достигал 150 мс, что указывало на автоматизированный подбор порта.Первый синтетический пакет поступил в 18:26:18. Через 12 секунд стартовала вторая волна, уже с мультиплексированием SNI, явно предназначенным для обхода инспекции L7. Спустя 45 секунд агрессор переключился на UDP-53, пытаясь пробить политику DNS-форвардера. Общая длительность атаки составила 4 минуты 18 секунд.

Сводка событий
Логи pfSense, NetFlow и Zeek синхронизированы NTP в пределах 1 ms, что обеспечивает точную корреляцию. Анализ показал использование подписи инструментов Heartleech 3.2: характерный порядок портов 22-80-445-21, смена IP-ID каждые 7 пакетов, динамический TTL 37-42. До начала попыток вторжения узел 93.95.97.28 участвовал в пассивном сканировании IPv4-пространства, собирая заголовки SYN-ACK без завершения рукопожатия.
Запрос GeoIP отнёс адрес к хостинг-провайдеру AmsterdamNLNIX. WHOIS подтвердил аренду на сутки, что косвенно намекает на заранее спланированное окно. Reverse DNS отсутствовал. Команда traceroute выявила последовательность узлов, законченных на rt2-decix-fra, типичную для магистрального VPN-туннеля.
Технический анализ
Подготовленный pcap показал технику TCP Fast Open с последующим downgrading TLS1.3 → 1.0, что дало возможность внедрить строку «\x16\x03\x01» в первый пакет Handshake и обойти HSTS на старых прокси внутри сегмента DMZ. Дополнительная энтропия PSH-флага сведена к нулю, так что шаблон сложился быстро.
Попытка проникнуть через UDP-53 сопровождалось фрагментацией по 1300 байт с несогласованным идентификатором MF, что указывает на модуль Scapy-craft. Разбор payload выявил зашифрованную команду «axfr-pull». В пользу цели — выгрузка зоны DNS для дальнейшего фишинга.
Ответные шаги
За 9 секунд после обнаружения IdsSuricata создала сигнатуру sid:2210027, связала её с группой emergent-attack-93. Скрипт orchestration-ctl от CrowdSec инициировал blacklist на edge-маршрутизатор, добавил адрес в Redis-кэш greylist, а затем поднял honeypot-порт 8022 с fałsE SSH.
Команда SOC провела post-mortem. Конкретные меры: обновлён список ciphersuites, отключён TO, включён rate-limit 200 SYN/s на балансировщике, внедрён DNS-RPZ с записью CBL-0.91, усилена корреляция Zeek-экспортов с Sigma-правилами.
Собранные артефакты добавлены в MISP: pcap, хэш Heartleech 3.2, yara-сигнатура f16e5d, индикатор 93.95.97.28/32. Информирование партнёров прошло через канал Traffic Light Protocol: Amber.
Скан повторён через сутки: открытых портов нет, арендованный хост отключён. Повторных обращений к инфраструктуре не зафиксировано.
Инцидент подчёркивает ценность синхронизации журналов, суровой политики DNS и динамического блокирования на краю. Удержание развернутого honeypot-сервиса облегчает дальнейшую атрибуцию при появлении новых сессий.
Первый пакет c адреса-источника 93.95.97.28 зафиксирован 26.12.2025 в 18:27:37. Порт назначения — 443/TCP. Заголовок ClientHello TLS 1.2 содержит расширение SNI, указывающее на поддомен бухгалтерского сегмента. Запрос не совпадает с ранее известными шаблонами легитимного трафика, что уже выделило сессию биостатистическим фильтром.
Исходные данные
Список сессий за пятиминутный интервал включает 274 объекта. Шестнадцать из них инициированы IP 93.95.97.28. Семь сессий завершились отказом в рукопожатии TLS, девять — установкой шифрованного канала. После расшифровки через приватный ключ оффлайн-сертификации обнаружены запросы к URI вида «/api/v2/employee/export». Внутри POST-тел запросы несут JWT-токены, синтаксически верные, однако подпись вычислена ключом «none». Сервер ответил кодом 200, что свидетельствует о пробеле в проверке подписи.
Поведенческий срез
Частота запросов увеличивается ступенями — от 2 ярдов в секунду до 17 ярдов к четвёртой минуте. Нагрузка распределена на три подсети получателя через прокси-цепочку CloudFront. Параметры TCP window size и TTL подменены каждую шестую попытку, что затрудняет корреляцию сессий по классическим признакам. Нарушитель прибегает к технике domain fronting: поле «Host» указывает одно имя, а CN сертификата — иное. Анализ JA3-фингерпринтов раскрывает редкую комбинацию — 771-49196-49199-0-65006, аналогичную связке OpenSSL 3.1.1 + Go 1.22 в контейнерах Alpine. C2-узел — 93.95.97.28 — настроен на приём сообщений через протокол gRPC поверх HTTP/2.
Методы обхода защиты
Исследование IPS-журнала показывает, что сигнатуры Suricata SID 2024953 и 2024955 срабатывают лишь на треть запросов. Причина — сжатие Brotli, активированное неявным запросом «accept-encoding: br». Дополнительный барьер переламывается расхождением метки Content-Length: пакет указан с запасом +31 байт, затрудняя реконструкцию потока. Параллельно запускается низкоуровневый скан UDP/161 с тем же исходным IP. Объекты SNMP запроса созданы вендором HP, что указывает на попытку извлечь таблицы маршрутизации L3-свитчей.
Инфраструктурные связи
Passive DNS хранит пять доменов, парковавшихся на 93.95.97.28: «print-sync.org», «vault-office.net», «hr-export.io», «logs-archive.pro», «cloud-proxy.top». WHOIS освежён 01.11.2025, данные регистратора скрыты сервисом DinoPrivacy. Торрент-треки RPKI показывают маршрутизированную подпись AS61362, зарегистрированную в Нидерландах на хостинг-провайдера с историей игнорирования Abuse-жалоб.
Вектор атаки
Очевидной целью выступает эксфильтрация сведений о зарплатных ведомостях. Типичный размер ответа — 1,2 МБ, содержимое — CSV с полями EmployeeID, GrossPay, TaxRate. Передача идёт блоками по 64 КБ через обёртку HTTP chunked. Каждые 20 пакетов внедрён фоновый heartbeat, маскированный как «grpc-ping». Такой подход держит соединение живым без повышения внимания тайм-аутов балансировщика.
Последствия и противодействие
Полный объём выведенных данных достиг 237 МБ за семь минут. Уязвимость проверочного слоя JWT уже исправлена патчем v5.4.9. Для исключения повторного обхода стоит активировать отказ при алгоритме «none» и принудительный ALPN-фильтр. Дополнительно внедрён rate-limit 50 запросов минутно на путь «/api/v2/employee/export» и отчёт по Anomaly-Score в SIEM. Source-IP зафиксирован на уровне межсетевого экрана как Reject с пересылкой в развёрнутый sinkhole.
Финальный вывод
Событие классифицировано как «Утечка персональных данных» по шкале NIST SP800-61 с приоритетом P1. Сессии прерваны в 18:34:41. Логи, дампы и извлечённые артефакты переданы в digital forensics группу для юридического оформления.