carlens
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору cablegay Цитата: Ошибку пишет - IPS Error: snort/rules/used.rules(8137) Rule options must be enclosed in '(' and ')'. (1) 8137 я так понял это номер строки. | Я тоже сталкивался с этим. Пожалуйста обратите внимание в файле snort/rules/used.rules на вот эту строку: Код: drop Major, tag InfoStealer, tag PlanetStealer, updated_at 2024_03_05;) | На самом деле это остаток - "хвост" предыдущего правила, посмотрите, там как раз скобка не закрыта: Код: drop tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"ET TROJAN [ANY.RUN] PlanetStealer <......> confidence High, si | Вот это последнее "si", это на самом деле обрезанное "signature_severity", которое "Major", а собственно само правило должно было быть таким: Код: drop tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"ET TROJAN [ANY.RUN] PlanetStealer CnC Checkin"; flow:established,to_server; flowbits:set,ET.PlanetStealer.Checkin; content:"POST"; http_method; content:"/submit/info"; http_uri; content:"User-Agent|3a 20|Go-http-client/"; http_header; content:"|22|owner_id|22 3a 22|"; http_client_body; content:"|22|bot_id|22 3a 22|"; http_client_body; content:"|22|build_id|22 3a 22|"; http_client_body; content:"|22|statistics|22 3a 7b 22|total_passwords|22 3a|"; http_client_body; fast_pattern; content:"|22|total_cookies|22 3a|"; http_client_body; content:"|22|total_cards|22 3a|"; http_client_body; content:"|22|total_autofills|22 3a|"; http_client_body; content:"|22|total_wallets|22 3a|"; http_client_body; content:"|22|total_bookmarks|22 3a|"; http_client_body; content:"|22|computer|22 3a 7b 22|username|22 3a 22|"; http_client_body; content:"|22|hostname|22 3a 22|"; http_client_body; content:"|22|hwid|22 3a 22|"; http_client_body; pcre:"/\x22hwid\x22\x3a\x22[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}\x22/P"; content:"|22|cpu|22 3a 22|"; http_client_body; content:"|22|gpu|22 3a 22|"; http_client_body; content:"|22|windows_version|22 3a 22|Windows"; http_client_body; content:"|22|country|22 3a 22|"; http_client_body; content:"|22|ip|22 3a 22|"; http_client_body; content:"|22|wallets|22 3a|"; http_client_body; content:"|22|credentials|22 3a|"; http_client_body; content:"|22|software|22 3a|"; http_client_body; content:"|22|file|22 3a|"; http_client_body; content:!"Referer|3a 20|"; http_header; reference:md5,99a0225b149f9a918aaccafa73c42a1f; reference:url,community.emergingthreats.net/t/planetstealer; reference:url,app.any.run/tasks/a55c931e-99d7-4b32-8672-2b5733ae3dd4; classtype:trojan-activity; sid:2051490; rev:1; metadata:affected_product Windows_XP_Vista_7_8_10_Server_32_64_Bit, affected_product Windows_11, attack_target Client_Endpoint, tls_state plaintext, created_at 2024_03_05, deployment Perimeter, malware_family PlanetStealer, performance_impact Low, confidence High, signature_severity Major, tag InfoStealer, tag PlanetStealer, updated_at 2024_03_05;) | Вы можете внести это исправление вручную (то есть заменить в файле snort/rules/used.rules si<LF>drop на signature_severity), но при следующем обновлении правил или рестарте Снорт, ошибка вылезет вновь. Предполагаю, эта ошибка - результат некорректного формирования списка применяемых правил Снорт: это конкретное правило оказалось длиннее, чем предполагали разработчики, поэтому такое длинное правило, начинающееся с "drop..." и обрезается до "...confidence High, si" - (2048 байт?), а остаток переносится на следующую строку как новое правило, тоже начинающееся с "drop...". Это вызывает указанную ошибку, и циклическую перезагрузку службы Снорт. ==================== ==UPDATE as of 15-11-2024== ==================== Снорт собирает файл snort/rules/used.rules при каждом обновлении и рестарте, в том числе при рестарте службы предотвращения вторжений через веб интерфейс, соответственно, ошибка возвращается. Добавление SID правила в исключения через веб интерфейс не помогает: ошибка остается, а в логах меняется номер строки. При этом в веб интерфейсе отображается, что снорт работает, но это не так: снорт циклически перегружается, что делает его фактически неработоспособным. Такое "длинное" правило всего одно, соответственно, быстро исправить файл можно одной командой: Код: sed -i ':a;N;$!ba;s/si\ndrop/signature_severity/' /var/winroute/snort/rules/used.rules | По этой команде в каждой паре строк файла snort/rules/used.rules ищется набор символов "si\ndrop", то есть 's', 'i', знак новой строки, 'd', 'r', 'o', 'p' и заменяется на "signature_severity" уже без 'знака новой строки'. Для "автоматизации" можно добавить команду в крон, для этого нужно создать в папке /etc/cron.d/ файл с названием, например, sedrules, с таким содержимым: Код: SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin MAILTO="" */10 * * * * root sed -i ':a;N;$!ba;s/si\ndrop/signature_severity/' /var/winroute/snort/rules/used.rules | (Пожалуйста не забудьте после команды добавить пустой абзац (символ \n) в конце скрипта.) Для изменений потребуется смонтировать файловую систему в режиме записи: mount / -o remount,rw После внесения изменений вернуть файловую систему в режим чтения: mount / -o remount,ro После этого перезагрузить Керио командой: /etc/boxinit.d/60winroute restart Это, конечно, костыль, но команда отрабатывает за доли секунды, на нагрузке ЦП не сказывается никак: добавил и забыл. ==================== ==UPDATE as of 03-08-2025== ==================== Теперь ошибка вызвана такой строкой Соответственно, файл крон будет иметь такой вид | Всего записей: 405 | Зарегистр. 27-05-2019 | Отправлено: 22:38 18-07-2024 | Исправлено: carlens, 22:57 06-08-2025 |
|