对通过 SQL 从 MSBuild 发布的文件运行所有 VirusTotal 扫描程序

对通过 SQL 从 MSBuild 发布的文件运行所有 VirusTotal 扫描程序

我们将软件交付物构建为构建服务器上的文件。每隔几个月,其中一些文件就会被某些可用的病毒扫描程序拒绝。

我想避免文件发货后出现问题。

如何在构建过程中将 VirusTotal 提供程序与 Invantive SQL 结合使用,以便尽早检测新软件的误报?

答案1

最好的方法是首先使用以下命令上传所有可能被病毒感染的文件:

insert into VirusScanRequests(type, name, contents, orig_system_reference) 
select 'file'
,      fle.file_path
,      rfe.file_contents
,      fle.file_path orig_system_reference
from   ( select 'exe' ext from dual@datadictionary
         union all
         select 'dat' from dual@datadictionary
         union all
         select 'dll' from dual@datadictionary
         union all
         select 'pdf' from dual@datadictionary
         union all
         select 'chm' from dual@datadictionary
       ) ext
join   files('c:\PATH', '*.' || ext.ext, false)@os 
       fle
join   read_file(fle.file_path)@os rfe
on     length(rfe.file_contents) < 32e6
--
-- Allow restarts with incremental loading: when already requested skip it.
--
where  fle.file_path not in (select name from virusscanresults )

然后过一段时间检查病毒扫描的结果:

select vst.name
,      vsr.positives
,      vsr.total
from   VirusScanResults vst
join   VirusScanReport('file', vst.resource) vsr
where  vst.resource is not null
order 
by     vsr.positives desc

当您替换时vsr.positivesvsr.*您将获得所有病毒扫描程序及其结果的列表。

您还可以安排它每隔一段时间运行一次或将其包含在您正在使用的构建程序中。

样本结果 VirusTotal 扫描

相关内容