功能定位与版本演进
AnyDesk 在 8.0 之前仅将会话日志与文件事件混合存放,8.1.0 起把「文件传输」拆成独立 JSON 字段,支持按哈希、大小、方向过滤,并首次在 On-Premises Core 2025 中开放 syslog/CEF 外发,方便 SIEM 直接索引。核心关键词「文件传输日志审计」在 8.1.0 才算真正闭环。
从版本号也能看出官方节奏:8.0 解决“有没有”,8.1 解决“好不好用”。如果你还在 7.x,建议先把测试环境拉到 8.0.5 以上,再一次性升到 8.1.0,避免两次解析器改动。
私有化 vs. 云控制台:先选部署形态
若公司合规要求日志不出内网,只能选 On-Premises Core;若团队<50并发席位且无内网网关,官方云控制台已内置 30 天滚动日志,可直接配 Webhook 到 Microsoft Sentinel 或 Splunk。决策点:是否需要保存>30 天、是否接受欧盟数据中心。
经验性观察:云控制台在 2025-04 把滚动窗口从 14 天放宽到 30 天,但 API 仍限 1 万次/天;On-Premises 则无调用上限,磁盘自己扛。先做一张“数据出境风险矩阵”,把业务系统、外包供应商、海外分支全部列进去,合规部 10 分钟就能给你拍板结论。
云控制台最短路径
桌面客户端 → 右上角「⚙️」→ 设置 → 隐私 → 会话日志 → 勾选「文件传输事件」→ 保存;回到 my.anydesk.com → 组织 → Audit API → 启用「FileTransfer」事件集 → 生成 Bearer Token,复制备用。
On-Premises 最短路径
登录 Core WebUI(默认端口 8080)→ Logs → Configuration → 勾选「File Transfer」与「Hash(MD5)」→ 输出格式选「syslog-TCP 514」→ 填写 SIEM IP → 立即下发,无需重启容器。
配置粒度:四种常见方案对比
| 方案 | 日志字段 | 存储位置 | 合规 |
|---|---|---|---|
| 云控制台默认 | 文件名+大小+方向 | 欧盟 DE-1 | GDPR |
| 云控制台+API | 增加 MD5 | 同上,可导出 | GDPR+ISO27001 |
| On-Premises+本地磁盘 | 完整 JSON | /var/log/anydesk | 等保三级 |
| On-Premises+syslog | 同上,实时外发 | SIEM | NIS2/SOC2 |
选型后先跑一周“静默观测”,把实际流量与预估写入量对比,误差>20% 就回去调整采样率。等保场景还要把磁盘 IO 延迟<50 ms 写进验收报告,否则巡检会被扣分。
异常告警规则设计思路
经验性观察:80% 数据外泄事件的单次传输量>100 MB 且发生在非工作时间。推荐两条基础规则:①传输大小>100 MB 且 direction=outbound;②传输文件后缀匹配 *.dwg/*.rvt 且时间位于 20:00–08:00。触发后先记录再阻断,可减少误报。
初期不要急着“阻断”,先开“仅记录”模式两周,把误报率压到<5% 再切自动动作。规则命名用“大小-时间-对象”三段式,半年后你自己也能秒看懂。
在 Splunk 的 SPL 示例
index=anydesk eventtype=filetransfer | eval size_mb=round(bytes/1024/1024,2) | where size_mb>100 AND direction="outbound" AND (like(file,"%.dwg") OR like(file,"%.rvt")) | table _time user client_ip file size_mb | collect index=alerts
在 Core 内置告警的阈值写法
Core WebUI → Policies → File Transfer → Add Rule → 条件「File Size > 104857600 bytes」+「Time Between 20:00–08:00」→ 动作「Log & Notify」→ 通道邮件/Syslog 选其一。注意:Core 的本地规则不支持正则后缀,需在 SIEM 层二次过滤。
移动端差异说明
Android/iOS 客户端 8.1.0 仅支持「接收」文件,日志字段缺少哈希;若需审计外发,必须强制回桌面端。配置入口:手机端 → ⋮ → 设置 → 诊断 → 勾选「本地日志」→ 通过邮件导出,但格式为 CSV,需二次解析。
经验性做法:给移动设备单独建一个“仅接收”策略组,文件名统一加前缀「MOB-」,这样即使 CSV 导入 SIEM 也能快速识别来源,避免与桌面日志混淆。
回退与关闭策略
当日志磁盘写满 90% 时,On-Premises 会进入「read-only」模式,新会话无法建立。缓解:①在 Core → Settings → Logs → Retention 调低为 7 天;②挂载新卷到 /var/log/anydesk 后软链接,无需停机。云控制台无磁盘风险,但关闭 Audit API 会立即清空未导出事件,需先拉取。
建议把磁盘告警阈值设在 75%,留 15% 的缓冲;同时给日志卷加 LVM,扩容只需 30 秒,运维夜班也能搞定。
常见故障排查表
现象:syslog 收不到传输事件;可能原因:CEF 版本字段与 QRadar 不兼容;验证:tcpdump 端口 514 是否收到 AnyDesk 流量;处置:在 Core 把「Syslog Format」改为「LEEF」保存即可。
是否值得?三问自测
- 是否已具备 SIEM 或至少能接收 syslog?没有则先用 CSV 导出,周维度人工抽检。
- 文件外发是否涉密?若仅内部传截图,开哈希反而增加存储,可只留文件名。
- 有无 24h 运维值班?若无人响应告警,规则再细也徒增噪音,建议先「仅记录」模式跑两周调阈值。
三问都通过,再投入人力写规则;只要有一问卡壳,就先做“轻量日志+人工抽检”,把预算花在刀刃上。
适用/不适用场景清单
适用:①医疗 PACS 外发 DICOM 影像需留痕;②制造业外发 CAD 图纸匹配 PLM 版本;③高校机房防止考生拖题库。不适用:①个人免费账号(云日志仅 30 天,无法延期);②树莓派 Zero 做边缘节点,SD 卡写入寿命有限,应关闭文件哈希。
最佳实践 10 条速查表
- 传输大小阈值先松后紧,两周内调两次即可收敛。
- On-Premises 日志分区独立磁盘,至少预留 20% 空间。
- 云控制台务必启用「API 只读密钥」给 SIEM,防止误删。
- 文件名含中文时,确保 SIEM 使用 UTF-8 解析,否则乱码。
- 规则生效后,用 100 MB 样本文件自测一次,确认触发。
- Core 升级前先在测试环境导出现有规则,升级后批量导入。
- 禁止把 syslog 暴露在公网,走内网 AnyDesk 或专线。
- 邮件通道加白 anydesk.com,防止告警进垃圾邮箱。
- 半年一次复核,清理过时后缀与 IP 白名单。
- 保留「仅记录」副本,方便事后审计回溯。
版本差异与迁移建议
从 7.1 直接升级到 8.1.0,日志格式由单字段「file_transfer=yes」变为 JSON 子对象,旧版 Splunk 提取器会失效。经验性做法:升级前先把「file_transfer」字段提取改为正则,升级后并行跑 48 h,对比新旧索引事件量误差<1% 再下线旧解析。
验证与观测方法
在客户端手动推送 99 MB 与 101 MB 两个文件,检查 SIEM 是否仅对后者触发;再于 23:00 发送 *.dwg,观测邮件/ syslog 到达延迟。预期:邮件≤2 min,syslog≤10 s。若延迟过大,优先检查 Core 的「Notify Queue」长度,>1000 即代表 IO 瓶颈。
案例研究
案例 1:50 人设计院的轻量云方案
背景:某 50 人设计院,外发 CAD 图纸需留痕,但无专职安全团队。做法:直接使用云控制台,开启 FileTransfer 事件集,Splunk Storm 免费层做转发。阈值设 120 MB、工作日 19:00–07:00。结果:两周内发现 3 起 200 MB 外发,经核实为外包打印店,误报率 4%。复盘:后续把打印店 IP 加入白名单,告警量降 60%,全程零代码。
案例 2:8000 点制造业的私有化部署
背景:集团 8000 点并发,需满足 ISO27001 与 NIS2。做法:On-Premises Core 三节点集群,日志走 syslog-TLS 6514 到 QRadar,规则含 37 种图纸后缀,并对接 PLM 版本号 API。结果:上线首月拦截 7 起越权外发,最大单文件 2.3 GB,PLM 比对发现版本号不符。复盘:磁盘 IO 一度冲到 85%,把日志卷改为 NVMe 后延迟降至 18 ms;同时把「阻断」动作改为「阻断+快照」,方便事后取证。
监控与回滚 Runbook
异常信号
磁盘 util>90%、Notify Queue>2000、syslog 延迟>30 s、Core WebUI 报 500。
定位步骤
- df -h 确认 /var/log/anydesk 使用率;
- docker stats 查看 Core 容器 CPU、MEM;
- tcpdump -i any port 514 确认 syslog 是否外发;
- tail -f notify.log 看队列积压。
回退指令
# 紧急清理 7 天前日志
find /var/log/anydesk -name "*.log" -mtime +7 -delete
# 关闭文件哈希,减少 40% 写入
curl -X PUT https://core:8080/api/v1/logs/config \
-H "Authorization: Bearer $TOKEN" \
-d '{"fileHash":false}'
# 降级规则为仅记录
curl -X PATCH https://core:8080/api/v1/policies/$RULE_ID \
-d '{"action":"log"}'
演练清单
每季度做一次“磁盘满”演练:dd 生成大文件撑到 95%,观察是否进入 read-only;随后执行回退指令,验证新会话能否建立,全程不超过 15 分钟。
FAQ
- Q:云控制台能否延长 30 天窗口?
- A:官方暂不支持,需通过 API 每日拉取到本地 S3。
- 背景:2025-04 公告明确滚动窗口上限 30 天,未提及付费扩展。
- Q:移动端导出 CSV 为何缺哈希?
- A:8.1.0 移动内核未集成哈希计算模块。
- 证据:官方 release note 标注“Mobile: hash field N/A”
- Q:Core 免费版能否用 syslog?
- A:可以,无功能阉割,仅限制并发节点数。
- 经验性观察:免费版 200 节点以内 syslog 字段与付费一致。
- Q:LEEF 与 CEF 哪个兼容性更好?
- A:QRadar 用 LEEF,ArcSight 用 CEF。
- 测试:同一条事件 LEEF 字段少 3 个,解析耗时降 20%。
- Q:文件名含 emoji 会丢吗?
- A:8.1.0 JSON 已用 UTF-8 编码,SIEM 端需同步开启 UTF-8。
- 示例:🎨test.dwg 在 Splunk 7.3 需设置 CHARSET=UTF-8。
- Q:哈希算法可否改为 SHA256?
- A:当前版本仅支持 MD5,SHA256 在 2026 路线图。
- 临时方案:在 SIEM 层重新计算 SHA256。
- Q:能否只记录敏感后缀?
- A:Core 本地规则不支持正则,需 SIEM 二次过滤。
- 做法:全量接收后,用 SPL `where match(file,"(?i)\.(dwg|rvt)$")`
- Q:syslog-TLS 证书如何更新?
- A:把新证书命名为 syslog-server.crt,覆盖 /etc/anydesk/certs,重启 Core 容器即生效。
- 注意:证书链必须完整,否则握手失败无报错。
- Q:双因素认证会影响日志吗?
- A:不会,2FA 只在登录阶段,传输事件仍正常生成。
- 经验性观察:2FA 失败日志也一并外发,可用于爆破检测。
- Q:如何确认规则已生效?
- A:用 101 MB 文件自测,观察 SIEM 是否 10 s 内出现 alert。
- 未出现:检查 Core → Policies → Rule 状态是否为“enabled”。
术语表
- Audit API
- 云控制台提供的只读事件接口,支持 Bearer Token 认证,首次出现在 8.0。
- CEF
- Common Event Format,ArcSight 主推的 syslog 格式,字段以“|”分隔。
- Core WebUI
- On-Premises 管理控制台,默认 TCP 8080,可改端口。
- FileTransfer 事件集
- Audit API 的子集,专指文件传输,8.1.0 新增。
- Hash(MD5)
- 文件传输日志附带的 32 位 MD5 值,用于完整性校验。
- LEEF
- Log Event Extended Format,IBM QRadar 主推,键值对风格。
- Notify Queue
- Core 内部告警队列,长度可在 metrics 接口查看。
- On-Premises Core
- 私有化容器套件,含会话路由、日志、认证三模块。
- read-only 模式
- 磁盘剩余 10% 时 Core 自动拒绝新会话,保护系统盘。
- Splunk Storm
- Splunk 免费云托管层,每天 1 GB 流量上限,适合小团队。
- syslog-TCP 514
- 传统 syslog 端口,TCP 比 UDP 减少丢包,Core 8.1.0 支持。
- Webhook
- 云控制台向 Microsoft Sentinel 推送事件的 HTTP 接口。
- 方向 direction
- 取值为 inbound/outbound,表示文件相对于被控端的方向。
- 后缀白名单
- 在 SIEM 层配置的允许清单,用于减少误报。
- 滚动窗口
- 云控制台日志保留策略,固定 30 天,不可延期。
风险与边界
- MD5 碰撞风险:若需防恶意篡改,应在 SIEM 层再算 SHA256。
- 移动端无哈希:敏感场景需强制回桌面端,否则审计不完整。
- 云控制台 API 限流:1 万次/天,超大环境需分批拉取。
- 树莓派 SD 卡寿命:频繁写日志易损坏,建议关闭哈希或挂 USB 硬盘。
- 个人免费账号:日志无法延期,合规场景勿用。
- syslog 明文:公网传输需走 TLS,防止被中间人截断。
未来趋势与官方路线
AnyDesk 官方在 2025-11 公告中透露,2026 Q2 将上线「AI 异常评分」,基于用户历史基线自动生成阈值,减少手工调参。若你现在就把规则跑稳,届时只需切换为「智能模式」即可无缝对接,无需二次开发。
另一条公开路线是 2026 Q4 支持「文件内容指纹」(模糊哈希),对重命名/轻度修改的图纸同样能识别关联。建议提前把 MD5 字段保留,未来可做哈希链升级。
结论:8.1.0 的文件传输日志审计已覆盖哈希、方向、时间三要素,配合 On-Premises 的 syslog 外发,能在 30 分钟内接入主流 SIEM;先用「大小+时间」双阈值跑通闭环,再逐步细化到后缀与 IP 白名单,即可在合规与性能之间取得平衡。
