Компания Cisco представила новый значительный выпуск свободного антивирусного пакета ClamAV 0.104.0. Напомним, что проект перешёл в руки Cisco в 2013 году после покупки компании Sourcefire, развивающей ClamAV и Snort. Код проекта распространяется под лицензией GPLv2.
Одновременно компания Cisco объявила о начале формирования веток ClamAV с длительным сроком поддержки (LTS), сопровождение для которых будет обеспечиваться в течение трёх лет c момента публикации первого выпуска в ветке. Первой LTS-веткой станет ClamAV 0.103, обновления с устранением уязвимостей и критических проблем для которой будут выпускаться до 2023 года.
Обновления для обычных веток, не отнесённых к категории LTS, будут публиковаться как минимум ещё 4 месяца после выхода первого релиза следующей ветки (например, обновления для ветки ClamAV 0.104.x будут публиковаться ещё 4 месяца после выпуска ClamAV 0.105.0). Возможность загрузки базы сигнатур для не-LTS веток также будет обеспечиваться как минимум ещё 4 месяца после выпуска следующей ветки.
Ещё одним знаковым изменением стало формирование официальных установочных пакетов, позволяющих выполнить обновление без пересборки из исходных текстов и не дожидаясь появления пакетов в дистрибутивах. Пакеты подготовлены для Linux (в форматах RPM и DEB в вариантах для архитектур x86_64 и i686), macOS (для x86_64 и ARM64, включая поддержку чипа Apple M1) и Windows (x64 и win32). Кроме того, началась публикация официальных образов контейнеров в Docker Hub (предложены образы как со встроенной базой сигнатур, так и без неё). В дальнейшем запланировала публикация RPM- и DEB-пакетов для архитектуры ARM64 и размещение сборок для FreeBSD (x86_64).
Ключевые улучшения в ClamAV 0.104:
- Переход на использование сборочной системы CMake, наличие которой теперь обязательно для сборки ClamAV. Поддержка сборочных систем Autotools и Visual Studio прекращена.
- Удалены встроенные в поставку компоненты LLVM в пользу применения уже имеющихся внешних библиотек LLVM. В runtime для обработки сигнатур со встроенным байткодом по умолчанию задействован интерпретатор байткода, не имеющий поддержки JIT. При необходимости использования LLVM вместо интерпретатора байткода при сборке требуется явное указание путей к библиотекам LLVM 3.6.2 (поддержку более новых выпусков планируют добавить позднее)
- Процессы clamd и freshclam теперь доступны и в виде сервисов Windows. Для установки данных сервисов предусмотрена опция “–install-service”, а для запуска можно использовать штатную команду “net start [name]”.
- Добавлена новая опция сканирования, предупреждающая о передаче повреждённых графических файлов, через которые потенциально могут пытаться эксплуатировать уязвимости в графических библиотеках. Проверка корректности формата реализована для файлов JPEG, TIFF, PNG и GIF, и включается через настройку AlertBrokenMedia в clamd.conf или опцию командной строки “–alert-broken-media” в clamscan.
- Добавлены новые типы CL_TYPE_TIFF и CL_TYPE_JPEG для единообразия с определением файлов в форматах GIF и PNG. Типы BMP и JPEG 2000 продолжают определяться как CL_TYPE_GRAPHICS, так как для них не поддерживается разбор формата.
- В ClamScan добавлен наглядный индикатор прогресса загрузки сигнатур и компиляции движка, выполняемых до начала сканирования. Индикатор не выводится при запуске не из терминала или при указании одной из опций “–debug”, “–quiet”, “–infected”, “–no-summary”.
- В libclamav для отображения прогресса добавлены callback-вызовы cl_engine_set_clcb_sigload_progress(), cl_engine_set_clcb_engine_compile_progress() и engine free: cl_engine_set_clcb_engine_free_progress(), при помощи которых приложения могут отслеживать и оценивать время выполнения предварительных стадий загрузки и компиляции сигнатур.
- В опцию VirusEvent добавлена поддержка маски форматирования строки “%f” для подстановки пути к файлу, в котором выявлен вирус (по аналогии с маской “%v” с именем выявленного вируса). В VirusEvent аналогичная функциональность также доступна через переменные окружения $CLAM_VIRUSEVENT_FILENAME и $CLAM_VIRUSEVENT_VIRUSNAME.
- Улучшена работа модуля распаковки скриптов AutoIt.
- Добавлена поддержка извлечения изображений из файлов *.xls (Excel OLE2).
- Обеспечена возможность загрузки хэшей Authenticode на базе алгоритма SHA256 в форме файлов *.cat (используются для верификации исполняемых файлов Windows, заверенных цифровой подписью).