尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Fleet 报告库(Report Library):从导入、编写到贡献,用 fleetctl 与标准查询库落地设备策略与报告

Fleet 报告库(Report Library):从导入、编写到贡献,用 fleetctl 与标准查询库落地设备策略与报告 Fleet 报告库Report Library从导入、编写到贡献用 fleetctl 与标准查询库落地设备策略与报告【免费下载链接】fleetOpen device management项目地址: https://gitcode.com/GitHub_Trending/fl/fleetFleet 作为一款开源设备管理平台其价值不仅在于纳管 macOS、Linux、Windows、iOS/iPadOS、Android 与 ChromeOS 等异构设备更在于让运维与安全团队能用 osquery 查询语言把设备上发生了什么变成可执行的信息。报告库Report Library正是 Fleet 官方沉淀查询资产的核心渠道它由docs/01-Using-Fleet/standard-query-library/standard-query-library.yml中的策略policy与报告report两类查询组成随仓库持续扩充。读完本文你将掌握如何用fleetctl apply一键导入整套标准查询库、查询文件的实际 YAML 结构与字段含义、如何按贡献模板提交你自己的策略或报告以及可进一步参考的开源查询资源。报告库是什么一份可版本化、可审计的查询资产Fleet 的报告库是一份不断增长、开箱即用的查询集合面向所有部署 Fleet 的组织覆盖安全基线与日常运维两类场景策略policy用于判断主机是否合规例如是否已启用休眠/锁屏唤醒时的密码要求、是否开启自动更新、最短密码长度是否设置为 14 位或以上等策略结果会持续出现在主机详情页与合规看板中是驱动修复动作如自动触发 MDM 配置描述文件的前提。报告report用于获取某一类信息例如已安装的软件清单、OpenSSL 版本、SSH 授权密钥、崩溃日志等本质上是可复用的 osquery 查询。从当前仓库的 standard-query-library.yml共 2331 行看该文件包含100 个查询条目其中48 个为kind: policy、52 个为kind: report并且大多数条目都带contributors署名体现出社区共建的属性。文件内的策略广泛引用 osquery 的managed_policies、os_version、user_groups等表报告则大量使用users CROSS JOIN authorized_keys / chrome_extensions / crashes等关联写法可视为学习 osquery 跨平台表用法的活教材。导入报告库一条 fleetctl 命令完成部署仓库根目录下克隆fleetdm/fleet之后即可通过 Fleet 官方命令行工具 fleetctl 将报告与策略一次性导入。fleetctl apply -f docs/01-Using-Fleet/standard-query-library/standard-query-library.yml要点说明文件位置standard-query-library.yml位于仓库的 docs/01-Using-Fleet/standard-query-library/ 目录下这正是导入命令中相对路径的来源。前置条件fleetctl需要先完成登录fleetctl login或通过环境变量配置 API 地址与 token才能与 Fleet 服务端通信apply采用声明式幂等语义重复执行不会产生重复条目适合纳入 CI/CD 或 GitOps 流程。作用对象apply会依据文件中的kind字段区分对待——policy会被创建为策略report会被创建为报告二者统一管理无需手工逐个录入。导入后即可在 Fleet UI 的Policies页面查看策略及其实时合规率并在主机详情或报告页中执行报告查询。读懂查询文件YAML 结构与字段语义无论策略还是报告文件内的每个条目都遵循同一套 YAML 结构。以文件开头的策略为例apiVersion: v1 kind: policy spec: name: Ensure a password is required to wake the computer from sleep or screen saver is enabled platforms: macOS platform: darwin description: Checks that password is required to wake the computer from sleep or screen saver is enabled. query: |- SELECT 1 WHERE EXISTS ( SELECT 1 FROM managed_policies WHERE domaincom.apple.screensaver AND nameaskForPassword AND (value 1 OR value true) AND username ) AND EXISTS (...) AND NOT EXISTS (...); purpose: Informational tags: compliance, CIS, CIS_Level1, premium, contributors: sharon-fdm,ddribeiro configuration_profile: | ?xml version1.0 encodingUTF-8? !DOCTYPE plist PUBLIC -//Apple//DTD PLIST 1.0//EN ... ...各字段的语义如下字段含义说明apiVersion规范版本固定为v1kind条目类型policy策略或report报告决定导入后的归属spec.name名称使用人类可读的名称会展示在 UI 中spec.platforms/spec.platform目标平台例如macOS、darwin, linux、darwin, linux, windows由查询所用 osquery 表支持的平台决定spec.description描述说明该查询揭示的信息可选spec.queryosquery SQL查询本体策略要求返回单行即表示合规spec.purpose目的例如Informational、Detectionspec.remediation修复建议命中策略后的处置步骤不适用时填N/Aspec.contributors贡献者逗号分隔的 GitHub 用户名例如zwass,mike-j-thomasspec.tags标签逗号分隔的关键词便于检索例如compliance, CIS_Level1, premiumspec.configuration_profile配置描述文件策略可附带的 MDM 配置XML plist 格式用于自动修复不达标设备从当前文件统计看22 个条目携带configuration_profile即策略可联动 MDM 配置下发6 个条目带有remediation修复步骤这说明报告库不只是发现问题更打通了发现问题 → 自动修复的闭环。报告中常见的purpose: Informational与tags: inventory如Get installed Chrome Extensions、Get installed macOS software则定位为纯信息收集不触发修复。报告条目的典型写法apiVersion: v1 kind: report spec: name: Get OpenSSL versions platform: linux description: Retrieves the OpenSSL version. query: SELECT name AS name, version AS version, deb_packages AS source FROM deb_packages WHERE name LIKE openssl% UNION SELECT name AS name, version AS version, apt_sources AS source FROM apt_sources WHERE name LIKE openssl% UNION SELECT name AS name, version AS version, rpm_packages AS source FROM rpm_packages WHERE name LIKE openssl%; purpose: Informational tags: inventory contributors: zwass该示例同时覆盖了 Debiandeb_packages、apt_sources与 RPMrpm_packages系发行版是一个报告跨多平台的典型实现。当前文件内的 52 个报告还覆盖了Get authorized SSH keysdarwin, linux、Get crashesdarwin、Get installed Chrome Extensionsdarwin, linux, windows、Get installed Windows software、Get laptops with failing batteries、Get unencrypted SSH keys for local accounts等场景基本涵盖软件清单、浏览器扩展、SSH 密钥、崩溃日志、电池健康等常见审计需求。贡献你自己的策略或报告报告库是开放的Fleet 欢迎社区提交新的策略与报告。贡献流程如下复制模板将下列 YAML 片段复制并粘贴到 standard-query-library.yml 文件末尾--- apiVersion: v1 kind: query spec: name: What is your query called? Please use a human-readable query name. platforms: What operating systems support your query? This can usually be determined by the osquery tables included in your query. Heading to the https://osquery.io/schema webpage to see which operating systems are supported by the tables you include. description: Describe your query. What information does your query reveal? (optional) query: Insert query here purpose: What is the goal of running your query? Ex. Detection remediation: Are there any remediation steps to resolve the detection triggered by your query? If not, insert N/A. contributors: zwass,mike-j-thomas tags: Keywords that can help users find other relevant queries; a comma should separate each tag. (e.g., foo, bar)逐字段填写把每个字段替换为实际内容后向 fleetdm/fleet 仓库提交 Pull Request。批量提交若你打算贡献多个查询请在一个 Pull Request中包含全部查询便于维护者审阅与合入。关于提交 PR 的完整流程分支规范、提交信息、变更说明等请参阅仓库内的 Committing Changes 指南。编写查询时的注意事项平台判定依据platforms通常取决于查询用到的 osquery 表所支持的平台可对照 osquery 官方 schema 确认避免声明了实际不支持的平台。命名要可读策略/报告名称会直接展示给最终用户尽量使用完整、语义明确的句子而非缩写。可附带配置如果你的策略需要自动修复可像文件中的 macOS 策略那样附带configuration_profileplist 内容导入后 Fleet 可联动下发 MDM 配置实现检测即修复。保持单一职责一个查询解决一个具体问题便于他人复用与审计。补充资源更多可参考的查询集合除 Fleet 报告库外以下开源资源包含大量现成可借鉴的报告查询Osquery 官方 packsosquery 项目内置的查询包覆盖系统信息、安全检测等多种场景。Palantir osquery 配置Palantir 开源的 osquery 配置仓库其中包含面向 Fleet 的查询集兼顾安全基线与企业运维实践。两者均可与standard-query-library.yml互为参照帮助你快速搭建符合自身环境的查询体系。若想深入理解策略与报告的导入机制还可结合 docs/queries.yml查询列表的辅助定义与 fleetctl-cli 文档 交叉阅读。小结Fleet 的报告库通过一份可版本化、可审计的 YAML 文件将策略与报告统一管理fleetctl apply -f一条命令即可完成导入policy与report两类条目各司其职configuration_profile与remediation字段则让合规策略从发现延伸到修复。对运维与安全团队而言这份查询资产既是开箱即用的基线库也是学习 osquery 跨平台写法的优秀范例而清晰的贡献模板让任何组织都能把自身经验回馈到社区让报告库持续演进。【免费下载链接】fleetOpen device management项目地址: https://gitcode.com/GitHub_Trending/fl/fleet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表