宣布社区导向的osquery分支:osql - The 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的上游更新,不与代码库分叉。大量已完成的工作仅在上游的拉取请求中等待。我们准备了一个工作流,通过该流程,osql项目可以接受社区认为足够稳定可以发布的拉取请求,但这些请求已被上游维护者忽略。社区可以从这些贡献中选择其优先事项,并将其纳入osql的下一个版本中。
GitHub上的osql组织将成为社区项目的中心。
持续集成与持续交付
我们还使用Azure Pipelines集成了急需的公共CI,它将在每次提交时构建和运行测试。结果可在此处查看。CI将帮助我们更快、更频繁地构建、测试和发布。我们承诺每月定期发布新的osql二进制文件(包安装程序)。我们将沟通用户可以在下一个版本中预期的变更。他们将知道何时可以期待,以及他们下载的版本已通过所有测试。
一目了然地确定最新代码是否在所有平台上构建。
为开发者恢复标准工具支持
我们从头重写了构建系统,将其回归到CMake——C++社区事实上的项目构建标准。这项工作并非微不足道,但我们相信这对于保持项目与开源工具链的兼容性至关重要。代表现代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的下一步计划
想要更多?让我们谈谈
近期帖子
使用Deptective调查您的依赖项
系好安全带,Buttercup,AIxCC的评分回合正在进行中!
使您的智能合约超越私钥风险成熟化
Go解析器中意想不到的安全隐患
我们审查首批DKLs23库的收获
来自Silence Laboratories的23个库
© 2025 Trail of Bits。
使用Hugo和Mainroad主题生成。