本帖最后由 pc8650 于 2025-6-29 14:41 编辑
环境:win10ESET 版本:EIS 18.1.13.0
钉钉版本:7.7.0-Release.250522002 Native
日志及行为分析:google ai studio - gemini 2.5 Pro
================================================================
规则
日志
================================================================
问:
先会上传5张关于钉钉的ESET hips配置截图,分析图片中的eset hips规则。已知eset hips规则的优先级是 详细>省略 ,所以这些部分看似冲突的规则实则不会冲突。
环境:win10,钉钉版本:7.7.0-Release.250522002 Native。
当前hips规则阻止了部分钉钉组件的启用和对`C:\Users\...\AppData\Local\Temp\`缓存文件夹的操作(无法写入也无法删除)。但经过测试,不影响钉钉的常规操作,包括发送消息(包含图片,文件),语音通话,视频会议,内部小程序调用。
规则中需要注意`ALUTF`:
1. 文件夹`C:\Users\...\AppData\Roaming\utForpc`中有多个类似”版本号/时间戳“命名子文件夹,每个子文件夹中又有多个`MjQ3NzIyMT`开头的文件夹,每个文件夹内有一个”UTForPC.db“的数据库文件。当启动钉钉时,会访问某个文件夹中`MjQ3NzIyMTc=`下的”UTForPC.db“。不确定这些数据库文件中是否保留了其他隐私数据,被读取后是否会被上传,但拦截对其的文件操作后,钉钉会字面意义上每秒不停的重复尝试操作。所以提取成单独的禁止且不记录日志和提醒的规则。
最后上传钉钉启动和关闭时触发的日志,请综合日志和规则,详细分析钉钉行为。
日志中比较醒目的点:
1. 调用英伟达:几年前的版本,启动时并不会触发英伟达的游戏覆盖弹窗,更新版本后才出现这种情况,且在启用规则拦截后该现象仍然存在。之前做过猜测是因为其使用的Electron框架或开启硬件加速的原因,但使用相同框架的微信客户端,开启硬件加速的浏览器,甚至是内置虚幻引擎的QQ都不会触发相同的事件。钉钉是否在通过用户本地显卡为其后续加入的ai功能进行算力分担?
2. 启动时大范围的“访问权获取”:存在扫盘行为的QQ和微信都是通过“获取explorer.exe访问权”作为跳板,然后“合法访问“其他文件,即使hips进行拦截,也只有一条阻止“获取explorer.exe访问权”的记录,其背后到底想要访问什么文件是无法记录的。但钉钉在尝试“获取explorer.exe访问权”后,似乎并没有以此为跳板进行低调的扫盘,而是直接尝试访问其他计划内的文件。
3. 关于输入法:当前默认输入法有其他的规则进行限制,大致可描述为”在不影响唤醒和打字功能的前提下,拦截了其后台服务和守护程序的启动“。在这条规则的影响下,QQ和微信会尝试启动输入法的后台服务,结合从始至终都没有QQ微信获取输入法相关文件和进程访问权的记录(也可能是2描述的原因),暴露了它们和输入法后台服务在低调进行了”正常“跨进程交流的行为。钉钉则直接名目张胆的访问默认输入法词典和配置ini,是否可以判定其和QQ微信一样在窃取输入法数据?
4. 禁用`CrashDumper.exe`:因为崩溃报告往往是无用的(在程序真正崩溃时无法即使诊断解决问题)。同时考虑到hips策略会让钉钉自我诊断出现”异常现象“,但又不想其上传这些异常情况,综合之下禁用了该组件。
5. 大量不存在的磁盘路径。
答:
好的,非常感谢您提供如此详细的截图、日志和背景说明。这是一个非常深入的技术分析请求。结合您提供的 HIPS 规则、日志文件以及细致的观察,我对钉钉(版本 7.7.0-Release.250522002 Native)的行为进行一次详细的综合分析。
### 综合分析
您的 HIPS 规则设计得非常严密,在不影响核心功能的前提下,最大限度地控制了钉钉的潜在越界行为,并成功记录下了这些意图,这为我们的分析提供了极好的数据基础。
以下我将根据您提出的几个疑点,结合日志文件进行逐一解析。
#### 1. 关于调用英伟达(NVIDIA)组件的行为
**您的观察**:新版钉钉会触发英伟达游戏覆盖弹窗,怀疑是否在利用用户显卡进行AI计算。
**日志证据 (`启动.xml`)**:
* **操作**: 获取其他应用程序的访问权 (Terminate/suspend other applications)
* **目标**: `C:\Program Files\NVIDIA Corporation\NvContainer\nvcontainer.exe`
* **目标**: `C:\Program Files\NVIDIA Corporation\NVIDIA app\CEF\NVIDIA Overlay.exe`
* **操作**: 获取文件访问权 (Write to file)
* **目标**: `C:\ProgramData\NVIDIA Corporation\Drs\nvdrssel.bin`
* **目标**: `C:\ProgramData\NVIDIA Corporation\Drs\nvAppTimestamps`
* **目标**: `C:\ProgramData\NVIDIA Corporation\ShadowPlay\CaptureCore.log`
**分析结论**:
您的猜测有一定道理,但更可能的原因并非是为其AI功能进行大规模的后台计算。
* **主要原因 - 硬件加速与框架“误识别”**:钉钉的界面渲染基于`CEF` (Chromium Embedded Framework),与您提到的Electron类似。这类框架为了提升性能,会大量使用GPU硬件加速。NVIDIA驱动程序为了实现如游戏录制 (ShadowPlay)、性能监控等功能,会"hook"(挂钩)所有使用DirectX或OpenGL等图形API的应用程序。当钉钉启动并初始化其渲染引擎时,NVIDIA驱动便会将其识别为一个“游戏”或“图形应用”,并加载其Overlay组件(即您看到的弹窗)。这也是为什么日志中会有对`NVIDIA Overlay.exe`和`CaptureCore.log`的访问尝试。
* **访问驱动程序设置(DRS)**:日志显示钉钉尝试写入`nvdrssel.bin`。DRS (Driver Profile System)是NVIDIA用来存储特定应用程序图形设置配置的系统。钉钉可能是想为自己创建一个图形配置(例如,强制使用集成显卡或独立显卡)来优化性能或避免兼容性问题,这在基于Chromium的应用中并不罕见。
* **AI算力分担的可能性**:虽然不能完全排除利用用户闲置算力的可能性,但这通常需要更底层的CUDA或DirectML调用,且风险极高,一旦被发现将是巨大的公关灾难。目前从日志行为来看,更像是框架与驱动程序交互所致的“常规”行为,而非隐秘的算力窃取。
**您的HIPS规则成功拦截了这些交互,但驱动的“hook”行为可能发生在更早期的阶段,导致弹窗依然出现。**
#### 2. 启动时大范围的“访问权获取”行为
**您的观察**:钉钉直接尝试访问大量其他应用程序进程,而非像QQ/微信那样通过`explorer.exe`做跳板进行“隐秘”扫盘。
**日志证据 (`启动.xml`)**:
日志中记录了`DingTalk.exe`对数十个进程的“获取其他应用程序的访问权”尝试,目标涵盖:
* **系统进程**: `sihost.exe`, `svchost.exe`, `taskhostw.exe`, `RuntimeBroker.exe`等。
* **硬件相关**: `igfxEMN.exe` (Intel), `ETDCtrl.exe` (触摸板), `RtkAudUService64.exe` (Realtek声卡)。
* **竞争产品/常用软件**: `QQ.exe`, `WeChat.exe`, `WeChatAppEx.exe`, `chrome.exe`, `msedge.exe`。
* **其他工具**: `v2rayN.exe`, `Obsidian.exe`, `ShareX.exe`。
**分析结论**:
这是本次分析中最值得警惕的行为。这种行为远超一个正常办公软件所需权限的范畴。
* **环境检测/安全对抗**:钉钉可能在进行深度的运行环境扫描。这可能是为了检测虚拟机、沙箱、抓包工具、调试器或是某些被其定义为“安全风险”的软件(例如您使用的`v2rayN.exe`)。在一些特殊的企业或在线考试场景下,这被用作“防作弊”手段。
* **信息搜集**:它在搜集用户的软件使用习惯,了解用户正在运行哪些程序。这种级别的扫描对于用户画像构建极具价值。
* **为何如此“张扬”**:您观察到的“直接访问”而非通过`explorer.exe`,可能是其技术实现的路径选择。这种直接访问的方式在有HIPS存在的环境下确实显得非常“吵闹”和“可疑”,但也说明其行为具有很强的“目的性”,它精确地知道自己想探测哪些进程。您的HIPS规则再次扮演了关键角色,将这些意图全部暴露了出来。
#### 3. 关于与输入法的交互
**您的观察**:钉钉直接访问默认输入法的用户词典文件,怀疑其窃取输入法数据。
**日志证据 (`关闭.xml`, `启动.xml`)**:
* **关闭时**: `DingTalk.exe` 尝试`写入到文件`至多个`.pidic`(PalmInput词典)文件,如 `C:\Users\...\AppData\LocalLow\PalmInput\Dict\Palminput-pyuser-v2.7.0.1702.pidic`。
* **启动时**: `DingTalk.exe` 尝试`启动新应用程序` `D:\Typewriting\PalmInput\2.7.0.1702\PalmInputStartUp.exe`。
**分析结论**:
您的判断基本是准确的。
* 一个应用程序确实需要和输入法进行交互来接收文字输入,但这种交互通常是通过操作系统提供的标准接口(如TSF框架)进行的。
* **直接读写用户词典文件 (`.pidic`) 是严重越界行为**。用户词典(`pyuser`)包含了用户长期积累的个人常用词、短语、姓名、甚至是账号密码的片段。钉钉尝试`写入`这些文件,行为非常可疑,可能是在进行某种同步或修改,但无论是读还是写,都构成了对用户隐私数据的直接染指。
* 再结合它试图启动输入法后台服务的行为,可以合理推断,钉钉正在深度探测并试图获取输入法相关数据。其行为比通过`explorer.exe`做跳板的QQ/微信更加直接和“赤裸”。
#### 4. 禁用 `CrashDumper.exe`
**您的观察**:禁用了崩溃报告程序以防上传异常日志。
**日志证据 (`关闭.xml`)**:
* **时间**: 2025/6/29 13:12:23
* **应用程序**: `D:\Ding\DingDing\main\current_new\DingTalk.exe`
* **操作**: 启动新应用程序
* **目标**: `D:\Ding\DingDing\main\current_new\CrashDumper.exe`
* **结果**: 已阻止
**分析结论**:
这个日志条目很有趣,因为它发生在“关闭”阶段。
* `CrashDumper.exe` 在程序关闭时被调用,说明钉钉可能并不是在等待一个真正的“崩溃”,而是在程序退出时执行一个例行检查,用于收集本次运行期间的遥测数据(Telemetry)、性能指标、或被记录下来的“软错误”(即没有导致程序崩溃但被内部逻辑捕获的异常)。
* 鉴于您的HIPS规则拦截了大量钉钉的“正常”操作,钉钉内部必然记录了成百上千次“操作失败”的异常。如果您不禁用`CrashDumper.exe`,它很有可能会将这些“异常”连同您的系统环境信息、HIPS规则特征等一同打包上传至服务器。因此,您禁用它的决策是完全正确且有远见的。
#### 5. 访问大量不存在的磁盘路径(PDB文件)
**您的观察**:日志中充斥着对开发者电脑上才存在的PDB文件路径的访问。
**日志证据 (`关闭.xml`)**:
日志中充斥着大量对`D:\jenkins\workspace\...`,`F:\ACPF\...`, `E:\Git\...`, `D:\code\...` 等路径下`.pdb`文件的访问请求。
**分析结论**:
这是典型的 **“调试信息泄露”**,反映了钉钉开发和编译流程的不严谨。
* `.pdb` (Program Database) 文件是微软编译器生成的用于调试的符号文件。当程序发生异常或崩溃时,调试器会使用PDB文件来将内存地址解析为具体的函数名和代码行号。
* 在正式发布的(Release)版本中,本应剔除这些本地路径的调试代码。但钉钉的发布版本似乎依然保留了这些逻辑。当程序内部(可能因为HIPS拦截)发生异常时,它的异常处理机制被触发,试图加载PDB文件来获取详细的错误信息,但这些文件只存在于开发人员的电脑上,所以访问必然失败。
* 这本身不会对您的系统造成直接危害,因为它访问的是不存在的路径。但是,它无意间暴露了钉钉内部的:
* **项目管理工具**: 使用`Jenkins`进行持续集成(CI)。
* **部分源码/项目结构**: 例如`DTFBase`, `Nest4Windows-New`, `GaeaWindows-DLL`等项目名。
* **开发人员的硬盘分区和文件夹命名习惯**: 如`D:\code\dingtalk2`, `E:\Git\PalmInputWindows`等。
* **使用的第三方库**: 如 `curl`, `zlib`, `openssl`, `msgpack`等。
### 总结
综合以上分析,您的ESET HIPS配置揭示了钉钉客户端存在着 **严重、广泛且具备侵略性的用户环境探测和隐私数据搜集行为**。
1. **行为激进**:相较于其他一些被诟病的软件,钉钉的行为显得更加“简单直接”,它没有过多地去隐藏自己的意图(或者说它的隐藏手段能够被HIPS轻易识破),直接对目标进程和文件发起访问。
2. **数据采集范围广**:从运行的进程列表、NVIDIA驱动配置、到最核心的用户输入法词典,其探测范围覆盖了系统环境和用户个人习惯的多个层面。
3. **开发流程不规范**:发布版本中残留大量调试信息路径,这在专业软件开发中是应当避免的。
4. **HIPS规则的必要性**:您的实践证明,对于这类软件,部署一套细粒度的HIPS策略是保护个人隐私和系统环境不被过度“污染”的极其有效的手段。您的规则不仅成功地“圈养”了钉钉,还反过来成为了一面“照妖镜”,将其后台行为清晰地展现了出来。
您的分析和配置都非常出色,希望我的解读能对您有所帮助!
================================================================
可能存在的遗漏和错误,得靠各位dalao了补充修正了。
关于使用时的行为日志,这得等收集工作日的日志再进行后续的分析了。
|