服务器端病毒扫描
我需要在Linux服务器上扫描上传的文件中是否有病毒,但是我不确定该如何处理。
我有什么选择?我也对多个用户同时发送多个文件时扫描仪的性能感兴趣。
解决方案
我来看看Clam AntiVirus。它提供了一个" clamscan"程序,该程序可以扫描给定的文件并返回通过/失败指示。它是免费的,并且会定期自动更新其数据库。
至于将此类产品集成到文件上传过程中,这将特定于我们实际使用的任何文件上传过程。
如果我们担心性能,请考虑使用clamd / clamdscan作为实现。 clamd作为守护程序运行,因此所有初始化成本仅执行一次。然后,当我们使用clamdscan扫描文件时,它将文件仅馈送到分叉的clamd中进行实际扫描。如果我们有大量的流量,那就更有效率了。
如果我们还有其他性能问题,则应考虑使用商业产品。如今,大多数大型公司都使用Linux / Unix版本。
我们应该尝试寻找具有针对其扫描程序的公共API的防病毒供应商。这样,我们可以以编程方式扫描文件。从长远来看,这比尝试通过上传脚本弄乱其他进程要容易得多。
这是我针对已知病毒测试的ClamAV结果:
[感染] => AdvancedXPFixerInstaller.exe
[通过] => auto.exe
[通过] => cartao.exe
[感染] => cartoes_natal.exe
[通过] => codec.exe
[通过] => e421.exe
[通过] => fixtool.exe
[感染] => flash_install.exe
[感染] => issj.exe
[感染] => iwmdo.exe
[感染] => jobxxc.exe
[已感染] => kbmt.exe
[通过] => killer_cdj.exe
[通过] => killer_javqhc.exe
[感染] => killer_rodog.exe
[感染] => kl.exe
[感染] => MacromediaFlash.exe
[感染] => MacromediaFlashPlayer.exe
[感染] => paraense.exe
[感染] => pibzero.exe
[通过] => scan.exe
[通过] => uaqxtg.exe
[通过] => vejkcfu.exe
[感染] => VIDeoSS.exe
[感染] => wujowpq.exe
[通过] => X-IrCBOT.exe
问题是,这些都不应该通过。
我们是否通过商用扫描仪运行它们?我曾经是一个产品的管理员,该产品通过4台商用扫描仪并行运行文件。我有几百个测试病毒库,没有任何商业扫描程序可以全部找到它们。
我们应该研究opswat的MetaScan。该工具管理文件的更新和多引擎扫描。它与AVG,CA eTrust捆绑在一起。 ClamWin,ESET NOD32防病毒引擎,MicroWorld eScan引擎,诺曼病毒控制和VirusBuster EDK。另外,它将调用Nortons等。好处是我们可以使多个引擎针对该文件运行。
Clamscan将在文件存储后对其进行扫描,并且不会阻止受感染的文件被上载或者下载
我有一个鱿鱼(https + cache)<-> HAVP(带有clamAV)<-> Tomcat反向代理设置。 HAVP(http://www.server-side.de/)是一种通过ClamAV或者任何其他商业防病毒软件扫描HTTP流量的方法。这将防止用户下载受感染的文件。
但是,它在上载时不起作用,因此不会阻止文件存储在服务器上,而是阻止文件下载并传播。因此,请将其与常规文件扫描(例如clamscan)一起使用