Короткий ответ

IDS без свежих сигнатур — музей. Обновите ruleset штатным suricata-update (или документированным механизмом Snort) с подписанного источника. Проверьте дату файлов, не кладите *.rules из чатов. После обновления — suricata -T, короткий просмотр шума, в IPS mode сначала detect. nftables и RouterOS не обновляют IDS сами: это отдельная процедура. Firewall не выключать.

Не вставляйте в статью и в прод конкретные CVE «которые сейчас модно» — смотрите vendor bulletin своего ruleset.

Симптомы и как отличить

ls -l /var/lib/suricata/rules/ | head
sudo grep -i last /var/log/suricata/suricata-update.log | tail

Файлы старше политики (например >7 дней при ежедневном update). suricata-update в cron падает. В SIEM нет алертов, которые коллеги видят на свежем стенде.

Отличие от шума: там слишком много событий. Здесь слишком мало или «дыры известны миру, вам нет». Отличие от мёртвого сенсора: process active, но rules old.

Возможные причины

  1. Cron suricata-update не установлен / не root на каталог.
  2. Источник выключен, ET/OISF URL 403 без регистрации.
  3. Протухла подпись, не обновлён ключ — update отказался (это хорошо, не обходите --no-check-certificate вслепую).
  4. Нет исходящего 443 с сенсора — egress без allow к update.
  5. IPS боятся обновлять после прошлого ложного drop.
  6. На edge MikroTik ждут «автоматических сигнатур» — их нет.

Диагностика

sudo systemctl is-active suricata
sudo suricata-update --version
sudo suricata-update list-enabled-sources
sudo suricata-update list-sources | head
ls -l --time-style=long-iso /var/lib/suricata/rules/*.rules | head
sudo suricata -T -c /etc/suricata/suricata.yaml

Смотрите лог update:

sudo tail -n 80 /var/log/suricata/suricata-update.log

Ошибки TLS, 404, GPG — читайте буквально. Не --nocheck.

Проверьте, что сенсор ходит на HTTPS источника: с самого хоста curl -I документированного URL из list-sources, не на случайный IP.

Egress: если default deny с 10.0.99.0/24/DMZ сенсора — нужен allow 443 к vendor. Не any.

Концепция пакета на pfSense/OPNsense: дата Last rule update в GUI, подпись/хеш если GUI показывает. Не придумывайте CLI opnsense-update-ids.

RouterOS: не ruleset IDS. Обновление RouterOS ≠ Suricata.

Решение

Сценарий A. Штатный update Ubuntu

Backup текущих rules:

sudo tar -C /var/lib/suricata -czf /root/suricata-rules-$(date +%F).tgz rules
sudo cp -a /etc/suricata /root/etc-suricata-$(date +%F)
sudo suricata-update
sudo suricata -T -c /etc/suricata/suricata.yaml
sudo systemctl restart suricata

Если unit reload умеет — reload. Проверьте eve.json на всплеск шума.

Сценарий B. Источник не включён

sudo suricata-update list-sources
# enable только те, что организация выбрала (ET Open / подписка)
# sudo suricata-update enable-source <имя_из_list-sources>
sudo suricata-update

Имена берите из вывода на этой машине, не из памяти статьи. Не включайте всё подряд: получите шум и CPU.

Сценарий C. Подпись / TLS не сходятся

Не отключайте проверку. Обновите пакет suricata-update/ca-certificates:

sudo apt-get update
sudo apt-get install --only-upgrade ca-certificates suricata suricata-update

Если vendor сменил ключ — инструкция с сайта проекта, не gist. После фикса ключа повторите update.

Сценарий D. IPS режим

Обновляйте сначала на копии в detect или в нерабочее окно. Смотрите IPS ложные. Имейте bak rules tgz для отката:

sudo tar -C /var/lib/suricata -xzf /root/suricata-rules-ДАТА.tgz
sudo systemctl restart suricata

Filter nft в это время не трогайте.

Сценарий E. Сенсор без интернета

Выгружайте ruleset на mgmt-хосте с проверкой подписи, копируйте scp в 10.0.99.0/24. Не USB с «папкой с торрента».

Таймер systemd:

systemctl list-timers | grep -i suricata

Если пусто — добавьте vendor unit или cron раз в сутки, лог в syslog.

Контроль свежести без слепого auto-promote в IPS

Заведите два каталога или два режима: nightly suricata-update на сенсоре detect, promote в inline только после окна. Метрики в заявке: mtime *.rules, exit code update, число SID до/после (grep -c '^alert' /var/lib/suricata/rules/*.rules как грубая оценка — не догма), всплеск eve drop за час.

Если update пишет, что source disabled — не «докачивайте zip». Включите source из list-sources той версии, что стоит. Подпись: при ошибке GPG сначала ca-certificates и пакет, потом документация OISF/ET, не gist.

Egress с сенсора в 10.0.99.0/24 к HTTPS vendor должен быть в матрице исходящих. Иначе «устарели сигнатуры» — на самом деле default deny, а не лень. RouterOS 7 не лечит этот класс: не ищите там ET ruleset и не подменяйте обновление RouterOS обновлением IDS.

Как проверить, что проблема устранена

  1. Дата файлов rules сегодняшняя/в пределах SLA.
  2. suricata -T успех.
  3. suricata-update exit 0, в логе проверка подписи без bypass.
  4. Нет всплеска drop IPS на бизнес-потоках (15–60 мин наблюдение).
  5. Firewall counters как вчера.
  6. Контроль: свой скан своего 203.0.113.10 даёт ожидаемые scan-alert (не доказательство новизны всех SID, но сенсор жив).

На стенде сравните suricata --build-info с требованиями свежего ruleset (версия engine в release notes пакета Ubuntu). Не смешивайте ruleset от Suricata 7 с бинарём 6 «на удачу». После удачного -T подождите появления новых файлов в stats.log: uptime растёт, capture не 0. Если capture 0 — вы обновили правила, но сенсор не видит трафик (неверный iface в yaml), это не успех update.

Если не помогло

  • Диск read-only / inode — update «ок», файлы старые.
  • Два каталога rules, yaml указывает не туда.
  • SELinux/AppArmor на запись — смотрите журнал, не disable MAC навсегда.
  • Кластер сенсоров, обновили один.
  • Ждали, что MikroTik начнёт ловить exploit — нужен отдельный сенсор.

Профилактика

  • Timer daily + алерт если mtime rules > 48 ч.
  • Только подписанные sources, список в SCM.
  • Стенд detect перед IPS.
  • Ретеншн eve, чтобы сравнить до/после.
  • Запрет ручных rules без code review.

FAQ

ET Open достаточно?

Для многих SMB — да как база. Подписка — решение организации. Главное — регулярность и подпись, не «секретные SID с форума».

Обновлять Suricata engine вместе с rules?

По compat: новая ruleset может требовать версию engine. Читайте release notes пакета Ubuntu, не мешайте major вслепую.

Можно ли git clone правил?

Только если это официальный репозиторий и вы проверяете коммиты/подписи как в их доке. Случайный fork — нет.

Ruleset жрёт CPU после update

Вернитесь к tgz, отключите тяжёлые категории, затем выборочно. Не stop nft.

Нужны ли сигнатуры на RouterOS?

Нет замены. Держите filter + отдельный IDS.