宣布社区导向的osquery分支:osql
Mike Myers | 2019年4月18日
engineering-practice, osquery
数月来,Facebook一直在全面重构osquery代码库,将其从CMake等标准开发工具迁移至Facebook内部工具链。他们的目标是提升代码质量、增加测试覆盖率,并使项目转向更模块化的架构。然而,这些变更牺牲了对多种架构、操作系统以及众多开发者工具的支持,这些工具原本与开源C++社区偏爱的标准构建系统无缝集成。
更糟糕的是,项目的新内向焦点极大延迟了社区贡献的审核—— effectively停滞了针对社区需求的功能或修复开发——且没有明确的结束迹象。由于缺乏路线图或可预测的发布周期,用户对项目的信心下降。企业正在推迟计划的osquery部署,并寻找替代方案。
许多全球最安全的组织已投入资源,将osquery打造为满足其需求的终极端点管理解决方案。被迫转向其他方案将浪费他们的投资,并使其依赖效果较差的替代品。因此,我们宣布推出社区导向的osquery分支:osql。
osql的目标是什么?
通过osql,我们致力于恢复社区对osquery项目的信心,使开发过程更加开放和可预测,并更快地审核和接受社区贡献。我们的目标是恢复直接的社区参与。
开放透明的开发流程
短期内,osql将作为“软分叉”维护。我们将紧密跟踪Facebook的上游更新,不与代码库分叉。大量已完成的工作仅在上游的Pull Requests中等待。我们准备了一个工作流,osql项目可以通过该流程接受社区认为足够稳定可发布的Pull Requests,但这些请求已被上游维护者忽略。社区可以从这些贡献中选择优先级,并将其纳入osql的下一个版本。
GitHub上的osql组织将成为社区项目的中心。
持续集成与持续交付
我们还集成了急需的公共CI(使用Azure Pipelines),它将在每次提交时构建和运行测试。结果可在此处查看。CI将帮助我们更快、更频繁地构建、测试和发布。我们承诺每月定期发布新的osql二进制文件(包安装程序)。我们将沟通用户可在下一个版本中期待的变更。他们将知道何时发布,以及下载的版本已通过所有测试。
一目了然地确定最新代码是否在所有平台上构建。
为开发者恢复标准工具支持
我们从头重写了构建系统,将其回归CMake——C++社区事实上的项目构建标准。这项努力非同小可,但我们相信这对于保持项目与开源工具链的兼容性至关重要。代表现代C++开发基础的库和工具,如Boost或LLVM/Clang编译器工具链,都原生支持CMake。最常用的第三方库也使用CMake,使得将它们纳入基于CMake的项目非常容易。
开发者受益于IDE中内置的CMake支持。Visual Studio、VS Code、CLion和QtCreator都可以轻松地从CMakeLists文件打开项目, enabling a precise view of the project’s structure and the outputs of its build process。他们还将重获CMake支持的静态分析器框架的便利,如Clang的scan-build,它有助于发现整个项目中的关键错误。
通过将一切重新围绕CMake构建过程,我们使osql比上游osquery更开发者友好。如果您想亲自体验并开始为osql贡献,请查看构建指南。
在Visual Studio Code IDE中便捷工作, with CMake integration。
osql的下一步计划
我们的工作刚刚开始!我们计划继续改进osql发布的自动化。最初,osql发布将是未签名的二进制文件/包。项目的下一个优先级是在CI流程中实现安全的代码签名步骤,以便每个发布都是由“osql”组织签名的二进制文件。
osquery项目的构建过程曾经允许您选择下载或构建第三方依赖项, thanks to easily modifiable Homebrew formulas。不仅如此,您还可以选择从何处下载这些依赖项。这对于当前的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的下一步计划
- 想要更多?让我们聊聊
最近文章
- The Unconventional Innovator Scholarship
- Hijacking multi-agent systems in your PajaMAS
- We built the security layer MCP always needed
- Exploiting zero days in abandoned hardware
- Inside EthCC[8]: Becoming a smart contract auditor
© 2025 Trail of Bits.
Generated with Hugo and Mainroad theme.