Firma Cisco wprowadziła dużą nową wersję bezpłatnego pakietu antywirusowego ClamAV 1.0.0. Nowa gałąź wyróżnia się przejściem do tradycyjnej numeracji wydań „Major.Minor.Patch” (zamiast 0.Version.Patch). Znacząca zmiana wersji wynika również ze zmian w bibliotece libclamav, które łamią kompatybilność z ABI poprzez usunięcie przestrzeni nazw CLAMAV_PUBLIC, zmianę typu argumentów w funkcji cl_strerror oraz włączenie symboli języka Rust do przestrzeni nazw. Projekt przeszedł w ręce Cisco w 2013 roku po zakupie firmy Sourcefire, która rozwija ClamAV i Snort. Kod projektu jest rozpowszechniany na licencji GPLv2.
Gałąź 1.0.0 jest sklasyfikowana jako wsparcie długoterminowe (LTS) i jest utrzymywana przez trzy lata. Wydanie ClamAV 1.0.0 zastąpi poprzednią gałąź LTS ClamAV 0.103, dla której aktualizacje z poprawkami dla luk i krytycznych problemów będą wydawane do września 2023 roku. Aktualizacje dla zwykłych oddziałów innych niż LTS są publikowane co najmniej 4 miesiące po pierwszym wydaniu następnego oddziału. Możliwość pobrania bazy sygnatur dla oddziałów non-LTS przewidziana jest również przez co najmniej kolejne 4 miesiące po wydaniu kolejnego oddziału.
Kluczowe ulepszenia w ClamAV 1.0:
- Dodano obsługę odszyfrowywania plików XLS opartych na OLE2, tylko do odczytu, zaszyfrowanych domyślnym hasłem.
- Kod został przepisany z zaimplementowaniem trybu all-match, w którym określane są wszystkie dopasowania w pliku, tj. skanowanie jest kontynuowane po pierwszym dopasowaniu. Nowy kod jest oznaczony jako bardziej niezawodny i łatwiejszy w utrzymaniu. Nowa implementacja eliminuje również szereg błędów koncepcyjnych, które pojawiają się podczas sprawdzania podpisów w trybie all-match. Dodano testy sprawdzające poprawność zachowania w całym meczu.
- Do interfejsu API dodano wywołanie zwrotne clcb_file_inspection() w celu połączenia procedur obsługi sprawdzających zawartość plików, w tym wyodrębnionych z archiwów.
- Funkcja cl_cvdunpack() została dodana do API do rozpakowywania archiwów sygnatur w formacie CVD.
- Skrypty do budowania obrazów dokerów za pomocą ClamAV zostały przeniesione do osobnego repozytorium clamav-docker. Obraz dokera zawiera pliki nagłówkowe dla biblioteki C.
- Dodano kontrole ograniczające poziom rekurencji podczas wyodrębniania obiektów z dokumentów PDF.
- Zwiększono limit ilości pamięci przydzielanej podczas przetwarzania niezaufanych danych wejściowych, a po przekroczeniu tego limitu generowane jest ostrzeżenie.
- Znacząco przyspieszono montaż testów jednostkowych dla biblioteki libclamav-Rust. Moduły ClamAV napisane w Rust są teraz budowane w katalogu współdzielonym z ClamAV.
- Złagodzone zostały ograniczenia podczas sprawdzania nakładających się rekordów w plikach ZIP, co pozwoliło pozbyć się fałszywych ostrzeżeń podczas przetwarzania nieco zmodyfikowanych, ale nie złośliwych archiwów JAR.
- Kompilacja definiuje minimalną i maksymalną obsługiwaną wersję LLVM. Próba skompilowania ze zbyt starą lub zbyt nową wersją spowoduje teraz wyświetlenie ostrzeżenia o błędzie dotyczącego problemów ze zgodnością.
- Dozwolone jest budowanie z własną listą RPATH (lista katalogów, z których ładowane są biblioteki współdzielone), co umożliwia przeniesienie plików wykonywalnych w inne miejsce po zbudowaniu w środowisku deweloperskim.
Źródło: opennet.ru