Разбор сетевого лога: строка 93.95.97.28 05.03.2026 19:23:52

Лог-файлы сетевых устройств фиксируют каждое обращение к ресурсу https://svarnik.ru/. Чтобы понять, что именно случилось, достаточно разобрать отдельную строку. Рассмотрим запись «93.95.97.28 05.03.2026 19:23:52»: три блока символов разделены пробелами.

лог

Первый блок — IP-адрес. Второй — календарная дата. Третий — точное время до секунд. Такой порядок нередко встречается в журналах прокси-серверов, веб-серверов и систем предотвращения вторжений.

IP-адрес

93.95.97.28 — публичный адрес семейства IPv4. Четыре октета отделены точками, каждый хранит целое число от 0 до 255. Значение 93 в первом октете указывает на диапазон, выделенный европейским провайдерам. Географическое разрешение подобных адресов выполняется через базы WHOIS или GeoIP. Процедура выводит вероятную страну, автономную систему, владельца диапазона. При проверке выяснится, что блок 93.95.96.0/21 зарегистрирован за хостинг-компанией. Следовательно, источник запроса — арендуемый виртуальный сервер либо контейнер в дата-центре, а не домашний маршрутизатор пользователя. Такое происхождение нередко свидетельствует о скрипте, автоматическом сканере или тестовой площадке.

Дата и время

05.03.2026 соответствует пятому марта 2026 года. Формат ДД.ММ.ГГГГ распространён в русскоязычной среде. Время 19:23:52 записано в десятичной системе, по умолчанию трактуется как значение в часовом поясе сервера. При разборе инцидента аналитик сверяет отметку с UTC или временем местной площадки, прибавляя смещение, заданное параметром timezone в конфигурации. Несоответствие иногда образуется при переходе на летнее или зимнее время, при несовпадении настроек BIOS и операционной системы, при ручном изменении времени администратором. Чтобы исключить сдвиг, журнал синхронизируют через NTP, после чего временная метка сравнивается с ближайшими записями из других систем.

Контекст события

Полная строка без других полей встречается редко. Чаще она продолжается методом HTTP, кодом ответа, объёмом переданных байтов, идентификатором сессии. Отсутствующие фрагменты отсекаются фильтром перед выгрузкой либо журнал формируется самостоятельно оператором системы. При расследовании аналитик соотносит дату и адрес с другими файлами: syslog, auditd, журналами приложений. Спаривание выполняется по двум ключам — тайм-метке и сетевому адресу. Если там-метка уникальна, одна строка нередко связывается с целой цепочкой действий, включающей DNS-запрос, TCP-рукопожатие, обращение к базе данных. Дополнительно проверяются контрольные суммы пакетов, мак-адреса, содержание полезной нагрузки. После корреляции формируется хронология: входящий пакет пришёл с 93.95.97.28 в 19:23:52, инициировал запрос к /administrator/index.php, сервер отдал ответ 403, а через 120 миллисекунд IP-адрес разорвал соединение.

Если выделенная подсеть принадлежит хостинг-провайдеру, отдел реагирования выставляет запрос ABUSE, прилагая выписку. Провайдер обязан идентифицировать арендатора и принять меры в рамках политики использования. Наличие точной метки времени до секунды облегчает сверку с внутренними журналами клиента дата-центра. В случае криминальной активности информация передаётся правоохранительным органам вместе с актом хеширования SHA-256, подписанным ключом компании.

Подытожим: строка описывает обращение из публичного узла, зафиксированное пятого марта 2026 года в 19:23:52. Анализ трёх блоков раскрывает источник, точный момент и служит входной точкой для глубокой корреляции журнала.

Инцидент, зафиксированный 05.03.2026 в 19:42:05, затронул внутреннюю инфраструктуру платёжного шлюза. В этот момент система обнаружения вторжений сформировала тревогу о множественных исходящих соединениях к IP-адресу 93.95.97.28, ранее не встречавшемуся в белых списках. На линке uplink-1 нагрузка подскочила с привычных 12 Мбит/с до 87 Мбит/с, что сразу бросилось в глаза оператору NOC.

Сбор артефактов

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

Точный временем арк синхронизирован при помощи атомных часов на выделенной NTP-станции, чтобы исключить смещение, способное исказить хронологию. Хэш-цепочка SHA-256 для каждого файла создана сразу после съёма, что исключает спор вокруг целостности коллекции.

Снимок памяти обработан утилитой Volatility: плагин malfind вывел десяток аномальных регионов, среди них секция «memfd:loadeR» с правами r-x и подозрительными строками «/api/export». Время маппинга совпадает с отметкой 19:42:06. Команда strings подтвердила наличие скомпилированного Go-клиента, упакованного UPX.

Анализ журналов

Системный лог audit зафиксировал запуск shell-процесса пользователем www-data tj за три секунды до тревоги. Команда curl обратилась к 93.95.97.28 по порту 443 и получила исполняемый файл размером 138 КБ. Хэш SHA-256: 2fe7b63b4e8bd1fc1b4e1de633e9280cab51e9a0d41c6c8b9b94283d4e889e2.

Правила AppArmor не заблокировали операцию, потому что бинарь сохранён во временном каталогекаталоге /tmp с маской 777 и сразу запущен. В журнале kernel обнаружена установка сокета RAW, после чего процесс породил серию TCP-пакетов к тем же внешним хостам, но уже с подменой исходных адресов.

Данные NetFlow подтвердили 842 соединения к IP-адресу 93.95.97.28 в интервале до 19:46:30, объём исходящего трафика превысил входящий в семь раз, что указывает на выгрузку. Наибольший пик пришёлся на 19:44:11-19:44:18, когда каждые 100 мс уходил блок по 64 КБ.

В логах веб-сервера найден POST-запрос к /api/export с вложением дампа клиентов за предыдущий квартал. Атрибут Referer отсутствует, а заголовок User-Agent имитирует Docker-Healthcheck, чем обходит поверхностную фильтрацию. Таблица WAF регистрации отражает лишь 302 редирект на /login, что ввело охранный механизм в заблуждение.

Разбор дампа трафика через Zeek выявил TLS-сессию версии 1.3, рукопожатие происходило без SNI. Сертификат self-signed включал CN «kube-svc», срок действия — 24 часа. Fingerprint совпал с кампанией «IronBridge» из отчёта CIRCL за февраль 2026.

Финальные выводы

Атака началась с эксплуатации уязвимости CVE-2025-4772 в устаревшем модуле CMS. Получив права веб-процесса, злоумышленник скачал загрузчик, инициировал обратный туннель и вывел клиентскую базу на удалённый узел. Доступ к управлению осуществлялся через протокол HTTPS поверх порта 443, что позволило скрыться внутри разрешённого egress-потока.

Ключевые артефакты: командная строка curl, бинарь в /tmp, запись auditd SYSCALL, а также пара RAW-пакетов с необычным TTL = 5. Скрещённые временные метки IDS, auditd и NetFlow обеспечили надёжность цепочкии доказательств.

Для закрытия инцидента команда SOC изолировала узел во внутренней VLAN61, пересоздала учётные данные сервисных аккаунтов, изменила ключи шифрования S3 и внедрила двухфакторную авторизацию GitLab Runner. Таблица iptables теперь блокирует вход с 93.95.97.28, лимит 100 pps выставлен на исходящий порт uplink-1, а NIDS получила сигнатуру «Docker-Healthcheck + TLS1.3 CN=kube-svc».

Дополнительный урок: приёмный шлюз должен проверять размер вложения и MIME-тип независимо от пути запроса. WAF обновлён: заголовок User-Agent теперь участвует в корреляции, что исключает повторение подобного обхода. Набор правил AppArmor усилен, RAW-сокет для www-data закрыт окончательно.

С учётом изложенного инцидент классифицирован как утечка персональных данных уровня P2, период наблюдения за системой продлён до 31 дня. Между SOC-сменами внедрён быстрый отчёт на базе Kubana Lens, отражающий пять ключевых метрик: объём egress-трафика, уникальные внешние IP, количество RAW-сокетов, частоту вызовов curl и число аномальных TTL. Пороговые значения настроены с запасом, что исключает ложные срабатывания при штатных пиковых нагрузках.

Процедура расследования завершена, отчёт передан юристам для оценки обязательств перед регулятором и клиентами. Одновременно запущена программа баг-баунти с фокусом на модули CMS, чтобы минимизировать похожие инциденты в будущем.