社区驱动的osquery分支osql:开源监控工具的新篇章

Trail of Bits宣布推出社区导向的osquery分支osql,旨在恢复开发者信心,采用CMake构建系统,实现持续集成与透明开发流程,支持多平台构建与社区贡献。

宣布社区导向的osquery分支:osql - Trail of Bits博客

Mike Myers
2019年4月18日
engineering-practice, osquery

数月来,Facebook一直在全面重构osquery代码库,将其从CMake等标准开发工具迁移,并整合到Facebook内部工具链中。他们的意图是提升代码质量、实施额外测试,并将项目转向更模块化的架构。然而,这些变化牺牲了对多种架构、操作系统以及众多开发者工具的支持,这些工具仅与开源C++社区偏好的标准构建系统良好集成。

更糟糕的是,项目的新内向焦点极大地延迟了社区贡献的审核——实际上停滞了针对社区需求的功能或修复开发——且没有明确的结束迹象。由于缺乏路线图或可预测的发布周期,用户对项目的信心下降。企业正在推迟计划的osquery部署,并寻找替代解决方案。

世界上许多最安全的组织已经投资将osquery打造为满足其需求的绝对最佳端点管理解决方案。被迫转向其他地方将浪费他们的投资,并使他们依赖效果较差的替代方案。这就是我们宣布社区导向的osquery分支osql的原因。

osql的目标是什么?

通过osql,我们致力于恢复社区对osquery项目的信心,使开发过程更加开放和可预测,并更快地审核和接受社区贡献。我们的目标是恢复直接的社区参与。

开放透明的开发过程

短期内,osql将作为“软分支”维护。我们将紧密跟踪Facebook的上游更新,而不偏离代码库。大量已完成的工作仅在上游的Pull Requests中等待。我们准备了一个工作流,通过该流程,osql项目可以接受社区认为足够稳定可以发布的Pull Requests,但这些请求已被上游维护者忽略。社区可以从这些贡献中选择其优先事项,并将其纳入osql的下一个版本中。

GitHub上的osql组织将成为社区项目的中心。

持续集成与持续交付

我们还集成了急需的公共CI(使用Azure Pipelines),它将在每次提交时构建和运行测试。结果可在此处找到。CI将帮助我们更快、更频繁地构建、测试和发布。我们承诺每月定期发布新的osql二进制文件(包安装程序)。我们将沟通用户可以在下一个版本中预期的变化。他们将知道何时可以期待,并且下载的版本已通过所有测试。

一目了然地确定最新代码是否在所有平台上构建。

恢复开发者的标准工具支持

我们从头重写了构建系统,将其回归到CMake,这是C++社区构建项目的事实标准。这项工作非 trivial,但我们相信这对于保持项目与开源工具链的兼容性至关重要。代表现代C++开发基础的库和工具,如Boost或LLVM/Clang编译器工具链,都原生支持CMake。最常用的第三方库也使用CMake,使得将它们包含在基于CMake的项目中非常容易。

开发者受益于其IDE中内置的CMake支持。Visual Studio、VS Code、CLion和QtCreator都可以轻松地从CMakeLists文件打开项目,实现对项目结构及其构建过程输出的精确视图。他们还将重新获得支持CMake的静态分析器框架的便利性,如Clang的scan-build,这有助于在整个项目中发现关键错误。

通过将一切重新围绕CMake构建过程,我们使osql比上游osquery更开发者友好。如果您想亲自查看并开始为osql贡献,请查看构建指南。

在Visual Studio Code IDE中方便地工作,与CMake集成。

osql的下一步计划

我们的工作刚刚开始!我们计划继续改进osql发布的自动化。最初,osql发布将是无签名的二进制文件/包。项目的下一个优先事项是在CI过程中实现安全代码签名步骤,以便每个发布都是由“osql”组织签名的二进制文件。

osquery项目的构建过程曾经允许您选择下载或构建第三方依赖项,这得益于易于修改的Homebrew公式。不仅如此,您还可以选择从何处下载这些依赖项。目前这对osquery不再成立,但我们将在osql中恢复该能力(得益于CMake,这项任务变得更容易)。

我们还计划扩展osql的公共CI,使其能够测试针对上游osquery打开的PR。这将帮助社区审核这些PR,并为它们纳入未来osql发布提供一种质量保证。

长期来看,得益于CMake对多种平台构建的支持,osql将能够为社区需求的任何新系统构建。

想要更多?让我们谈谈

当我们最初将osquery移植到Windows时,我们没想到它会变得如此庞大,或者超出Facebook单独维护的能力。现在整个社区的组织都在部署和依赖osquery。这就是我们推出osql的原因,这是社区导向的osquery分支。如果您是这个社区的一部分,并且有兴趣移植到其他平台,需要项目的特殊功能,或希望对核心进行一些自定义,请加入我们的osquery/osql支持组或联系我们!

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


页面内容
osql的目标是什么?
开放透明的开发过程
持续集成与持续交付
恢复开发者的标准工具支持
osql的下一步计划
想要更多?让我们谈谈

近期文章
构建安全消息传递很难:对Bitchat安全辩论的 nuanced 看法
使用Deptective调查您的依赖项
系好安全带,Buttercup,AIxCC的评分回合正在进行中!
将您的智能合约成熟到超越私钥风险
Go解析器中意外的安全隐患

© 2025 Trail of Bits。
使用Hugo和Mainroad主题生成。

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