[mimosa] 协议复刻/内网直调场景的拦截误报(4例)+ 硬编码凭据漏检,附改进建议
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 40/100
Hướng nghiên cứu
Review the mimosa source code for the PreToolUse interception logic and deep scan rules, focusing on the detection of MD5, SSRF, path traversal, and random number usage. Examine how vendored dependencies are handled and check for existing credential detection patterns. Look at the configuration system for allowlist or exemption mechanisms. Testing changes will require understanding the specific code patterns flagged in the issue and verifying against the provided examples.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
反馈类型
误报(PreToolUse 拦截 + 深扫 findings)与漏检对照,附改进建议
环境
- mimosa 1.0.3(官方市场安装),macOS arm64
- 场景:企业办公自动化仓库(Python 胶水脚本:调用企业内部 API 网关、浏览器自动化、批量数据处理),非公网 Web 服务
一、PreToolUse 实时拦截误报(4 例,均为正常业务代码被阻断写入)
1. 弱加密(MD5)→ 误报
被拦代码:hashlib.md5(...) 计算第三方网关的请求签名。该网关(企业学习平台)的签名协议强制规定 MD5(sign = MD5("path"+路径+"timestamp"+毫秒+…+SIGNKEY)),与前端 JS 完全一致。改成 SHA-256 会导致所有请求 401。这类"协议复刻"场景中弱算法是对方接口的硬性要求,不是本方的安全选择。
2. SSRF → 误报
被拦代码:urllib.request 请求写死的常量域名(gateway.<公司域名>.com,白名单唯一主机,全脚本无任何用户可控 URL 输入)。规则将"URL 含变量拼接"特征套在了协议复刻脚本上。
3. 路径穿越 → 误报
被拦代码:open("lms_state.json")——脚本同目录、硬编码文件名,无任何 .. 或外部输入。
4. 不安全随机数 → 误报
被拦代码:random.uniform(8, 12) 生成翻页间隔,用于模拟真人浏览节奏。非安全用途。
二、深扫 findings 误报(9 条 HIGH 中的典型)
- 4 条标在 vendored 依赖上:
pylibs/typing_extensions.py的 eval(Python 官方 backport 库)、pylibs/pypdf、pylibs/et_xmlfile的路径穿越——这些是 pip 落地的第三方库源码,用户不会修改,建议默认排除或单独降级为 info。 - 5 条 SSRF 全部为写死的官方 SaaS 域名(如请求
open.feishu.cn获取 token 的脚本)。
三、漏检对照(更值得关注的真空地带)
同一份被标 SSRF 的脚本(get_user_token.py),第 2 行明文硬编码了飞书 APP_SECRET(此处已脱敏,形如 32 位混合串),静态扫描未检出任何"硬编码凭据"。对该仓库做定向验证:同一凭据硬编码在 120 个文件中,专用的 gitleaks/trufflehog 类工具全部命中,mimosa 命中 0。
对办公自动化类仓库,硬编码凭据(token/secret/密钥)才是真实的第一风险,而当前规则集恰恰没有覆盖这一类。
四、建议
- 为"协议复刻"场景提供豁免通道:例如检测到常量声明的固定域名白名单、或允许项目级
.mimosa/allowlist配置(当前 finding-ledger 只记账不豁免,172 条历史误报积压导致 git 门禁持续拦截正常提交,只能靠人工绕行) - vendored 依赖目录(
pylibs/、site-packages、node_modules模式)默认排除或降级 - 新增硬编码凭据检测规则(熵值+常见凭据格式:
sk-、token-、SECRET=、app_secret 参数等)——这类检测确定性高、误报低,是比现有规则更值的方向 - 随机数规则限定到安全上下文(
secrets场景),random用于节奏/测试模拟时放行
五、复现
以上拦截均来自真实会话(2026-09-21~23),案例 1-4 的绕行成本:同一脚本被迫改写两版(chr 拼接算法名、heredoc 直跑),总耗时约 20 分钟纯对抗。深扫报告存于 ~/.mimosa/security-scans/,可按 scan id 复核。
- Ngôn ngữ chính
- Python
- Star
- 39
- Fork
- 20
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của zai-org/zcode-plugins
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
zai-org/zcode-plugins#14 ·
-
今天你上传代码了吗 Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 20/100
zai-org/zcode-plugins#36 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 40/100
zai-org/zcode-plugins#35 ·
-
你们真该死啊,越想越气,丧良心,整个团队都没有爹妈吗? Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 1/100
zai-org/zcode-plugins#32 · 6 reaction ·
-
你们真该死啊,越想越气,丧良心,整个团队都没有爹妈吗? Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 1/100
zai-org/zcode-plugins#31 · 3 reaction ·
Tất cả issue của zai-org/zcode-plugins
Issue tương tự
-
bug confirmed issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
open-webui/open-webui#30750 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
OpenwaterHealth/openmotion-bloodflow-app#604 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
good first issue
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100