合规性

主页上说 “内置审计追踪。” 本页是该声明必须经受住考验的地方:具体的机制、实际的代码,以及审计人员无需要求我们信任某个仪表板即可运行的工具。

审计记录:哈希链式, 默认启用

Odysseus写入的每个审计事件都链接到前一个事件。每一行存储entry_hash = SHA-256(prev_hash || canonical_json(event)),因此修改或删除一行会破坏其之后所有内容的哈希值——不仅仅是该行本身。

这并非一个需要您记得开启的可选功能。HashChainConfig的文档注释明确指出:“该链默认启用——零值(禁用:false)……省略HashChain块即获得防篡改审计,无需额外”配置步骤(pkg/audit/hash_chain.go:19-23)。控制平面在启动时会宣告此状态:“Audit hash chain enabled (default-on; set HashChain.Disabled=true to opt out)”(pkg/audit/postgres_logger.go:247)。禁用它是一个经过慎重考虑并记录的行为,而非需要发现的默认设置。

锚定和外部见证 — 均为可选,均可插拔

除了链本身,Odysseus可以定期将哈希值锚定到您无需信任我们的两个地方:

一个工具,而非截图

odysseus-audit-verify 是一个独立的二进制文件 — 它是位于 cmd/odysseus-audit-verify/main.go 的自有 main 软件包,独立于控制平面构建和交付。为其提供审计数据库的凭据,它便会按 sequence_num 顺序遍历每一行,重新计算每个哈希值,并交叉检查每个锚点。它不通过 Odysseus API、仪表盘或平台自身渲染的任何组件工作。它直接连接到 Postgres,因此并非零网络工具,但它独立于正在运行的控制平面:审计人员可以将其指向一个数据库副本,并获得一个 Delta Telematics 无人能够操纵的答案。

它为每类问题报告一个不同的退出代码,这些代码记录在二进制文件自身的头部注释中:

退出代码含义
0链完整,所有锚点匹配
1链完整性缺陷——链接断裂、哈希不匹配、条目缺失
2锚点验证失败——锚点哈希不匹配或签名无效
3操作错误——数据库不可达、行格式错误等

源:cmd/odysseus-audit-verify/main.go,第 12–18 行(已记录的行为)和第 56–59 行(退出代码常量本身)。

租户隔离由数据库强制执行,而非仅由应用程序

三个独立的边界,每个都可在代码中独立检查:

我们实际的立场

我们不持有认证,也无意暗示。我们所拥有的是一份文档化的、自评的控制措施与五个框架的映射,它保存在安全团队自己的审计文档中,而非营销材料中:

框架内部就绪性备注
SOC 2 Type II85%访问控制、审计日志
ISO 2700180%信息安全控制
GDPR75%数据保护控制
PCI DSS70%不处理支付数据
HIPAA60%非我们主要用例

来源:docs/security/02-owasp-security-audit.md,“合规映射”表格,第490至498行。

不存在认证

这些是自我评估的准备就绪百分比,并非来自认可第三方的审计结果。我们在定价页面上也明确说明:措辞是“与SOC 2和ITSG-33对齐的控制措施和审计证据”,并非合规本身——做出这一措辞更改,正是因为目前尚无认证存在。如果情况有变,本页面将列出认证机构和日期;在此之前,请将上述所有百分比视作我们自身的功课,而非外部证明。

关于产生这些控制措施所基于的安全态势的审计,请参见安全审计页面。关于日常安全架构——身份验证、密钥管理、基础设施加固——请参见安全。

这些数字和声明是如何得出的

  1. 本页上的每一项声明都经过了直接核对,依据是引用旁边的文件名和行号,核对日期为 2026 年 8 月 21 日,而非取自该功能的早期描述。当某个机制是可选的(例如 Vault Transit 签名、外部见证者)时,我们会明确说明,而不是让上下文暗示其总是运行。
  2. 离线验证程序独立于控制平面,这是一个真实的属性 — 它是一个直接与 Postgres 通信的独立二进制文件 — 但它不是一个零依赖工具:它仍然需要凭证和到审计数据库(或其副本)的网络访问。我们如此描述它,而不是将其描述为完全离线。
  3. 合规百分比是我们内部的自我评估,其日期与包含它们的文档一致,并非由任何外部机构进行的认证声明。如果该文档被修订,此表格将变得陈旧,直到根据新版本重新核对。