luongs3/wtf-audit-trail

GitHub: luongs3/wtf-audit-trail

基于 iExec Nox 的链上加密 CVE 审计日志系统,在保证审计记录不可篡改的同时将严重性评分加密保护,避免安全态势提前泄露。

Stars: 0 | Forks: 0

# ConfidentialAuditLog — iExec Nox × WTF!! Hackathon 夏季版 为 [WTF!! Hackathon 夏季版](https://dorahacks.io/hackathon/wtf-hackathon)(iExec, DoraHacks · 截止日期 2026 年 8 月 1 日)而构建。 集成了 [OpenCVE](https://github.com/opencve/opencve)(开源 CVE 追踪器)作为上游 OSS 项目。 ## 问题所在 公共区块链上的漏洞审计追踪会暴露您的整个安全态势: - 您发现的每一个 CVE - 每一个严重性评分 - 每一个包名和版本 - 发现每个缺陷的时间线 所有这些信息对竞争对手、攻击者和公众都是可见的——**在您甚至还未修补任何问题之前**。 ## 解决方案 `ConfidentialAuditLog` 使用 iExec Nox 使日志变得**防篡改且不可变**(区块链),同时保持**严重性评分处于加密状态**(由基于 TEE 的 Nox 处理)。 只有代码库所有者——拥有 `Nox.allow()` 权限的地址——才能通过 Nox JS SDK 在链下解密审计条目。 ## 架构 ``` ┌──────────────────────────────────────────────────────────────────┐ │ Off-chain (PatchPilot CLI + OpenCVE integration) │ │ │ │ 1. scan(repo) → [{cveId, severity, package, version}, ...] │ │ 2. nox.encrypt(severityScore) → { handle, proof } │ │ 3. contract.addEntry(entryId, pkgHash, handle, proof) │ └──────────────────────────────────────────────────────────────────┘ │ ▼ ┌──────────────────────────────────────────────────────────────────┐ │ ConfidentialAuditLog.sol (Ethereum Sepolia) │ │ │ │ mapping(uint256 => AuditEntry) entries │ │ struct AuditEntry { │ │ bytes32 entryId; // keccak256(CVE-ID) — public ✅ │ │ bytes32 packageHash; // keccak256(pkg@ver) — public ✅ │ │ uint256 timestamp; // block.timestamp — public ✅ │ │ euint256 severity; // encrypted handle — private 🔒 │ │ } │ │ │ │ event EntryAdded(index, entryId, pkgHash, timestamp) │ │ // ⚠️ severity intentionally NOT in events (events are public) │ └──────────────────────────────────────────────────────────────────┘ │ ▼ ┌──────────────────────────────────────────────────────────────────┐ │ Off-chain decrypt (owner only) │ │ const severity = await nox.decrypt(log.getSeverityHandle(i)); │ └──────────────────────────────────────────────────────────────────┘ ``` ## 核心 Nox 模式 | 模式 | 代码 | |---------|------| | 加密存储 | struct 中的 `euint256 severity` | | 外部输入 | `externalEuint256 inputHandle` + `bytes inputProof` | | Proof 验证 | `Nox.fromExternal(handle, proof)` | | 权限授予 | `Nox.allowThis(severity)` + `Nox.allow(severity, owner)` | | Event 安全性 | 严重性**绝不**会被 emit —— 仅存储在 mapping 中 | ## 合约 - [`contracts/src/ConfidentialAuditLog.sol`](contracts/src/ConfidentialAuditLog.sol) — 主合约 - [`contracts/test/ConfidentialAuditLog.t.sol`](contracts/test/ConfidentialAuditLog.t.sol) — 11 个 Foundry 测试 ## CLI ``` cd cli && npm install # 扫描 repo 以查找 CVE(无 on-chain 写入) node src/index.js scan # 将加密条目推送到 on-chain log RPC_URL=https://11155111.rpc.thirdweb.com \ PRIVATE_KEY= \ CONTRACT_ADDRESS=0x6ff59de0cc6ccb023c117e0f38e852f3b24e5517 \ node src/index.js push # 从 log 读取公开元数据(severity 保持加密) RPC_URL=https://11155111.rpc.thirdweb.com \ CONTRACT_ADDRESS=0x6ff59de0cc6ccb023c117e0f38e852f3b24e5517 \ node src/index.js read ``` ## 测试结果 ``` Ran 11 tests for test/ConfidentialAuditLog.t.sol:ConfidentialAuditLogTest [PASS] test_addEntry_emitsEvent [PASS] test_addEntry_incrementsCount [PASS] test_addEntry_metaCorrect [PASS] test_addEntry_returnsIndex [PASS] test_getAllEntries_empty [PASS] test_getSeverityHandle_notFound [PASS] test_getSeverityHandle_returnsHandle [PASS] test_multipleEntries [PASS] test_noSeverityInEvent ← proves severity never leaks to events [PASS] test_ownerSet [PASS] test_strangerCannotAdd Suite result: ok. 11 passed; 0 failed ``` ## 实时部署 - **网络:** Ethereum Sepolia (chainId 11155111) - **合约:** [`0x6ff59de0cc6ccb023c117e0f38e852f3b24e5517`](https://sepolia.etherscan.io/address/0x6ff59de0cc6ccb023c117e0f38e852f3b24e5517) - **部署交易:** `0x23ccfa549cac2140d848a2df5c7ee83cbaa3b756a9a80a28ab35dfbab52d6aa2` ## OpenCVE 集成 该项目通过将其 CVE 数据作为审计日志的输入来与 [OpenCVE](https://github.com/opencve/opencve) 进行集成。CLI 会读取由 PatchPilot 扫描器(该扫描器查询的是 OSV.dev——即 OpenCVE 使用的同一个上游 CVE 数据库)发现的漏洞,然后将加密条目写入链上日志。 在完整的集成中:OpenCVE 的 webhook 会触发 CLI 自动将新的 CVE 披露推送上链,从而创建具有加密签名、带时间戳且受所有者权限控制的披露记录。 ## 构建技术 - Solidity 0.8.35 - [iExec Nox Protocol Contracts](https://github.com/iExec-Nox/nox-protocol-contracts) v0.2.4 - [Foundry](https://getfoundry.sh) 1.7.1 - Node.js + ethers.js v6 - OSV.dev API (Google Open Source Vulnerabilities) - 基于 [PatchPilot](https://github.com/luongs3/qwen-patchpilot) 扫描器模块(开源)分支开发
标签:iExec Nox, MITM代理, 区块链, 智能合约, 机密计算, 漏洞审计, 网络安全, 隐私保护