Firma Cisco zaprezentowała nową, znaczącą wersję darmowego pakietu antywirusowego ClamAV 0.105.0 oraz opublikowała poprawki do ClamAV 0.104.3 i 0.103.6, które eliminują luki i błędy. Przypominamy, że projekt przeszedł w ręce Cisco w 2013 roku po zakupie firmy Sourcefire, która rozwijała ClamAV i Snort. Kod projektu jest udostępniony na licencji GPLv2.
Kluczowe usprawnienia w ClamAV 0.105:
- W skład obowiązkowych zależności do budowy włączono kompilator Rust. Aby zbudować ten projekt, potrzebna jest co najmniej wersja Rust 1.56. Wymagane biblioteki zależności w języku Rust są włączone w główny skład pakietu ClamAV.
- Kod odpowiedzialny za inkrementalne aktualizacje bazy danych (CDIFF) został przepisany w języku Rust. Nowa implementacja znacznie przyspieszyła stosowanie aktualizacji, które usuwają dużą liczbę sygnatur z bazy. To pierwszy moduł, który został przepisany na Rust.
- Zwiększono domyślne wartości limitów:
- MaxScanSize: 100M > 400M
- MaxFileSize: 25M > 100M
- StreamMaxLength: 25M > 100M
- PCREMaxFileSize: 25M > 100M
- MaxEmbeddedPE: 10M > 40M
- MaxHTMLNormalize: 10M > 40M
- MaxScriptNormalize: 5M > 20M
- MaxHTMLNoTags: 2M > 8M
- Maksymalny rozmiar linii w plikach konfiguracyjnych freshclam.conf i clamd.conf zwiększono z 512 do 1024 znaków (podczas podawania tokenów dostępu parametr DatabaseMirror mógł przekraczać 512 bajtów).
- W celu rozpoznawania obrazów wykorzystywanych w phishingu lub przy rozpowszechnianiu złośliwego oprogramowania, wprowadzono obsługę nowego rodzaju sygnatur logicznych, w których zastosowano metodę przybliżonego haszowania (fuzzy hashing), pozwalającą na identyfikację podobnych obiektów z określonym prawdopodobieństwem. Aby wygenerować przybliżony skrót dla obrazu, można użyć polecenia "sigtool —fuzzy-img".
- W ClamScan i ClamDScan wprowadzono możliwość skanowania pamięci procesów. Ta funkcjonalność została przeniesiona z pakietu ClamWin i jest specyficzna dla platformy Windows. W ClamScan i ClamDScan na platformie Windows dodano opcje „—memory”, „—kill” i „—unload”.
- Zaktualizowano komponenty runtime służące do wykonywania kodu bajtowego, oparte na LLVM. W celu zwiększenia wydajności skanowania w porównaniu z domyślnym interpreterem bajtowym zaproponowano tryb kompilacji JIT. Zaprzestano wsparcia dla starszych wersji LLVM; do działania można teraz używać wersji LLVM od 8 do 12.
- W Clamd dodano ustawienie GenerateMetadataJson, które odpowiada opcji „—gen-json” w clamscan i prowadzi do zapisu w pliku metadata.json metadanych dotyczących przebiegu skanowania w formacie JSON.
- Dostarczono możliwość budowy przy użyciu zewnętrznej biblioteki TomsFastMath (libtfm), włączanej za pomocą opcji „-D ENABLE_EXTERNAL_TOMSFASTMATH=ON”, „-D TomsFastMath_INCLUDE_DIR=” oraz „-D TomsFastMath_LIBRARY=”. Dostarczona kopia biblioteki TomsFastMath została zaktualizowana do wersji 0.13.1.
- W narzędziu Freshclam poprawiono zachowanie podczas przetwarzania limitu ReceiveTimeout, który teraz przerywa tylko zawieszone pobierania, a nie przerywa aktywnych, wolnych pobrań z przesyłaniem danych przez słabe łącza.
- Dodano wsparcie dla budowy ClamdTop z użyciem biblioteki ncursesw w przypadku braku ncurses.
- Usunięto luki bezpieczeństwa:
- CVE-2022-20803 — podwójne zwolnienie pamięci w parserze plików OLE2.
- CVE-2022-20770 — nieskończona pętla w parserze plików CHM.
- CVE-2022-20796 — awaria z powodu dereferencji wskaźnika null w kodzie sprawdzania cache.
- CVE-2022-20771 — nieskończona pętla w parserze plików TIFF.
- CVE-2022-20785 — wyciek pamięci w parserze HTML i normalizatorze Javascript.
- CVE-2022-20792 — przepełnienie bufora w module ładowania bazy sygnatur.
Źródło: opennet.ru
