11

我们正在设计一个 Azure 网站,允许用户上传内容(MP4、Docx...MSOffice 文件),然后可以访问这些内容。

在流式传输之前(使用Azure 媒体服务),我们将对一些视频内容进行编码以提供几种不同的质量格式。

我们需要添加一个中间步骤,以便我们可以扫描上传的文件以查找潜在的病毒风险。azure(或第三方)中是否有内置功能,允许我们在处理内容之前调用 API 来扫描内容?理想情况下,我们正在寻找 API 而不仅仅是 VM 上的后台服务,因此我们可以获得潜在的反馈以用于 Web 或工作者角色。

快速浏览了一下 Symantec Endpoint 和 Windows Defender,但不确定它们是否提供 API

4

5 回答 5

2

我已经使用开源 ClamAV 成功完成了这项工作。您没有指定您使用的语言,但由于它是 Azure,我假设是 .Net。

有一个 .Net 包装器应该提供您正在寻找的 API:

https://github.com/tekmaven/nClam

这是一些示例代码(注意:这是直接从 nClam GitHub 存储库页面复制并在此处复制只是为了防止链接失效)

using System;
using System.Linq;
using nClam;

class Program
{
    static void Main(string[] args)
    {

        var clam = new ClamClient("localhost", 3310);
        var scanResult = clam.ScanFileOnServer("C:\\test.txt");  //any file you would like!

        switch(scanResult.Result)
        {
            case ClamScanResults.Clean:
                Console.WriteLine("The file is clean!");
                break;
            case ClamScanResults.VirusDetected:
                Console.WriteLine("Virus Found!");
                Console.WriteLine("Virus name: {0}", scanResult.InfectedFiles.First().VirusName);
                break;
            case ClamScanResults.Error:
                Console.WriteLine("Woah an error occured! Error: {0}", scanResult.RawResult);
                break;
        }
    }
}

还有一些 API 可用于刷新病毒定义数据库。所有必要的 ClamAV 文件都可以包含在部署包中,任何配置都可以放入服务启动代码中。

于 2015-09-14T15:00:20.370 回答
1

我们有同样的问题和同样的用例。最终客户将多个文件上传到我们的网站,常规扩展名 - 图像、doc/docx、xls/xlsx、pdf - 他们需要即时扫描,然后用户付款,我们会发送整个信息包。我们需要扫描并展平它们以删除宏之类的东西。

我们正在积极寻找解决方案。

你是如何解决你的用例的?

此外,另一个指针,除了我们需要展平文件的扫描之外,CDR - 深度内容解除和重建,正如他们在 OPSWAT 中所说的那样。

这意味着上传到云的 excel 中的宏可以运行破坏服务器的 cmd 行,因此需要在将文件插入存储 blob 之前将其删除。

我们找到了 Metadefender,但它不适合。添加让其他人知道。- 似乎云 API 扫描很快,但 CDR 大约需要一分钟,并且每天上传文件有限,因此不适合。

根据 Metadefender Core 似乎非常昂贵,因为 8 个引擎每年大约需要 3000 美元,病毒发现率为 83%,而且它需要 Azure VM,至少要额外花费 160 美元(检查 4 个 CPU 内核而不是 8 个)

我只是希望有一个用于存储 blob 的插件可以轻松地做到这一点,并在检测到任何威胁时将文件删除的原因返回给我们的应用服务。

于 2020-07-29T06:18:21.043 回答
0

ClamAV 是一个好主意,特别是现在0.99即将发布,支持YARA规则 - 这将使您编写自定义规则变得非常容易,并允许 clamav 在今天公开使用大量好的 YARA 规则。

另一种方法,有点无耻的插入,是检查scanii.com,它是一个用于恶意软件/病毒检测的 SaaS,它与 AWS 和 Azures 集成得很好。

于 2015-09-15T16:50:55.757 回答
0

2020 年春季/夏季即将推出新事物。Azure 存储的高级威胁防护包括恶意软件信誉筛选,它利用 Microsoft 威胁情报的强大功能使用哈希信誉分析检测恶意软件上传,其中包括病毒、特洛伊木马、间谍软件和勒索软件的哈希。注意:不能保证使用哈希信誉分析技术检测到所有恶意软件。

https://techcommunity.microsoft.com/t5/Azure-Security-Center/Validating-ATP-for-Azure-Storage-Detections-in-Azure-Security/ba-p/1068131

于 2020-03-17T21:30:45.563 回答
0

有许多选项可以实现这一点:

首先,您可以使用前面提到的 ClamAV。ClamAV 的病毒数据库并不总是受到最好的报道,但正如其他人指出的那样,它易于使用且可扩展。

您还可以安装商业扫描仪,例如 avg、kaspersky 等。其中许多都带有您可以直接与之交谈的 C API,尽管从许可的角度来看,访问它通常会很昂贵。

或者,您可以使用以下内容直接调用可执行文件以捕获输出:

var proc = new Process {
    StartInfo = new ProcessStartInfo {
        FileName = "scanner.exe",
        Arguments = "arguments needed",
        UseShellExecute = false,
        RedirectStandardOutput = true,
        CreateNoWindow = true
    }
};
proc.Start();
while (!proc.StandardOutput.EndOfStream) {
    string line = proc.StandardOutput.ReadLine();
}

然后,您需要解析输出以获取结果并在您的应用程序中使用它。

最后,现在有一些商业 API 可用于执行此类操作,例如attachmentscanner(免责声明我与此产品有关)或scanii。这些将为您提供 API 和更具可扩展性的选项来扫描特定文件并接收来自至少一个病毒检查引擎的响应。

于 2017-06-06T09:41:14.393 回答