Мониторинг безопасности доступа к серверу: коллектор и алерты
Услуги
- cybersecurity
- complex-systems
Стек
- syslog-коллектор
- стандартная библиотека (zero-deps)
- fail2ban
- классификация по категориям угроз
- алерты в мессенджер
Веб Штурм — информационная безопасность и инфраструктура. После смены подрядчика клиенту понадобилась видимость попыток несанкционированного доступа к легаси-системе в изолированном сегменте и доказуемое разграничение зон ответственности. Мы собрали единый лог-коллектор, лёгкий анализатор на стандартной библиотеке (ноль внешних зависимостей), классификацию событий по категориям угроз и двухуровневые алерты. Калибровкой белого списка убрали порядка 99% шума.
Инструмент мониторинга — собственная разработка Веб Штурм; внедрён у клиента. Детали периметра обобщены: без раскрытия конкретной инфраструктуры. Метрики — характер решения и эффект калибровки.
Контекст
Легаси-система жила в собственном изолированном сетевом сегменте. Логи писались, но разрозненно: события файрвола — на шлюзе периметра, аутентификация и веб-сервер — на прикладных хостах. Никто не собирал их в одном месте и не анализировал.
Боли после смены подрядчика:
- Нет видимости попыток доступа. Подбор паролей, сканы портов, веб-атаки происходили, но узнать о них можно было лишь вручную зайдя на хост.
- Размытые зоны ответственности. Нужно доказуемо разграничить: новый подрядчик работает со своим контуром и не имеет доступа к чувствительному сегменту.
- Нет реакции в реальном времени и нет доказательной базы для разбора инцидента.
Какие вызовы решены
Как собрать всю картину в одном месте? Единый коллектор: события со всех прод-хостов уносятся в одну точку по стандартному протоколу логирования. Убирает «обход по хостам руками».
Как сделать инструмент безопасности безопасным? Анализатор без внешних зависимостей: парсер и классификатор на стандартной библиотеке языка. Ноль сторонних пакетов = ноль рисков цепочки поставок для инструмента, обрабатывающего самые чувствительные данные. Бонус — тривиальный аудит и развёртывание без менеджера пакетов.
Как превратить поток строк в осмысленную картину? Классификация по категориям угроз — каждое событие маппится в один из классов:
| Категория | Что детектируем | Источник сигнала |
|---|---|---|
| Атака на шлюз периметра | Аномальная активность против пограничного шлюза | События файрвола |
| Подбор SSH | Серии отказов аутентификации с одного источника (brute-force) | Лог аутентификации, fail2ban |
| Веб-атаки | SQL-инъекции, XSS и инъекционные паттерны в параметрах | Лог веб-сервера |
| Сканы периметра | Последовательные обращения к закрытым портам | События файрвола |
| Нарушение сетевой политики | Трафик между хостами, которые по политике общаться не должны | События файрвола на границе сегмента |
Как не превратить канал алертов в шум? Два уровня: критичное (активная атака на шлюз, нарушение изоляции, всплеск подбора) — немедленно; массовый фон (одиночные сканы, отбитые попытки) — в агрегированный дайджест. Эвристика: критичное должно будить, фон — информировать.
Как избежать шторма при первом запуске? Лог-тейлинг с seek-to-end: анализатор читает только новые события с момента старта, а не перечитывает историю.
Как отделить сигнал от легитимного фона? Калибровка белого списка: служебные проверки, известные сканеры поисковиков, health-check’и итеративно вносятся в whitelist. Результат — порядка 99% событий отфильтровано, осталось реальное.
Подход: дисциплина важнее скорости (работа на живом проде)
- Бэкап конфигураций до любых правок — откат = вернуть файл, а не «вспоминать как было».
- Поэтапный rollout — сначала коллектор, потом анализатор, потом боевые алерты; каждый этап проверяется отдельно.
- Dry-run перед боевыми алертами — детектируем и логируем, но не шлём; убедились — включаем доставку.
- Прод-периметр трогаем минимально — сбор логов пассивен, не меняет правила файрвола и не добавляет точек отказа на пути прод-запросов.
Результат
- Боевой детектор несанкционированного доступа — подбор, сканы, веб-атаки и нарушения изоляции видны в реальном времени.
- Видимость периметра — вся картина в одном канале, без обхода хостов руками.
- Отфильтрованный сигнал — калибровка убрала порядка 99% шума.
- Разделение ответственности доказуемо — нарушение границы сегмента детектируется отдельной категорией.
- Доказательная база — события классифицированы и сохранены для разбора инцидентов.
Границы применимости
- Это не полноценный SIEM. Лёгкий анализатор покрывает конкретные категории для конкретного периметра. Нужна корреляция десятков источников и ретеншн на месяцы — смотрите SIEM-платформы.
- Это не замена harden’ингу. Мониторинг показывает попытки, но не закрывает дыры — дополняет конфигурацию файрвола, fail2ban и сетевой изоляции.
- Качество детекта = качество калибровки. Без вложения в whitelist детектор либо шумит, либо пропускает.
Что использовали
Единый syslog-коллектор (пассивный сбор по стандартному протоколу). Анализатор на стандартной библиотеке языка (zero-deps). fail2ban как источник сигнала по brute-force. Классификация по категориям угроз. Двухуровневые алерты в мессенджер (немедленные + дайджест). seek-to-end лог-тейлинг, whitelist-калибровка, dry-run.
Что мы можем сделать у вас
Похожая задача с видимостью периметра? Мы делаем аудит безопасности инфраструктуры и внедрение мониторинга доступа — от разбора текущих логов до боевого детектора с двухуровневыми алертами, с полной обратимостью изменений. Обсудить
Часто задаваемые вопросы
Как организовать мониторинг безопасности доступа к серверу или изолированному сегменту?
Почему анализатор без внешних зависимостей безопаснее?
Зачем разделять алерты на два уровня?
Как не утонуть в ложных срабатываниях?
Можно ли внедрить без риска для работающего прода?
Похожая задача?
Расскажите контекст — подскажем, что и как делать.