近期操作取证:48小时审计日志与恶意管理员威胁检测
本文介绍 Telegram 群组管理中的「近期操作」审计日志:如何查看管理员操作记录、恢复被删除消息的原文、按事件类型筛选,以及如何用它检查机器人、发现被盗账号,并说明日志不记录哪些内容。
本文介绍 Telegram 群组管理中的「近期操作」审计日志:如何查看管理员操作记录、恢复被删除消息的原文、按事件类型筛选,以及如何用它检查机器人、发现被盗账号,并说明日志不记录哪些内容。

你管理的群组里出了状况。早上还在的一条消息不见了,某个成员从名单上消失了,某项设置不再是你离开时的样子。没人承认是自己干的,而你的管理员有一半当时在睡觉。
有一份日志,就在群组自己的菜单里,它记录管理员做了什么、是谁做的。它也是本模块中最少被打开的界面,而且它保存记录的时间不长——正因如此,提前了解它才是关键。
完成这一步后你将能够
- 找到这份日志,并把它筛选到只剩某一类事件。
- 恢复某条被删除消息的原文。
- 说清楚它不记录什么——而人们期待它记录的大部分内容恰恰都不在其中。
- 用它来检查机器人,而不是用来抓同事的把柄。
它在哪里,记录了什么
在大型群组的菜单中,管理员会看到一个通常叫「近期操作」的入口。打开后会得到一个按时间倒序排列的管理事件列表:消息被删除或编辑、成员被移除或限制、权限被更改、设置被修改、链接被创建和撤销、邀请被使用。
有两个特性让它比一串标签更有用。它会标明每件事是谁做的,而这正是你真正想问的问题。对于被删除的消息,它还会保留消息原本说了什么,所以删掉某样东西并不会删掉「被删掉的是什么」这一证据。
它只对管理员可见——成员看不到,也没有人会收到你正在查看它的通知。而且它无法被清空:没有任何整理它的控件,这种缺失是刻意的,因为一份管理员能抹掉的日志,恰恰在它本该发挥作用的那次事件中一文不值。
它能回答什么,以及人们希望它能回答什么
对这个界面的大多数失望,都源于带着错误的问题来看它。左列是它实际承担的职责。
它会记录
它不记录
这是对管理行为而非对话内容的记录。它回答的是谁在何时行使了权力——而它是应用里唯一能回答这个问题的东西。
匿名止步于这个界面
第 063 步讲的是以群组身份而非个人身份发帖。这是一个有正当用途的真实功能,而它有一条边界,戴不戴这枚徽章的两边都值得了解。
对成员匿名,对日志不匿名。以匿名方式发帖或操作的管理员,仍会以自己的账号出现在近期操作中。成员看不出是谁删了他们的消息;群主看得出。
这是正确的安排,值得明确告知你的管理团队。这意味着匿名保护某人不会在公开场合被人针对性地争论——这正是它诚实的用途——同时不会制造出一个行为没有署名的空间。
它也会反过来起作用,管理员们理应直白地听到这一点:你在自己管理的房间里所做的一切都会被归属到人。这不是为了让谁难堪,而是因为一个明白日志存在的管理员,会表现得像一个工作可被审查的人,而这本就该是这份工作的做法。
没人想到的用法:检查自动化程序
大多数关于审计日志的文章都设想的是抓住一个乱来的真人。实际上你读得最多的条目是由机器人产生的,而这正是这个界面发挥价值的地方。
一个被添加为管理员的审核机器人会持续而无声地行动。想知道它实际在做什么——删了多少、它抓的是垃圾信息还是名字不寻常的成员、它是不是在你以为只限制一小时的时候限制了某人一周——唯一的办法就是读它在日志里的条目。
这对第 061 步的反垃圾设置同样重要。一个自动过滤器删掉了你从未看到的消息,意味着它的误判对你是不可见的,而对被它禁言的成员却极其显眼。他们会以为是人审查了他们,而没有日志,你甚至无法判断他们说得对不对。
这个习惯很小:添加任何自动化程序后,第二天读一遍日志。之后每月读一次。这就是「运营一个有人管理的社区」和「托管别人的软件」之间的区别。
现在就试试——五分钟
四个步骤。第一步最重要,因为一个你打开过一次的界面,才是危机中你能想起来的界面。
- 在你管理的某个群组中打开近期操作 从群组菜单进入。读一天的内容,哪怕平淡无奇,这样你才知道正常是什么样子。
- 按某一位管理员筛选 包括你自己。看到自己一周的操作被列出来,是校准实际发生了多少管理工作的有用方式。
- 找一条被删除的消息并读它 这是人们意想不到的能力。知道删除不等于隐藏,会改变你处理纠纷的方式。
- 如果有机器人在管理你的群组,读它昨天做了什么 特别留意那些你不会做出的移除操作。这是发现某个过滤器悄悄误判了你的社区的唯一办法。
在事情真正发生的过程中读它
日志在最糟糕的那天最有价值,而那恰恰是没人愿意去学一个陌生界面的时候。提前准备一套简短流程是值得的。
先止血,再调查。如果某个账号此刻正在造成破坏,先撤掉它的权限。这样做你不会有任何损失——日志会保留它已经记录的一切,而且这些条目并不依赖那个人仍然是管理员。
然后筛选,而不是滚动。缩小到涉事的那位管理员,或某类事件。在繁忙的社区里,未筛选的信息流读不下去,而筛选后的几秒钟就能给出答案。
读的是模式,而不只是那起事件。你专门来找的那条记录很少是故事的全部。一个删了不该删的一条消息的人,周围通常有一段看起来正常的历史;而一个账号被盗的人,会在几分钟内出现一连串互不相关的操作。这两者在日志里看起来完全不同,需要完全不同的应对。
任何重要的内容,立刻复制。窗口很短。趁你还在看的时候截取相关条目的截图,是唯一能留到下周的版本——如果这起事件涉及的是一个人而不是一个失误,那么当对话发生时,这份记录就是你会需要的东西。
最后,也是最不技术性的一点:向社区说点什么。一个四十条消息消失了却没人吭声的房间,会用它自己的解释来填补沉默,而那总是比真相更糟。用一句话承认出了事、正在处理,就能阻止那个在私聊里流传的版本。
它记录人们是怎么进来的
有一类条目常被忽视,结果在平常时期比在紧急时期更有用:邀请链接。
日志会记录链接的创建和撤销,也会记录成员通过它们加入。再加上创建链接时可以给它命名的能力——即第 041 步的做法——这就把一组链接变成了一套完全不需要任何追踪的归属系统。
为频道简介做一个链接,为一份通讯做一个,为一场活动做一个,每个都命名。然后日志就会告诉你人们实际是从哪扇门进来的。它比分析工具更诚实,因为它统计的是到达而不是点击,而且完全局限在这个房间之内。
它也有审核用途。一批账号通过同一个链接在几分钟内接连涌入,是一个立刻就能看出来的模式——而应对方式很窄:撤销那个链接。所有正当加入的人都留下,而那条路径被关闭。第 066 步讲的是会过期或自我限制的链接,那是同一思路的持久版本。
这一阶段的常见问题
管理员能删除条目来掩盖什么吗?
不能。没有任何清空日志的控件,也没有任何授予这种权限的许可,包括群主在内。这正是它能在事件中作为证据使用的原因——你正在调查的那个人无法替自己收拾干净。唯一能移除条目的东西是时间,所以当天就把重要内容复制出来,才是实用的建议。
我查看它时成员会知道吗?
不会。打开日志是不可见的,也不会产生它自己的事件。没有人会被告知他们被删除的消息被读了回来,也没有管理员会收到自己的操作被审查的通知。它是给该群组中任何持有管理权限的人看的私密界面。
我的小群没有这个菜单。为什么?
因为这属于第 056 步所述的那种大型群组。较小的群组没有带独立权限的管理员列表,所以没有什么结构化的东西可记录。一旦一个房间大到你已经认不全所有能操作它的人,这就是支持升级为大型群组的真正理由之一。
我能拿到日志的副本吗?
不能通过应用里的任何导出功能——第 048 步的聊天导出覆盖的是消息,不是管理事件。如果有东西需要留存,现实的做法是在相关条目还在的时候截图或复制它们。有真正合规要求的社区通常会自己搭建一个自动读取日志的东西,那是一项开发任务,而不是一个设置。
它会显示被编辑过的消息吗?
编辑也是被记录的事件之一,考虑到第 052 步以及整个课程对编辑的说法,这一点值得了解。一条消息在人们已经回复之后被悄悄改动,是这个功能少数真正有害的用法之一,而一个有人管理的群组,正是它留下可被人核查的痕迹的地方。
我应该告诉我的管理员日志的存在吗?
应该,在你提拔他们的那天就告诉。一份人们知道的日志会带来更谨慎的管理;一份被当作突袭手段的日志会带来一个觉得自己被监视的团队,以及一场谈得很糟的对话。正确地框定它很容易,因为这个框定是真实的:它也保护他们。当某个成员声称某位管理员做了他没做过的事时,日志就是定论。