RESOURCES · OSS 101
开源 101
开源软件安全的高频问题速查手册——从基础概念到工程实践,持续更新。
01基础概念
什么是开源软件?
源代码公开、允许任何人查看/修改/分发的软件,使用需遵守其许可证条款。现代应用平均 70%+ 的代码来自开源组件。
什么是软件供应链安全?
保障软件从开发、构建、分发到运行全链路不被篡改和攻击的实践,覆盖源代码、第三方组件、构建系统、制品仓库与交付通道。SolarWinds、Log4Shell 等事件使其成为安全焦点。
SBOM 是什么?
软件物料清单(Software Bill of Materials),完整列出软件包含的所有组件、版本与依赖关系,相当于软件的'配料表'。美国行政令 14028 与欧盟 CRA 均要求提供 SBOM。
SCA 是什么?
软件成分分析(Software Composition Analysis),自动识别代码中的开源组件,检测已知漏洞与许可证风险。CleanSource SCA 可识别到代码片段级,覆盖直接与传递依赖。
直接依赖与传递依赖有什么区别?
直接依赖是你在配置文件中显式声明引入的组件;传递依赖是这些组件自身又引入的组件。漏洞大量藏在传递依赖里,平均占依赖总数的 80% 以上。
02许可证与合规
开源许可证有哪些类型?
大体分宽松型(MIT、Apache-2.0、BSD:义务少,商用友好)与著佐权型(Copyleft,如 GPL 系:衍生作品须以相同条款开源)。选型前先看义务强度。
GPL 许可证的核心义务是什么?
以 GPL 组件构建的衍生作品在分发时必须整体以 GPL 开源,提供完整源代码——即'传染性'。仅内部使用不分发通常不触发义务。
AGPL、LGPL 和 GPL 有什么区别?
LGPL 较宽松:动态链接一般不要求你的代码开源;AGPL 更严格:通过网络提供服务也算'分发',SaaS 场景同样触发开源义务。
什么是许可证冲突?
两个组件的许可证条款互不相容,无法在同一软件中合法共存,典型如 GPLv2 与 Apache-2.0。需要工具在依赖组合层面自动检测。
OpenChain 是什么?
开源合规管理的国际标准(ISO/IEC 5230),定义企业开源合规流程的关键要求,通过认证可向上下游证明合规能力。中国已有多家头部企业通过认证。
商用软件可以使用开源组件吗?
可以,绝大多数商业软件都在用。关键是识别每个组件的许可证义务并履行:保留版权声明、提供许可证文本、按条款开源应开源的部分。
03漏洞与威胁
CVE 是什么?
公共漏洞和暴露(Common Vulnerabilities and Exposures),全球统一的已知安全漏洞编号体系,如 CVE-2021-44228(Log4Shell)。由 MITRE 维护,是漏洞情报的通用语言。
CVSS 评分怎么理解?
通用漏洞评分系统,0-10 分量化严重程度:9.0-10.0 超危、7.0-8.9 高危、4.0-6.9 中危。评分考虑攻击途径、复杂度、是否需要认证与交互等维度。
CWE 和 CVE 有什么区别?
CWE 是缺陷类型的分类(如 CWE-78 命令注入),描述'哪类错误';CVE 是具体漏洞实例的编号,描述'哪个产品的哪个洞'。一个 CVE 通常对应一个 CWE 类型。
什么是开源组件投毒?
攻击者向公共仓库(npm、PyPI 等)发布携带恶意代码的组件,通过仿冒知名包名、劫持维护者账号等方式诱导开发者安装,窃取凭证或植入后门。2026 年上半年单月投毒事件常超百起。
什么是依赖混淆攻击?
攻击者在公共仓库注册与企业内部私有包同名的组件并标高版本号,构建工具解析依赖时误拉公共仓库的恶意版本。防御靠私有源优先策略与版本锁定。
什么是 0day 和 Nday 漏洞?
0day 指官方补丁发布前就被利用的漏洞,防御最难;Nday 指补丁已发布 N 天但目标仍未修复的漏洞——实际攻击大多数走 Nday,修复时效是关键。
04工程实践
DevSecOps 是什么?
把安全活动左移并自动化嵌入 DevOps 全流程:编码期 SAST、依赖引入期 SCA、测试期 DAST、运行期监控,让安全与交付速度共存而非对立。
SAST、DAST、SCA 有什么区别?
SAST 静态分析你自己写的源代码(白盒);DAST 对运行中的应用做黑盒攻击测试;SCA 分析引入的第三方开源组件。三者互补,共同覆盖自研代码与外部依赖。
如何在 CI/CD 中落地开源安全门禁?
在流水线中加入自动化检查:提交触发 SCA/SAST 扫描,按策略阻断(如存在超危漏洞或禁用许可证则构建失败),结果回写代码评审。门禁策略要分级,避免一刀切拖垮交付。
什么是开源治理?
企业管理开源使用的体系化实践:准入评审、组件台账(SBOM)、漏洞响应、许可证合规、版本升级策略,目标是'用得放心、出事能查、义务可履'。
企业如何建立开源准入制度?
从评审会起步,逐步过渡到自动化门禁:定义准入标准(许可证白名单、维护活跃度、已知漏洞水位),集成到依赖引入流程,存量组件定期重扫。
SPDX 和 CycloneDX 怎么选?
两者都是主流 SBOM 标准:SPDX 源自 Linux 基金会,许可证合规刻画更细,是 ISO 标准;CycloneDX 源自 OWASP,安全场景起步、迭代快。多数工具双格式支持,按下游要求选择即可。
05AI 与前沿
AI 应用带来哪些新的供应链风险?
模型与数据集本身成为新组件(可被投毒),AI 框架高速迭代漏洞密集,Agent 的插件/工具机制引入代码执行面。2026 年以来 AI 组件已是超危漏洞最高发领域。
什么是提示词注入?
攻击者把恶意指令藏进 AI 处理的内容(网页、文档、工单)中,诱导模型执行越权操作,如泄露凭证、调用危险工具。是 LLM 应用最主要的攻击方式之一(CWE-1427)。
MCP 和 AI Agent 有哪些安全风险?
工具链命令注入、未认证端点暴露、凭证明文存储、恶意 Skill/插件投毒、沙箱逃逸。建议:工具注册白名单、最小权限、默认鉴权,并用 SkillSec 这类工具做能力审计。