我已经读到了很多关于多态和变质恶意软件的文章,以及一旦他们被发现就如何逃避基于签名的检测。这些技术似乎被用来避免AVs和IDS的反复检测。我突然意识到,恶意软件作者的首要目标可能是防止他们的恶意软件被分析。是否有类似的技术,恶意软件作者已经使用,以防止他们的恶意软件第一次被发现,使他们永远不会得到报告/分析的第一?
发布于 2020-09-19 16:45:30
今天的沙箱正在成为最快和最简单的方式来对威胁进行概述。因此,防砂盒检测经常被用来规避检测。高级恶意软件是专门设计来检测它在沙箱中运行的时间。当这种情况发生时,恶意软件将避免采取任何恶意行为并逃避检测。随后,当恶意软件被允许进入网络并发现自己在真正的计算机中时,它将开始其恶意行为。
为了避免被发现,高级恶意软件可以更改其签名。签名是通过检查对象的内部组件来创建的。熟练的恶意软件作者在修改这些组件的同时保持对象的功能。恶意软件作者使用多种转换技术,应用下列任何一种过程都可以更改签名:
·代码置换
·寄存器重命名
·扩展和收缩代码
*插入垃圾代码或其他构造
发布于 2019-10-30 10:26:18
正如评论所暗示的那样,“恶意软件与反病毒软件”作为一个整体的主题是复杂的,而且通常过于宽泛,无法在这里找到答案。然而,我想谈谈我认为可能是你的误解导致了你的问题。
在问题中,你写(我的重点):
我已经读到了很多关于多态和变质恶意软件的文章,以及一旦他们被发现就如何逃避基于签名的检测。
在一条评论中,你添加了(我强调的):
我认为,一旦恶意软件已经被发现、分析和提取出来,这些技术就会更多地被AVs和IDS所发现。我想知道是否有任何类似的技术专门用来阻止恶意软件的最初发现,这样就没有人会费心报告、分析或从其中提取签名了。
根据我对以上内容的解读,我认为你认为发生的事情是:
我不是恶意软件与反病毒战斗的专家,但我相信会发生的更多的事情是:
发布于 2020-09-19 16:27:36
通过混淆它的源代码。假设一个工具创建了一个恶意软件(在一种解释的编程语言中),它的源代码总是有点不同。通过混合代码,加密部分源代码,不同类型的编码等.每一次都会使自己的组成有点不同。
之后,当源代码再次被编译成可执行文件(例如.exe)时,我们可以利用额外的编码和加密。恶意软件不需要拥有解密自己的密钥,相反,它使用的是蛮力。(只是一个例子)
这使得我们很难比较两个可执行文件,并得出这样的结论:软件的安全性是相同的。还有其他技术,例如在多台机器上部署源。每台机器都在做一个过程/操作的一部分。
请注意,并不是每一个恶意软件都在执行过程中做“令人讨厌的”事情。而解密的行为可能会引起一些警报,但这不是一个大问题。
的分析
现代恶意软件需要一个后端,它由服务组成.主要是API和图形界面。有不同层次的内部网络,每一层服务于它的服务。
可以通过在可信网络中部署关键软件来规避对恶意软件基础结构的分析。在防火墙、代理等后面的网络.(是的,它确实需要防火墙)它不仅仅是一个可执行文件,而是部署了一个完整的基础设施。最终恶意软件可执行文件只是感染载体。即使它变得易于识别,组织也可以编写(或购买)另一个代码,并在现有的基础设施上部署。
要进入可信网络(后端服务位于那里)几乎是不可能的。即使你试图黑进去,他们也会知道这一点,并采取相应的行动。也许通过删除实例,并删除存在的每一个线索。正在使用的软件是更新和修补。可能有坚实的配置到位。请注意,需要有很多不同的软件才能使其工作。单个可执行文件可能是进入机器的一步,但从那时起,部署了更多的软件以提供事后利用。脚步声可能是良性的。
https://security.stackexchange.com/questions/220396
复制相似问题