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的客户端驱动工程请求。其他利益相关者也在贡献积压的拉取请求,这些将优先处理并尽快合并。
提交的PR激增
在GitHub上跟踪项目健康度和活动的一种方式是通过拉取请求。在9个月的时间里,从2018年9月到QueryCon前一天,大约有35个PR被合并到osquery项目中,其中只有少数来自Facebook以外的社区。在QueryCon之后的短短12周内,近90个PR成功合并(代表约113次提交)。更重要的是,这些贡献大部分来自Facebook外部。
仅Trail of Bits就负责了今年夏天合并的大约44个PR。
我们近期贡献的一些亮点:
- #5604和#5610:通过合并Facebook和Trail of Bits版本的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函数,允许在给定表的特定列上进行搜索
- 在Linux上初步支持基于eBPF的事件跟踪
- 新的macOS表用于检测T1/T2芯片、查询运行中的应用列表,以及列出macOS或Linux上安装的Atom包
- Windows上的certificates、logged_in_users和logical_drives表都得到了极大改进
- 新高性能事件框架的初步实现,将支持更多类型的事件监控
- 改进的分析和基准测试表性能的能力
- 添加到macOS查询包的新检测
但等等,还有更多!数十个错误已被修复,额外的安全加固缓解措施已启用,某些性能情况已改进,资源泄漏已堵塞,文档已更新……我们可以一直说下去。有关此版本中更改的完整列表,请参阅全面的更改说明。
QueryCon及以后
QueryCon 2019的主办方拍摄了团队合影!
今年举办QueryCon我们非常开心,我们要感谢所有参会者。由于今年参会者的想法、讨论和热情,这次活动是我们社区积极变革的催化剂。我们迫不及待想看看osquery在开发解锁后如何改进。
osquery的下一步是什么?我们想听您说!如果您在组织中使用osquery,让我们谈谈下一步应该有哪些功能和修复。感谢一次革命性的思想交流,我们现在有能力实现它。
如果您喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News