Security Warning¶
重要安全通知与免责声明
重要提示: Osmedeus 是一款强大的安全自动化工具,旨在您的机器上执行代码。在任何环境中使用 Osmedeus 之前,请仔细阅读本文档。
Overview¶
Osmedeus 被有意设计为一个工作流执行引擎,可运行任意命令和脚本。这一设计是其作为安全自动化工具的核心目的。然而,这种强大功能也带来了固有的安全风险,用户必须理解并加以缓解。
本文档概述了安全注意事项、潜在风险以及安全使用 Osmedeus 的最佳实践。
Security Considerations¶
1. Web UI 和 API 服务器¶
Osmedeus Web UI 和 REST API 提供以下接口:
- 创建并执行新的扫描
- 运行实用函数
- 管理工作流和调度
- 访问扫描结果和产物
风险:
- 未经授权的访问可能允许攻击者在您的系统上执行任意命令
- 未经验证的暴露 API 可能被利用进行远程代码执行
- 默认凭据构成重大安全风险
建议:
- 始终为 API 身份验证使用强且唯一的凭据。使用以下命令设置安全的随机凭据:
osmedeus config set server.password "$(openssl rand -hex 12)"
osmedeus config set server.jwt.secret_signing_key "$(openssl rand -hex 32)"
osmedeus config set server.auth_api_key "$(openssl rand -hex 24)"
- 切勿在未进行适当身份验证的情况下将 API 服务器暴露于公共互联网
- 仅在隔离的开发环境中使用
--no-auth标志 - 考虑使用权限受限的 API 密钥
- 部署在带有 TLS 加密的反向代理之后
- 实施网络级访问控制(防火墙规则、VPN)
2. YAML 工作流文件¶
YAML 工作流文件是 Osmedeus 自动化的核心。它们可以包含:
- Shell 命令(
bash步骤) - JavaScript 函数调用(
function步骤) - 远程执行命令(
remote-bash步骤) - HTTP 请求(
http步骤)
风险:
- 恶意工作流可以以 Osmedeus 进程的权限执行任意命令
- 第三方工作流可能包含隐藏的恶意代码
- 工作流可以访问文件系统、网络和其他系统资源
建议:
- 切勿运行不受信任或未经验证的工作流文件
- 在执行前始终审查工作流 YAML 文件
- 使用
osmedeus workflow validate <name>检查工作流语法 - 将工作流存储在版本控制仓库中
- 实施工作流签名或校验和以进行验证
- 以最小必要权限运行 Osmedeus
这与其他工作流引擎(如 Apache Airflow、Argo Workflows、GitHub Actions 和 Jenkins)类似。允许用户执行任意工作流是其设计固有的特性。
3. 外部二进制文件安装¶
osmedeus install 命令从外部源下载并安装二进制文件:
- 安全工具(nuclei、httpx、subfinder 等)
- 来自远程仓库的工作流文件
风险:
- 下载的二进制文件可能被篡改或包含恶意代码
- 下载过程中的中间人攻击
- 上游工具仓库的供应链攻击
建议:
- 仅从可信源安装二进制文件
- 在可用时验证校验和
- 考虑使用基于 Nix 的安装以实现可重现构建
- 在安装新工具前审查二进制注册表
- 保持已安装工具更新以修补已知漏洞
4. 数据库和存储¶
Osmedeus 存储扫描结果、凭据和配置数据:
风险:
- 通过数据库访问导致敏感数据泄露
- 凭据未加密存储
- 备份文件暴露
建议:
- 使用强身份验证保护数据库访问
- 加密敏感配置值
- 实施适当的备份加密
- 定期审计存储的数据以查找敏感信息
- 在生产部署中使用带有 TLS 的 PostgreSQL
Best Practices Summary¶
| 领域 | 建议 |
|---|---|
| 身份验证 | 使用强凭据,启用 API 密钥,定期轮换 |
| 网络 | 使用 TLS、防火墙规则、VPN 进行远程访问 |
| 工作流 | 执行前审查,使用版本控制,验证语法 |
| 二进制文件 | 验证来源,检查签名,尽可能使用 Nix |
| 权限 | 以最小权限运行,使用专用服务账户 |
| 监控 | 启用日志记录,审计访问,监控异常 |
| 更新 | 保持 Osmedeus 和工具更新,应用安全补丁 |
Disclaimer¶
Osmedeus 仅用于授权的安全测试。 未经授权使用可能违反您所在司法管辖区的法律。
使用 Osmedeus 即表示您确认:
- 需要授权 — 在扫描任何目标之前,您必须获得明确许可
- 用户责任 — 您对法律合规性以及使用产生的任何后果负全部责任
- 无担保 — 按“现状”提供,无任何担保;作者不对损害或法律问题负责
- 代码执行 — 该工具有意设计为执行代码;运行前请审查所有工作流
- 第三方工具 — 您必须遵守所有集成工具的许可和条款
责任限制: 作者不对因使用本软件而产生的任何索赔、损害或责任负责。用户承担所有责任和风险。
Reporting Security Issues¶
如果您在 Osmedeus 中发现安全漏洞:
- 不要在问题解决之前公开披露
- 通过 GitHub Security Advisories 报告问题
- 提供详细信息以帮助重现和修复问题
- 在披露之前给予合理的时间来解决问题