2021年开源软件供应链安全风险研究报告.pdf

返回 相关 举报
2021年开源软件供应链安全风险研究报告.pdf_第1页
第1页 / 共25页
2021年开源软件供应链安全风险研究报告.pdf_第2页
第2页 / 共25页
2021年开源软件供应链安全风险研究报告.pdf_第3页
第3页 / 共25页
2021年开源软件供应链安全风险研究报告.pdf_第4页
第4页 / 共25页
2021年开源软件供应链安全风险研究报告.pdf_第5页
第5页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2021 年 开 源 软 件 供 应 链安 全 风 险 研 究 报 告国 家 计 算 机 网 络 应 急 技 术 处 理 协 调 中 心2021 年 6 月 1 前 言“ 开 源 ” 是 指 源 代 码 、 文 档 等 设 计 内 容 开 放 的 开 发 模 式 , 是 群 智协 同 、 开 放 共 享 、 持 续 创 新 的 理 念 和 生 产 方 式 。 2020 年 , 根 据 Synopsys发 布 的 开 源 安 全 和 风 险 分 析 报 告 显 示 , 开 源 使 用 数 量 占 比 较 高 ,在 教 育 、 金 融 、 医 疗 等 传 统 行 业 渗 透 率 已 超 过 60 , 开 源 软 件 已 成 为 企业 构 建 信 息 技 术 的 重 要 选 择 。国 家 政 策 上 , 2021年 3 月 12 日 , 开 源 首 次 被 明 确 列 入 中 华 人 民共 和 国 国 民 经 济 和 社 会 发 展 第 十 四 个 五 年 规 划 和 2035 年 远 景 目 标 纲要 , 支 持 数 字 技 术 开 源 社 区 等 创 新 联 合 体 发 展 , 完 善 开 源 知 识 产 权和 法 律 体 系 , 鼓 励 企 业 开 放 软 件 源 代 码 、 硬 件 设 计 和 应 用 服 务 。 开 源 蓬 勃 发 展 一 方 面 可 以 突 破 技 术 壁 垒 、 推 动 创 新 , 另 一 方 面 考虑 到 国 际 竞 争 关 系 错 综 复 杂 , 开 源 软 件 安 全 作 为 软 件 供 应 链 安 全 的 重要 环 节 , 面 临 着 安 全 漏 洞 、 知 识 产 权 、 软 件 供 应 链 安 全 等 相 关 风 险 。在 此 背 景 下 , 认 识 和 了 解 开 源 安 全 风 险 情 况 是 至 关 重 要 的 。国 家 互 联 网 应 急 中 心 联 合 棱 镜 七 彩 开 源 安 全 研 究 团 队 持 续 对 开 源软 件 供 应 链 安 全 进 行 跟 踪 分 析 。 2019 年 开 源 软 件 风 险 研 究 报 告 主要 从 GitHub 热 门 开 源 软 件 视 角 出 发 , 对 开 源 软 件 安 全 风 险 进 行 了 分 析 。本 报 告 从 全 新 视 角 带 来 开 源 安 全 风 险 新 的 发 现 与 突 破 。 报 告 共 分 为 五 部分 , 第 一 部 分 , 首 先 介 绍 开 源 漏 洞 的 发 展 现 状 及 趋 势 ; 第 二 部 分 , 聚焦 开 源 组 件 生 态 库 的 安 全 风 险 ; 第 三 部 分 , 重 点 围 绕 组 件 按 依 赖 层 级漏 洞 传 播 范 围 分 析 ; 第 四 部 分 , 对 文 件 级 漏 洞 潜 在 安 全 风 险 及 波 及 范 围 进 行 讨 论 ; 第 五 部 分 , 对 开 源 使 用 者 和 关 注 者 如 何 在 开 源 领 域 蓬 勃发 展 下 , 更 安 全 的 拥 抱 开 源 生 态 提 出 了 建 设 性 意 见 。 2 目 录前 言 .1一 、 开 源 漏 洞 发 展 现 状 及 趋 势 .3发 现 一 : 开 源 软 件 漏 洞 整 体 呈 增 长 趋 势 , 2020 年 增 长 率 略 有 下 降 .3发 现 二 : CVE 官 方 未 收 录 的 开 源 软 件 漏 洞 数 逐 年 递 增 .4发 现 三 : 开 源 软 件 漏 洞 由 POC 披 露 到 NVD 首 次 公 开 时 间 长 达 11 年 .4发 现 四 : 近 4 年 , 高 危 及 以 上 开 源 漏 洞 占 比 均 超 40.5发 现 五 : 2020 年 , 最 主 要 缺 陷 类 型 为 CWE-79.6二 、 开 源 组 件 生 态 安 全 风 险 分 析 .8 发 现 六 : 开 源 组 件 生 态 中 的 漏 洞 数 呈 上 涨 趋 势 , 2020 年 环 比 增 长 40.8发 现 七 : 近 6 年 中 Maven 仓 库 漏 洞 数 量 最 多 .9发 现 八 : 超 半 数 仓 库 的 漏 洞 数 均 较 上 年 有 所 增 长 .10发 现 九 : 2020 年 高 危 漏 洞 占 比 最 高 , 相 比 去 年 增 加 2.6 倍 左 右 .10发 现 十 : 2020 年 , 含 高 危 以 上 漏 洞 占 比 最 多 仓 库 是 Rubygems.12发 现 十 一 : 平 均 每 版 本 漏 洞 最 多 的 TOP 25 组 件 约 五 成 来 自 Composer 仓 库 .12三 、 组 件 漏 洞 依 赖 层 级 传 播 范 围 分 析 .15发 现 十 二 : 一 级 传 播 影 响 范 围 扩 大 125 倍 , 二 级 传 播 影 响 范 围 扩 大 173 倍 .15发 现 十 三 : npm 仓 库 中 的 组 件 经 2 轮 传 播 , 影 响 组 件 数 量 最 多 .16 发 现 十 四 : 一 级 传 播 影 响 范 围 最 广 的 仓 库 是 Composer.16发 现 十 五 : 二 级 传 播 影 响 范 围 最 广 的 仓 库 是 Nuget.17发 现 十 六 : 传 播 影 响 范 围 最 小 的 仓 库 是 Maven.18四 、 开 源 文 件 潜 在 漏 洞 风 险 传 播 分 析 .20发 现 十 七 : 超 80 漏 洞 文 件 在 开 源 项 目 具 有 同 源 文 件 .20发 现 十 八 : 漏 洞 文 件 在 开 源 项 目 中 传 播 范 围 扩 大 54 倍 .21案 例 分 析 .21五 、 开 源 安 全 风 险 建 议 .23 3 一 、 开 源 漏 洞 发 展 现 状 及 趋 势开 源 软 件 具 有 代 码 公 开 、 易 获 取 、 可 重 用 的 特 点 , 这 一 特 点 是 开源 软 件 热 度 攀 升 的 重 要 原 因 。 随 着 开 源 软 件 的 广 泛 使 用 , 一 旦 软 件 发现 安 全 漏 洞 , 必 将 给 开 发 、 安 全 团 队 带 来 严 峻 的 挑 战 。 然 而 , 开 源 漏洞 信 息 往 往 散 落 分 布 在 各 大 社 区 , 很 多 漏 洞 信 息 不 能 及 时 被 官 方 收 录 。同 时 , 对 于 软 件 使 用 者 , 由 于 缺 少 漏 洞 信 息 跟 踪 能 力 , 使 得 漏 洞 修 复具 有 滞 后 性 , 提 升 了 软 件 被 攻 击 的 风 险 , 为 软 件 供 应 链 安 全 管 控 增 加了 难 度 。本 次 研 究 收 录 了 官 方 漏 洞 库 、 开 源 社 区 等 渠 道 的 数 据 1, 并 统 一 收录 整 理 成 开 源 漏 洞 知 识 库 。 通 过 从 中 选 取 2015 年 至 2020 年 发 布 的 开源 漏 洞 为 研 究 对 象 , 本 报 告 展 示 了 近 6 年 开 源 安 全 漏 洞 发 展 现 状 及 趋势 。 发 现 一 : 开 源 软 件 漏 洞 整 体 呈 增 长 趋 势 , 2020 年 增 长 率 略 有 下 降 图 1 开 源 漏 洞 时 间 分 布根 据 调 查 结 果 , 相 比 2015 年 漏 洞 数 据 , 近 5 年 的 漏 洞 数 量 均 有 不1 国 家 信 息 安 全 漏 洞 CNVD 共 享 平 台 ( 、 美 国 国 家 漏 洞 库 ( nvd.nist.gov/) 、 通 用 漏 洞 披 露 库 ( cve.mitre/) 等 4 同 程 度 增 长 。 2018 年 是 开 源 项 目 快 速 增 长 的 一 年 , 根 据 GitHub 官 方 数据 显 示 , GitHub代 码 仓 库 中 超 过 1/3 的 开 源 项 目 创 建 于 2018 年 , 2018年 新 增 开 源 漏 洞 数 也 创 下 近 6 年 新 高 , 新 增 7563 个 漏 洞 , 相 较 于 2015年 翻 了 2.85 倍 ; 2017 年 漏 洞 增 长 速 度 最 快 , 环 比 增 长 率 为 92.86 ;2019 年 与 2020 年 增 长 率 略 有 下 降 , 2020年 发 布 的 漏 洞 数 较 2019 年 发布 漏 洞 数 少 了 1746 条 。发 现 二 : CVE 官 方 未 收 录 的 开 源 软 件 漏 洞 数 逐 年 递 增 图 2 CVE官 方 未 收 录 开 源 漏 洞 情 况对 CVE 官 方 网 站 2进 行 统 计 , 可 发 现 2020 年 发 布 的 开 源 漏 洞 中 未被 CVE官 方 收 录 漏 洞 有 1362 个 , 占 2020 年 发 布 漏 洞 总 数 的 23.78 ;CVE 官 方 未 收 录 数 据 呈 上 长 趋 势 , 增 长 率 逐 年 递 增 , 2018年 环 比 2017年 增 长 速 度 达 133.52 。发 现 三 : 开 源 软 件 漏 洞 由 POC 披 露 到 NVD 首 次 公 开 时 间 长 达 11年 2020 年 发 布 的 开 源 漏 洞 中 , 编 号 为 CVE-2009-4067 的 Linux内 核 2 cve.mitre 5 的 Auerswald Linux USB 驱 动 程 序 的 缓 冲 区 溢 出 漏 洞 由 POC 披 露 到NVD 首 次 公 开 时 间 长 达 11 年 。 POC 信 息 在 2009 年 10 月 19 日 披 露 3;该 漏 洞 于 2009 年 11 月 24 日 获 得 CVE 编 号 , 但 未 公 开 漏 洞 具 体 信 息 ;直 到 2020 年 11 月 2 日 NVD 官 方 才 将 其 发 布 。开 源 软 件 的 使 用 者 仅 关 注 官 方 漏 洞 库 ( 如 NVD 等 ) 可 能 无 法 及 时获 取 漏 洞 信 息 , 需 综 合 考 虑 更 多 渠 道 的 漏 洞 数 据 。发 现 四 : 近 4 年 , 高 危 及 以 上 开 源 漏 洞 占 比 均 超 40 图 3 含 高 危 以 上 漏 洞 占 比调 查 结 果 显 示 , 近 6 年 高 危 及 以 上 漏 洞 占 比 逐 年 递 增 , 从 2015 年占 比 30.87 增 长 至 2020 年 占 比 56 ; 其 中 , 2017 年 至 2020 年 高 危 及以 上 漏 洞 占 比 均 超 过 40 ; 2020 年 , 超 危 漏 洞 占 比 为 8.83 , 高 危 漏 洞占 比 为 46.91 , 占 2020 年 新 增 漏 洞 超 5 成 。 3 exploit- 6 图 4 2020年 漏 洞 危 害 等 级 占 比发 现 五 : 2020 年 , 最 主 要 缺 陷 类 型 为 CWE-79 图 5 2020年 开 源 漏 洞 TOP 10 CWE缺 陷 类 型调 查 结 果 显 示 , 缺 陷 类 型 CWE-79 数 量 最 多 , 占 2020 年 新 增 开 源漏 洞 的 14 左 右 。 表 1 列 出 了 TOP 10 CWE 缺 陷 类 型 , 这 些 缺 陷 类 型很 容 易 并 被 利 用 , 往 往 通 过 系 统 信 息 暴 露 、 窃 取 数 据 或 阻 止 应 用 程 序正 常 工 作 等 方 式 , 对 系 统 造 成 安 全 风 险 。 了 解 开 源 漏 洞 Top10 CWE 可以 帮 助 开 发 人 员 、 测 试 人 员 、 用 户 、 项 目 经 理 以 及 安 全 研 究 人 员 深 入 7 了 解 当 前 最 严 重 的 安 全 漏 洞 。表 1 2020年 开 源 漏 洞 TOP 10 CWE缺 陷 类 型CWE 编 号 中 文 名 称 个 数CWE-79 在 Web 页 面 生 成 时 对 输 入 的 转 义 处 理 不 恰 当 ( 跨 站 脚 本 ) 824CWE-506 内 嵌 的 恶 意 代 码 726CWE-400 未 加 控 制 的 资 源 消 耗 ( 资 源 穷 尽 ) 510CWE-200 信 息 暴 露 305CWE-20 输 入 验 证 不 恰 当 212CWE-94 对 生 成 代 码 的 控 制 不 恰 当 ( 代 码 注 入 ) 201CWE-119 内 存 缓 冲 区 边 界 内 操 作 的 限 制 不 恰 当 142CWE-125 跨 界 内 存 读 134 CWE-78 OS 命 令 中 使 用 的 特 殊 元 素 转 义 处 理 不 恰 当 ( OS 命 令 注 入 ) 124CWE-325 缺 少 必 要 的 密 码 学 步 骤 117 8 二 、 开 源 组 件 生 态 安 全 风 险 分 析开 源 组 件 生 态 蓬 勃 发 展 , 重 要 原 因 是 组 件 独 立 、 可 复 用 。 组 件 化可 以 大 幅 度 提 高 开 发 效 率 、 可 测 试 性 、 可 复 用 性 、 提 升 应 用 性 能 。 同时 , 组 件 化 能 够 屏 蔽 逻 辑 , 帮 助 迅 速 定 位 问 题 , 易 于 维 护 和 迭 代 更 新 。组 件 标 准 化 使 得 优 质 好 用 的 组 件 越 来 越 多 , 用 户 也 更 愿 意 使 用 , 形 成一 个 良 性 循 环 的 开 源 组 件 生 态 库 。开 源 组 件 被 广 泛 使 用 , 根 据 官 方 数 据 显 示 , Maven 仓 库 数 据 量 已达 650 万 +, Nuget仓 库 累 计 下 载 量 超 930 亿 , Rubygems仓 库 累 计 下 载量 超 712 亿 , PyPI 仓 库 使 用 人 数 超 过 49 万 。本 报 告 选 取 了 CocoaPods 4、 Composer5、 Go6、 Maven7、 npm8、 Nuget9、PyPI10、 Rubygems11这 8 个 主 流 的 仓 库 作 为 研 究 对 象 , 分 析 近 6 年 各 仓库 新 增 漏 洞 数 据 , 帮 助 解 开 源 组 件 生 态 安 全 风 险 情 况 。发 现 六 : 开 源 组 件 生 态 中 的 漏 洞 数 呈 上 涨 趋 势 , 2020 年 环 比 增 长40 根 据 调 查 结 果 , 近 6 年 开 源 组 件 生 态 中 漏 洞 数 逐 年 递 增 。 其 中 ,2020 年 新 增 漏 洞 数 为 3426, 环 比 去 年 增 长 40 ; 2017年 增 长 速 度 最 快 ,环 比 增 长 49 ; 近 3 年 增 长 速 度 呈 上 升 趋 势 , 2020 年 新 增 漏 洞 数 是 2015年 的 4.48 倍 。 4 cocoapods/5 packagist6 pkg.go.dev7 maven8 9 nuget10 pypi/11 rubygems 9 图 6 开 源 组 件 生 态 漏 洞 时 间 分 布发 现 七 : 近 6 年 中 Maven 仓 库 漏 洞 数 量 最 多 图 7 近 6年 中 各 组 件 仓 库 漏 洞 情 况调 查 结 果 显 示 , 近 6 年 中 漏 洞 数 量 最 多 是 Maven 仓 库 , 漏 洞 数 量为 3533 个 ; Go 仓 库 漏 洞 数 量 最 少 , 漏 洞 数 量 为 348 个 ; 平 均 每 个 仓库 漏 洞 数 量 为 1413 个 。 10 发 现 八 : 超 半 数 仓 库 的 漏 洞 数 均 较 上 年 有 所 增 长 图 8 近 6年 各 仓 库 漏 洞 分 布 图调 查 结 果 显 示 , 近 6 年 , Composer、 Go、 Maven、 npm、 PyPI、Rubygems 6 种 仓 库 的 漏 洞 数 均 有 不 同 程 度 的 上 涨 ; Rubygems 仓 库 漏洞 增 长 速 度 最 快 , 相 比 去 年 翻 10.5 倍 ; Go仓 库 和 PyPI 仓 库 增 长 率 其次 , 环 比 增 长 率 分 别 为 252 和 132 ; Maven 仓 库 2020 年 新 增 漏 洞 数基 本 与 去 年 持 平 。发 现 九 : 2020 年 高 危 漏 洞 占 比 最 高 , 相 比 去 年 增 加 2.6 倍 左 右调 查 结 果 显 示 , 2020 年 新 增 漏 洞 中 , 高 危 漏 洞 占 比 最 高 , 数 量 为1826 个 ; 超 危 漏 洞 逐 年 递 增 , 2020 年 数 量 有 所 下 降 , 环 比 下 降 53 ,2019 年 新 增 数 量 最 多 , 新 增 数 量 为 468 个 ; 高 危 漏 洞 逐 年 递 增 , 2020 年 增 长 速 度 最 快 , 相 比 去 年 增 加 2.62 倍 ; 中 危 漏 洞 呈 现 平 稳 增 长 趋 势 ,2018 年 增 长 速 度 最 快 , 环 比 增 长 率 为 48.13 ; 低 危 漏 洞 逐 年 递 增 , 2020 11 年 增 长 速 度 有 所 下 降 , 2019 年 新 增 数 量 最 多 , 新 增 数 量 为 171 个 。 图 9 近 6年 新 增 漏 洞 风 险 等 级 时 间 分 布 图 10 近 6年 新 增 漏 洞 各 风 险 等 级 占 比 12 发 现 十 : 2020 年 , 含 高 危 以 上 漏 洞 占 比 最 多 仓 库 是 Rubygems 图 11 2020年 各 仓 库 中 含 高 危 以 上 漏 洞 占 比调 查 结 果 显 示 , 超 八 成 组 件 含 高 危 以 上 漏 洞 占 比 均 超 过 40 。 2020年 ,Rubygems 仓 库 含 高 危 以 上 漏 洞 占 比 最 多 , 占 Rubygems 仓 库 新 增 漏洞 的 96 ; Go仓 库 含 高 危 以 上 漏 洞 占 比 最 少 , 占 2020 年 Go 仓 库 新 增漏 洞 的 39 。发 现 十 一 : 平 均 每 版 本 漏 洞 最 多 的 TOP25 组 件 约 五 成 来 自Composer 仓 库针 对 2020 年 各 仓 库 新 增 漏 洞 , 分 析 得 到 平 均 每 版 本 漏 洞 数 量 最 多的 TOP 25 组 件 。 考 虑 到 各 仓 库 不 同 组 件 的 版 本 数 量 各 不 相 同 , 本 报 告采 取 平 均 每 版 本 漏 洞 数 作 为 计 算 依 据 , 即 : 平 均 每 版 本 漏 洞 数 =组 件 全 版 本 漏 洞 数 /组 件 版 本 数 。研 究 发 现 , 平 均 版 本 漏 洞 最 多 的 TOP25 中 , Composer仓 库 的 组 件数 占 比 最 多 , 共 计 12 个 , 占 比 约 5 成 左 右 ; PyPI仓 库 的 组 件 数 排 名 第二 , 共 计 7 个 ; 平 均 版 本 漏 洞 数 最 多 的 组 件 来 自 Maven 仓 库 , 漏 洞 数量 为 47 个 , 下 图 列 示 各 仓 库 中 平 均 版 本 漏 洞 TOP25 组 件 分 布 : 13 图 12 平 均 版 本 漏 洞 最 多 TOP25 组 件 仓 库 分 布 图 13 Composer 仓 库 组 件 分 布 14 图 14 PyPI 仓 库 组 件 分 布图 15 Maven 仓 库 组 件 分 布 图 16 npm 和 Nuget 仓 库 组 件 分 布 15 三 、 组 件 漏 洞 依 赖 层 级 传 播 范 围 分 析软 件 工 程 中 经 常 引 用 组 件 来 实 现 某 些 功 能 , 组 件 之 间 存 在 相 互 依赖 关 系 , 按 依 赖 关 系 可 分 为 直 接 依 赖 和 间 接 依 赖 , 即 组 件 A 依 赖 组 件B, 组 件 B 依 赖 组 件 C, 那 么 组 件 A 组 件 B 和 组 件 B 组 件 C 的 依赖 关 系 称 为 直 接 依 赖 , 而 组 件 A 组 件 C 的 依 赖 关 系 称 为 间 接 依 赖 。组 件 存 在 安 全 漏 洞 , 组 件 之 间 又 存 在 相 互 依 赖 关 系 , 导 致 漏 洞 在 组 件之 间 存 在 传 播 风 险 。本 报 告 以 Maven、 npm、 Rubygems 、 PyPI、 Composer、 Nuget 6个 仓 库 中 含 已 公 开 安 全 漏 洞 的 开 源 组 件 为 研 究 对 象 , 共 计 6,416 个 12,对 其 做 两 轮 漏 洞 传 播 模 拟 实 验 , 研 究 开 源 组 件 漏 洞 依 赖 层 级 传 播 范 围 。第 一 轮 实 验 , 查 找 直 接 依 赖 这 6,416 个 开 源 组 件 的 组 件 集 合 , 为 方 便定 义 , 称 该 组 件 范 围 为 一 级 传 播 ; 第 二 轮 实 验 , 查 找 直 接 依 赖 一 级 传播 组 件 的 组 件 集 合 , 该 组 件 集 合 均 间 接 依 赖 这 6,416 个 开 源 组 件 , 称该 组 件 范 围 为 二 级 传 播 。发 现 十 二 : 一 级 传 播 影 响 范 围 扩 大 125 倍 , 二 级 传 播 影 响 范 围 扩大 173 倍 图 17 组 件 漏 洞 依 赖 层 级 传 播 范 围12 截 至 2020 年 12 月 , Maven、 npm、 Rubygems 、 PyPI、 Composer、 Nuget 6 个 仓 库 中 含 已 公 开 安 全 漏 洞 的 开源 组 件 共 计 6,416 个 。 16 调 查 结 果 显 示 , 原 始 样 本 中 6,416 个 组 件 , 受 组 件 依 赖 关 系 的 影响 , 一 级 传 播 一 共 波 及 801,164 个 组 件 , 其 影 响 范 围 扩 大 125 倍 。 第二 轮 实 验 中 , 发 现 二 级 传 播 一 共 波 及 1,109,519 个 组 件 , 影 响 范 围 相比 原 始 样 本 6,416 个 组 件 扩 大 173 倍 。发 现 十 三 : npm 仓 库 中 的 组 件 经 2 轮 传 播 , 影 响 组 件 数 量 最 多 图 18 各 仓 库 组 件 漏 洞 传 播 范 围调 查 结 果 显 示 , Maven、 npm、 Rubygems 、 PyPI、 Composer、 Nuget6 个 仓 库 选 取 样 本 中 , npm仓 库 原 始 含 漏 洞 组 件 数 量 为 1,962 个 , npm仓 库 漏 洞 组 件 数 量 在 原 始 样 本 中 仅 次 于 Maven 仓 库 , 排 在 第 二 位 。 经2 轮 模 拟 传 播 实 验 , 发 现 6 组 仓 库 中 波 及 范 围 最 广 是 npm 仓 库 。 npm仓 库 原 始 样 本 中 共 有 1,962 个 含 有 漏 洞 的 组 件 , 经 过 一 级 传 播 共 波 及459,876 个 组 件 ,漏 洞 的 影 响 范 围 扩 大 了 234 倍 ; 二 级 传 播 共 波 及601,574 个 组 件 , 范 围 比 最 初 1,962 个 组 件 扩 大 了 307 倍 。发 现 十 四 : 一 级 传 播 影 响 范 围 最 广 的 仓 库 是 Composer 17 图 19 各 仓 库 一 级 传 播 影 响 范 围调 查 结 果 显 示 , Composer 仓 库 原 始 含 漏 洞 组 件 数 量 为 380 个 , 为6 个 仓 库 中 原 始 样 本 中 含 漏 洞 组 件 数 量 的 第 5 位 。 经 1 次 传 播 , 一 级 传播 波 影 响 范 围 最 广 的 仓 库 是 Composer。 经 过 一 级 传 播 共 波 及 99,611个 组 件 ,漏 洞 的 影 响 范 围 扩 大 了 262 倍 。发 现 十 五 : 二 级 传 播 影 响 范 围 最 广 的 仓 库 是 Nuget调 查 结 果 显 示 , Nuget仓 库 原 始 含 漏 洞 组 件 数 量 为 172 个 , 为 6 组中 含 漏 洞 组 件 数 量 最 少 的 仓 库 。 经 2 次 传 播 , 二 级 传 播 波 影 响 范 围 最广 的 仓 库 是 Nuget。 经 过 一 级 传 播 共 波 及 23,240 个 组 件 ,漏 洞 的 影 响 范围 扩 大 了 135 倍 ; 二 级 传 播 共 波 及 84,995 个 组 件 , 范 围 比 最 初 172 个 组 件 扩 大 了 494 倍 。 18 图 20 各 仓 库 二 级 传 播 影 响 范 围发 现 十 六 : 传 播 影 响 范 围 最 小 的 仓 库 是 Maven 图 21 两 轮 漏 洞 传 播 组 件 漏 洞 影 响 范 围 分 布 图调 查 结 果 显 示 , Maven 仓 库 原 始 含 漏 洞 组 件 数 量 为 2,289 个 , 经过 2 次 传 播 , 6 组 仓 库 中 受 漏 洞 影 响 范 围 最 小 是 Maven 仓 库 。 经 过 一 19 级 传 播 共 波 及 94,724 个 组 件 ,漏 洞 的 影 响 范 围 扩 大 了 41 倍 ; 二 级 传 播共 波 及 145,827 个 组 件 , 范 围 比 最 初 2,289 个 组 件 扩 大 了 64 倍 。从 整 体 上 看 , 开 源 组 件 生 态 中 漏 洞 影 响 范 围 远 超 预 期 , 组 件 间 的依 赖 层 级 关 系 会 导 致 组 件 之 间 漏 洞 存 在 传 播 风 险 。 因 此 , 要 保 证 软 件的 安 全 风 险 控 制 , 应 通 过 自 动 化 的 手 段 识 别 软 件 工 程 中 的 组 件 成 分 ,梳 理 组 件 间 的 依 赖 关 系 ; 在 已 知 成 分 清 单 基 础 上 对 组 件 漏 洞 风 险 实 施管 控 ; 同 时 , 还 要 对 已 知 成 分 进 行 动 态 监 控 , 建 立 组 件 生 态 的 漏 洞 威胁 警 报 , 在 动 态 变 化 中 将 安 全 漏 洞 风 险 降 到 最 低 。 20 四 、 开 源 文 件 潜 在 漏 洞 风 险 传 播 分 析开 源 项 目 中 往 往 存 在 相 互 引 用 关 系 , 同 一 开 源 文 件 可 能 被 多 个 项目 所 引 用 或 包 含 。 考 虑 到 开 源 文 件 这 一 特 性 , 本 研 究 选 取 已 公 开 漏 洞中 定 位 至 文 件 级 的 开 源 文 件 为 研 究 对 象 , 共 计 17,570 个 , 依 托 本 研 究团 队 的 开 源 项 目 知 识 库 13, 对 17,570 个 漏 洞 文 件 进 行 同 源 分 析 , 识 别开 源 生 态 中 包 含 此 漏 洞 文 件 的 开 源 项 目 范 围 。发 现 十 七 : 超 80 漏 洞 文 件 在 开 源 项 目 具 有 同 源 文 件 图 22 漏 洞 文 件 同 源 占 比 分 布调 查 结 果 显 示 , 选 取 的 17,570 个 含 漏 洞 的 开 源 文 件 中 有 80.35的 文 件 可 在 开 源 项 目 中 找 到 同 源 文 件 , 共 计 14,118 个 , 其 余 的 3,452个 文 件 未 找 到 同 源 文 件 。 13 开 源 项 目 知 识 库 是 指 对 已 公 开 的 开 源 项 目 进 行 收 录 、 清 洗 、 整 理 形 成 的 库 集 合 。 收 录 渠 道 包 含 : 开 源 代 码托 管 平 台 GitHub( ) 、 开 源 代 码 托 管 平 台 sourceforge( ) 、 开 源 代 码 托 管 平 台 bitbucket( bitbucket) 、 开 源 代 码 托 管 平 台 gitee()等 各 大 开 源 社 区 21 发 现 十 八 : 漏 洞 文 件 在 开 源 项 目 中 传 播 范 围 扩 大 54 倍 图 23 漏 洞 文 件 在 开 源 项 目 中 传 播 范 围 分 布通 过 对 含 同 源 文 件 的 14,118 个 含 有 漏 洞 的 开 源 文 件 进 行 分 析 , 在不 考 虑 同 一 开 源 项 目 不 同 版 本 的 前 提 下 , 这 些 漏 洞 文 件 被 766,877 个开 源 项 目 所 引 用 , 漏 洞 文 件 在 开 源 项 目 中 传 播 范 围 扩 大 54 倍 。 如 果 考虑 同 一 开 源 项 目 的 不 同 版 本 , 这 些 漏 洞 文 件 被 2,410,476 个 开 源 项 目所 引 用 , 漏 洞 文 件 在 开 源 项 目 中 传 播 范 围 将 扩 大 171 倍 。案 例 分 析LibTIFF 项 目 中 tif_next.c 被 曝 出 有 2 个 中 危 漏 洞 CVE-2015-1547和 CVE-2015-8784。 为 了 解 该 漏 洞 文 件 在 开 源 项 目 中 的 引 用 情 况 , 本研 究 团 队 对 tif_next.c 漏 洞 文 件 进 行 同 源 分 析 , 在 开 源 项 目 知 识 库 中 共 发 现 有 237 个 开 源 项 目 包 含 tif_next.c 文 件 , 如 果 考 虑 项 目 不 同 版 本 ,共 有 1000 个 开 源 项 目 中 引 用 tif_next.c 文 件 。 表 2 列 出 了 6 大 托 管 平台 引 用 tif_next.c 文 件 的 部 分 同 源 开 源 项 目 , 经 对 比 , 所 有 同 源 文 件 均仅 删 减 了 注 释 行 , 而 代 码 逻 辑 以 及 函 数 变 量 名 称 均 未 改 变 。 22 表 2 6 大 托 管 平 台 tif_next.c 文 件 的 同 源 开 源 项 目 举 例托 管 平 台 开 源 项 目 名 称 版 本 号 同 源 文 件 路 径GitHub reactos/reactos14 backups/ros-branch-0_4_273087 见 注 释 15Gitee mirrors-opencv16 2.4.10 见 注 释 17Gitlab limbo18 v2.2.1-Limbo-armv7-hf 见 注 释 19Bitbucket xray 20 FirstAddedTBB 见 注 释 21Sourceforge wxhaskell22 wxInstall-Abriline-32-0.1 见 注 释 23CodePlex casaengine24 master 见 注 释 25从 整 体 上 看 , 本 次 研 究 发 现 相 同 的 文 件 被 多 个 开 源 项 目 所 引 用 的现 象 远 多 于 预 期 。 考 虑 到 漏 洞 利 用 的 复 杂 性 , 本 研 究 团 队 认 为 这 些 结构 一 致 的 同 源 文 件 具 有 潜 在 漏 洞 风 险 , 漏 洞 是 否 能 真 正 的 被 利 用 , 还需 要 深 入 研 究 。 14 项 目 下 载 地 址 : reactos-backups-ros-branch-0_4_2-73087reactos-backups-ros-branch-0_4_2-73087reactosdll3rdpartylibtiff16 项 目 下 载 地 址 : gitee-mirrors-opencv-2.4.10opencv3rdpartylibtiff 18 项 目 下 载 地 址 : gitlab-limbo-v2.2.1-Limbo-armv7-hflimbo-v2.2.1-Limbo-armv7-hfjniSDL_imageexternaltiff-4.0.3libtiff20 项 目 下 载 地 址 : bitbucket/sentike/xray/downloads/?tab=tags21 sentike-xray-a2c911aa2e5bsentike-xray-a2c911aa2e5b3rd partyFreeImageFreeImageSourceLibTIFF4 22 项 目 下 载 地 址 : wxInstall-Abriline-32-0.1wxInstall-Abriline-32-0.1wxWidgetssrctifflibtiff24 项 目 下 载 地 址 : casaenginesourceCodecasaengineexternalFreeImageSourceLibTIFF4 23 五 、 开 源 安 全 风 险 建 议开 源 生 态 带 来 的 正 面 效 应 已 在 信 息 经 济 生 活 中 发 挥 重 要 影 响 , 如何 在 安 全 可 控 的 情 况 下 使 用 开 源 , 已 成 为 开 源 生 态 的 关 键 任 务 。 开 源安 全 风 险 防 范 措 施 应 贯 穿 软 件 开 发 的 整 个 生 命 周 期 。 本 报 告 给 出 了 如下 六 点 建 议 :( 一 ) 建 立 开 源 管 理 领 导 组 织 。 随 着 软 件 开 发 过 程 中 开 源 软 件 的使 用 越 来 越 多 , 开 源 软 件 事 实 上 已 经 成 为 了 软 件 开 发 的 核 心 基 础 设施 。 开 源 软 件 由 于 其 特 殊 性 , 从 软 件 供 应 链 视 角 看 , 将 横 跨 采 购 、 选型 设 计 、 研 发 编 码 、 运 维 交 付 等 多 个 环 节 , 需 要 跨 组 织 、 跨 部 门 协 同管 理 。 具 备 条 件 的 企 业 、 机 构 建 议 设 立 开 源 管 理 办 公 室 或 领 导 小 组 , 全 面 学 习 开 源 生 态 知 识 , 了 解 开 源 生 态 运 作 机 制 , 开 展 开 源 风 险 意 识培 训 , 强 化 开 源 风 险 管 控 手 段 。( 二 ) 识 别 开 源 成 分 。 开 源 软 件 全 面 渗 透 至 软 件 供 应 链 体 系 中 ,需 准 确 识 别 软 件 中 的 开 源 成 分 ( 包 括 开 源 源 代 码 成 分 、 开 源 二 进 制 成分 、 引 用 依 赖 的 开 源 组 件 成 分 等 ) , 形 成 开 源 成 分 清 单 和 图 谱 , 做 到对 软 件 开 源 成 分 的 可 知 可 控 。 同 时 精 确 绘 制 开 源 组 件 依 赖 链 条 , 防 止安 全 风 险 随 着 开 源 组 件 依 赖 链 条 的 逐 层 传 播 , 是 进 行 开 源 安 全 风 险 防范 的 基 础 。( 三 ) 修 复 已 知 开 源 漏 洞 。 已 知 软 件 的 开 源 成 分 清 单 和 图 谱 , 明确 开 源 成 分 及 依 赖 链 条 后
展开阅读全文
相关资源
相关搜索
资源标签

copyright@ 2017-2022 报告吧 版权所有
经营许可证编号:宁ICP备17002310号 | 增值电信业务经营许可证编号:宁B2-20200018  | 宁公网安备64010602000642