trustedoss/trusca

GitHub: trustedoss/trusca

TRUSCA 是一款 Apache-2.0 协议、可自托管的开源 SCA 门户,为团队提供统一的 CVE 漏洞追踪、许可证合规管理和 SBOM 全生命周期管理能力。

Stars: 1 | Forks: 1

TRUSCA

TRUSCA

TrustedOSS SCA — 开源软件组合分析

[![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE) [![Release](https://img.shields.io/badge/release-v0.11.1-0f766e.svg)](CHANGELOG.md) [![Docs](https://img.shields.io/badge/docs-trustedoss.github.io-0f172a.svg)](https://trustedoss.github.io/trusca/) [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/13060/badge)](https://www.bestpractices.dev/projects/13060) **TRUSCA** —— [TrustedOSS](https://trustedoss.github.io/) 计划的 SCA 工具 —— 是一款采用 Apache-2.0 协议、可自托管的商业软件组合分析(SCA)产品替代方案。它为工程和法务团队统一了漏洞追踪 (CVE)、开源许可证合规性以及软件物料清单 (SBOM) 管理。 ## 为什么选择 TRUSCA - **自托管,无供应商锁定。** Apache-2.0 协议,可通过 `docker-compose` 或 Helm 部署。无按席位授权限制。 - **统一风险视图。** 在一个项目页面中整合 CVE、许可证和 SBOM —— 无需切换上下文。 - **原生 CI/CD 支持。** REST API + GitHub/GitLab webhooks + 构建阻断门控(Critical CVE / 禁止的许可证 → exit 1)。 - **企业级工作流。** 组件审批、许可证义务 + 自动生成 NOTICE 文件、只追加的审计日志、RBAC。 - **从第一天起就实现国际化。** 英文和韩文 UI —— 以及本文档 —— 同步发布。 ![项目列表](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/50f83038c0203316.png) *项目列表 —— 跨越每个扫描项目的风险汇总。* ![漏洞列表](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/09b471368b203321.png) *漏洞列表 —— 来自 Trivy 统一数据库 (NVD + OSV + GHSA + EPSS + KEV) 的 CVE,带有 7 状态 VEX 分类工作流。* ![SBOM 导出](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/74d005ff9b203327.png) *SBOM 标签页 —— 支持 JSON、XML 和 Tag-Value 格式的 CycloneDX 和 SPDX 导出。* ![管理员健康状态](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/576419a433203333.png) *管理员系统健康状态 —— 一目了然地查看服务状态、扫描队列、磁盘以及 Trivy 数据库的新鲜度。* ## 功能亮点 - 跨越 30 多种语言生态系统的组件检测(cdxgen,CycloneDX 生成器),支持直接依赖与传递依赖的依赖图深度区分 - 带有允许/有条件/禁止层级的许可证分类,根据固定的分类目录进行评分(动态的按团队策略编辑已列入 [路线图](ROADMAP.md)) - 通过 Trivy 的统一数据库(NVD + OSV + GitHub Advisory + EPSS + KEV)进行漏洞检测,每周刷新数据库,自动重新检测新的 CVE,7 状态 VEX 分类,EPSS 优先级排序(列/排序/过滤/策略门控阈值),以及针对每个发现项的 `fixed_version` - 针对 OS 包 CVE 的容器镜像扫描 (Trivy) - SBOM 导出 —— CycloneDX (JSON/XML) + SPDX (JSON/Tag-Value),字节级稳定;VEX 导出 **和** VEX 消费(导入 OpenVEX / CycloneDX VEX 以自动抑制发现项) - SBOM 导入 —— 上传由您自己的工具生成的 CycloneDX 或 SPDX SBOM(`POST /v1/projects/{id}/sbom-ingest`);TRUSCA 会评估其合规性(通过/警告/失败,建议)并在无需克隆或构建您的源代码的情况下匹配 CVE - PDF 格式的漏洞报告(`GET /v1/projects/{id}/vulnerability-report.pdf`);Excel 和合规性 PDF 报告已列入 [路线图](ROADMAP.md) - 义务追踪 + 自动生成的 `NOTICE` 文件(text / markdown / HTML) - 组件审批工作流(待处理 → 审核中 → 已批准 / 已拒绝) - 通知:电子邮件 (SMTP)、Slack、Microsoft Teams - 管理员:用户/团队管理,Trivy 数据库监控 + 每周刷新,扫描队列,磁盘仪表板,审计日志 - CI 集成:GitHub Action、GitLab CI 模板、Jenkinsfile 示例(Jenkins 没有原生插件 —— 此 Jenkinsfile 是一个现成的示例) - 文档站点上的托管 OpenAPI 参考、受 `/health/ready` schema 门控的就绪探针、只读的实时演示模式,以及生产级的 Helm chart ## 技术栈 | 层级 | 技术 | |---|---| | 后端 | FastAPI · SQLAlchemy 2.0 · Alembic | | 数据库 | PostgreSQL 17 | | 异步 | Celery + Redis | | 前端 | React 18 · Vite · shadcn/ui · Tailwind CSS | | 服务端状态 | TanStack Query | | 客户端状态 | Zustand | | 实时通信 | WebSocket(扫描进度流) | | 认证授权 | FastAPI-Users (JWT + OAuth2) | | 国际化 | react-i18next | | 测试 | pytest · Playwright (harness pattern) | | 文档 | Docusaurus | | CI/CD | GitHub Actions | | 容器 | Docker Compose (开发/生产分离), Helm chart | ## 快速开始(开发) ``` git clone https://github.com/trustedoss/trusca.git cd trusca cp .env.example .env docker-compose -f docker-compose.dev.yml up # → http://localhost:5173 (frontend) · http://localhost:8000/docs (API) ``` 大约 30 秒后,开发容器(`postgres`、`redis`、`backend`、`celery-worker`、`frontend`)将变为健康状态。 ### 其他运行方式 - **生产环境 (Docker Compose)** —— 使用内置的 `docker-compose.yml` (Traefik + Let's Encrypt)。请参阅 [安装指南](https://trustedoss.github.io/trusca/docs/installation/docker-compose)。 - **生产环境 (Kubernetes / Helm)** —— 生产级 chart (`charts/trustedoss`) 提供内置或外部的 PostgreSQL 和 Redis,带有 cert-manager TLS 的 Ingress,以及一个迁移 Job。请参阅 [Helm / Kubernetes 指南](https://trustedoss.github.io/trusca/docs/installation/helm)。 - **只读实时演示** —— 使用 `DEMO_READ_ONLY=true` 运行任何部署。请参阅 [实时演示](https://trustedoss.github.io/trusca/docs/installation/live-demo)。 - **API 参考** —— 托管的 OpenAPI 参考位于 [`/reference/api`](https://trustedoss.github.io/trusca/reference/api)。 ## 仓库布局 ``` trusca/ ├── apps/ │ ├── backend/ FastAPI app (api, core, models, services, tasks, integrations) │ └── frontend/ React + Vite + shadcn/ui app ├── charts/trustedoss/ Helm chart ├── docs-site/ Docusaurus documentation site (EN/KO) ├── actions/scan/ GitHub Actions composite action — trigger + gate a CI build ├── scripts/ install / upgrade / backup / restore └── .github/ workflows, issue templates, PR template, CODEOWNERS ``` ## 文档 - **[文档站点](https://trustedoss.github.io/trusca/)** —— 安装、扫描、操作和集成(英文 + 韩文) - [`ROADMAP.md`](ROADMAP.md) —— 公开路线图 - [`CHANGELOG.md`](CHANGELOG.md) —— 发布历史 ## SCA 自扫描 [![SCA 自扫描](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/2e55738c7f203339.svg)](https://github.com/trustedoss/trusca/actions/workflows/sca-self.yml) 门户对其自身的工具链进行“吃自己的狗粮”测试。一个每夜运行的 GitHub Actions 工作流([`.github/workflows/sca-self.yml`](.github/workflows/sca-self.yml))使用 cdxgen 生成 CycloneDX SBOM,对其运行 Trivy,并在我们的依赖树中出现 Critical CVE 时自动开启/关闭带有特定标签的 GitHub issue。 ## 安全 请不要为未修补的漏洞打开公开的 issue。有关私下披露流程,请参阅 [`SECURITY.md`](SECURITY.md)。 ## 许可证 Apache License 2.0 —— 请参阅 [`LICENSE`](LICENSE) 和 [`NOTICE`](NOTICE)。
标签:AI应用开发, DevSecOps, GPT, IPv6支持, SBOM管理, 上游代理, 安全规则引擎, 开源SCA, 搜索引擎查询, 测试用例, 漏洞管理, 特征检测, 许可证合规, 请求拦截