宣布社区导向的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的上游更新,不与代码库分叉。大量已完成的工作仅在上游的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文件打开项目,精确查看项目结构及构建过程输出。他们还将重获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。这就是我们推出社区导向的osquery分支osql的原因。如果您是这个社区的一部分,并对移植到其他平台、需要项目的特殊功能或希望对核心进行定制感兴趣,请加入我们的osquery/osql支持小组或联系我们!
如果您喜欢这篇文章,请分享:
Twitter | LinkedIn | GitHub | Mastodon | Hacker News
页面内容
近期文章
使用Deptective调查您的依赖项
系好安全带,Buttercup,AIxCC评分轮正在进行中!
让您的智能合约超越私钥风险成熟化
Go解析器中意想不到的安全陷阱
审查首批DKLs23库的收获
来自Silence Laboratories的23个库
© 2025 Trail of Bits.
使用Hugo和Mainroad主题生成。