ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ 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