前言
BPFDoor 是一种专门为 Linux 打造的后门有效载荷。它的目的是实现长期持久性,以便重新进入先前或正在被入侵的目标环境。值得注意的是,它利用 BPF 以及其他一些技术来实现此目标,并非常注意尽可能提高效率和隐蔽性。PWC 的研究人员在 2021 年发现了这个非常有趣的恶意软件。PWC 将此后门归因于来自中国的特定组织“红门神”,并在上周发布的高级威胁研究文章中详细介绍了一些有趣的组件。
PWC 的研究结果表明,“红门神”已将其工作重点放在针对中东和亚洲的特定电信、政府、物流和教育团体。此活动发生在周一到周五的工作时间内,UTC 时间 01:00 到 10:00 之间,表明恶意软件的操作员在其攻击中具有一致性,并在工作周内进行操作。
也许最令人担忧的是,在过去的 5 年中,该有效载荷本身在各种开发和复杂性阶段中被观察到,这表明负责操作恶意软件的威胁参与者已存在一段时间,并且在许多环境中未被发现。
BPFDoor 工具
Elastic 安全团队创建了一些工具,可以帮助研究人员分析 BPFDoor 恶意软件。
BPFDoor 扫描器允许您扫描感染 BPFDoor 恶意软件的主机,而 BPFDoor 配置提取器允许您推断恶意软件的配置或硬编码值,这可以引出您可以用于进一步分析的其他观察结果,开发其他签名或使用我们的客户端连接到后门。
攻击生命周期
这种固有的被动后门有效载荷旨在成为一种持久性形式——如果第一阶段或第二阶段有效载荷丢失,则重新获得访问权限的方法。它是为安装在具有 Internet 访问权限的高正常运行时间服务器或设备、IoT/SCADA 或云系统上而构建和设计的。后门通常位于临时存储中,因此如果服务器重新启动或关闭,后门将丢失。
应该假设如果在系统中发现此恶意软件,则初始访问(第一阶段)或后利用(第二阶段)有效载荷仍然很可能存在,并且可能在环境中的其他地方处于活动状态。此后门擅长隐身,会抓住一切机会融入并保持不被发现。
在以下步骤中,我们将根据绝大多数可用样本来分解 BPFDoor 的操作。
- 执行时,二进制文件会将自身复制到 /dev/shm/ 中。临时文件系统 /dev/shm 代表共享内存,是一种临时文件存储设施,用作进程间通信的有效方法
- 将其进程重命名为 kdmtmpflush,这是一个硬编码的进程名称
- 使用 -init 标志初始化自身并分叉自身。在 Linux 中,分叉意味着通过复制调用进程来创建新进程
- 通过删除调用的原始二进制文件来删除自身。分叉进程继续运行
- 更改分叉进程的创建和修改时间值,也称为时间戳篡改
- 为其自身创建新的进程环境并删除旧环境,设置(欺骗)新的进程名称。它更改在系统上的显示方式,类似于戴上面具。该进程仍然是 kdmtmpflush,但如果您运行 ps,您将看到它设置的任何值
- 在 /var/run 中创建进程 ID (PID) 文件。PID 文件是文本文件,其中包含相关程序的进程,旨在防止多次启动,标记驻留,并由程序用来停止自身。此文件位于 /var/run 中,这是另一个临时文件存储设施
- 创建原始网络套接字。在 Linux 上,套接字是网络通信的端点,允许您详细指定数据包的每个部分,从而允许用户在 Internet (IP) 层之上实现自己的传输层协议
- 在原始套接字上设置 BPF 过滤器。BPF 允许用户空间程序将过滤器附加到任何套接字上,并允许或禁止特定类型的数据通过套接字
- 观察传入的数据包
- 如果观察到与 BPF 过滤器匹配并包含所需数据的数据包,则会将其传递到后门进行处理
- 它再次分叉当前进程
- 将分叉进程的工作目录更改为 /
- 将分叉进程的名称更改(欺骗)为硬编码值
- 根据在“魔术数据包”中发送的密码或密码的存在,后门提供反向 shell、建立绑定 shell 或发回 ping
非典型的 BPFDoor 样本
值得注意的是,我们遇到一个样本似乎没有显示步骤 1 - 4。它不会将其初始名称更改为硬编码值,而只是从其放置的位置执行,否则,它会模拟相同的行为。
在下面,您可以看到 BPFDoor 进程树的可视化表示,使用了 Elastic 的分析器视图。第一张图像显示了在后门主动使用之前(即反向 shell、绑定 shell 或 pingback)的树,第二张图像显示了反向 shell 连接并执行后利用活动之后的情况。
防御规避见解
考虑到所使用的反取证和混淆策略,BPFDoor 非常有趣。精明的读者会观察到,当在受感染的主机上运行 ps ajxf 时,与 Elastic 内部的分析器视图中执行的数据相比,可见的 PID 树略有不同。这是由于上述攻击生命周期第 6 步中提到的进程名称欺骗所致。下图取自运行 BPFDoor 且已建立活动反向 shell 连接的系统
区别在于,kdmtmpflush 和 sh 在欺骗之前运行,并且在运行时由 Elastic Endpoint 捕获。这准确地表示了主机上处于活动状态的进程,进一步证实了 Linux 主机适当观察软件的重要性——您不能总是相信您在本地系统上看到的内容
BPFDoor 还拥有颠覆传统 Linux 套接字客户端 - 服务器体系结构的能力,以隐藏其恶意流量。它用来实现此目的的方法既不寻常又有趣。
套接字接口几乎是 TCP/IP 通信的同义词。这个简单的接口已经持续了 40 多年——早于 Linux 和 Windows 的实现。
BPFDoor 使用原始套接字(而不是透明地处理 IP/TCP/UDP 标头的“已处理”套接字)来观察到达计算机的每个数据包,包括以太网帧标头。虽然这听起来像是拦截流量的一种隐蔽方式,但实际上并非如此——在任何具有大量网络流量的计算机上,CPU 使用率都会持续很高。
这就是 BPF 的用武之地——一个极其高效的内核级数据包过滤器是完美工具,可让植入程序忽略 99% 的网络流量,并且仅在遇到特殊模式时才被激活。此植入程序在系统上收到的每个 TCP、UDP 和 ICMP 数据包中查找所谓的魔术数据包。
激活后,典型的反向 shell(此后门也支持)会创建与攻击者设置的侦听器的出站连接。这具有绕过仅监视入站流量的防火墙的优势。然而,这种方法已被防御者很好地理解。连接 shell 的最隐蔽方式是重用现有的数据包流,将其重定向到单独的进程。
在这种攻击中,初始的 TCP 握手是在攻击者和一个完全合法的进程之间进行的,例如 nginx 或 sshd。这些握手数据包恰好也被传递到后门(像系统上的每个数据包一样),但被 BPF 过滤掉了。然而,一旦连接建立,BPFDoor 会向合法服务发送一个魔术数据包。植入程序接收到它,并记录攻击者正在使用的源 IP 和端口,然后在不显眼的端口(42391 - 43391)上打开一个新的监听套接字。
然后,植入程序重新配置防火墙,以临时将来自攻击者的 IP/端口组合的所有流量重定向到新的监听套接字。攻击者像以前一样在同一个合法端口上发起第二次 TCP 握手,只是现在 iptables 将这些数据包转发到植入程序拥有的监听套接字。这就在攻击者和植入程序之间建立了用于命令和控制的通信通道。然后,植入程序会删除重定向流量的 iptables 防火墙规则,以掩盖其踪迹。
尽管防火墙规则已被删除,由于 Linux 如何有状态地跟踪连接,合法端口上的流量将继续转发到植入程序。没有可见的流量会发送到植入程序端口(尽管流量将被传递到那里)。
BPF 过滤器
如步骤 9(上文)所述,BPF 或伯克利数据包过滤器是 90 年代早期的一项技术,它允许用户空间程序将网络过滤器附加到任何套接字,并允许或禁止某些类型的数据通过套接字。这些过滤器由在 Linux 内核中的抽象虚拟机上运行的字节码组成。BPF 虚拟机具有检查传入数据包所有部分的功能,并根据其看到的内容做出允许/丢弃的决定。您可以在下面的图像示例中看到这在 BPFDoor 源代码中的样子
我们采用了这段 BPF 代码,对其进行了转换,并将其编写为伪代码,以帮助我们的研究并制作能够成功通过这些过滤器以激活后门的数据包。
上述功能允许 BPFDoor 将过滤器附加到任何套接字,并允许或禁止某些类型的数据通过套接字 - 由攻击者谨慎使用以调用有效负载中的一系列不同功能。
历史分析
我们想看看随着时间的推移,在 BPFDoor 有效负载之间,威胁行动者修改了什么(如果有的话)。我们引爆并分析了大量样本,从上传的源代码到上个月上传的样本。我们发现,随着时间的推移,行为并没有发生太大的变化。它保持了相同的相对攻击生命周期,只是在硬编码值(如密码、进程名称和文件)方面有一些变化 - 与其他旨在逃避检测或在各种受害者之间利用有效载荷的恶意软件样本相比,这并不罕见。
我们认为,威胁组织会更改密码并更新进程或文件名,以提高运营安全性并保持隐藏。后门的一般功能没有任何重大变化也是有道理的。正如俗话所说,“如果它没有坏,就不要修理它”。我们的恶意软件分析和逆向工程团队将源代码(上传到 VirusTotal 并在 Pastebin 上找到)与最近上传的样本进行了比较,突出了恶意软件主要功能中的一些显著变化,如下面的图像所示。
正如我们之前提到的,我们最近遇到一个 样本,它似乎没有表现出以前有效载荷的一些策略 - 它不会将其初始名称更改为硬编码值,而只是从其放置的位置执行,否则,它会模拟相对相同的行为。
Linux 恶意软件的复杂性
我们在 Elastic 观察到的一个趋势是针对 Linux 的攻击的威胁形势 - 这些攻击通常集中在云工作负载或在许多我们看到的环境中通常配置较少观察技术的系统上。复杂、精心设计的有效载荷的趋势常常被简单地忽视,特别是在 BPFDoor 的案例中,它多年来一直隐藏着。
重要的是要将这些工作负载视为安全态势的关键组成部分:云工作负载中的可见性不足最终会导致安全控制方面的巨大差距 - 对手组织正在进一步了解这些趋势并采取相应的行动。最佳实践表明,端点防御应在受管理的系统范围内保持一致,并符合最小权限架构。
BPFDoor 的检测
在研究这种恶意软件后,很明显为什么后门会长期使用并隐藏起来。如果您不熟悉 Linux 进程异常,或者没有寻找它,您通常不会检测到它。尽管它以隐秘的方式利用 Linux 功能来逃避检测,但仍然存在基于行为和基于签名的检测机会。
我们在测试期间观察到的第一个机会领域是恶意软件初始执行期间观察到的行为,特别是其工作目录,在共享内存位置 /dev/shm 中。这是 Linux 中的一个本机临时文件系统位置,它使用 RAM 进行存储,并且从此处执行的二进制文件,更不用说生成网络连接,在实践中是相当不常见的。
在执行期间,BPFDoor 会从 /dev/shm 中删除现有文件,并在初始化之前将其自身复制到那里。对此的检测将是从此目录以 root 身份执行任何二进制文件(您必须是 root 才能写入和读取此目录)。
通过在安装了我们 Elastic Agent 的 VM 中引爆二进制文件并观察事件序列来验证这一点。您可以在下面的 Kibana Security Alerts 页面上看到此检测的图像。此规则作为 Elastic SIEM 检测规则公开发布 - 从共享内存目录执行的二进制文件
我们注意到的第二个检测机会是在 /var/run 中创建的特定 PID 文件。我们注意到,在通过 Osquery 集成对 /var/run 目录进行快速查询时,删除的 PID 文件完全为空。虽然这本身不是恶意的,但 PID 的文件大小为 0 或大于 10 个字节是不寻常的,因此我们创建了一个额外的规则,围绕检测这种不寻常的行为。
我们的 创建异常进程 ID 或锁文件 规则识别在没有子目录的 /var/run 的主目录中创建 PID 文件,忽略预期的常见 PID 文件
我们要查看的第三个领域是与后门拥有的三个功能(反向 shell 和绑定 shell)中的两个相关的网络连接。我们想看看是否有任何可疑的网络连接与我们可根据 BPFDoor 处理建立反向或绑定 shell 的方式排序的进程或用户异常相关联。
反向 shell 是第一个关注的功能。深入了解反向 shell 建立过程中及周围的进程树,使我们能够锁定在出站网络连接之前和涉及出站网络连接的事件的奇怪甚至异常序列。
我们开发了一个狩猎规则序列,用于识别出站网络连接尝试,然后是由同一进程实体以 root 用户身份进行的会话 ID 更改。我们开发这些以网络为中心的狩猎规则的原因是,如果持续运行这些规则,可能会导致性能问题。
绑定 shell 是我们关注的最后一个功能。由于绑定 shell 分叉,然后接受连接并在建立连接后终止接受进程的方式,因此难以识别围绕绑定 shell 连接的异常事件序列。因此,我们不得不关注进程实体 ID 内直接涉及网络连接和随后终止接受进程的事件序列。
在开发了下面列出的 2 个检测规则以及 2 个狩猎规则,并且部署了 6 个 YARA 签名之后,我们能够以多种不同的方式并在其生命周期的不同阶段检测到 BPFDoor。不过,如前所述,如果在您的环境中检测到此恶意软件,它应该是您最不关心的问题,因为威胁行动者很可能已经通过其他方式成功入侵了您的网络。
现有检测规则
以下 Elastic 检测规则将识别 BPFDoor 活动
狩猎查询
此 EQL 规则可用于成功识别您的环境中已建立的 BPFDoor 反向 shell 连接
EQL BPFDoor 反向 shell 狩猎查询
sequence by process.entity_id with maxspan=1m
[network where event.type == "start" and event.action == "connection_attempted" and user.id == "0" and not process.executable : ("/bin/ssh", "/sbin/ssh", "/usr/lib/systemd/systemd")]
[process where event.action == "session_id_change" and user.id == "0"]
我们在此处创建的狩猎规则可识别以会话 ID 更改开始的事件序列,然后接受网络连接,与 ptmx 文件创建和删除负责接受网络连接的进程相关联。此 EQL 规则可用于成功识别您的环境中的 BPFDoor 绑定 shell 连接
EQL BPFDoor 绑定 shell 狩猎查询
sequence by process.entity_id with maxspan=1m
[process where event.type == "change" and event.action == "session_id_change" and user.id == 0 and not process.executable : ("/bin/ssh", "/sbin/ssh", "/usr/lib/systemd/systemd")]
[network where event.type == "start" and event.action == "connection_accepted" and user.id == 0]
[file where event.action == "creation" and user.id == 0 and file.path == "/dev/ptmx"]
[process where event.action == "end" and user.id == 0 and not process.executable : ("/bin/ssh", "/sbin/ssh", "/usr/lib/systemd/systemd")]
YARA 规则
除了 Elastic Endpoint 中的行为检测规则外,我们还为社区发布了一组 BPFDoor Yara 签名。
BPFDoor YARA 规则
rule Linux_Trojan_BPFDoor_1 {
meta:
Author = "Elastic Security"
creation_date = "2022-05-10"
last_modified = "2022-05-10"
os = "Linux"
arch = "x86"
category_type = "Trojan"
family = "BPFDoor"
threat_name = "Linux.Trojan.BPFDoor"
description = "Detects BPFDoor malware."
reference_sample = "144526d30ae747982079d5d340d1ff116a7963aba2e3ed589e7ebc297ba0c1b3"
strings:
$a1 = "hald-addon-acpi: listening on acpi kernel interface /proc/acpi/event" ascii fullword
$a2 = "/sbin/iptables -t nat -D PREROUTING -p tcp -s %s --dport %d -j REDIRECT --to-ports %d" ascii fullword
$a3 = "avahi-daemon: chroot helper" ascii fullword
$a4 = "/sbin/mingetty /dev/tty6" ascii fullword
$a5 = "ttcompat" ascii fullword
condition:
all of them
}
rule Linux_Trojan_BPFDoor_2 {
meta:
Author = "Elastic Security"
creation_date = "2022-05-10"
last_modified = "2022-05-10"
os = "Linux"
arch = "x86"
category_type = "Trojan"
family = "BPFDoor"
threat_name = "Linux.Trojan.BPFDoor"
description = "Detects BPFDoor malware."
reference_sample = "3a1b174f0c19c28f71e1babde01982c56d38d3672ea14d47c35ae3062e49b155"
strings:
$a1 = "hald-addon-acpi: listening on acpi kernel interface /proc/acpi/event" ascii fullword
$a2 = "/sbin/mingetty /dev/tty7" ascii fullword
$a3 = "pickup -l -t fifo -u" ascii fullword
$a4 = "kdmtmpflush" ascii fullword
$a5 = "avahi-daemon: chroot helper" ascii fullword
$a6 = "/sbin/auditd -n" ascii fullword
condition:
all of them
}
rule Linux_Trojan_BPFDoor_3 {
meta:
Author = "Elastic Security"
creation_date = "2022-05-10"
last_modified = "2022-05-10"
os = "Linux"
arch = "x86"
category_type = "Trojan"
family = "BPFDoor"
threat_name = "Linux.Trojan.BPFDoor"
description = "Detects BPFDoor malware."
reference_sample = "591198c234416c6ccbcea6967963ca2ca0f17050be7eed1602198308d9127c78"
strings:
$a1 = "[-] Spawn shell failed." ascii fullword
$a2 = "[+] Packet Successfuly Sending %d Size." ascii fullword
$a3 = "[+] Monitor packet send." ascii fullword
$a4 = "[+] Using port %d"
$a5 = "decrypt_ctx" ascii fullword
$a6 = "getshell" ascii fullword
$a7 = "getpassw" ascii fullword
$a8 = "export %s=%s" ascii fullword
condition:
all of them
}
rule Linux_Trojan_BPFDoor_4 {
meta:
Author = "Elastic Security"
creation_date = "2022-05-10"
last_modified = "2022-05-10"
os = "Linux"
arch = "x86"
category_type = "Trojan"
family = "BPFDoor"
threat_name = "Linux.Trojan.BPFDoor"
description = "Detects BPFDoor malware."
reference_sample = "591198c234416c6ccbcea6967963ca2ca0f17050be7eed1602198308d9127c78"
strings:
$a1 = { 45 D8 0F B6 10 0F B6 45 FF 48 03 45 F0 0F B6 00 8D 04 02 00 }
condition:
all of them
}
rule Linux_Trojan_BPFDoor_5 {
meta:
Author = "Elastic Security"
creation_date = "2022-05-10"
last_modified = "2022-05-10"
os = "Linux"
arch = "x86"
category_type = "Trojan"
family = "BPFDoor"
threat_name = "Linux.Trojan.BPFDoor"
description = "Detects BPFDoor malware."
reference_sample = "76bf736b25d5c9aaf6a84edd4e615796fffc338a893b49c120c0b4941ce37925"
strings:
$a1 = "getshell" ascii fullword
$a2 = "/sbin/agetty --noclear tty1 linux" ascii fullword
$a3 = "packet_loop" ascii fullword
$a4 = "godpid" ascii fullword
$a5 = "ttcompat" ascii fullword
$a6 = "decrypt_ctx" ascii fullword
$a7 = "rc4_init" ascii fullword
$b1 = { D0 48 89 45 F8 48 8B 45 F8 0F B6 40 0C C0 E8 04 0F B6 C0 C1 }
condition:
all of ($a*) or 1 of ($b*)
}
rule Linux_Trojan_BPFDoor_6 {
meta:
Author = "Elastic Security"
creation_date = "2022-05-10"
last_modified = "2022-05-10"
os = "Linux"
arch = "x86"
category_type = "Trojan"
family = "BPFDoor"
threat_name = "Linux.Trojan.BPFDoor"
description = "Detects BPFDoor malware."
reference_sample = "dc8346bf443b7b453f062740d8ae8d8d7ce879672810f4296158f90359dcae3a"
strings:
$a1 = "getpassw" ascii fullword
$a2 = "(udp[8:2]=0x7255) or (icmp[8:2]=0x7255) or (tcp[((tcp[12]&0xf0)>>2):2]=0x5293)" ascii fullword
$a3 = "/var/run/haldrund.pid" ascii fullword
$a4 = "Couldn't install filter %s: %s" ascii fullword
$a5 = "godpid" ascii fullword
condition:
all of them
}
与 BPFDoor 交互
Elastic 安全团队发布了一些工具,可以帮助进一步研究 BPFDoor,包括用于识别受感染主机的网络扫描仪、BPFDoor 恶意软件配置提取器以及可用于主动与样本交互的 BPFDoor 客户端二进制文件。
BPFDoor 扫描仪
Elastic 安全团队已发布一个 Python 脚本,可以识别您是否感染了 BPFDoor 的主机。
扫描仪使用默认目标端口 (68/UDP) 和默认接口向定义的 IP 地址发送数据包。它监听端口 53/UDP 上的返回流量。
BPFDoor 配置提取器
此工具将允许您从可能收集的任何 BPFDoor 恶意软件中提取配置。这将允许您开发额外的签名并进一步分析恶意软件以及您的环境。
BPFDoor 配置提取器可以在此处下载。
BPFDoor 客户端 POC
在开始研究此恶意软件后不久,我们意识到我们还需要主动与 BPFDoor 交互,以便观察它所拥有的全部功能,并从主机和 SIEM 级别监控这些功能的样子。
为了做到这一点,我们必须分解 BPFDoor 源代码中的 BPF 过滤器,以便我们可以为不同的协议制作数据包。为此,我们使用了 Scapy,一个数据包操作程序,以确保我们可以通过过滤器以激活后门。一旦我们确保可以通过过滤器,Elastic 的工程师 Rhys Rustad-Elliott 构建了一个 BPFDoor 客户端,该客户端接受密码、IP 地址和端口,允许您连接到 BPFDoor 样本并在您拥有该样本的硬编码密码的情况下进行交互。
根据提供的密码或未提供密码的情况,BPFDoor 的行为将与在野外环境中完全相同。您可以调用反向 Shell、建立绑定 Shell,或者在不提供密码的情况下连接到它,以接收确认其安装的 ping-back。
希望使用 BPFDoor 的研究人员可以联系 Elastic Security 以获取 BPFDoor 客户端 POC 的访问权限。请注意,这些工具将由我们酌情与可信的安全社区中希望改进此漏洞检测的人员共享。
影响
以下 MITRE ATT&CK 战术、技术和子技术已在 BPFDoor 恶意软件中观察到。
战术
战术代表了 ATT&CK 技术或子技术的“原因”。它是对手的战术目标:执行动作的原因。
技术(子技术)
技术(和子技术)代表了对手如何通过执行动作来实现战术目标。
源代码伪代码
为了清楚地阐述此恶意软件的细节,我们创建了两张图表,概述了基于上传到 VT 和在 Pastebin 上找到的源代码的 BPFDoor 的具体伪代码。虽然其中包含很多细节,但如果研究人员选择进一步研究,它也很容易理解。
总结
随着威胁组织成熟度的不断提高,我们预计这种成熟、精心设计且隐藏的威胁将继续在 Linux 环境中被发现。这些发现重申了在整个机群中实施全面的安全控制的重要性,而不是仅仅关注用户端点。
BPFDoor 展示了监控 Linux 环境中的工作负载有多么重要的一个完美例子。如果没有足够的控制措施,此类有效负载几乎不可能被观察和检测到,并且应被视为一般对抗环境中的一种发展趋势。
可观察项
可观察项 | 类型 | 参考 | 注释 |
---|---|---|---|
/dev/shm/kdmtmpflush | 进程名称 | BPFDoor 进程名称 | 观察到的 BPFDoor 进程名称 |
/var/run/haldrund.pid | 文件名 | BPFDoor 文件名 | 观察到的 BPFDoor PID 文件 |
/var/run/kdevrund.pid | 文件名 | BPFDoor 文件名 | 观察到的 BPFDoor PID 文件 |
/var/run/xinetd.lock | 文件名 | BPFDoor 文件名 | 观察到的 BPFDoor 锁定文件 |
74ef6cc38f5a1a80148752b63c117e6846984debd2af806c65887195a8eccc56 | SHA-256 | BPFDoor 恶意软件 | |
07ecb1f2d9ffbd20a46cd36cd06b022db3cc8e45b1ecab62cd11f9ca7a26ab6d | SHA-256 | BPFDoor 恶意软件 | |
76bf736b25d5c9aaf6a84edd4e615796fffc338a893b49c120c0b4941ce37925 | SHA-256 | BPFDoor 恶意软件 | |
93f4262fce8c6b4f8e239c35a0679fbbbb722141b95a5f2af53a2bcafe4edd1c | SHA-256 | BPFDoor 恶意软件 | |
96e906128095dead57fdc9ce8688bb889166b67c9a1b8fdb93d7cff7f3836bb9 | SHA-256 | BPFDoor 恶意软件 | |
599ae527f10ddb4625687748b7d3734ee51673b664f2e5d0346e64f85e185683 | SHA-256 | BPFDoor 恶意软件 | |
2e0aa3da45a0360d051359e1a038beff8551b957698f21756cfc6ed5539e4bdb | SHA-256 | BPFDoor 恶意软件 | |
f47de978da1dbfc5e0f195745e3368d3ceef034e964817c66ba01396a1953d72 | SHA-256 | BPFDoor 恶意软件 | |
fd1b20ee5bd429046d3c04e9c675c41e9095bea70e0329bd32d7edd17ebaf68a | SHA-256 | BPFDoor 恶意软件 | |
5faab159397964e630c4156f8852bcc6ee46df1cdd8be2a8d3f3d8e5980f3bb3 | SHA-256 | BPFDoor 恶意软件 | |
f8a5e735d6e79eb587954a371515a82a15883cf2eda9d7ddb8938b86e714ea27 | SHA-256 | BPFDoor 恶意软件 | |
5b2a079690efb5f4e0944353dd883303ffd6bab4aad1f0c88b49a76ddcb28ee9 | SHA-256 | BPFDoor 恶意软件 | |
97a546c7d08ad34dfab74c9c8a96986c54768c592a8dae521ddcf612a84fb8cc | SHA-256 | BPFDoor 恶意软件 | |
c80bd1c4a796b4d3944a097e96f384c85687daeedcdcf05cc885c8c9b279b09c | SHA-256 | BPFDoor 恶意软件 | |
4c5cf8f977fc7c368a8e095700a44be36c8332462c0b1e41bff03238b2bf2a2d | SHA-256 | BPFDoor 恶意软件 |
参考资料
- https://doublepulsar.com/bpfdoor-an-active-chinese-global-surveillance-tool-54b078f1a896
- https://www.pwc.com/gx/en/issues/cybersecurity/cyber-threat-intelligence/cyber-year-in-retrospect/yir-cyber-threats-report-download.pdf
- https://www.pangulab.cn/en/post/the_bvp47_a_top-tier_backdoor_of_us_nsa_equation_group
工件
工件也可以在下载,以 ECS 和 STIX 格式的组合 zip 捆绑包提供。