一家做 B2B 营销云的 SaaS 公司,华北区大客户销售负责人老周(化名)手里握着几个年费 80 到 120 万的大客户。
公司后来才发现,老周早用私人微信加了客户 CTO 的私人号,把公司的方案底价、没公开的路线图透给竞品,客户转签对手,他拿回扣。
等公司察觉,能挽回的早就没有了:
当年华北区 3 个年费大客户(合计约 280 万 ARR)被低价撬走;
老周提离职去了同行,顺手带走 2 个在谈商机(约 150 万),理由是"客户一直是我私人关系"。
公司翻遍办公电脑和企业微信,核心沟通全在私人微信上,一条记录都调不出来,追责无门。
更麻烦的是,老周存在私人云盘的方案文档随之外泄,竞品据此调整报价,后续两个招投标直接出局。
这件事技术上暴露的问题很清晰:客户资源和沟通记录沉淀在员工的私人通道里,公司侧没有任何留痕,事后既追不了责,也接不上客。
一、客户归属先集中化
飞单能发生,第一步往往是客户资源散在个人微信、私人表里。
技术上要把"客户是谁的"写进系统:
{ "customer": { "id": "C1001", "owner": "zhou", "source": "crm", "tier": "key" }, "rule": { "idle_recycle_days": 30, "leave_recycle": true, "public_pool": "auto" } }
客户从第一天起归属明确,长期不跟进或离职时按规则自动回收到公海重新分配,避免被个别人私占成一亩三分地。
这是防飞单在"数据层"的第一道闸。
二、沟通在终端侧留痕
客户资源留住了,沟通内容也得留在公司。
工作终端上对企微、个人微信、QQ 做协议还原或窗口抓取,把明文对话和截图纳入审计日志。
难点在覆盖多端——只存档企微,员工用个人微信飞单照样管不到。
桌面端 IM 还原通常靠 minifilter 或窗口 Hook 抓取明文与界面,配合时间戳和对方账号落库。
装端即查,新接手的人也能从历史记录接上客户,不会跟着人跑。
三、用 UEBA 发现异常行为
光留痕不够,得能"事前"预警。
给销售岗建行为基线,偏离即打分:
def ueba_score(act): s = 0 if act.channel == "private_wechat": s += 3 # 走私人通道 if act.hour in (0,1,2,3,4,5): s += 2 # 深夜高频外联 if act.exfil_size > 50_000_000: s += 3 # 单日外发超 50MB if act.peer_unknown: s += 2 # 联系陌生外部账号 return s # >=6 触发告警
基线越准,误报越少。
重点不是盯人,是识别"和平时不一样的动作"。
四、敏感词实时告警
在聊天流里跑实时匹配,把飞单苗头掐在对话里:
(私单|底价|回扣|竞品|转给我|走私账|个人付)
命中即弹窗告警并推送到管理员,比事后翻记录有用得多。
词库按业务场景维护,竞品名、内部代号都该进表。
五、文件外发走审批与备份
报价单、合同外发前过一道闸:
按密级分别处置(审计 / 拦截 / 审批),改名"照片.rar"也拦得住;
外发的敏感文档在后台留一份备份,出事了能还原全过程。
配合暗水印,泄露源可反查。暗水印把不可见的元数据烙进文件:
// 暗水印嵌入的元数据(概念示意,肉眼不可见) { "uid": "zhou", "host": "PC-0321", "ts": "2026-03-11T22:14:08", "doc": "quote_2026Q1" } // 泄露后取证:比对文档水印 -> 定位终端与人
六、离职交接做审计
离职环节把客户资料和全部沟通记录完整移交,不给私下转移留口子。
留痕还能对接后续仲裁和报案——记录完整在手,走法律程序才站得住。
小结
防飞单本质上不是"监控多严",是客户和沟通有没有真正留在公司系统里。
技术上是"归属集中 + 终端留痕 + 行为异常 + 内容管控"四件事的组合,单点工具兜不住。
审计日志建议汇聚到统一的日志服务做集中分析,既方便追溯,也便于跨终端关联。
责编:安企神小赵