第三方软件安全-SCANOSS 三层架构整体组成

第三方软件安全-SCANOSS 三层架构整体组成 目录SCANOSS 三层架构文字架构整体分层结构自上而下配套文字说明一、接入交互层REST API、Webhook、scanoss-py、scanoss-cc二、业务计算核心层Inventory 清单引擎比对、识别、SBOM 生成三、数据底层层OSSKB 知识库 ldb 指纹数据库 minr 挖掘工具精简版总结SCANOSS 整体组成分两大维度核心平台模块、客户端 / 集成工具一、平台后台核心 6 大底层组件服务端核心二、本地客户端 / 扫描工具用户侧执行端补充识别逻辑四大技术模块组件识别能力层SCANOSS 三层架构文字架构整体分层结构自上而下┌─────────────────────────────────────────────────────────┐ │ 接入交互层 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │scanoss-py│ │scanoss-cc │ │REST OpenAPI│ │Webhook触发器│ │ │Python客户端│ │C高性能客户端│ │平台统一接口 │ │代码事件监听 │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ └───────────────────────────┬─────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────┐ │ 业务计算核心层 │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ Inventory Engine 清单核心引擎 │ │ │ │ 1.Winnowing指纹匹配 2.AST语法树解析 3.依赖清单解析 │ │ │ │ 4.许可证识别 5.漏洞关联 6.SBOM物料清单生成 │ │ │ └─────────────────────────────────────────────────────┘ │ └───────────────────────────┬─────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────┐ │ 数据底层层 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ minr挖掘工具 │ │ ldb指纹数据库 │ │ OSSKB开源知识库 │ │ │抓取开源代码 │ │存储代码指纹 │ │存储组件/许可/漏洞元数据│ │ └──────────┘ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────────────────┘配套文字说明一、接入交互层REST API、Webhook、scanoss-py、scanoss-cc面向用户与 CI/CD 流水线的交互入口分为本地扫描客户端与平台服务接口两类scanoss-pyPython 轻量命令行扫描工具生成代码指纹文件scanoss-ccC 语言高性能扫描客户端适配大型代码仓REST OpenAPI平台标准化接口支持第三方系统调用扫描、导出报告Webhook 触发器监听 Git 提交、合并请求等代码变更事件自动触发扫描。二、业务计算核心层Inventory 清单引擎比对、识别、SBOM 生成平台核心处理单元Inventory Engine清单引擎集成四大识别能力Winnowing 指纹匹配基于代码片段指纹快速匹配开源组件AST 语法树解析通过抽象语法树提升代码片段识别准确率工程依赖清单解析读取 pom.xml、package.json 等依赖配置后置处理自动匹配开源许可证、关联安全漏洞、标准化输出 SBOM 软件物料清单。三、数据底层层OSSKB 知识库 ldb 指纹数据库 minr 挖掘工具存储与构建开源代码基准库的底层组件minr开源代码挖掘工具全网拉取开源项目源码批量生成指纹ldb专用指纹数据库引擎针对海量代码指纹做高速检索匹配OSSKB开源知识库持久存储开源组件版本、源码地址、许可证、安全漏洞等全量元数据作为代码扫描比对基准。精简版总结SCANOSS 整体由接入交互层、业务计算核心层、数据底层层三大部分构成接入层本地扫描客户端、平台 API、流水线 Webhook核心层Inventory 清单引擎完成代码识别、许可漏洞分析、SBOM 生成数据层minr 挖掘工具、ldb 指纹库、OSSKB 开源元数据库。SCANOSS 整体组成分两大维度核心平台模块、客户端 / 集成工具一、平台后台核心 6 大底层组件服务端核心minr 开源数据挖掘工具全网抓取开源项目、提取代码、生成指纹、入库构建知识库 OSSKB。ldb 专用指纹数据库引擎专为海量代码指纹高速匹配设计支撑低延迟片段 / 全文件比对。Inventory Engine 清单引擎核心业务引擎完成指纹比对、组件识别、许可证匹配、生成 SBOM 清单是平台核心计算层。OSSKB 开源知识库数据核心存储全球开源代码指纹、组件版本、许可证、漏洞、源码 URL 元数据是比对基准库docs.scano...。RESTful OpenAPI 接口层平台统一交互入口供 CLI、CI/CD、Webhook、第三方系统调用扫描、查询、导出报告。Webhook 事件触发器对接 Git Push/PR/MR 等代码事件实现流水线自动触发扫描。二、本地客户端 / 扫描工具用户侧执行端scanoss-pyCLI 扫描器 scanner.pyPython 命令行工具本地读取源码通过 Winnowing 算法生成 WFP 指纹文件仅上传指纹不传输源代码。scanoss-ccC 语言高性能扫描客户端跨平台高速扫描工具适合大工程、编译型源码扫描性能优于 Python 客户端。补充识别逻辑四大技术模块组件识别能力层依赖清单解析manifestWinnowing 指纹匹配语法树 AST 解析机器学习相似度评分