繁体   English   中英

使用 lambda 扫描 AWS S3 存储桶中的文件以查找病毒

[英]Scan files in AWS S3 bucket for virus using lambda

我们需要扫描用户上传的文件,检查是否有病毒,然后将其标记为受感染。 我检查了一些博客和其他 stackoverflow 答案,并知道我们可以使用冷静扫描。

但是,我对 clamscan 配置中病毒扫描的路径感到困惑。 另外,有没有教程可以参考。 我们的应用程序后端位于 Node.js 中。

我也对其他图书馆/服务开放

很难说没有更多信息(即您的代码运行的架构等)。

我想说实现您想要的最简单的方法是在您的 S3 存储桶上的每个 PUT 事件上连接一个触发器。 我从未使用过任何病毒扫描工具,但我相信它们都作为服务器中的守护进程运行,因此您可以为 S3 Bucket 事件订阅 SQS 队列并拥有服务器(可以是 EC2 实例或 ECS任务)安装了病毒扫描工具后,轮询 SQS 队列以获取新消息。

处理完消息并检测到漏洞后,您只需在恶意 object 上调用putObjectTagging API。

我们一直在做类似的事情,但在我们的例子中,它是在文件存储在S3之前。 没关系,我认为,解决方案仍然适用于您。

我们有一个安装了clamav的 EC2 实例。 然后编写了一个接受多部分文件并获取该文件内容并在内部调用ClamAv命令以扫描该文件的 Web 服务。 作为响应,该服务返回文件notInfected

您的解决方案可能是,

  1. 如上所述创建一个 Web 服务并将其托管在 EC2 上(我们称之为virus scan service )。
  2. 在 Lambda function 上,通过传递内容调用virus scan service
  3. 根据Virus Scan service响应,适当地标记您的 S3 文件。

如果您也开放付费服务,那么在上述步骤中,#1 将不适用,只需调用Symantec或其他此类提供商的病毒扫描服务等即可。

我希望它有所帮助。

您可以通过 AWS 检查此解决方案,它会给您一个类似架构的想法: https://aws.amazon.com/blogs/developer/virus-scan-s3-buckets-with-a-serverless-clamav-based -cdk 构造/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM