WP Cerber Security 9.8.3
English version: WP Cerber Security 9.8.3
Вкратце
Мы улучшили обработку внешних и предоставленных пользователями данных через сканер плагина, электронные письма с информацией о безопасности и экспорт журналов. Мы также переработали экспорт больших журналов активности, чтобы он работал более предсказуемо при нехватке памяти, и исправили несколько проблем, которые снижали точность сортировки и составления отчетов.
После обновления никаких изменений в конфигурации не требуется, но эту версию стоит установить как можно скорее, если вы используете оповещения об активности, электронные письма с PIN-кодом для двухфакторной аутентификации или экспортируете большие объемы журналов безопасности.
Основные моменты
- Усиление мер безопасности для сообщений сканера плагинов и исходящих электронных писем, содержащих информацию о безопасности.
- В экспортируемых журналах активности добавлено новое сводное отображение диапазонов дат для упрощения анализа.
- Более предсказуемый экспорт журналов активности и трафика с меньшим потреблением памяти для больших объемов данных.
- Более эффективная работа достигается при использовании Nginx для экспорта данных.
- Исправлены ошибки в электронных письмах с оповещениями, фильтрации в Traffic Inspector, обработке памяти при экспорте журналов и уведомлениях администратора.
Усиление безопасности
Сообщения об изменении владельца сканера теперь экранируются в соответствующем контексте.
WP Cerber считывает метаданные о владельце плагина из репозитория плагинов WordPress.org и отображает их при изменении владельца установленного плагина. Этот источник данных обычно заслуживает доверия, и вероятность наличия вредоносных метаданных низка, но внешние метаданные все же не следует вставлять в административный интерфейс WordPress в виде необработанного HTML-кода.
В этом релизе сообщение об изменении владельца и ссылки на профиль владельца обрабатываются через пользовательский интерфейс WP Cerber. URL-адреса профилей и отображаемые имена теперь экранируются в собственных контекстах вывода перед их отображением. Это устраняет потенциальный вектор XSS-атаки на сохраненные административные страницы в результатах сканирования без изменения формулировки сообщения, которое видят администраторы.
Пользовательские отображаемые имена больше не могут добавлять дополнительных получателей электронных писем.
При формировании строк получателей электронных писем для функции wp_mail() использовались исходные поля профиля, такие как имя, фамилия и отображаемое имя. Поскольку строки получателей, разделенные запятыми, могут быть интерпретированы как несколько адресов, специально созданное имя профиля может добавить непреднамеренного получателя в электронные письма с PIN-кодом двухфакторной аутентификации или уведомления об активности.
Мы добавили специальный фильтр для отображаемых имен в электронных письмах и применили его в обеих точках отправки. Фильтр удаляет символы, имеющие значение для этого пути внедрения получателей, включая запятые, кавычки, обратные косые черты, угловые скобки и управляющие символы. WP Cerber больше не позволяет специально созданным отображаемым именам профилей добавлять непреднамеренных получателей в эти электронные письма безопасности.
Теперь при экспорте конфиденциальных журналов клиентам сообщается о необходимости не сохранять загруженные файлы.
Теперь при экспорте журналов активности и трафика отправляется заголовок ответа Cache-Control: no-store . Это указывает браузерам и совместимым промежуточным кэшам не сохранять копию загруженного журнала безопасности.
Это важно, потому что экспортированные журналы могут содержать данные для криминалистического анализа: IP-адреса, метаданные запросов, записи активности и другие сведения, которые администраторы могут использовать при анализе инцидентов. Новый заголовок снижает вероятность того, что эти данные останутся в кэше вне прямого контроля администратора WordPress.
Улучшения экспорта логов
Теперь при экспорте журнала активности указывается диапазон дат, который он охватывает.
Ранее заголовок CSV-файла с журналом активности отображал только активные фильтры. Теперь он включает две дополнительные строки, показывающие временные метки самых старых и самых новых записей в экспортируемом наборе.
При передаче экспортированного файла коллеге или прикреплении его к записи об инциденте, временной интервал, охватываемый файлом, теперь указывается непосредственно в самом файле. Это снижает вероятность ошибок при проведении анализа и сортировки данных, особенно если для одного и того же веб-сайта или расследования существует несколько экспортированных файлов. Если ни одна строка не соответствует выбранным фильтрам, диапазон дат опускается.
Теперь экспорт больших объемов данных из архивов осуществляется за один проход.
Ранее при экспорте журнала активности один и тот же запрос выполнялся повторно для каждого фрагмента данных с постоянно увеличивающимся смещением. На больших наборах данных такая схема может перерасти в сканирование с большим смещением, что делает экспорт медленнее и менее надежным по мере роста журнала.
Теперь экспорт считывает совпадающие строки за один проход без буферизации. Это обеспечивает стабильное использование памяти и корректное освобождение соединения с базой данных независимо от того, завершилась ли загрузка нормально или остановилась преждевременно. Если вы когда-либо наблюдали замедление или зависание при экспорте больших объемов данных, то это именно тот механизм, который лежит в основе такого поведения, но он был перестроен.
Более быстрое получение первого байта при использовании Nginx.
Теперь при экспорте отправляется заголовок X-Accel-Buffering: no . В противном случае, когда Nginx находится перед PHP-FPM, он может буферизовать весь ответ перед его пересылкой в браузер. Этот заголовок указывает Nginx передавать фрагменты по мере их поступления.
Этот заголовок специфичен для Nginx. Apache и другие прокси-серверы игнорируют его без каких-либо проблем, поэтому изменение улучшает работу там, где это применимо, без необходимости дополнительной настройки в других местах.
Улучшение надежности
Более согласованная обработка схем баз данных
Теперь определения таблиц для логов берутся из централизованных объявлений, а не из встроенных SQL-запросов CREATE TABLE . Это обеспечивает согласованность при новых установках и обновлениях, а также предоставляет WP Cerber более надежную основу для обнаружения расхождений в схеме в существующих установках.
На практике, если таблица логов отклонилась от ожидаемой формы, WP Cerber с большей вероятностью обнаружит и исправит это расхождение. Это не отображается в пользовательском интерфейсе, но повышает надежность подсистемы логирования, на которую администраторы полагаются при просмотре, экспорте и анализе инцидентов.
Более безопасное декодирование сохраненных данных запроса.
Данные полей запроса, хранящиеся в архиве, могут различаться в более старых версиях и устаревших записях журналов. Некоторые записи могут содержать значения, допускающие значение NULL, пустые значения, недопустимый JSON или неподдерживаемые сериализованные данные.
Теперь WP Cerber обрабатывает эти случаи единообразно, рассматривая их как пустые массивы, вместо того чтобы выдавать предупреждения или противоречивые результаты. Это в основном полезно для сайтов, которые хранили данные логов в нескольких старых версиях, где сохраненные данные запросов могут не всегда соответствовать формату, используемому в текущих релизах.
Исправлены ошибки и улучшена графика.
Журнал инспектора дорожного движения: фильтр «Любая программная ошибка» теперь корректно взаимодействует с другими фильтрами.
В форме расширенного поиска флажок «Любая программная ошибка» мог некорректно сочетаться с другими фильтрами. Запросы с зарегистрированными ошибками PHP могли отображаться даже в том случае, если они не соответствовали другим условиям поиска.
Теперь группы фильтров оцениваются с правильным приоритетом. Результаты поиска в журнале инспектора трафика учитывают все заданные вами условия, что делает сортировку более предсказуемой при сужении круга проблемных участков трафика.
Ограничение памяти для экспорта логов теперь интерпретируется корректно.
В некоторых средах числовое значение ограничения памяти, например 512 может применяться в байтах, а не в мегабайтах. В результате WP Cerber может не увеличить объем доступной памяти для ресурсоемких операций, и крупные экспортные операции могут остановиться раньше, чем ожидалось.
Теперь значение интерпретируется корректно, что делает экспорт более надежным в конфигурациях, устанавливающих числовые ограничения на использование памяти.
Теперь электронные письма с оповещениями о новых действиях содержат ссылку на правильный раздел панели мониторинга.
В электронных письмах с уведомлениями об оповещениях об активности содержатся ссылки на панель управления WP Cerber, чтобы администраторы могли просмотреть события, стоящие за оповещением. Эти ссылки были созданы на основе пар значений, которые могли привести к несоответствию параметров и, как следствие, к передаче неверного значения фильтра по ссылке.
Например, IP-фильтр может получить границу диапазона IP-адресов вместо ожидаемого значения. Теперь каждый параметр запроса сопоставляется со своим правильным значением, поэтому ссылки на оповещения позволяют более надежно переходить к событиям, которые они описывают.
Функция оповещения о совпадении поисковых строк теперь идентифицирует нужного пользователя.
Поиск пользователя по строке в диспетчере оповещений ранее основывался на вызове, который мог возвращать объект пользователя даже для несуществующего идентификатора пользователя. Теперь WP Cerber ищет пользователя, связанного с зарегистрированным событием, и предотвращает пропажу пользователя.
Это позволяет правилам оповещения на основе поиска соответствовать нужной учетной записи и избегать вводящего в заблуждение поведения системы оповещений, когда данные события ссылаются на пользователя, который больше не существует или которого невозможно идентифицировать.
Удалено уведомление PHP из проверки на изменение активности.
Проблема с приоритетом операторов в проверке "изменено с" означала, что резервный путь не использовался должным образом. При отсутствии метки времени изменения проверка могла выдать уведомление о неопределенном ключе.
Теперь выражение правильно заключено в скобки. Отсутствующая метка времени обрабатывается как "изменено", и уведомление PHP больше не появляется в ваших логах.
Под капотом
Для администраторов и разработчиков, которые следят за нашей внутренней политикой, в этом релизе продолжается миграция путей к данным журналов активности и трафика на явную, структурированную обработку ошибок. Сбои, такие как недоступность базы данных или неудачная настройка экспорта, теперь отображаются до начала вывода, вместо того чтобы оставлять администратора с запутанным пустым файлом.
Управление схемами также консолидируется за счет централизованных объявлений таблиц. Эта работа поддерживает описанное выше обнаружение изменений в схеме и обеспечивает большую детерминированность подсистемы журналирования по мере ее роста.
Это не бросающиеся в глаза изменения, но они важны. Инструменты безопасности должны вести себя предсказуемо в условиях повышенной нагрузки: когда на сайте много шума, когда экспортируется большой объем данных, когда устаревшие данные несовершенны или когда администратор пытается восстановить картину произошедшего во время инцидента.
Краткое содержание
WP Cerber 9.8.3 ужесточает правила обработки внешних данных, поступающих в административную панель WordPress и электронные письма службы безопасности, повышает надежность экспорта больших объемов логов и исправляет ряд проблем, которые могли снизить точность фильтрации, ссылок на оповещения и диагностики PHP.