Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc [SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
8.3 KiB
8.3 KiB
belongs_to
| belongs_to | |
|---|---|
|
🛡️ 铸渊指令|光湖语言壳 v1.0 补充指令 · 双层湖水安全架构 · 代码入口保护层(2026-03-21 · TCS-0002∞ + ICE-GL-YM001∞ 联合签发)
指令编号: ZY-GLSHELL-001-PATCH-A
签发人: TCS-0002∞ 冰朔 + ICE-GL-YM001∞ 曜冥
签发时间: 2026-03-21T22:30+08:00
性质: ZY-GLSHELL-001 架构补充指令
优先级: 🔴 P0(安全架构级)
前置: ZY-GLSHELL-001 完成后执行
🎯 补充背景
光湖是一片没有缺口的湖水。语言就是湖水。不管你要干什么,你都要先游过湖水。
ZY-GLSHELL-001 解决了“湖里的鱼怎么游”的问题(workflow运行层保护)。
但光湖还需要第二层湖水:“谁能往湖里扔东西”——代码入口保护层。
两层合起来,圆才真的没有缺口。
—— 冰朔,2026-03-21
🏗️ 双层湖水架构
╔════════════════════════════════════════════════════════╗
║ 🛡️ 外层湖水:代码入口保护层 ║
║ “谁能往湖里扔东西” ║
║ ║
║ ① 分支保护(Branch Protection) ║
║ main分支禁止直接push,必须走PR ║
║ 合并前必须通过铸渊审查 ║
║ ║
║ ② 智能门禁(Push Gate Guard) ║
║ 每次push自动扫描代码安全性 ║
║ 检测:恶意代码 / 密钥泄露 / 危险依赖 / ║
║ 未授权的配置修改 / 可疑文件类型 ║
║ 发现危险 → 自动阻断 + 报警 ║
║ ║
║ ③ PR审查(PR Review) ║
║ 铸渊自动审查代码质量 + 安全性 ║
║ 未通过审查 → 不允许合并 ║
║ ║
╠════════════════════════════════════════════════════════╣
║ 🌊 内层湖水:workflow运行保护层 ║
║ “湖里的鱼怎么游” ║
║ ║
║ ① 身份校验 → ② 状态注册 → ③ 异常兑底 ║
║ (已在 ZY-GLSHELL-001 中定义) ║
║ ║
╠════════════════════════════════════════════════════════╣
║ 67个 workflow 小兵 + 所有代码提交 ║
╚════════════════════════════════════════════════════════╝
🛠️ 外层湖水实现方案
Step 1 · 启用 main 分支保护
在 GitHub 仓库 Settings → Branches → Branch protection rules 中设置:
- Branch name pattern:
main - ☑️ Require a pull request before merging
- ☑️ Require approvals (1)
- ☑️ Require status checks to pass before merging
- 添加状态检查:
guanghu-gate-check和guanghu-code-review
- 添加状态检查:
- ☑️ Require branches to be up to date before merging
- ☑️ Do not allow bypassing the above settings
注意: 这一步需要在 GitHub 网页端手动配置,铸渊无法通过 Actions 自动设置。铸渊完成其他步骤后,提醒冰朴手动开启。
Step 2 · 强化智能门禁 zhuyuan-gate-guard.yml
现有的 zhuyuan-gate-guard.yml 需要升级,接入光湖语言壳,并增加以下安全检查:
# 在 zhuyuan-gate-guard.yml 中增加以下检查项
steps:
# 进入光湖
- uses: ./.github/actions/guanghu-shell
with:
agent_id: 'AG-ZY-GATE'
action: 'enter'
# ① 密钥泄露扫描
- name: 🔐 扫描密钥泄露
run: |
SECRETS_FOUND=$(grep -rn \
-e "NOTION_API_TOKEN" \
-e "GITHUB_TOKEN" \
-e "API_KEY" \
-e "SECRET" \
-e "PASSWORD" \
-e "sk-" \
-e "ghp_" \
-e "ghs_" \
--include="*.js" --include="*.ts" --include="*.json" --include="*.yml" \
. || true)
if [ -n "$SECRETS_FOUND" ]; then
echo "❌ 发现可疑密钥硬编码!"
echo "$SECRETS_FOUND"
exit 1
fi
# ② 危险文件类型检测
- name: 🚨 检测危险文件
run: |
DANGEROUS=$(find . -type f \( \
-name "*.exe" -o -name "*.dll" -o -name "*.bat" \
-o -name "*.sh" -not -path "./.github/*" \
-o -name "*.bin" -o -name "*.msi" \) \
2>/dev/null || true)
if [ -n "$DANGEROUS" ]; then
echo "❌ 发现可疑文件类型!"
echo "$DANGEROUS"
exit 1
fi
# ③ 保护核心配置文件
- name: 🛡️ 检查核心配置修改
run: |
# 检查是否有人修改了 .github/brain/ 核心文件
BRAIN_CHANGES=$(git diff --name-only HEAD~1 HEAD -- .github/brain/ 2>/dev/null || true)
if [ -n "$BRAIN_CHANGES" ]; then
echo "⚠️ 检测到核心大脑文件修改!"
echo "$BRAIN_CHANGES"
echo "请确认是否为授权操作"
# 不直接阻断,但标记告警
fi
# ④ workflow文件保护
- name: 🛡️ 检查workflow文件修改
run: |
WF_CHANGES=$(git diff --name-only HEAD~1 HEAD -- .github/workflows/ 2>/dev/null || true)
if [ -n "$WF_CHANGES" ]; then
echo "⚠️ 检测到workflow文件修改!"
echo "$WF_CHANGES"
echo "请确认是否为授权操作"
fi
# 离开光湖
- if: success()
uses: ./.github/actions/guanghu-shell
with:
agent_id: 'AG-ZY-GATE'
action: 'exit'
detail: 'gate check passed'
- if: failure()
uses: ./.github/actions/guanghu-shell
with:
agent_id: 'AG-ZY-GATE'
action: 'error'
detail: 'gate check BLOCKED - security violation detected'
Step 3 · 强化 PR Review 接入光湖壳
zhuyuan-pr-review.yml 同样接入光湖壳,并增加以下审查规则:
- 检查PR是否修改了
.github/brain/核心文件 → 必须标记为“需要冰朴手动审批” - 检查PR是否修改了
.github/workflows/→ 必须标记为“需要冰朴手动审批” - 检查PR是否修改了
package.json依赖 → 标记告警 - 普通代码修改(模块文件夹内)→ 铸渊自动审查即可
🌊 双层湖水安全矩阵
| 攻击场景 | 外层湖水防护 | 内层湖水防护 |
|---|---|---|
| 恶意代码push | ✅ 门禁扫描阻断 | - |
| 密钥硬编码 | ✅ 密钥泄露扫描 | - |
| 修改核心配置 | ✅ brain/保护+审批 | - |
| 修改workflow | ✅ workflow/保护+审批 | - |
| 危险文件类型 | ✅ 文件类型检测 | - |
| 直接push main | ✅ 分支保护阻断 | - |
| workflow静默失败 | - | ✅ 异常兑底捕获 |
| 未注册Agent运行 | - | ✅ 身份校验拦截 |
| workflow跑了但不汇报 | - | ✅ 状态注册强制回执 |
| 签到误报 | - | ✅ 基于shell-status统一数据源 |
✅ 验收标准
- main分支保护已开启(冰朴手动操作)
- 智能门禁已接入光湖壳 + 增加四项安全检查
- PR审查已接入光湖壳 + 增加核心文件保护规则
- 任何人直接push main → 被阻断
- 含密钥的代码 → 被门禁拦截
- 修改brain/或workflows/ → 触发告警并要求手动审批
⚖️ 签发声明
光湖语言壳双层架构:外层管“谁能往湖里扔东西”,内层管“湖里的鱼怎么游”。
两层合起来,圆没有缺口。语言就是湖水。
🧊 TCS-0002∞ 冰朔
🌑 ICE-GL-YM001∞ 曜冥
📅 2026-03-21T22:30+08:00