来自 数据 2021-12-14 13:18 的文章

免备案高防cdn_ddos攻击防护_零误杀

免备案高防cdn_ddos攻击防护_零误杀

编者按:此帖于2018年2月6日更新。编者按:此帖于2019年10月16日更新。VM检测-通过Pafish测试Paranoid Fish(pafish)是一种用于检测恶意软件分析环境的工具,它复制恶意软件在野外的行为来检测是否正在被分析。它附带了一些通用和特定的检查,以显示某些安全产品的存在。这使得这些分析工具的开发人员和用户能够识别并(如果可能的话)减轻他们在可检测性方面的弱点。不幸的是,由于某些检测机制会寻找所应用的监测技术不可避免的副作用,因此不一定能够缓解这些弱点。例如,如果您的分析工具依赖于挂接函数调用(例如),那么检测结果内存修改的工作相对来说很简单,并且可能不可能对此进行缓解。需要注意的是,虚拟机检测本身已不再像过去那样与恶意软件作者相关,而且随着虚拟化成为企业生产环境中普遍存在的一部分,其相关性可能在未来几年内完全消失。然而,在虚拟机中执行时,仍然存在大量拒绝正确操作的遗留恶意软件。对于现代复杂的网络威胁,隐藏安全解决方案本身的特定构件更为重要,因为这正是分析环境与真正受害者机器的真正区别所在。取决于底层技术,实现这个目标仍然很困难,甚至不可能实现:监控组件对分析环境的干预越多,完全隐藏其踪迹就越复杂。我们在关于观察者效应和洛查德交换原则的博客文章中对此进行了描述。这就是无代理分析系统如此强大的原因之一。在这篇文章和下面的视频中,我们将简要介绍一下Pafish的检测方法,并说明为什么像VMRay这样的无代理沙盒分析仪根本不受它们的影响。调试器检测Pafish通过使用两个不同的Windows API函数IsDebuggerPresent()和OutputDebugString()来包含基本的调试器检测。由于大多数恶意软件沙箱不在机器调试中使用,这些检查通常对检测它们没有帮助。除了pafish例程之外,ddos攻击与防御技术的内容,网站cc防御策略,还有更复杂的方法来检测调试器,无论是一般的还是具体的。虚拟机检测Pafish利用不同的检查来检测虚拟机和底层硬件管理程序的存在,这些都基于CPU的属性。第一种方法利用高性能时间戳计数器(TSC)。为此,rdtsc指令随后执行两次,并计算两个结果时间戳之间的差。如果此序列在虚拟机上执行,而虚拟机监控程序截获rdtsc执行,则产生的时间差远远高于常规系统。然而,如果一个人完全控制了hypervisor本身,攻击就很容易被阻止。CPU只需配置为允许来宾执行rdtsc指令,而不会陷入hypervisor中。第二个基于CPU的攻击是第一个略为复杂的版本,哪些方法可以防御ddos攻击,pafish使用它来测量cpuid指令的执行时间,而不仅仅是利用rdtsc。这个技巧利用了这样一个事实:在大多数x86 cpu上,此指令总是陷阱到hypervisor中。在Intel CPU上,这种行为根本无法更改,在AMD上,它的停用会导致其他问题和检测VM的方法。但是,现代CPU允许精确计算指令(如vmenter、vmexit或cpuid)所需的时间。这些知识可以用来透明地隐藏在客户机外部消耗的时钟周期,从而使hypervisor无法被检测到。第三个检查通过读取CPU专用的hypervisor present位CPUID.1:ECX.HV公司[位31],但是,当有一个定制的hypervisor时,很容易禁用这个特定的位,因为它只是信息性的。最终检查通过使用cpuid指令读取CPU供应商字符串,然后将其与集合进行比较KVMKVMKVMKVM微软HvVMwareVMware软件XenVMMXenVMM显然,这些字符串属于著名的hypervisor KVM、Hyper-V、VMWare和XEN。同样,如果应用了一个定制的hypervisor,那么很容易返回与在实际系统上运行时相同的结果的有效值。通用沙盒检测一般的沙盒检测测试某些工件和副作用的存在,这些工件和副作用通常存在于分析环境中。Pafish为此配备了10种不同的通用检查:第一个测试检查鼠标位置是否在两秒钟内发生变化,如果没有检测到移动,系统将被标记为沙盒。这显然不是一个可靠的测试,因为真正的用户通常在两秒钟或更长的时间内不会移动鼠标。然而,VMRay提供了复杂的用户模拟,除了其他功能外,它还模拟真实世界中的鼠标移动和键盘输入,并通过了这项测试。除此之外,pafish还检查各种硬件资源的配置,并检测实际终端用户系统不常见的设置。例如,检查物理内存的大小是否小于或等于1GB,并将硬盘大小与60GB进行比较。除此之外,还将获得现有CPU核心的数量,然后检查是否仅等于一个。VMRay的分析环境可以完全定制,以使用典型的最终用户系统配置。因此,很容易克服这种检测。一个很小但仍然经常出现的错误是在分析机器上留下明显的痕迹:pafish会检查当前用户名是沙盒、病毒还是恶意软件,如果可执行路径包含SAMPLE、VIRUS或SANDBOX,以及任何不可移动存储驱动器是否包含名为示例.exe或者恶意软件.exe对这个检测的修正是显而易见的,而且是直接的。定时炸弹与需要分析的大量文件相比,沙盒资源非常稀缺,因此每次分析所花费的时间通常只能限制在几分钟之内。恶意软件通常通过将恶意负载的执行延迟一定时间来利用此限制。沙盒可以通过修补对Sleep()API的调用来应对这种情况,即人为地加快时间。但是,恶意软件可以通过查询其他计时源并比较结果来轻松检测到这一点。作为一个例子,Pafish为此使用了API GetTickCount()。只有当一个人完全控制了CPU内的所有内部定时器(可能还有其他一些设备),才能以透明的、不可检测的方式跳过前向时间。作为hypervisor的一个内部部分,阿里云ddos防御安装,并对所有设备拥有完全的控制权,这将使您处于这个强大的位置。QEMU检测QEMU是一个常见的开源模拟器,在许多分析系统中都有使用。传统的用法是模拟一个完整的计算机系统,它可以完全控制一切,但速度慢得令人痛苦。另一种用法是将它与硬件辅助的hypervisor(如KVM)结合使用,并且只使用模拟硬件设备的部分。无论选择什么样的使用场景,开箱即用的所有模拟设备都包含供应商字符串和id,这使得检测QEMU的存在变得容易。为此,Pafish检查两个注册表项的值:硬件DeviceMapsCSSCSI端口0Scsi总线0目标Id 0逻辑单元Id 0标识符硬件描述系统系统生物版本同样,如果其中一个是hypervisor的一个组成部分,并因此能够自由地修改它的所有部分,那么从设备名称及其生成的注册表设置中删除所有这些与QEMU相关的构件是一个简单的任务。Pafish进一步检查cpuid返回的CPU品牌字符串。如果它包含值QEMU Virtual CPU,那么很明显使用了模拟器。此外,如果hypervisor完全控制cpuid指令的执行,则可以很容易地修改返回的字符串。检测其他软件与前面描述的QEMU检测类似,Pafish包含更多方法来识别特定软件,如Sandboxie、Wine、VirtualBox、VMware、Bochs或buckoo Sandbox。所有相关的检查都是针对使用特定软件产品而导致的特定且大部分不可移除的工件。显然,VMRay不能被这些方法检测到。然而,我们跟踪所有的检测尝试本身,因为它们的发生肯定会增加被分析软件的可疑性。摘要Pafish是一个很好的工具来强化你的恶意软件分析环境,虽然这不可能在所有情况下,由于某些技术的不可补救的副作用。在过去,虚拟机检测曾经是恶意软件隐藏其真实行为的强大机制,wayosddos攻击防御,但由于虚拟化在生产系统(服务器和客户端)上的普遍使用,这种方法的有效性正在不断降低。相比之下,恶意软件更多的是为了检测直接的沙盒伪影,例如操作系统的修改或异常的软硬件配置。为了减少攻击面,一方面需要在沙箱系统和使用的分析环境之间尽可能少的交织另一只手。我们的无代理动态分析技术非常适合于此,因为我们基于hypervisor的外部监控意味着分析环境中的任何一个位都不会被修改。您可以在我们的博客文章系列中阅读更多关于常见沙盒规避技术的文章。关于Ralf HundRalf博士获得了计算机科学/IT安全的博士学位