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

395 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 见面会