我需要在 Linux 服务器上扫描上传的文件中的病毒,但我不知道该怎么做。
如果有的话,我有什么选择?我还对多个用户同时发送多个文件时扫描仪的性能感兴趣。
我需要在 Linux 服务器上扫描上传的文件中的病毒,但我不知道该怎么做。
如果有的话,我有什么选择?我还对多个用户同时发送多个文件时扫描仪的性能感兴趣。
这是我针对已知病毒进行测试时对 ClamAV 的结果(问题是, 这些都不应该通过):
+-----------+------------------------------+
| Results | File |
+-----------+------------------------------+
| infected | AdvancedXPFixerInstaller.exe |
| pass | auto.exe |
| pass | cartao.exe |
| infected | cartoes_natal.exe |
| pass | codec.exe |
| pass | e421.exe |
| pass | fixtool.exe |
| infected | flash_install.exe |
| infected | issj.exe |
| infected | iwmdo.exe |
| infected | jobxxc.exe |
| infected | kbmt.exe |
| pass | killer_cdj.exe |
| pass | killer_javqhc.exe |
| infected | killer_rodog.exe |
| infected | kl.exe |
| infected | MacromediaFlash.exe |
| infected | MacromediaFlashPlayer.exe |
| infected | paraense.exe |
| infected | pibzero.exe |
| pass | scan.exe |
| pass | uaqxtg.exe |
| pass | vejkcfu.exe |
| infected | VIDeoSS.exe |
| infected | wujowpq.exe |
| pass | X-IrCBOT.exe |
+-----------+------------------------------+
我会看看Clam AntiVirus。它提供了一个clamscan
可以扫描给定文件并返回通过/失败指示的程序。它是免费的,并且会定期自动更新其数据库。
至于将此类产品集成到您的文件上传过程中,这将特定于您实际使用的任何文件上传过程。
如果您担心性能,请考虑使用 clamd/clamdscan 作为您的实现。clamd 作为守护进程运行,因此所有初始化成本只执行一次。然后,当您使用 clamdscan 扫描文件时,它只会将文件提供给分叉的 clamd 以进行实际扫描。如果你有大量的流量,它会更有效率。
如果您还有其他性能问题,则应考虑使用商业产品。如今,大多数大玩家都有 Linux/Unix 版本。
您应该查看opswat 的 MetaScan。该工具管理文件的更新和多引擎扫描。它与 AVG、CA eTrust™ 捆绑在一起。ClamWin、ESET NOD32 防病毒引擎、MicroWorld eScan 引擎、Norman Virus Control 和 VirusBuster EDK。此外,它将调用诺顿等。优点是您可以针对该文件运行多个引擎。
您应该尝试找到一个为其扫描程序提供公共 API 的防病毒供应商。这样您就可以以编程方式扫描文件。从长远来看,这比试图通过上传脚本干扰其他进程更容易。
您是否通过商业扫描仪运行过它们?我曾经是通过 4 个商业扫描仪并行运行文件的产品的管理员。我有一个数百个测试病毒语料库,没有一个商业扫描仪可以找到它们……
Clamscan 将在文件存储后对其进行扫描,并且不会阻止上传或下载受感染的文件
我有一个 squid(https+cache) <-> HAVP (with clamAV ) <-> Tomcat 反向代理设置。HAVP ( http://www.server-side.de/ ) 是一种通过 ClamAV 或任何其他商业防病毒软件扫描 http 流量的方法。它将阻止用户下载受感染的文件。
尽管如此,它在上传时不起作用,因此它不会阻止文件存储在服务器上,但会阻止文件被下载并因此传播。因此,将其与常规文件扫描一起使用(例如 clamscan)