Мониторинг безопасности доступа к серверу: коллектор и алерты

Веб Штурм (собственная разработка инструмента) Информационная безопасность / Инфраструктура 2026-06 — наст. время
~99%
шума отфильтровано калибровкой белого списка
0 deps
анализатор на стандартной библиотеке
2 уровня
критичное немедленно, фон — в дайджест

Услуги

  • cybersecurity
  • complex-systems

Стек

  • syslog-коллектор
  • стандартная библиотека (zero-deps)
  • fail2ban
  • классификация по категориям угроз
  • алерты в мессенджер

Веб Штурм — информационная безопасность и инфраструктура. После смены подрядчика клиенту понадобилась видимость попыток несанкционированного доступа к легаси-системе в изолированном сегменте и доказуемое разграничение зон ответственности. Мы собрали единый лог-коллектор, лёгкий анализатор на стандартной библиотеке (ноль внешних зависимостей), классификацию событий по категориям угроз и двухуровневые алерты. Калибровкой белого списка убрали порядка 99% шума.

Инструмент мониторинга — собственная разработка Веб Штурм; внедрён у клиента. Детали периметра обобщены: без раскрытия конкретной инфраструктуры. Метрики — характер решения и эффект калибровки.

Контекст

Легаси-система жила в собственном изолированном сетевом сегменте. Логи писались, но разрозненно: события файрвола — на шлюзе периметра, аутентификация и веб-сервер — на прикладных хостах. Никто не собирал их в одном месте и не анализировал.

Боли после смены подрядчика:

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

Какие вызовы решены

Как собрать всю картину в одном месте? Единый коллектор: события со всех прод-хостов уносятся в одну точку по стандартному протоколу логирования. Убирает «обход по хостам руками».

Как сделать инструмент безопасности безопасным? Анализатор без внешних зависимостей: парсер и классификатор на стандартной библиотеке языка. Ноль сторонних пакетов = ноль рисков цепочки поставок для инструмента, обрабатывающего самые чувствительные данные. Бонус — тривиальный аудит и развёртывание без менеджера пакетов.

Как превратить поток строк в осмысленную картину? Классификация по категориям угроз — каждое событие маппится в один из классов:

КатегорияЧто детектируемИсточник сигнала
Атака на шлюз периметраАномальная активность против пограничного шлюзаСобытия файрвола
Подбор SSHСерии отказов аутентификации с одного источника (brute-force)Лог аутентификации, fail2ban
Веб-атакиSQL-инъекции, XSS и инъекционные паттерны в параметрахЛог веб-сервера
Сканы периметраПоследовательные обращения к закрытым портамСобытия файрвола
Нарушение сетевой политикиТрафик между хостами, которые по политике общаться не должныСобытия файрвола на границе сегмента

Как не превратить канал алертов в шум? Два уровня: критичное (активная атака на шлюз, нарушение изоляции, всплеск подбора) — немедленно; массовый фон (одиночные сканы, отбитые попытки) — в агрегированный дайджест. Эвристика: критичное должно будить, фон — информировать.

Как избежать шторма при первом запуске? Лог-тейлинг с seek-to-end: анализатор читает только новые события с момента старта, а не перечитывает историю.

Как отделить сигнал от легитимного фона? Калибровка белого списка: служебные проверки, известные сканеры поисковиков, health-check’и итеративно вносятся в whitelist. Результат — порядка 99% событий отфильтровано, осталось реальное.

Подход: дисциплина важнее скорости (работа на живом проде)

  1. Бэкап конфигураций до любых правокоткат = вернуть файл, а не «вспоминать как было».
  2. Поэтапный rollout — сначала коллектор, потом анализатор, потом боевые алерты; каждый этап проверяется отдельно.
  3. Dry-run перед боевыми алертами — детектируем и логируем, но не шлём; убедились — включаем доставку.
  4. Прод-периметр трогаем минимально — сбор логов пассивен, не меняет правила файрвола и не добавляет точек отказа на пути прод-запросов.

Результат

  • Боевой детектор несанкционированного доступа — подбор, сканы, веб-атаки и нарушения изоляции видны в реальном времени.
  • Видимость периметра — вся картина в одном канале, без обхода хостов руками.
  • Отфильтрованный сигнал — калибровка убрала порядка 99% шума.
  • Разделение ответственности доказуемо — нарушение границы сегмента детектируется отдельной категорией.
  • Доказательная база — события классифицированы и сохранены для разбора инцидентов.

Границы применимости

  • Это не полноценный SIEM. Лёгкий анализатор покрывает конкретные категории для конкретного периметра. Нужна корреляция десятков источников и ретеншн на месяцы — смотрите SIEM-платформы.
  • Это не замена harden’ингу. Мониторинг показывает попытки, но не закрывает дыры — дополняет конфигурацию файрвола, fail2ban и сетевой изоляции.
  • Качество детекта = качество калибровки. Без вложения в whitelist детектор либо шумит, либо пропускает.

Что использовали

Единый syslog-коллектор (пассивный сбор по стандартному протоколу). Анализатор на стандартной библиотеке языка (zero-deps). fail2ban как источник сигнала по brute-force. Классификация по категориям угроз. Двухуровневые алерты в мессенджер (немедленные + дайджест). seek-to-end лог-тейлинг, whitelist-калибровка, dry-run.

Что мы можем сделать у вас

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

Часто задаваемые вопросы

Как организовать мониторинг безопасности доступа к серверу или изолированному сегменту?
Базовый контур: централизованный сбор логов со всех прод-хостов (события файрвола, SSH, веб-сервера), анализатор, который классифицирует события по категориям угроз, и доставка алертов в канал, который команда реально читает. Анализатор лучше строить на стандартной библиотеке языка без внешних зависимостей — это снижает риски цепочки поставок и упрощает аудит. Критичное идёт немедленно, фон — в агрегированный дайджест.
Почему анализатор без внешних зависимостей безопаснее?
Каждая внешняя библиотека — потенциальный вектор атаки через цепочку поставок: скомпрометированный пакет или транзитивная зависимость может утечь логи или открыть доступ. Инструмент мониторинга обрабатывает самые чувствительные данные инфраструктуры, поэтому мы выбрали ноль внешних зависимостей — только стандартная библиотека. Это упрощает аудит и убирает целый класс рисков.
Зачем разделять алерты на два уровня?
Если слать в мессенджер каждое подозрительное событие, канал превращается в шум и команда перестаёт его читать — худший исход для системы безопасности. Поэтому критичное (активная атака на шлюз, нарушение изоляции сегмента) приходит немедленно, а массовый фон (одиночные сканы, отбитые файрволом попытки) собирается в периодический дайджест.
Как не утонуть в ложных срабатываниях?
Калибровкой белого списка. Изначально детектор реагирует на всё подозрительное, но львиная доля — легитимный фон: служебные проверки, известные сканеры поисковиков, внутренние health-check'и. Мы итеративно вносим такие паттерны в whitelist и наблюдаем, как падает поток. На внедрении калибровка убрала порядка 99% событий, оставив реальный сигнал.
Можно ли внедрить без риска для работающего прода?
Да, при полной обратимости. Бэкап конфигураций до изменений, поэтапный rollout (сначала коллектор, потом анализатор, потом боевые алерты), dry-run перед боевым включением, минимальное вмешательство в периметр — сбор логов пассивен и не влияет на трафик. Любой шаг можно откатить.

Похожая задача?

Расскажите контекст — подскажем, что и как делать.