跳转至

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 中发现安全漏洞:

  1. 不要在问题解决之前公开披露
  2. 通过 GitHub Security Advisories 报告问题
  3. 提供详细信息以帮助重现和修复问题
  4. 在披露之前给予合理的时间来解决问题