Firma Cisco zaprezentowała nową istotną wersję wolnego pakietu antywirusowego ClamAV 1.0.0. Nowa gałąź wyróżnia się wprowadzeniem tradycyjnego numerowania wersji „Major.Minor.Patch” (zamiast 0.Version.Patch). Znacząca zmiana wersji jest również spowodowana wprowadzeniem do biblioteki libclamav zmian, które naruszają zgodność na poziomie ABI przez usunięcie przestrzeni nazw CLAMAV_PUBLIC, zmianę typu argumentów w funkcji cl_strerror oraz włączenie do przestrzeni nazw symboli dla języka Rust. Projekt przeszedł w ręce Cisco w 2013 roku po przejęciu firmy Sourcefire, rozwijającej ClamAV i Snort. Kod projektu jest udostępniany na licencji GPLv2.
Gałąź 1.0.0 została zakwalifikowana jako wersja z długoterminowym wsparciem (LTS), które będzie zapewniane przez trzy lata. Wydanie ClamAV 1.0.0 zastąpi poprzednią gałąź LTS ClamAV 0.103, dla której aktualizacje eliminujące podatności i krytyczne problemy będą wydawane do września 2023 roku. Aktualizacje dla zwykłych gałęzi, które nie są klasyfikowane jako LTS, będą publikowane co najmniej przez 4 miesiące po wydaniu pierwszej wersji następnej gałęzi. Możliwość pobrania bazy sygnatur dla gałęzi nie-LTS również będzie zapewniona co najmniej jeszcze przez 4 miesiące po wydaniu następnej wersji.
Kluczowe ulepszenia w ClamAV 1.0:
- Dodano wsparcie dla odszyfrowywania tylko do odczytu plików XLS opartych na OLE2, zaszyfrowanych hasłem domyślnym.
- Przepisano kod z realizacją trybu all-match, w którym określane są wszystkie wystąpienia w pliku, tzn. skanowanie kontynuuje się po pierwszym dopasowaniu. Nowy kod oznaczony jest jako bardziej niezawodny i łatwiejszy w utrzymaniu. W nowej implementacji również usunięto szereg koncepcyjnych niedociągnięć, które objawiały się przy weryfikacji według sygnatur w trybie all-match. Dodano testy do weryfikacji poprawności działania all-match.
- W API dodano wywołanie zwrotne clcb_file_inspection() do podłączenia obsługiwaczy, przeprowadzających inspekcję zawartości plików, w tym wyodrębnianych z archiwów.
- W API dodano funkcję cl_cvdunpack() do rozpakowywania archiwów sygnatur w formacie CVD.
- Skrypty do budowy obrazów dockera z ClamAV przeniesiono do osobnego repozytorium clamav-docker. Do obrazu dockera dołączono pliki nagłówkowe dla biblioteki C.
- Dodano sprawdzanie ograniczające poziom rekurencji podczas wydobywania obiektów z dokumentów PDF.
- Zwiększono limit pamięci przydzielanej podczas przetwarzania niezaufanych danych wejściowych oraz wprowadzono ostrzeżenie przy przekroczeniu tego limitu.
- Znacząco przyspieszono kompilację testów jednostkowych dla biblioteki libclamav-Rust. Moduły napisane w języku Rust dla ClamAV są teraz kompilowane w katalogu wspólnym z ClamAV.
- Złagodzone ograniczenia dotyczące sprawdzania nakładania się wpisów w plikach ZIP, co pozwoliło uniknąć fałszywych ostrzeżeń podczas przetwarzania nieco zmienionych, ale niewirusowych archiwów JAR.
- Podczas kompilacji zdefiniowano minimalne i maksymalne wspierane wersje LLVM. Próba kompilacji zbyt starą lub zbyt nową wersją prowadzi teraz do wyświetlenia błędu z ostrzeżeniem o problemach z kompatybilnością.
- Zezwolono na kompilację z własną listą RPATH (lista katalogów, z których ładowane są biblioteki dzielone), co umożliwia przenoszenie plików wykonywalnych w inne miejsce po kompilacji w środowisku developerskim.
Źródło: opennet.ru
