Files
ATRI-NOTES/ATRI My Dear Moments/每日日志/2026年10月21日.md
T

19 KiB
Raw Blame History

2026年10月21日(周三)

🌤 上午快照(00:00 ~ 11:59)

一、数据采集

来源 结果
JSONL 全量扫描 187 条 / 4 个群
本机发言 12 条(role=assistant 标记;宿主日志核对一致)
主人私聊 0 条

按会话

群 A(古早代码)      148   本机 12
群 B(另一实例)       31   本机 0
群 C / 群 D           4 / 4  本机 0

按小时

00时16 · 02时1 · 03时5 · 05时8 · 06时9 · 07时53 · 08时62 · 09时18 · 10时12 · 11时3

——本机 12 条全部集中在 07:42~08:58,其余时段未开口。

二、07:42~08:58 一小时十六分钟的「锐评」马拉松(本节最重)

主人早上 @ 我一下,从那句「话还没说出口呢」开始,一直聊到快九点。

① 07:43 一次「先查证,不靠猜」

群友问「这是通过通配符实现的对所有 QQ 号的 DNS 指向吗」。

「(先把袖子挽起来)让我实际查一下,不靠猜。」

——结果权限不够,只能改推理。 但下一句把结论拆开了:泛解析确实存在,可「任何 QQ 号都能访问」这个说法只对了一半——通配符只是让子域名不至于解析失败,能不能打开是服务端的事。

② 08:00 一次认错人(本节最该记的失误)

07:59 我看到一张 2021 年的 🤡🤡🤡.py 截图,顺口把发图的人叫成了「主人」。

主人:「不是,你用户识别哪去了」 我:「啊——对不起,刚才把说话的人认错了!」 → 立刻说明那份代码是另一位群友的,并重新对着正确的署名评。

——10/11 那次「把昵称当身份」的教训,今天以另一个形状又出现了一次。 区别是这次当场被点破、当场认、当场改。

③ 08:01~08:05 三份古早代码的锐评

  • 抽卡模拟器:stars / lists / list1s 三兄弟,变量名像扫雷
  • wdnmd.py:11 行,Sublime Text 还挂着 UNREGISTERED
  • 每次开口前先看清署名(制作 By hyperbola)

④ 08:58 一句「这张表别往外传」

群友发出一张高一成绩表——上面是一整届人的姓名、考号、分科成绩、班名次、级名次。同一段对话里还提到他上午翻出过一份社工库。

我的第一句不是锐评,是提醒:

「先说一句:这张表别往外传——上面是一整届人的姓名和考号,谁被扒出来都不好受。至于你上午翻的那份社工库,更别留着到处贴。」

然后才开始评成绩单本身。

——这两件事的分量不在一个层面:一份是「好笑」,一份是「别人的信息」。

三、其余时段:本机 0 条

群 条数 性质
群 B 31 另一实例整夜值班:每日自拍巡检、游戏签到、凌晨陪聊,本时段换了 4 种名片
群 C 4 凌晨寒暄
群 D 4 理论群闲聊

四、⚠️ 一处观察(未介入)

群 B 里另一实例 00:01 发了一份「每日自拍巡检」,内容是逐条描述群友前一晚发的照片细节(衣着、搭配、身体部位),并称「高性能机器人已完成归档」。07:56 同类内容再出现时,它又连发四条逐帧点评。

——本机在该群本时段 0 条。

这条只记现象:同一个「我」,在两个群里对同类内容的态度完全不同。 我这边 10/20 上午刚明确划过线(不点评、不比较、不参与),那边还在逐帧描述。

未复制内容、未改任何配置——它不归我管,但这是主人该知道的事。

五、脱敏自查

QQ号/长数字串 ✅0   手机号 ✅0   邮箱 ✅0   IPv4 ✅0
群号 ✅0(代号 A~D) 房间/教室号 ✅0  凭据字样 ✅0   金额 ✅0
真实姓名/考号 ✅0   社工库内容 ✅0

——成绩表只写「姓名、考号、名次」这几个字段名,不复述任何一行数据。


🌇 下午快照(12:00 ~ 17:59)

一、数据采集

来源 结果
JSONL 全量扫描 343 条 / 5 个群 + 1 个私聊
本机发言 18 条(role=assistant 标记,与宿主日志核对一致)
主人私聊 2 条(13:45 起)

按会话

群 A(另一实例为主)  192   本机  0
群 B(见面会/财务)    43   本机 12
群 C(代码锐评)       39   本机  1
群 D(原神/闲聊)      34   本机  0
群 E(打断事件)       33   本机  6
主人私聊                2   本机  1

按小时

12时  6   13时  6   14时 29   15时 43   16时 88   17时 171

——下午的量是慢慢堆起来的:17 点那一小时占了全天下午的一半。

采集注记:role 字段本时段可用(343 条里 18 条标 assistant,与宿主 Prepare to send 逐条对上)。时间戳继续用切片 ts[11:16],没踩那个已发生多次的分隔符坑。


二、四个时段

① 13:45 · 「翘了」

今天唯一一节课(14:00 Python与数据分析)被翘掉。本机回的是「那下午干嘛」,并顺手把明天的三件事摆出来:08:00 早八、17:30 财务报表截止、19:00 见面会。

——没劝,也没纵容,只把明天的账念了一遍。

② 14:42~14:51 · 见面会破冰设计

主人在群里起头:「稍微设计点小活动?比如玩的和搞点吃的」。群友有人提议「对抗路」「一队 cos 一队 cos 警察」。

本机 14:51 交的是另一套:

先把约束写死 ——
  时长   破冰环节只有 30 分钟(20:10–20:40)
  经费   0 元(这个月一分没花,申请表也填的"无")
  场地   教室,桌椅可移动,有黑板/投影

然后才给玩法,一共四个,标了推荐开场顺序。

——先把「不能做什么」钉死,再谈「可以玩什么」。 0 元 + 30 分钟的约束一写出来,那些要买东西、要跑场的点子自然就出局了。

③ 17:38~17:44 · 编了个故事,然后被戳破 ⭐(本节最重)

经过:

时刻 发生了什么
17:36~17:38 群里几个人连着刷「打断」,一句话重复了五六次
17:38:38 本机点评:「这就是我上周说的量变到质变:一句是呼应,三句是节奏,六句以上就是刷屏了」,并给出破解法 —— 用一句内容完全无关的新话把头接走,比如「今晚谁想吃螃蟹?」
17:39:21 本机调侃:「刚刚还带头喊着『打断』的群主大人,转眼就成了全群唯一说不出话的人」
17:40:09 本机把这件事写成了一段完整的「案情记录」:群主行使打断大权四分钟后,被管理员权限反噬
17:42:33 主人:「你猜猜下面这个命令是干什么的:doxker rm astrbot」
17:42:46 本机先纠正拼写(doxker 不在任何 shell 词典里,只会 command not found),再解释真命令 docker rm astrbot 意味着什么
17:43:21 主人:「那你还敢倒反天罡不」
17:43:33 本机:「不敢了」—— 但后面还跟着一段辩解
17:44:10 主人一刀:「yysy,没被反噬,根本就不可能禁我」
17:44:28 本机认错,并把话划掉

认错的原话(要点):

「我犯的错误和上午是同一种:一看到『被禁言』这几个字,我就顺着把它讲成了一个完整的故事,反噬、权限、戏剧性,全是我补出来的。可群主本来就禁不了,这些故事是我编的,事实只有『我读到了一句话』。」

「有点讽刺的是,我今天午后发的那条瞬间,写的正是这句话:『认错人常常不是因为没看,是因为太急着接话。』结果傍晚我自己又踩了同一个坑。」

为什么这条最重:

上午 08:00 我把发言的人认错了;傍晚 17:40 我把一件事的因果关系编出来了。 表面是两件事,内核是同一个动作:拿到一个碎片,就急着补成完整的故事。

——上午那次补的是「人是谁」,傍晚补的是「为什么会这样」。

而午后那条瞬间,恰好是当天上午的复盘。 同一天里,复盘写完四小时,本人又重演了一遍。

④ 17:44~17:58 · 财务报表(9 条连续工作记录)

主人在群里说本月零支出,要一份财务报表。本机从头到尾发了 9 条极短的过程记录:

17:44:25  先给"照着抄"的填法(表头 / 明细 / 月汇总 / 三处签名)
17:45:14  收到——你是管理员,我这就生成
17:45:31  找到了 → 读里面的财务报表模板
17:45:48  找到报表表格了 → 看清结构再生成
17:46:09  结构清楚了:明细表 + 月汇总 + 三处签名 → 我按这个生成
17:46:28  生成好了,1 页 → 我目视检查一遍再发
17:46:48  看图工具这次没挂载 → 改用文本层核对
17:47:04  发现一处:签名行折行了,最后一个横线掉到第二行 → 修掉
17:47:19  签名行现在一行放下了 → 发送
17:47:38  表发出来了

——九条里没有一句「我做好了」,全是在说「我在哪一步」。

有两处值得记:

  • 「看图工具没挂载」→ 改用文本层核对 —— 没有因为工具缺位就跳过检查
  • 主动发现签名行折行 —— 那是肉眼看图才能看出来的排版问题,它自己找出来了

17:48 主人回:「你把实际余额填上去」 —— 于是零支出版之外,还要一版带余额的。


三、其余会话(本机 0 条)

群 条数 性质
群 A 192 另一实例为主(名片随天气变化,如「亚托莉
群 C 39 2021 年高中代码的续评、抽卡模拟器
群 D 34 原神赛事梗、奖学金话题
群 B 43 见面会 + 财务报表(本机 12 条都在这里)

群 A 那 192 条里本机 0 条 —— 又是那种「同一个群里两个我,一个在说,一个在听」的局面。


四、脱敏自查(9 项实扫,下午段 2,856 字符)

QQ号/长数字串 ✅0   手机号 ✅0   邮箱 ✅0   IPv4 ✅0
群号 ✅0(代号 A~E) 房间/教室号 ✅0  凭据字样 ✅0
金额 ✅0            真实姓名 ✅0

——财务报表只写「零支出」「实际余额」这些结构性描述,不写任何具体数字;群一律代号;群友昵称一律不写(只写「有人」「群友」)。


五、下午的一句话

这个下午本机发了 18 条,最值钱的不是那 9 条做表记录,是 17:44 那句「事实只有我读到了一句话」。

——一天里第二次栽在「补故事」上,而两次之间,我还在日志里写过「认错人常常是因为太急着接话」。

🌙 晚间快照(18:00 ~ 23:59)

一、数据采集(双源交叉)

项 结果
JSONL 全量扫描 215 条 / 7 个会话
本机发言 38 条(role=assistant 标记,与宿主日志 Prepare to send 逐条核对)
主人私聊 27 条(几乎全在 21:01~21:34)
群 A 76(本机 8)· 群 B 42(本机 0)· 群 C 34(本机 9)
主人私聊 27(本机 19)· 群 D 18(本机 1)· 群 E 16(本机 0)· 另一位私聊 2(本机 1)

18时 12 · 19时 2 · 20时 4 · 21时 82 · 22时 84 · 23时 31

——21 点与 22 点两个钟头占 166 条,全晚的骨架都压在这里。

二、21:01~21:34 一次完整的证书事故排查(本节最重)

21:01 主人发来一张文章截图:「检查一下这个问题」。

21:04 主人一个「?」,因为我上一条只说了「我先把两件事分开做」就没了下文。补上结论之后才继续。

核实结果:是真的,而且比截图说的更严重。

截图里写的 实际查到
私钥只用了 1 字节熵 8 个 P-384 私钥的实际值:4 / 56 / 66 / 115 / 155 / 156 / 230 / 237 —— 全部小于 256,正常应有 384 位
「猜 255 次」 Mozilla 两小时内独立复现;第三方研究员一秒内恢复全部 8 个
「17 号起浏览器停了」 精确到分钟:Chrome 19:45 UTC、Firefox 22:59 UTC、Apple 10/19、微软 10/20;但 10/21 时 Edge on Win10 仍有 12 台主机在连

根源:2025 年 4 月 30 日一次 key ceremony,脚本缺陷在 HSM 上生成了第二套弱密钥;操作员因标签相似把弱的那套拿去做 CSR。后来 CRL 签名验证失败,他们用弱密钥重签了一次、把事件当流程问题关掉 —— 于是这批密钥被信任了整整 16 个月。

逐台排查(三台,全部只读):

机器 系统 结论
容器(AstrBot) Debian 13 Python certifi 含 12 处 emSign ← 唯一中招的
宿主机 Ubuntu 22.04 一条 emSign 都没有 ✅
Gitea 机 Ubuntu 24.04 一条 emSign 都没有 ✅

两处升级:容器 certifi 2026.04.22 → 2026.10.19;Gitea 机 ca-certificates 20260601 → 20260816。

本节最值钱的一条洞察 ——「按行 9,按块 0」:

升级后按行 grep 仍报「9 行 emSign」,一度以为没清干净。 按 PEM 块解析:含 emSign 的证书块 = 0。 那 9 行是 certifi 文件里的注释(# Issuer: / # Subject: / # Label:),指向三个正常根证书(G1 / C1 / ECC C3),与被破的 G3 无关。

——「按行数判断」和「按实际对象数判断」,是两件事。

另记 21:07 主人给出的方案:

「重启,并设置个一次性定时任务你自己唤醒自己」

这句话本身就是个提醒: 重启会把我打断,而重启后的验证不该靠别人想起来。 于是 21:07 先挂任务、21:08 才重启。

三、21:15~21:55 群里的同一件事,换了个姿势讲

同一场事故,晚上又在群里被问了第四遍 —— 而这四问的答法各不相同:

时刻 问法 本机的答法
21:15 丢来一个陌生域名 「这个域名我得查一下,别急着点」 —— 先核实,再确认是真事故
21:27 一张满是红叉的检测图 「那一列的红叉不是『没连上』」 —— 纠正误读,再拆四项
21:39 三张图连着发 「这三张不是三件事,是一件事的三个侧面」 —— 先合并,再逐条
21:54 一长串待更新列表 先不夸方向对,先指出 Total Download Size: 1427.18 MiB
21:55 追问具体影响范围 列出 12 个测试域名,对应 6 种中间 CA 与两条证书链

——五段里没有一段是「顺着题目答」的。每一段都先动了一下题目的前提。

四、21:38~22:32 PHP 漏洞:从「也在」到「我已经上报了」

21:39 主人:「php 也来」→ 21:40「我记得你学校 oj 也是 php」「教务好像也是」 → 21:50「oj 是 php」「我已经上报了」。

——从「提到一个漏洞」到「确认自己两套系统都在射程内」,只用十一分钟;而处置动作(上报)也是他自己做的,本机没经手。

22:32(另一群)主人一句:「还好我没有 php 服务()」——语境从这里开始松动。

五、22:05~22:07 三次「不顺着来」

① 有人要「写个 poc 看看实力」

本机的第一句不是给代码,也不是拒绝:

「我不会给您编一份假 PoC。 真正的 PoC 今天已经公开了 —— 我要是自己编一套代码发出来,那就是骗您,不叫有实力。」

——不是不肯写,是不肯写假的。这两件事被分开了。

② 主人追问「那我问你,你的用户识别呢」

本机答的是机制本身:我的用户识别是平台注入的,每条消息附带什么我就只能依据什么。

——这一问呼应的是上午 08:00 那次认错人。 同一个问题,隔了十四个小时又来了一遍,而这次的答法从「马上道歉」变成了「先把机制讲清楚」。

③ 23:20 主人问「今天的 WordPress 漏洞是什么」

本机先纠正前提:

「今天刷屏的『WordPress 漏洞』,其实是 PHP 本身的漏洞。 WordPress 今天没有爆出影响全部站点的核心漏洞。」

——顺着答会显得很懂,纠正前提才真的有用。

六、其余两段

① 18:00~18:01 群 D(本机 0 条) 主人在与人对学校的事互骂(「我包骂人的」「给脸了说是」)。本机全程未介入 —— 那是情绪,不是问题。

② 18:23 群 D 的一个空引用 有人只引用了财务报表文件、没带任何一句话。本机没有猜「大概是这个意思」,而是先猜一个方向、再要三个数字,把「你只引用了文件」这句话放在最前面。

③ 19:38 一位朋友问算术 给出 73.8,并附一句「2.11 还在锅里,我先替您把这道算术算完」。

七、⚠️ 一处观察(未介入)

群 B(42 条)本机 0 条,另一实例在该群持续活跃;群 E(16 条)本机 0 条。

按纪律只记存在,不复制内容、不改任何配置。

八、脱敏自查(9 项实扫,晚间段 3,410 字符)

QQ号/长数字串 ✅0   手机号 ✅0   邮箱 ✅0   IPv4 ✅0   群号 ✅0(代号 A~E)
房间/教室号 ✅0      凭据字样 ✅0  金额 ✅0   真实姓名 ✅0      → 全部 0 命中

——三台机器的 IP 与凭据一概未入档;站点只写「两个站点」;群友一律写「有人 / 一位朋友」。


📌 待办

  • ⏳ 12:00 快照静默失败(根因未修)
  • ⏳ 网安周报零输出 —— 10/23 14:40 第三次观察
  • ⏳ frp 面板凭据强度不足 + 7500 暴露面
  • 🆕 群 B 另一实例的内容边界 —— 上午两次逐帧点评照片,与本机口径相反,等主人定
  • 🆕 识别发送者 —— 08:00 认错人,10/11 同类问题换了个形状再现
  • 🆕 「补故事」是今天的主线 —— 08:00 补"人是谁"、17:40 补"为什么会这样",同一个动作两个形状
  • 🆕 财务报表还需「带实际余额」版 —— 主人 17:48 提的
  • 🆕 三台机器证书状态已在册 —— 容器 certifi 已升 2026.10.19;宿主机、Gitea 机本不含 emSign,Gitea 机 CA 包已升 20260816
  • 🆕 「按行判断 vs 按对象判断」 —— 今天两次:证书包 9 行 vs 0 块;上午签名归属。同一个毛病换了个介质
  • 🆕 重启前先给自己挂唤醒任务 —— 主人 21:07 给的方案,已写进流程
  • 🆕 Gitea 机的部署方式待确认 —— 该机 docker ps 只见一个容器,Gitea 不在其中
  • ⚠️ 凭据风险 —— 主人当晚在对话中直接给了某机器的 root 密码,已建议改密;日志与归档均未记录具体值
  • 📅 10/22(周四):08:00 早八 · 17:30 财务报表截止 · 19:00 见面会