我们的系统会定期(每分钟几次)调用一个外部服务来下载图像。由于安全性是重中之重,因此我们正在对与外部服务连接的代理服务执行各种验证和检查。
我们正在研究的一个控件是反恶意软件,该软件应该扫描传入的图像,如果包含恶意软件,则将其丢弃。问题在于我们的软件无法持久保存图像(可以以常规方式对其进行扫描),而是将它们保留在内存(RAM)缓存中一段时间(由于图像量很大)。 / p>
现代防病毒软件是否提供可以被软件调用以扫描特定内存对象的API? Windows是否提供跨不同的防病毒供应商调用此API的统一方法?
顺便说一句,是否有人对这可能会影响性能有什么看法?
答案 0 :(得分:0)
您应该与防病毒制造商联系-其中一些可以,但是您甚至可能很难找到定价。
Windows有AMSI,其中有一个流接口和一个缓冲区接口。我不知道它是在缓冲区中复制数据还是照原样扫描缓冲区。
可能会完全破坏您的表现。
可能更快些的是仅使用一些代码来确保它们实际上是可以读取和重新编码的图像,但是然后重新编码.jpg图像会存在明显的问题,因此也许只需进行完整性检查即可标头和数据。这也可能会更慢。解码大图像的速度很慢,但可能会更好地针对libpng / libjpeg捕获0天漏洞。
虽然我记得的最后一个来自过去十年,但是您也可以阅读一些恐怖的扫描服务器的故事,例如将它们当作其他良性文件中的恶意软件的目标。