写点什么

Lars Kurth 谈开源安全流程之三:开源安全实践 vs 云时代的挑战

  • 2016-01-04
  • 本文字数:2561 字

    阅读完需:约 8 分钟

【编者的话】随着云平台的日渐流行,其面对的安全问题也越来越严重。 Xen Project 的顾问委员会主席 Lars Kurth 近日分享了其对开源安全流程的理解和看法。作为该系列文章四部分的第三篇,本文介绍了若干开源项目以及它们利用云计算进行安全实践的方法,而且讨论了开源安全实践是否适合当今的云时代。读者可阅读《第一部分:云安全介绍》《第 2 部分:容器 vs 虚拟机管理程序—保护您的受攻击面》来了解前两篇文章的内容。

当今绝大部分软件栈都包含了很多不同的层。而在一个层化的软件栈中,人只是其中最弱的一环。由于多个不同的开源项目中的安全漏洞进程并不完全兼容,处理安全问题时真的有可能出现错误。

在云计算中,开源项目处理安全问题一般有两个方法:“全公开”(Full Disclosure)和“负责任公开”(Responsible Disclosure)。这两种方法都是安全漏洞管理流程(Security Vulnerability Management Process)中能够帮助迅速解决安全漏洞的最佳实践。值得注意的是,有关这些流程的争论从来没有停过。本文就这些流程的历史、当今的开源技术是如何利用这些实践的以及他们是否适合云环境等问题进行了讨论。

首先,“全公开”和“负责任公开”这两种流程的区别主要体现在:

  • “全公开”采用尽可能早的公布软件漏洞相关的分析的方式,使得任何人都可以自由的访问这些数据。广泛散播有关漏洞消息的初衷在于,漏洞的可能受害者与攻击者能够掌握同样的信息。
  • “负责任公开”则对于掌握漏洞信息的人群进行了限制,也是目前云编排栈中绝大部分开源项目所采用的方式。该进程十分直接:谁发现问题就和项目的安全团队进行合作,评估并修复该问题。然后,那些开源项目的特权客户就测试并准备软件包来修复漏洞。一旦任何相关的安全问题被公开,这些软件包就被发布给广大用户,修复漏洞。“负责任公开”所采用的基本工作流和步骤如下图所示。

(点击放大图像)

尽管具体细节有些不同,这两种进程都非常鼓励安全问题的发现者能够将其发送到相关项目安全团队的邮箱,而不是出售或自己使用来获得非法利益。此外,他们的目的都是尽可能快的修复安全问题,并确保从发现问题到应用修复补丁中间的时间尽可能的短。最后,二者都是试图保证绝大部分用户能够尽可能快的应用补丁包。

在云中处理安全问题有何不同?

尽管绝大部分云项目的安全实践都准守上图中的基本架构,他们之间仍然有一些明显的不同之处:

  • 是否所有的漏洞或一些漏洞采用“负责任公开”方式;
  • 在一个漏洞被公开之间,优先收到通知的用户(特权用户)列表;
  • 判断一个用户是否在优先通知的邮件列表中的标准;
  • 决定一个用户是否在优先通知的邮件列表中的应用进程;
  • 特权用户列表是否被公开?
  • 在收到安全问题的通知后,特权用户所能采取的行动;
  • 从发现安全问题到通知特权用户的典型时间间隔;
  • 从发现安全问题到通知所有用户的典型时间间隔;
  • 项目发布安全问题的方式;
  • 是否 CVE 号应用于所有或者一些安全问题;
  • 是否存在一个专门的地方展示以往的安全问题;
  • 是否安全问题可以在代码提交或其他项目部门中被追踪。

绝大部分的不同都可以根据开源项目的操作执行效率、对于整个社区的公平性、信息的透明程度以及项目安全进程的操作等进行分类。尽管这些区别看起来有些脱离基本的流程,每一个不同都对云项目的用户有着巨大的影响。

“负责任公开”的 Distro 模型和云模型

首先,考虑两个典型的问题:哪些用户应该成为特权用户,特权用户在收到预先通知后能进行哪些操作。这两个问题和安全漏洞管理流程的目标紧密相关:

  • 确保问题公开之前修复方案已经准备完毕;
  • 确保下游的项目和产品能够在其环境中应用并测试修复方案。

在著名的负责任公开的 Distro 模型(“Distro Model of Responsible Disclosure”)中,只有创建上游项目版本的厂商才能成为特权用户。这些用户所提前收到的信息也只能被用来提出和测试修复方案。

由于该模型不允许使用开源软件的服务提供商马上开始计划升级方案,托管、云服务及其用户在安全问题公开后马上就会面临安全威胁。而且,在禁令结束前,该模型不允许使用软件的服务提供商部署升级。

为了使得安全流程能够更多的满足云计算的需求,Xen Project 首先采用了一种新的安全漏洞流程——负责任公开的云模型。在该模型中,共有云服务的提供商也成为了特权用户。而且,用户预先收到的信息可以被用于计划设计方案、通知客户或者部署升级。 OpenStack 也提出了类似的模型。

云项目安全实践概况

下表列出了不同开源项目所使用公开安全问题的方法。

尽管 Linux 的不同版本长期以来都遵守负责任公开的方式,一个超级复杂而又很难理解的网页负责处理 Kernel 和 Distro 安全的不同方面:

  • Kernel 安全:处理 kernel 安全问题,目的在于尽可能快的修复并公开安全问题。
  • OSS 安全:公开的列表,其初衷在于讨论和处理已经存在的弱危险性安全问题。
  • OSS 安全 Distro :私有邮件列表,其成员局限于操作系统版本的安全联系人。采用负责任公开的方式,初始用于处理中高危险性的安全问题。
  • 此外,每一个 Linux 版本都拥有自己的安全团队,采用一个或多个上面的方式来处理安全问题的不同方面。所有软件包的安全问题会形成一个独立的版本。

结论

尽管云计算已经普遍存在,目前的绝大部分开源项目仍然遵循着负责任公开的 Distro 模型。此外,CoreOS、Kubernetes 以及 Cloud Foundry 等很多新的开源项目也只局限于让发现者报告安全漏洞问题。这反映出,很多开源软件项目的成员首先关注的代码开发,然后才会考虑到安全问题。

当今绝大部分软件栈都包含了很多不同的层。而在一个层化的软件栈中,人只是其中最弱的一环。由于多个不同的开源项目中的安全漏洞进程并不完全兼容,处理安全问题时真的有可能出现错误。解决该问题的唯一途径就是建立一个全兼容的、工业界普遍采用的、考虑到云和服务提供商需求的最佳实践。

编后语

《他山之石》是 InfoQ 中文站新推出的一个专栏,精选来自国内外技术社区和个人博客上的技术文章,让更多的读者朋友受益,本栏目转载的内容都经过原作者授权。文章推荐可以发送邮件到 editors@cn.infoq.com。


感谢董志南对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。

2016-01-04 16:231600
用户头像

发布了 268 篇内容, 共 134.1 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

如何构建企业级的容器云PaaS平台

阿泽🧸

PaaS 9月月更

未来3年,公司想不倒闭,就尽量避免在这5点上犯错!

CRMEB

阿里开源的升级思考:开源委员会的三个关键行动点

阿里技术

开源

浅析 Web3.0 DApp(去中心化应用程序)设计架构

掘金安东尼

前端 Web3.0 9月月更

50岁还在写代码,大龄前端程序员到底有多吃香

千锋IT教育

【JS】大白话-深拷贝与浅拷贝-及其原生JS实现方式

Sam9029

JavaScript 前端 深拷贝 浅拷贝 9月月更

强扩展、强一致、高可用…GaussDB成为游戏行业的心头爱

华为云开发者联盟

数据库 后端 开发 游戏 企业号九月金秋榜

web前端培训班怎么选?

小谷哥

益思芯科技加入龙蜥社区,推动网络和存储DPU芯片创新落地

OpenAnolis小助手

开源 芯片 龙蜥社区 CLA 益思芯科技

零基础应该在大数据培训机构学习

小谷哥

基于TiCDC同步的主从集群数据校验

TiDB 社区干货传送门

备份 & 恢复

Python图像处理丨基于K-Means聚类的图像区域分割

华为云开发者联盟

Python 人工智能 图像处理 企业号九月金秋榜

B2B企业节,永洪科技

科技云未来

文盘Rust -- 如何把配置文件打包到二进制文件里

TiDB 社区干货传送门

开发语言

大数据培训班学习靠谱吗?

小谷哥

中秋团圆的N种方式,华为用户get了吗?

最新动态

TiUniManager部署和使用感受

TiDB 社区干货传送门

集群管理 安装 & 部署 6.x 实践

强强联合!数衍科技携手华为云助力企业生态数据建设

sofiya

明源云与华为联合发起828 B2B企业节,共同成就好生意!

IT资讯搬运工

华为

TiDB监控节点扩缩容操作(是否保留历史数据)

TiDB 社区干货传送门

监控 集群管理 备份 & 恢复 扩/缩容

使用 JDBC 连接 TiDB Cloud

TiDB 社区干货传送门

开发语言 应用适配 数据库连接

推理网络精度不达标,5个方法轻松搞定

华为云开发者联盟

人工智能 网络 算子 企业号九月金秋榜

leetcode 543. Diameter of Binary Tree 二叉树的直径(简单)

okokabcd

Java LeetCode 数据结构与算法

TiDB跨版本升级--新人首次尝试🧐

TiDB 社区干货传送门

迁移 实践案例 集群管理 管理与运维 备份 & 恢复

直击行业痛点,华为云助力实景三维建设更快更好

sofiya

VLDB'22 HiEngine极致RTO论文解读

华为云开发者联盟

数据库 云原生 后端 华为云 企业号九月金秋榜

如何选择大数据培训课程

小谷哥

10分钟带你学习华为云数据库RDS

wljslmz

数据库 华为云 9月月更

小红书自研小程序:电商体验与效果优化的运行时体系设计

小红书技术REDtech

小程序 构建 小程序运行时 JS Bridge

TiDB 在 Pinterest丨从 HBase 到 TiDB:我们如何实现零停机在线数据迁移

TiDB 社区干货传送门

月满中秋夜|中秋和 Jina AI 一起过

Jina AI

开源 人工智能’ 神经搜索

Lars Kurth谈开源安全流程之三:开源安全实践vs云时代的挑战_安全_张天雷_InfoQ精选文章