sparka777/cra-compliance-kit
GitHub: sparka777/cra-compliance-kit
面向 IoT 设备的欧盟网络弹性法案 (CRA) 合规工具包,提供 SBOM 生成、CVE 匹配、设备身份认证和安全输入处理等开箱即用的合规模块。
Stars: 0 | Forks: 0
# IoT 设备 CRA 合规套件
**一次 pip install 满足欧盟网络弹性法案 (CRA) 要求。**
[](https://pypi.org/project/cra-compliance-kit/)
[](https://pypi.org/project/cra-compliance-kit/)
[](https://opensource.org/licenses/MIT)
## 关键截止日期
| 义务 | 日期 | 状态 |
|-----------|------|--------|
| 漏洞报告(24小时内报告至 ENISA) | **2026年9月11日** | 87 天 |
| 完整的 CRA 合规性评估 | **2027年12月11日** | 18 个月 |
| 违规处罚 | 最高 **1500万欧元或全球营业额的2.5%** | 生效中 |
## 本套件提供的功能
| 模块 | CRA 要求 | 许可证 |
|--------|-----------------|---------|
| `DeviceIdentityService` (identity.py) | 设备身份、访问控制 — 第10(2-3)条 | MIT |
| `FirmwareHealthService` (firmware.py) | 漏洞追踪、CVE 匹配 — 第13(1-3)条 | MIT |
| `InputClassifier` (input_guard.py) | 默认安全的输入处理 — 第10(1)条 | MIT |
| `PhysicalActionGuard` (action_guard.py) | 硬阻止与需确认的操作 — 第10(3)条 | MIT |
| `CycloneDX SBOM Generator` (sbom/generator.py) | 面向 ENISA 的 SBOM 维护 — 第13(8)条 | MIT |
| `GuardianSubsystem` *(商业版)* | 集中式安全健康评分 | 受控 — 请联系 sydney@starcaller.uk |
| `BehaviouralBaselineService` *(商业版)* | Welford 异常检测 | 受控 — 请联系 sydney@starcaller.uk |
| `MemoryProvenance` *(商业版)* | HMAC-SHA256 审计链 | 受控 — 请联系 sydney@starcaller.uk |
| `CrossOracleSigner` *(商业版)* | 跨服务请求签名 | 受控 — 请联系 sydney@starcaller.uk |
## 快速开始
```
pip install cra-compliance-kit
```
```
from cra_kit.identity import DeviceIdentityService, TrustTier
from cra_kit.firmware import FirmwareHealthService
from cra_kit.input_guard import InputClassifier
from cra_kit.action_guard import PhysicalActionGuard
# 1. 使用 tiered trust 注册设备
identity = DeviceIdentityService()
identity.enrol_device("sensor-01", "temperature_sensor", trust_tier=TrustTier.ENVIRONMENTAL)
# 2. 对照 CVE 数据库检查 firmware
fw = FirmwareHealthService()
check = fw.check_device("sensor-01", "gateway", "1.5.3")
print(f"Vulnerable to {len(check.vulnerabilities_found)} CVEs")
# 3. 清理每一个 input
classifier = InputClassifier()
safe, findings = classifier.is_safe(user_input)
# 4. 限制危险操作
guard = PhysicalActionGuard()
result = guard.check_action("format_storage")
assert result["allowed"] == False # Hard blocked
# 5. 生成 SBOM
python -m sbom.generator --product "MyIoTGateway" --version "2.1.0" --output sbom.xml
```
## CRA 条款映射
| 条款 | 要求 | 我们的实现方式 |
|---------|-------------|-------------------|
| **第10(1)条** | 默认安全配置 | InputClassifier 阻止注入,并在处理前对输入进行净化 |
| **第10(2)条** | 设备身份与认证 | DeviceIdentityService — 具备基于证书注册的5级信任模型 |
| **第10(3)条** | 访问控制机制 | PhysicalActionGuard — 10个硬阻止 + 11个需确认操作,支持时间感知 |
| **第13(1-3)条** | 漏洞处理与修复 | FirmwareHealthService — CVE 匹配、语义版本控制、严重性评分 |
| **第13(8)条** | 可根据 ENISA 要求提供 SBOM | CycloneDX 1.5 生成器,支持自动扫描已安装的包 |
## 架构概览
每个模块都是独立的,零外部依赖(仅使用标准库)。
模块将状态存储在 `~/.cra_kit/` 目录下的 SQLite 中以实现持久化。
```
User Input
|
v
InputClassifier ── detects 8 injection families (prompt, code, SQL, command, XSS, SSRF, traversal, format string)
|
v
DeviceIdentityService ── authenticates, checks trust tier (0-4)
|
v
PhysicalActionGuard ── blocks/confirms dangerous actions, time-gated at night
|
v
FirmwareHealthService ── matches version against CVE database
|
v
SBOM Generator (CycloneDX 1.5 XML)
```
## 开源核心许可
| 套餐类型 | 模块 | 许可证 | 价格 |
|-------------|---------|---------|-------|
| **开源版** | identity.py, firmware.py, input_guard.py, action_guard.py, sbom/generator.py | MIT | 免费 |
| **专业版**(即将推出) | Guardian + Baselines + Provenance + Signing | 商业 | 1,500/年 |
| **企业版**(即将推出) | 所有专业版功能 + 优先支持 + SLA | 商业 | 7,500/年 |
## 环境要求
- Python 3.9+
- SQLite(内置于 Python 标准库中)
- 零外部依赖
## 开发团队
StarTeQ Ltd — Starcaller 背后的团队,这是一款隐私优先的 AI 设备,
在生产环境中拥有 9.3/10 的安全信任评分和 8 模块安全堆栈。
**联系方式:** sydney@starcaller.uk
**网站:** [starcaller.uk/cra-compliance](https://starcaller.uk/cra-compliance)
## CRA Watch — 实时漏洞监控
在 **[CRA Watch 仪表板](https://cra-watch.starcaller-teq.workers.dev/dashboard)** 实时监控您已注册的产品。
- 每天 UTC 时间 06:00 轮询 CISA KEV
- 按需进行 NVD + EPSS 富化
- CycloneDX VEX 生成
- ENISA 第14条通知草案
- 24小时 / 72小时 / 14天 截止日期追踪
[](https://cra-watch.starcaller-teq.workers.dev/dashboard)
标签:CVE漏洞匹配, Python, SBOM生成, 合规工具, 无后门, 物联网安全, 设备身份认证, 逆向工具