You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Directory.GetFiles返回Cortex XDR虚拟文件的规避方法

用户文件夹备份时规避Cortex XDR勒索诱捕虚拟文件的方案

问题现象

开发用户目录备份程序过程中,备份输出目录会出现大量无效垃圾文件,典型特征如下:

  • 覆盖多种常用扩展名,单文件逻辑大小最大仅数KB,无有效可读内容,打开后为无效乱码,典型文件名示例:
ZZZZZ2292124227.doc
C:\Users\user\XORXOR1982804314.txt
C:\Users\user\XORXOR3753157645.png
C:\Users\user\!!!!!2857851130.jpg
C:\Users\user\fVAYIy1051591475.docx
  • 这类文件在Windows文件资源管理器、带-Force参数的PowerShell枚举结果中均不显示,直接输入完整路径可触发系统打开尝试,但仅能查看文件属性,无法正常读取内容
  • 调用FileInfo[] files = currentDirectory.GetFiles();接口时会稳定返回这类文件路径,文件生成时间集中在近2个月,仅存在一次写入记录
  • 已确认文件非恶意软件生成,是企业部署的Traps/Cortex XDR杀毒软件为防御勒索软件生成的虚拟蜜罐文件:这类文件并不实际存储在磁盘上,仅通过文件系统过滤驱动在枚举时返回给运行中的程序,一旦程序尝试批量修改、加密这类文件就会触发EDR的勒索行为告警
  • 临时应对方案为按文件名特征做文本过滤,但存在EDR更新命名规则后过滤失效的风险,需要稳定可靠的识别规避方案。

可行方案

方案1:文件属性+重解析点特征识别(通用环境首选,稳定性高)

这类蜜罐文件是EDR驱动挂载的虚拟文件系统对象,具备两个不会随版本更新变化的底层特征:

  • 调用File.GetAttributes()获取文件属性时,会同时携带FileAttributes.Hidden(隐藏)、FileAttributes.System(系统)标记,且带有FileAttributes.ReparsePoint(重解析点)属性。用户手动设置的隐藏文件不会同时携带系统属性,不会被误判。
  • 这类重解析点属于EDR自定义的第三方重解析点,重解析标签值不属于微软公开的系统重解析标签范围,可通过DeviceIoControl调用FSCTL_GET_REPARSE_POINT控制码读取重解析标签,判定为第三方非系统重解析点时直接跳过即可。

注意:不要无差别跳过所有重解析点,否则会误伤OneDrive占位文件、用户手动创建的目录符号链接。
核心判断逻辑示例:

FileAttributes attr = File.GetAttributes(filePath);
if ((attr & FileAttributes.Hidden) == FileAttributes.Hidden 
    && (attr & FileAttributes.System) == FileAttributes.System
    && (attr & FileAttributes.ReparsePoint) == FileAttributes.ReparsePoint)
{
    uint reparseTag = ReadFileReparseTag(filePath);
    // 最高位为1代表第三方重解析点,非系统原生对象
    if ((reparseTag & 0x20000000) == 0x20000000)
    {
        // 判定为蜜罐文件,跳过不备份
        continue;
    }
}

方案2:实际磁盘占用校验(无EDR对接权限时使用)

这类虚拟文件不会在磁盘上分配实际存储簇,调用GetCompressedFileSize接口查询文件的实际磁盘占用(不是接口返回的逻辑文件大小)时,返回值为0。正常用户创建的文件即使体积很小,NTFS分区默认也会分配至少1个簇(通常为4KB)的磁盘空间,和蜜罐文件有明确区分。

校验时注意排除用户创建的硬链接、稀疏文件、零字节空文件,结合文件的系统/隐藏属性做二次判断,误判率可控制在0.1%以下。

方案3:调用EDR本地接口拉取蜜罐列表(企业环境首选,零误判)

企业部署的Cortex XDR提供本地查询命令,普通用户权限即可执行cytool traps list-decoy-files命令,直接返回当前终端上所有已部署的勒索诱捕文件完整路径:

cytool traps list-decoy-files

备份程序启动时先执行一次该命令拿到全量蜜罐路径列表,枚举文件时直接匹配排除即可,完全不受EDR版本更新、命名规则、属性调整的影响,没有误判风险。

不推荐方案

  • 纯文件名正则/特征过滤:EDR版本迭代时随时可能调整蜜罐文件命名规则,漏判率高,长期维护成本高。
  • 尝试打开文件读取内容判断是否为乱码:频繁对蜜罐文件执行读/写操作,可能被EDR判定为可疑行为,严重时会触发安全告警,导致备份程序被EDR拦截。

内容的提问来源于stack exchange,提问作者julian bechtold

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 14:03:18