ochmunkh/Tatar-Kuber-Lab
GitHub: ochmunkh/Tatar-Kuber-Lab
一个包含易受攻击和已加固 Kubernetes manifest 的测试语料库,用于对 TATAR-Kuber 安全引擎进行演示、回归测试和扫描器能力基准对比。
Stars: 0 | Forks: 0
# TATAR-Kuber 实验室





可复现的**易受攻击**和**已加固**的 Kubernetes manifest —— 这是 [**TATAR-Kuber**](https://github.com/ochmunkh/tatar-kuber) 安全引擎的官方测试、演示和回归测试语料库。
**作者:** Enkhbat.O — 安全分析师
通过 TATAR-Kuber 运行此实验室:
**🇬🇧 英文报告**

**🇲🇳 蒙古语报告**

## 本仓库演示的 Pipeline
```
raw/ normalized/ report
├─ checkov.json ─┐ tatar-findings.json ─► report.html
├─ trivy.json ─┤ ─► (canonical + dedup + (JSON / SARIF / HTML)
├─ kubescape.json ─┤ risk + blind-shot)
└─ popeye.json ─┘ │
(raw scanner output) └─► expected/expected-findings.json (verify-lab)
```
- `broken/` — 故意违反安全控制项
- `fixed/` — 已加固的对应版本(不应产生容器发现)
- `raw/` — 真实/具有代表性的扫描器输出,以便您可以**离线**运行(无需集群,无需安装)
- `normalized/tatar-findings.json` — 统一的 TATAR 输出(raw → 标准化)
- `expected/expected-findings.json` — `tatar-kuber verify-lab` 的回归基准
## 30秒演示(离线)
```
go install github.com/ochmunkh/tatar-kuber/cmd/tatar-kuber@latest
git clone https://github.com/ochmunkh/tatar-kuber-lab && cd tatar-kuber-lab
git clone https://github.com/ochmunkh/tatar-kuber ../engine # for the canonical registry
tatar-kuber scan --raw-dir raw --registry ../engine/schema/canonical-controls.yaml -o normalized
mv normalized/scan-result.json normalized/tatar-findings.json
tatar-kuber report --input normalized/tatar-findings.json -o html --out normalized/report.html
tatar-kuber verify-lab --input normalized/tatar-findings.json --expected expected/expected-findings.json
# 蒙古语: tatar-kuber scan ... --lang mn
```
预期输出:
```
verify-lab: offline multi-scanner (broken/): checkov + trivy + kubescape + popeye
controls: expected 16, missing 0
findings: actual 57
CRITICAL expected 0, actual 0 [ok]
HIGH expected 11, actual 11 [ok]
MEDIUM expected 26, actual 26 [ok]
LOW expected 20, actual 20 [ok]
RESULT: PASS
```
## 完整运行(使用真实扫描器,本地运行 — 无需集群)
Checkov 和 Trivy 直接扫描 **manifest 文件**:
```
checkov -d broken --framework kubernetes -o json > raw/checkov.json
trivy config broken --format json > raw/trivy.json
./run-lab.sh # regenerates + verifies
```
Popeye 仅限运行时(需要活动集群)—— 这里的 `raw/popeye.json` 是一个代表性样本。
## 活动集群(Kind)
```
kind create cluster && kubectl create namespace production
kubectl apply -f broken/
# 收集 scanner 输出 → tatar-kuber scan
```
## 损坏 → 预期的规范控制项 (16)
| 文件 | 预期的 TATAR 控制项 | 检测者 |
|---|---|---|
| `privileged.yaml` | CON-001, NET-001 | Trivy · Kubescape · Checkov |
| `root-user.yaml` | CON-002, CON-003 | Checkov · Trivy · Kubescape |
| `latest-tag.yaml` | IMG-003, CON-010, OPS-001/002/005 | Checkov · Trivy · Popeye |
| `wildcard-rbac.yaml` | RBAC-002 | Checkov · Kubescape |
| `secret-env.yaml` | SEC-001 | **Trivy 密钥** (Checkov 遗漏了明文) |
| `host-namespaces.yaml` | CON-005, CON-006 | Checkov · Trivy · Kubescape |
| _(加固缺口)_ | CON-009, CON-011, SEC-003 | Checkov |
多扫描器的优势:`SEC-001` (Trivy 密钥) 和 `NET-001` (Kubescape) **会被单独使用的
Checkov 遗漏** —— 而统一的 TATAR 视图能捕捉到它们。`CON-001` 特权可被**所有三个静态扫描器**发现 → `found_by=[checkov,kubescape,trivy]`, `confidence=HIGH`。
## 为什么需要这个实验室
1. **演示** — 克隆、扫描、一分钟内完成(无需集群)。
2. **回归测试** — 如果发布版本丢失了预期的控制项或改变了计数(例如去重回归:16 个控制项 → 8 个),`verify-lab` 会显著失败。
3. **CI** — `.github/workflows/lab.yml` 会构建引擎并在每次推送时进行验证。
4. **基准测试** — 一个共享、诚实的语料库,用于比较 Trivy、Kubescape、Checkov 和统一的 TATAR 视图。
## 注意事项
`raw/checkov.json` 是**真实的 Checkov 3.3.8** 输出。`trivy.json` / `kubescape.json` /
`popeye.json` 是与 manifest 相匹配的代表性样本 —— 若需完全一致,请使用真实工具重新生成。扫描器规则 ID 是临时的 (PROVISIONAL);这个实验室让它们保持诚实。
## 许可证
Apache-2.0
## 蒙古语
[**TATAR-Kuber**](https://github.com/ochmunkh/tatar-kuber) engine-ийг турших, demo хийх,
regression шалгах зориулалттай **эмзэг** ба **hardened** Kubernetes manifest-ийн цуглуулга.
- `broken/` — аюулгүй байдлын control-уудыг зориудаар зөрчсөн
- `fixed/` — hardening зөв хийсэн хувилбарууд
- `raw/` — бодит/төлөөлөх scanner гаралт (checkov бодит; trivy/kubescape/popeye жишээ) —
cluster эсвэл суулгацгүйгээр **offline** ажиллуулах боломжтой
- `normalized/tatar-findings.json` — TATAR-ийн нэгтгэсэн гаралт (raw → normalized)
- `expected/expected-findings.json` — `tatar-kuber verify-lab`-ийн regression baseline
### 30秒 demo (offline)
```
go install github.com/ochmunkh/tatar-kuber/cmd/tatar-kuber@latest
git clone https://github.com/ochmunkh/tatar-kuber-lab && cd tatar-kuber-lab
git clone https://github.com/ochmunkh/tatar-kuber ../engine
tatar-kuber scan --raw-dir raw --lang mn --registry ../engine/schema/canonical-controls.yaml -o normalized
mv normalized/scan-result.json normalized/tatar-findings.json
tatar-kuber report --input normalized/tatar-findings.json -o html --out normalized/report.html
tatar-kuber verify-lab --input normalized/tatar-findings.json --expected expected/expected-findings.json
```
### 敏感 manifest → 预期 canonical control (16)
| Файл | Хүлээгдэх TATAR control | Илрүүлэгч |
|---|---|---|
| `privileged.yaml` | CON-001, NET-001 | Trivy · Kubescape · Checkov |
| `root-user.yaml` | CON-002, CON-003 | Checkov · Trivy · Kubescape |
| `latest-tag.yaml` | IMG-003, CON-010, OPS-001/002/005 | Checkov · Trivy · Popeye |
| `wildcard-rbac.yaml` | RBAC-002 | Checkov · Kubescape |
| `secret-env.yaml` | SEC-001 | **Trivy secret** (Checkov plaintext-ыг барихгүй) |
| `host-namespaces.yaml` | CON-005, CON-006 | Checkov · Trivy · Kubescape |
| _(hardening дутуу)_ | CON-009, CON-011, SEC-003 | Checkov |
**Multi-scanner давуу тал:** `SEC-001` (Trivy secret) ба `NET-001` (Kubescape)-ыг **Checkov
ганцаараа алддаг** — нэгтгэсэн TATAR харагдац барьдаг. `CON-001` privileged-ыг **гурван
static scanner** олдог → `found_by=[checkov,kubescape,trivy]`, `confidence=HIGH`.
### 为什么需要
1. **Demo** — clone хийгээд, scan хийж, нэг минутад дуусна (cluster хэрэггүй).
2. **Regression** — `verify-lab` нь хүлээгдсэн control алга болох, эсвэл тоо өөрчлөгдвөл
шууд FAIL болно (ж: dedup эвдэрч 16 control → 8).
3. **CI** — push бүрт engine-ийг build хийж баталгаажуулна.
4. **Benchmark** — Trivy vs Kubescape vs Checkov vs нэгтгэсэн TATAR-ийг харьцуулах нийтлэг суурь.
**Зохиогч:** Enkhbat.O — Security Analyst
标签:回归测试, 子域名突变, 安全测试, 攻击性安全, 日志审计, 漏洞基准