Кампанія Cisco прадставіла новы значны выпуск вольнага антывіруснага пакета ClamAV 1.0.0. Новая галінка характэрна пераходам на традыцыйную нумарацыю выпускаў "Major.Minor.Patch" (замест 0.Version.Patch). Значная змена версіі таксама абумоўлена занясеннем у бібліятэку libclamav змен, якія парушаюць сумяшчальнасць на ўзроўні ABI з-за выдаленні прасторы імёнаў CLAMAV_PUBLIC, змены тыпу аргументаў у функцыі cl_strerror і ўключэнні ў прастору імёнаў знакаў для мовы Rust. Праект перайшоў у рукі Cisco у 2013 годзе пасля пакупкі кампаніі Sourcefire, якая развівае ClamAV і Snort. Код праекту распаўсюджваецца пад ліцэнзіяй GPLv2.
Галінка 1.0.0 аднесена да катэгорыі з працяглым тэрмінам падтрымкі (LTS), суправаджэнне для якой забяспечваецца на працягу трох гадоў. Выпуск ClamAV 1.0.0 прыйдзе на змену мінулай LTS-галінцы ClamAV 0.103, абнаўленні з ухіленнем уразлівасцяў і крытычных праблем для якой будуць выпускацца да верасня 2023 гады. Абнаўленні для звычайных галінак, не аднесеных да катэгорыі LTS, публікуюцца як мінімум на працягу 4 месяцаў пасля вынахаду першага рэлізу наступнай галінкі. Магчымасць загрузкі базы сігнатур для не-LTS галінак таксама забяспечваецца як мінімум яшчэ 4 месяцы пасля выпуску наступнай галінкі.
Ключавыя паляпшэнні ў ClamAV 1.0:
- Дададзена падтрымка расшыфроўкі даступных толькі на чытанне XLS-файлаў на базе OLE2, зашыфраваных паролем па змаўчанні.
- Перапісаны код з рэалізацыяй рэжыму all-match, пры якім вызначаюцца ўсе супадзенні ў файле, г.зн. сканіраванне працягваецца пасля першага супадзення. Новы код адзначаны як больш надзейны і просты для суправаджэння. У новай рэалізацыі таксама ўхіленая серыя канцэптуальных недапрацовак, якія выяўляюцца пры праверцы па сігнатурах у рэжыме all-match. Дададзены тэсты для праверкі карэктнасці паводзін all-match.
- У API дададзены callback-выклік clcb_file_inspection() для падлучэння апрацоўшчыкаў, якія выконваюць інспектаванне змесціва файлаў, у тым ліку вымаемых з архіваў.
- У API дададзена функцыя cl_cvdunpack() для распакавання архіваў сігнатур у фармаце CVD.
- Скрыпты для зборкі docker-вобразаў з ClamAV перанесены ў асобны рэпазітар clamav-docker. У склад docker-выявы ўключаны загалоўкавыя файлы для Сі-бібліятэкі.
- Дададзеныя праверкі, якія абмяжоўваюць узровень рэкурсіі пры выманні аб'ектаў з PDF-дакументаў.
- Падвышаны ліміт на памер памяці, якая выдаткоўваецца пры апрацоўцы не вартыя даверу ўваходных дадзеных, і рэалізаваны выснова папярэджання пры перавышэнні дадзенага ліміту.
- Значна паскорана зборка unit-тэстаў для бібліятэкі libclamav-Rust. Напісаныя на мове Rust модулі для ClamAV зараз збіраюцца ў каталогу, агульным з ClamAV.
- Змякчэлыя абмежаванні пры праверцы перакрыцця запісаў у файлах у фармаце ZIP, што дазволіла пазбавіцца ад ілжывых папярэджанняў пры апрацоўцы крыху змененых, але не шкоднасных, JAR-архіваў.
- Пры зборцы вызначаны мінімальная і максімальная падтрымліваемыя версіі LLVM. Спроба зборкі з занадта старой ці занадта новай версіяй зараз прывядзе да высновы памылкі з папярэджаннем аб наяўнасці праблем з сумяшчальнасцю.
- Дазволена зборка з уласным спісам RPATH (спіс каталогаў, з якіх загружаюцца падзяляныя бібліятэкі), што дазваляе перамяшчаць выкананыя файлы ў іншае месца пасля зборкі ў асяроддзі для распрацоўкі.
Крыніца: opennet.ru