L'azienda Cisco ha presentato una nuova versione significativa del pacchetto antivirus open source ClamAV 1.0.0. Questo nuovo ramo è caratterizzato dal passaggio a una numerazione delle versioni "Major.Minor.Patch" (invece di 0.Version.Patch). Il cambio di versione è dovuto anche all'introduzione di modifiche nella libreria libclamav, che compromettono la compatibilità a livello ABI a causa della rimozione dello spazio dei nomi CLAMAV_PUBLIC, della modifica dei tipi di argomenti nella funzione cl_strerror e dell'inclusione nello spazio dei nomi di simboli per il linguaggio Rust. Il progetto è passato in mano a Cisco nel 2013 dopo l'acquisizione della società Sourcefire, che sviluppava ClamAV e Snort. Il codice del progetto è distribuito sotto licenza GPLv2.
Il ramo 1.0.0 è classificato come Long Term Support (LTS), con supporto garantito per un periodo di tre anni. Il rilascio di ClamAV 1.0.0 sostituirà il precedente ramo LTS ClamAV 0.103, per il quale saranno rilasciati aggiornamenti per la correzione di vulnerabilità e problemi critici fino a settembre 2023. Gli aggiornamenti per i rami normali, non LTS, verranno pubblicati per almeno 4 mesi dopo l'uscita del primo rilascio del ramo successivo. La possibilità di scaricare il database delle firme per i rami non LTS sarà garantita per almeno altri 4 mesi dopo il rilascio del ramo successivo.
Miglioramenti chiave in ClamAV 1.0:
- Aggiunta la possibilità di decriptare file XLS di sola lettura basati su OLE2, criptati con una password predefinita.
- Il codice è stato riscritto con l'implementazione della modalità all-match, che identifica tutte le corrispondenze in un file, ovvero la scansione continua dopo la prima corrispondenza. Il nuovo codice è stato contrassegnato come più affidabile e facile da mantenere. Nella nuova implementazione, sono state eliminate una serie di carenze concettuali che si manifestavano durante il controllo delle firme in modalità all-match. Sono stati aggiunti test per verificare il corretto funzionamento della modalità all-match.
- Nell'API è stata aggiunta la chiamata callback clcb_file_inspection() per connettere gestori che eseguono l'ispezione del contenuto dei file, inclusi quelli estratti da archivi.
- Nell'API è stata aggiunta la funzione cl_cvdunpack() per l'estrazione di archivi di firme in formato CVD.
- Gli script per la costruzione di immagini docker con ClamAV sono stati spostati in un repository separato clamav-docker. Nell'immagine docker sono inclusi i file di intestazione per la libreria C.
- Aggiunti controlli che limitano il livello di ricorsione durante l'estrazione di oggetti da documenti PDF.
- Aumentato il limite della memoria allocata per l'elaborazione di dati in ingresso non fidati, e implementata una notifica di avviso quando viene superato tale limite.
- Significativamente accelerata la compilazione dei test unitari per la libreria libclamav-Rust. I moduli scritti in Rust per ClamAV ora vengono compilati nella directory condivisa con ClamAV.
- Alleggerite le restrizioni sul controllo delle sovrapposizioni di record nei file in formato ZIP, eliminando così falsi avvisi durante l'elaborazione di archivi JAR leggermente modificati ma non dannosi.
- Durante la compilazione sono state definite le versioni minime e massime supportate di LLVM. Un tentativo di compilazione con una versione troppo vecchia o troppo nuova ora genererà un errore con un avviso sui problemi di compatibilità.
- Consenti la compilazione con un elenco RPATH personalizzato (elenco delle directory da cui vengono caricate le librerie condivise), che consente di spostare i file eseguibili altrove dopo la compilazione in un ambiente di sviluppo.
Fonte: opennet.ru
