Antirus文件扫描实时检查和AMSI验证



我想直接扫描内存文件中的恶意软件内容,我想知道哪种方法是最好的。

我负责改进我们在.net核心和Angular 中开发的网络应用程序的网站安全策略

我阅读了OWASP的建议,其中之一是扫描文件中的恶意软件我已经确定了两种扫描文件的方法:从云调用第三方API或调用AMSI接口。我不能通过互联网呼叫第三方,因为客户希望在内部进行验证。

什么是AMSI:

Windows反恶意软件扫描接口(AMSI(是一种通用的接口标准,允许您的应用程序和服务与计算机上的任何反恶意软件产品集成。AMSI为您的最终用户及其数据、应用程序和工作负载提供了增强的恶意软件保护。Windows AMSI界面处于打开状态。这意味着任何应用程序都可以调用它;并且任何注册的反恶意软件引擎都可以处理提交给它的内容

我选择从.net core调用AMSI接口来分析恶意软件内容的http请求,但我的测试在一些安装了Symantec端点保护的服务器上不起作用,这些服务器是AMSI的杀毒软件提供商和订阅者。AMSI似乎被绕过了。

当我用eicar标准内容测试对AMSI的调用时,AMSI会返回结果,就好像没有检测到恶意软件一样,即使我有一篇包含恶意软件内容的帖子。这就是为什么AMSI似乎被绕过了。

你知道我能做些什么来修理它吗?为什么AMSI被绕过了?我应该检查或考虑什么?

开发一个从队列中扫描文件并运行.bat的windows服务,以便向防病毒程序发出扫描文件的命令,这会更好吗?是否有任何第三方web api可以在本地安装?

我也一直在研究用于AV扫描的.NET API,但似乎没有太多。AMSI是一个新的标准(启动Win10(,但似乎只适用于";无文件扫描";(即字符串和Blob(。下面是一篇带有.NET库的好文章:在.NET 中使用Windows反恶意软件扫描接口

我还发现了一个相当活跃的开源扫描仪:病毒检测以及.NET中的一个库,用于在内存中扫描(尽管从2017年起非常旧(:ClamAV.Managed

每个商业企业级AV都有某种Web API,但没有标准-因此每个AV都需要单独开发。。。

我尝试过排队和手动运行CLI AV的方法,在我的案例中是Windows Defender,但扫描文件平均需要2分钟以上(对于您的用例来说可能足够了(。主要好处是它可以是通用的,并支持任何具有CLI的AV,但在控制台中排队和运行也是一个主要的安全(和内存泄漏(风险(更不用说在Azure AppService等云托管实例中运行会很棘手/很昂贵(。

令人惊讶的是,在2021年,我们仍然没有AV扫描的标准。。。

最新更新