La compañía Cisco ha presentado una nueva versión significativa del paquete antivirus gratuito ClamAV 1.0.0. Esta nueva rama es notable por su transición a la numeración tradicional de versiones 'Major.Minor.Patch' (en lugar de 0.Version.Patch). El cambio significativo de versión también se debe a modificaciones en la biblioteca libclamav que rompen la compatibilidad a nivel de ABI debido a la eliminación del espacio de nombres CLAMAV_PUBLIC, los cambios en los tipos de argumentos de la función cl_strerror y la inclusión de símbolos en el espacio de nombres para el lenguaje Rust. El proyecto pasó a manos de Cisco en 2013 tras la adquisición de la empresa Sourcefire, que desarrollaba ClamAV y Snort. El código del proyecto se distribuye bajo la licencia GPLv2.
La rama 1.0.0 se clasifica como de soporte a largo plazo (LTS), y su mantenimiento se garantiza durante tres años. El lanzamiento de ClamAV 1.0.0 sucederá a la anterior rama LTS ClamAV 0.103, cuyos parches para vulnerabilidades y problemas críticos se seguirán publicando hasta septiembre de 2023. Las actualizaciones para las ramas normales, que no están clasificadas como LTS, se publican al menos durante 4 meses después del lanzamiento de la primera versión de la siguiente rama. La posibilidad de descargar firmas para las ramas no LTS también se garantiza al menos durante otros 4 meses después del lanzamiento de la siguiente rama.
Mejoras clave en ClamAV 1.0:
- Se ha añadido soporte para la descifrado de archivos XLS de solo lectura basados en OLE2, cifrados con una contraseña por defecto.
- Se ha reescrito el código implementando el modo all-match, en el que se determinan todas las coincidencias en un archivo, es decir, el escaneo continúa después de la primera coincidencia. El nuevo código se ha marcado como más confiable y fácil de mantener. En la nueva implementación también se han corregido una serie de fallos conceptuales que se manifestaban al verificar con firmas en el modo all-match. Se han añadido pruebas para comprobar el comportamiento correcto del all-match.
- Se ha añadido una llamada de retorno clcb_file_inspection() en la API para conectar controladores que realizan la inspección del contenido de los archivos, incluidos los extraídos de archivos comprimidos.
- Se ha añadido la función cl_cvdunpack() en la API para descomprimir archivos de firmas en formato CVD.
- Los scripts para construir imágenes docker de ClamAV se han trasladado a un repositorio separado clamav-docker. El docker incluye archivos de encabezado para la biblioteca en C.
- Se añadieron verificaciones que limitan el nivel de recursión al extraer objetos de documentos PDF.
- Se aumentó el límite de memoria asignada al procesar datos de entrada no confiables y se implementó la salida de una advertencia al superar este límite.
- Se aceleró significativamente la compilación de pruebas unitarias para la biblioteca libclamav-Rust. Los módulos escritos en Rust para ClamAV ahora se compilan en un directorio compartido con ClamAV.
- Se suavizaron las restricciones en la verificación de superposición de registros en archivos ZIP, lo que eliminó las advertencias falsas al procesar archivos JAR que han sido ligeramente modificados pero no son maliciosos.
- Durante la compilación se definieron las versiones mínima y máxima soportadas de LLVM. Ahora, un intento de compilación con una versión demasiado antigua o demasiado nueva resultará en un error con una advertencia sobre problemas de compatibilidad.
- Se permitió la compilación con una lista de RPATH personalizada (lista de directorios desde los cuales se cargan bibliotecas compartidas), lo que permite mover archivos ejecutables a otro lugar después de la compilación en un entorno de desarrollo.
Fuente: opennet.ru
