QueryCon 2019:osquery发展的转折点

本文详细记录了2019年QueryCon会议的重要成果,包括osquery项目移交Linux基金会管理、技术指导委员会的成立、构建系统改进、Windows证书查询增强等核心技术进展,标志着这个终端安全监控工具进入社区驱动新阶段。

QueryCon 2019:osquery发展的转折点

真的已经过去3个月了吗?Trail of Bits举办QueryCon后,我们度过了一个如此忙碌而高效的夏天,几乎忘记了回顾这次活动的成功!

6月20-21日,Trail of Bits与Kolide和Carbon Black合作,在纽约市中心的Convene Old Slip会议中心举办了第二届年度QueryCon。我们以150名全球参会者打破了去年的记录。14位演讲者围绕osquery进行了从Linux安全事件监控技术演讲到终端用户研究讨论等主题分享。我们见到了去年旧金山会议的老朋友,也结识了许多对osquery感兴趣的新团队。

Carbon Black的Tania McCormack展示了她在向新受众推广osquery方面的用户研究成果。

去年的首届QueryCon首次将我们聚集在一起。QueryCon 2019则强化了我们的社区意识,并成为积极变革的催化剂:我们富有成效的合作产生了基于社区和技术的变化,使这个项目重回正轨。

新的基金会

6月18日,即QueryCon前一天,Linux基金会正式宣布将从Facebook接管osquery的所有权。在Linux基金会下,新的osquery基金会将由技术指导委员会(TSC)领导,成员包括来自Facebook、Trail of Bits、Google和Kolide的工程师和开发人员——这些公司都在使用osquery并承诺支持该项目。TSC成员包括:

  • Teddy Reed (Facebook)
  • Alessandro Gario (Trail of Bits)
  • Zachary Wasserman (独立顾问)
  • Victor Vrantchan (来自Google,但独立工作)
  • Joseph Sokol-Margolis (Kolide)

这一变化对越来越多依赖osquery进行终端保护的公司来说是激动人心的消息。正如我们在4月份报道的那样,osquery已经超越了它作为Facebook项目的原始定位,其社区的期望和需求现在超出了Facebook单独管理的范围。需要一个基于社区的新治理模式,会议参与者热切讨论了这一变化。我们与Facebook的首席osquery维护者Teddy Reed以及新osquery TSC的代表们举办了一场小组讨论。

Facebook的Teddy Reed领导了一场小组讨论和问答环节,与osquery社区成员讨论了将osquery的管理权从Facebook转移到开源基金会的计划。

基金会如何运作

Linux基金会作为osquery的管理者,提供各种资金和管理平台。新的osquery TSC将在更广泛社区的贡献帮助下指导和维护该项目,Trail of Bits承诺每两周举行一次办公时间,接受公众意见并进行透明的项目管理。

同时,Facebook将把凭证以及对资金、基础设施、托管和工程师审查的控制权移交给一个新的维护者委员会(Facebook仍将是其中一员)。TSC上的组织正在贡献大量工程时间,以建立构建和发布流程,即将在CommunityBridge上推出的资助平台将允许赞助。

技术决策

TSC有大量积压的贡献需要处理,但我们已经看到项目活动的大幅加速。

首先,osquery核心将更新至与osql(Trail of Bits面向社区的osquery分支)功能相当的水平。最初的目标是每月发布一次,交替发布"开发者"和"稳定"版本。另一个重要优先事项是将所有主要的独立努力和私有分支合并到一个所有人都能受益的规范osquery中。

一旦Trail of Bits解决了项目上积累的技术债务——构建工具链、依赖管理、CI系统——它将维护这些组件,并专注于osquery的客户驱动工程请求。其他利益相关者也在贡献积压的Pull Requests,这些将尽快优先处理和合并。

PR提交激增

在GitHub上跟踪项目健康状况和活动的一种方式是通过Pull Requests。在从2018年9月到QueryCon前一天的九个月里,osquery项目合并了大约35个PR,其中只有少数来自Facebook以外的社区。而在QueryCon后的短短12周内,成功合并了近90个PR(代表约113次提交)。更重要的是,这些贡献大部分来自Facebook外部。

仅Trail of Bits就负责了今年夏天合并的约44个PR。

我们近期贡献的一些亮点包括:

  • #5604和#5610:通过合并Facebook和Trail of Bits版本的osquery,启动了新osquery基金会版本的osquery。这意味着我们恢复了CMake构建支持并设置了公共CI,这些是从osql分支带来的关键改进。
  • #5706:我们重构了构建脚本,使osquery的所有第三方库依赖项都能在Linux上从源代码构建。这消除了项目托管和分发这些库预构建二进制文件正确版本的需要(这项工作以前依赖Facebook);提高了跨不同Linux变体的兼容性;是我们实现可重现构建和离线构建目标的先决条件;最后,避免了这些依赖项系统安装版本引起的不兼容问题。
  • #5696、#5697和#5640:我们修复并极大改进了Windows上查询证书存储的表。现在可以使用osquery列出所有每用户证书,无论它们是在注册表配置单元中还是在文件系统上,也无论这些用户在查询时是否登录。在您的设备群中搜索异常证书是一项重要的安全监控和事件响应能力,因为它可能是入侵的指标。
  • #5665:我们修复了通过动态分析(模糊测试和Clang的Address Sanitizer)发现的几个错误。很快,我们计划将静态和动态分析过程纳入CI系统,以主动检测osquery中的代码漏洞。这是Trail of Bits向所有客户推荐的最佳实践,我们很高兴能为osquery的安全性做出贡献。

新的稳定版本

在会议结束时的社区研讨会上,osquery用户和TSC成员讨论了下一个稳定版本的最佳路径。

在QueryCon 2019之前,最近的主要跨平台版本是2018年8月。会议七天后,Trail of Bits的Alessandro Gario提供了新版本osquery的预发布版本。过去九个月,Facebook围绕Buck重构了osquery,这是一个由Facebook创建和使用的构建系统,长期以来对更广泛的社区来说一直存在问题。我们的预发布恢复了CMake支持、CI和打包,以及一些与构建系统无关的修复。

现在osquery的第一个完整稳定版本已经发布!这是一项重大努力,旨在改进osquery未来的构建系统,确保:

  • 从源代码构建osquery不再依赖Facebook维护和托管预构建依赖项的下载
  • osquery项目再次拥有面向公众的持续集成服务器,自动测试所有提议的贡献以检测任何开发人员错误或回归
  • 所有贡献者都可以使用他们首选的构建工具:Facebook内部的开发人员可以使用他们的构建工具Buck,而更广泛社区的开发人员可以使用标准构建工具CMake
  • 全新的Linux自定义构建工具链将支持更广泛的Linux支持,并最终实现可重现构建

osquery用户的新功能:

  • process_events表现在Linux上能检测更多类型的事件
  • 更强大的查询语法:osquery现在支持regex_match函数,允许在给定表的特定列上进行搜索
  • 初步支持基于eBPF的事件跟踪(Linux)
  • 新的macOS表用于检测T1/T2芯片、查询正在运行的应用程序列表以及列出macOS或Linux上安装的Atom包
  • Windows上的certificates、logged_in_users和logical_drives表都得到了极大改进
  • 新高性能事件框架的初步实现,将支持更多类型的事件监控
  • 改进的表性能分析和基准测试能力
  • macOS查询包中添加了新检测

但等等,还有更多!数十个错误已被修复,额外的安全加固缓解措施已启用,某些性能案例得到了改进,资源泄漏被堵住,文档已更新……我们可以一直说下去。有关此版本中更改的完整列表,请参阅全面的变更说明。

QueryCon及未来

2019年QueryCon的主办方拍摄了团队合影!

今年我们举办QueryCon非常开心,我们要感谢所有参会者。由于今年参会者的思考、讨论和热情,这次活动成为我们社区积极变革的催化剂。现在osquery的开发已经解锁,我们迫不及待想看看它会如何改进。

osquery的下一步是什么?我们想听您说!如果您的组织正在使用osquery,让我们谈谈接下来应该有哪些功能和修复。多亏了一次革命性的思想碰撞,我们现在有能力实现它。

如果您喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计