从软件调用防病毒软件以扫描内存中的图像[关闭]

Posted

技术标签:

【中文标题】从软件调用防病毒软件以扫描内存中的图像[关闭]【英文标题】:Calling antiviruses from software to scan in-memory images [closed] 【发布时间】:2019-01-09 07:56:20 【问题描述】:

我们的系统会定期(每分钟几次)调用外部服务来下载图像。由于安全是重中之重,我们正在对与外部服务接口的代理服务执行各种验证和检查。

我们正在研究的一个控件是反恶意软件,它应该扫描传入的图像并在其中包含恶意软件时将其丢弃。问题是我们的软件不会保留图像(可以以通常的方式扫描它们),而是将它们保存在内存 (RAM) 缓存中一段时间​​(由于图像量很大)。

现代防病毒软件是否提供可由软件调用以扫描特定内存对象的 API? Windows 是否提供跨不同防病毒供应商调用此 API 的统一方式?

顺便说一句,有人知道这会如何影响性能吗?

【问题讨论】:

【参考方案1】:

您应该联系杀毒软件制造商 - 他们中的一些人会这样做,但您可能会发现甚至很难找到价格。

Windows 有AMSI,它有一个流接口和一个缓冲区接口。我不知道它是复制缓冲区中的数据还是按原样扫描缓冲区。

这绝对会破坏你的表现,很可能。

可能更快的是只使用一些代码来确保它们实际上是可以读取和重新编码的图像,但是重新编码 .jpg 图像会出现明显的问题,所以可能只是进行完整性检查标头和数据。这也可能更慢。解码大图像很慢,但它可能会更好地捕获针对 libpng/libjpeg 的 0 day 漏洞。

您还可以阅读一些关于扫描服务器的恐怖故事,例如在其他良性文件中成为恶意软件的目标,尽管我记得的最后一个是在过去十年。

【讨论】:

以上是关于从软件调用防病毒软件以扫描内存中的图像[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

带有 API 的 Windows Server 2008 防病毒软件 [关闭]

用于上传文件的防病毒扫描[关闭]

使用基于签名的技术编码防病毒软件

Android防病毒软件[关闭]

第三方防病毒软件的问题,android代码没有运行[关闭]

防病毒Clamav使用及API调用测试